Category: Realization

  • The Architect of My Own Reality

    The Architect of My Own Reality

    I’ve spent the day vibe coding an app that has allowed me to create something that mirrors my unbridled enthusiasm and creativity. I know that sounds stupid, but I realized there’s no one around to tell me this isn’t possible.

    And since I’ve yet to reach my $20 a month limit in Cursor, and the app works as I’ve designed it to work, I’m happy. So, I decided to write about why vibe-coding is so much better than my day job. But instead of writing it myself, I let Gemini 3.1 Flash Lite do it for me, based on my prompt, of course.

    I also edited it a bit:

    In my day job, I am a professional software tester. My life is defined by the friction of the “No.”

    I spend my hours documenting elegant solutions, identifying critical edge cases, and proposing features that would make the user experience seamless. I send these tickets off into the void, only to have them return with a status update that feels like a cold splash of water:

    Won’t Fix. Out of Scope. Resource Constrained.

    In the real world, software is a compromise. It’s a series of negotiations between what is ideal and what is budget friendly. I am the person who sees the potential, but I’m not the person who holds the purse strings.

    Then, I close my work laptop and open my personal terminal. I start to “vibe code.”

    The Infinite Canvas

    When I vibe code, the dynamic shifts entirely. The hierarchy of the corporate office dissolves. There is no product manager to tell me that my vision is “not on the roadmap.” There is no lead developer to sigh and tell me that the architecture won’t support the change.

    When I am vibe coding, I am the business analyst, the coder, and the user all at once.

    If I decide that a button should glow when hovered, it glows. If I decide that the data should flow through a custom-built pipeline that defies standard conventions, I build it. And if I hit a wall—if the laws of physics or the limitations of a specific library make a feature technically impossible, I deal with it.

    The Absence of “No”

    The beauty of vibe coding isn’t that everything is easy; it’s that the intent is never rejected.

    When I encounter a limitation, the programmer, the version of myself that exists in the flow state, never says “No.” Instead, the conversation becomes a creative pivot.

    • The Real World: “We can’t implement that feature because the legacy database doesn’t support real-time updates.” (The conversation ends.)
    • Vibe Coding: “The database doesn’t support real-time updates? Okay, let’s build a middleware cache or switch to a different engine. Let’s find a way to make it happen.” (The conversation evolves.)

    In this space, a limitation is not a dead end; it is simply a prompt for a different path. I am never told that my idea is invalid. I am never told that my curiosity is a waste of time. I am never told that the project is “good enough” as it is.

    The Joy of Unrestricted Creation

    There is a profound, almost meditative joy in this autonomy. Vibe coding allows me to reclaim the agency I lose during the nine-to-five. It turns the act of programming from a chore of compliance into an act of pure expression.

    When I am vibe coding, I am not just testing the work of others; I am manifesting my own. I am learning that while the world may have its constraints, my imagination does not. And as long as I am the one at the keyboard, the answer to “Can we do this?” will always be the same:

    Let’s see how we can make it work.

  • Video Game Violence Isn’t Violence

    Video Game Violence Isn’t Violence

    Just as I know that holding a conversation with AI isn’t the same as holding one with another human being, I know that killing virtual beings in a virtual universe isn’t the same as killing in the real world.

    When I started playing computer games in the early 1980s, graphics were primitive. Firing missiles and dropping bombs in the original F-15 Strike Eagle on the Commodore 64 required the suspension of disbelief because everything in the game, including the plane and the world, weren’t realistic looking.

    F-15 Strike Eagle

    It wasn’t long before programmers learned how to make computers like the C64 depict more realistic images. Then came along better hardware, such as the Atari ST and the Amiga. Now killing began to look like killing. Then PCs upped the ante by increasing the number of on-screen colors all the way up to 256, then to millions. This, along with the addition of more pixels and more powerful graphics cards, gave developers unbelievable power.

    By the early 1990s we had cringe-worthy video game violence. Games like Castle Wolfenstein, Mortal Combat, Doom, and more, showed gore that disgusted right-wing Christians and had moms asking for such games to be banned.

    Mortal Kombat

    Today there’s no question of whether violence is depicted with sufficient detail in modern video games. The hardware and software are more than capable, and it no longer requires you to imagine it. You only have to open your eyes to see.

    I’ll admit, I play a lot of violent games. And I’m not a big fan of little indie titles where farming, dating, or running a bookstore is the main focus. I prefer big, Triple-A RPGs, shooters, and similar where making progress involves killing bad guys.

    Castle Wolfenstein

    Sometimes they aren’t even bad guys.

    For example, I’m currently replaying the original WatchDogs, a game I’ve completed several times before. Here, you’re billed as The Vigilante, but the game lets you steal from common folk, shoot and run them over, assassinate people who are supposed to be bad, and otherwise wreak havoc on a simulated version of Chicago.

    Do I cringe as I kill and steal in a game like WatchDogs? I do. And I always have.

    But since I know what I’m doing has nothing to do with reality, and I’m not preparing myself to go out and kill in the real world, these feelings I feel as I kill virtual beings just serve to remind me that, yes, I am human, and yes, life is precious.

    That’s what we need to remember with whatever sort of entertainment we rely on.

    When we read, watch TV, play games, chat with AI, surf the Internet, etc., and what we’re experiencing makes us feel uneasy, and we wonder if maybe it’s reinforcing the worst in us, we are human, we value life, and we make a decision every day to preserve it.

  • The Long Road Back to Amiga: A MiSTer FPGA Post-Mortem

    The Long Road Back to Amiga: A MiSTer FPGA Post-Mortem

    Return to the Amiga

    I am a huge Commodore fan and have been since the very early 1980s. I bought an Amiga 1000 the fall of 1985, and an Amiga 500 a few years later. The Amiga was my sole personal computer until around 1983, and I played hundreds of amazing games on it in the 8 years I owned it.

    When I bought a MiSTer FPGA a month or two ago, it was mostly so I could play many of those old Amiga games again. Little did I know the amount of work it would take to get the games onto the MiSTer.  This post mortem details at least some of the steps I took to fruitlessly try to get Amiga games working as .hdf files on the MiSTer FPGA. 

    AI as the Sole Source of Truth

    I have relied on AI, Gemini in this case, every step away. Interestingly, it has proven to be a double-edged sword. It’s been invaluable in some respects, and downright stupid in others. It’s often provided incorrect information, or led me down pathways that didn’t work. It was also sometimes unwilling to provide any information, which forced me to coax it out of it. 

    I admit I rely heavily on Gemini for most things nowadays, and I relied on it here, to my detriment. Had I been more knowledgeable about these matters, I might have had a better outcome.

     The Journey

    • Amiga Vision – I read that Amiga Vision provided an all-in-one solution with hundreds of games. I just had to download and copy some folders to my SD-CARD. I either downloaded the wrong version (I don’t think that was the case) or it somehow didn’t copy over correctly because it didn’t work. I got errors on the MiSTer FPGA when I tried to use it.
    • Conversion – I downloaded .lha files from WHDLoad and was directed by Gemini to use a Bash script to convert them to .hdf files.This didn’t work even though I was using Git Bash, AmiTools, and some GnuWin32 utilities. In the end I had Cursor fix the script to get it working..
    • Bash –  A critical failure occurred where the script logic, likely due to improper variable handling or file path iteration, effectively mapped the same game file into every generated .hdf file, resulting in a batch of corrupted or redundant images. This was resolved, or at least partially so, by adding a line to the Bash script to delete the tmp folder before copying new game files.
    • Amiga Forever – Attempting to create a boot hard drive (DH0) in Amiga Forever failed because that environment is unable to create SCSI hard drives that are compatible. In the end, I could create the initial .hdf file in Amiga Forever, then had to copy it to the SD-CARD, and boot it in MiSTer FPGA, and from there, set the drive information, partition it, format it, and install Workbench 3.1.
    • WHDLoad – Once I got my Workbench 3.1 hard drive working, I attempted to mount a game .hdf file, but found it was missing WHDLoad. Gemini directed me to use a PowerShell script it created to inject WHDLoad into the .hdf files.
    • WHDLoad Continued – I abandoned the automated batch approach in favor of manually injecting files into a master .hdf. This required using the Amiga shell to manually handle the installation of the WHDLoad package. This was difficult because I had to copy the WHDLoad files to the boot drive, and install it. In the end, I created a floppy disk in Amiga Forever, copied the necessary files to it, then copied that to the SD-CARD, and was able to copy it to the hard drive and install it.
    • Mismatched Files – A recurring issue involved the game .slave file on the .hdf. When the .lha was initially unpacked, the internal naming conventions in the .hdf file didn’t match the expected launch parameters, forcing me to manually rename the slave files within the Amiga environment. Potentially, this would have to be done for every .hdf game file, or maybe the Bash script could be altered to do it for me, which would require converting all of the .lha files again.
    • Amiga Vision Again – Finally, after many false starts, Gemini directed me to again install the AmigaVision structure to source the necessary Kickstart ROMs and .RTB files manually, validating them against the requirements of the specific Workbench 3.1 setup.
    • It Works! –  Bewilderingly, when I mounted Amiga Vision in the MiSTer FPGA, it worked, providing a list of hundreds of games I could play. I tried running a couple, and they just worked!

    Final Thoughts

    This whole experience has been illuminating and frustrating, and I’ve felt helpless while Gemini continued to pump out information that I wasn’t knowledgeable enough to refute. I often got upset with Gemini, raised my voice at it, letting it know how displeased I was with it. This of course made no difference to it.

    I have working games via Amiga Vision and my old floppy images, and I’m happy about that. I’ve also spent more time using AmigaDOS and WorkBench in the last several days than I have in 35 years, which has been fun and interesting. It’s also a bit bewildering to see how antiquated yet perfectly functional this old operating system is.

    The worst part is how much time this has taken. I was fortunate to have a few days off work and spent most of several days doing nothing but this. Of course, I could have spent the time playing games, but this is all new to me, since I have never had a MiSTer FPGA before. Also, I’ve been buying new versions of Amiga Forever for probably 20+ years, but I’ve never spent that much time using it.

    My recommendation if you decide to buy a MiSTer FPGA or similar just to play Amiga games is go with Amiga Vision and hopefully it works for you. Playing games from floppy images works fine, but it’s nice to have a unified launcher and a list of hundreds of games to play.

  • Bridging the Capability Gap With AI

    Bridging the Capability Gap With AI

    In my post, Vibe Coding is all About the Requirements, I talk about how I’ve spent more than half my life programming but I’m still not a great programmer. I judge myself a 5 or 6 on a 1-10 scale, and no self-respecting software development manager would hire a 5 or 6 to work on production code.

    So, while I can code, I know my limitations, and there are many of them. 

    What I can do effectively, at least as a hobbyist, is vibe code, not only whole programs in languages and for platforms I have no experience with, but also modify or fix existing code, scripts, etc., that aren’t working correctly. I can also host a vibe-coded application on a platform like GCP, which I have a little experience with. 

    For most programming tasks, I use Cursor with its Composer 2.5 Standard model. It helped me write a digital collage tool to slice images into pieces, manipulate them individually with filters and edits, and reassemble them into a brand-new composition. This is a client-side JavaScript web app managed via NPM, utilizing HTML5 Canvas for image manipulation and hosted entirely on Firebase. 

    I also used Cursor to write a Python script to migrate my entire Obsidian vault, images and formatting included, into Google Docs. 

    These are projects I never would have dreamed about tackling, but with AI, I’m finally able to. Not only does the technology expand my set of capabilities and save me time but also helps me to innovate in areas I never would have previously considered.

  • There’s Nothing We Can Do About The Tech Industry

    There’s Nothing We Can Do About The Tech Industry

    I’ve been accused of not having hope, and I’ll admit, it’s true. I’m glad there are people out in the world fighting for rights, attempting to keep us safe, and generally keeping governments and big corporations in check. I know these same people can make a difference, but I think it’s a losing battle. I think we need to look at things more realistically, especially in regards to tech.

    Big tech is in a constant struggle to make money for their shareholders. They demand infinite profit growth, usually at the expense of the workers. These companies ramp up, hire, invest, and then when things don’t go quite right, they downsize, leaving potentially thousands of workers out of jobs.

    As someone who has worked for tech companies for over 30 years, I know how this works. I know that feeling when layoffs are announced and you worry you’re next. I also know how it feels to get numb to the whole experience. So when a company like Microsoft is rumored to lay off thousands of workers across the entire organization, I genuinely feel for those people. I also realize this is inevitable.

    And while we feel for the workers, we also often have a vested interest. We become attached to products these companies make. Or, when a smaller company is acquired by a larger one, we worry the products will either change in unwelcome ways, or shutdown altogether.

    The reality is, we can’t change this in any significant way. The stock market fuels the growth of these companies, often makes the people running them rich, but requires a cutthroat approach to managing the products and workforce. Just because we’re attached to a given product, we can’t expect the company to treat it differently.

    It’s good to have compassion for others but we need to have a realistic outlook. We need to see big tech for what it is. It’s like a government constantly at war. Those workers who get burnt out, who maybe have lost their spouses after ignoring them for too long, and get laid off at the whim of the corporate overlords, are the casualties.

    They survive, but are forever changed.

  • Life

    Life

    When I first started using computers, in the early 1980s, when I was around 20 years-old, I didn't know I had any limitations. 

    I wasn't interested in programming, not until almost 10 years later, but I loved using those early computers. Learning all about them. Using word processors, spreadsheets, databases, utilities, 3D modeling and paint programs, and playing video games.

    When I did start programming, I didn't run into any issues. Then I got a job in software development, using PCs and Macs instead of Commodore 64s and Amigas, but they didn't present a hurdle. If anything, they seemed inferior to my amazing Amiga!

    In the mid-90s, I did start to see some limitations with my programming capabilities, but I just worked around them. I didn't see them as a problem, or as something that would keep me from advancing or doing my job.

    More recently, I've realized there are many things that have held me back. Not only my ability to master programming at a high level, but also my inherent disinterest in making that a full-time occupation. And how unwilling I have been to form long lasting bonds with peers, learn the politics of large organizations, all of which would have allowed me to move up the ladder.

    Today I know I have many shortcomings. I realize my life is limited in many ways, and even with the things I'm currently interested in, I can only go so far. I can't suddenly become manager material, become a top-flight engineer, or an expert in AI that suddenly causes headhunters to bang on my door.

    My life is what it is, for better or worse. I have a good job, get paid pretty well, but now that I'm older, my life is set. I won't suddenly become the CEO of a big company, start my own business, write the next great app, or anything of the sort.

    I'll just keep plugging along.
  • The Decline of the Human Spirit

    The Decline of the Human Spirit

    I mostly know about computer technology and video games. I’m not an expert in anything else. I’m not even an expert in myself. Too often I have no real idea what is going on in my body or my mind. And yet I find myself in a crisis, one that has been persistent for many years now. Maybe even decades. I’m not sure there’s a resolution or a happy ending.

    Part of it is the decay of humanity, and by that, I mean how we continue to die off.

    My parents, my oldest brother, my aunt, my niece. All of these people and many others are gone. And then there’s the seemingly endless parade of pets. Cats from my youth, and dogs from my adulthood. All gone.

    Part of it is the realization that I am stuck in this life.

    As a kid I saw the world as simple, easy, and that I would be able to find my place in it with ease. And as a Basque/Hispanic young adult who was white and spoke English, it wasn’t that hard. But I didn’t understand how my decisions would affect my life, and I didn’t pay attention, listen even, and now, as a 65-year-old, I see the dead end before me and wonder how I’ll make it through the rest of my life.

    Part of it is the realization that humanity is mostly evil, or so it seems.

    Interactions with people are difficult. There’s no way to know if someone you meet believes what you believe, or if there is even such as a thing anymore as shared belief. What if we are all just individuals, each charting his own way through life, rudderless, without a real goal except to protect what’s ours?

    Part of it is just having to struggle.

    I’m tired of taking care of people. Paying bills, worrying when something will come along that I can’t handle. There’s no one left to help me. I’m on my own. I have the whole weight of my household on my shoulders.

    Which makes me feel like my decline might be your decline.

    I know there are people out there winning at life. Rich, famous people. With an endless set of friends and loved ones. An ability to succeed no matter what. And the ability to do whatever they want, no matter if it’s legal or not, and still come out on top.

    But what about everyone else?

    Can we continue to take the brunt of the load while the rich get richer? They make all this shit we buy, pollute the world, ignore the laws, raise their extended finger at what’s right and will the world to form itself around their own ideals. While we falter.