I don't really need to say more, do I? Don't let AI create your UI. Just don't do it. When I see a UI created by AI, I instantly recognize it as such. And I'm not the only one, I think most people notice if your UI was created by AI. And they hate it. It has a certain laziness and practicality to it that humans would never create. It lacks art. It's hollow, lifeless. Here are some alternatives to…
The AI age is all about writing your own tools. Recently, I've been getting obvious spam emails in my Gmail inbox, which are somehow bypassing Gmail's spam filter. These emails include attachments. I haven't clicked on the emails, because I can't trust that they aren't some form of attack that chains an exploit in Gmail's backend with an exploit in the browser or Gmail client. But, I can just…
I recently vibe-coded a Ruby interpreter, as a single-header C file, meant to be embedded (like Lua). I call it Luby: https://github.com/halferty/luby This is a small piece in a larger game engine I've been working on. Typically, Lua is used for game scripting, but I never liked Lua syntax, and I do like Ruby syntax, so I burned a few LLM cycles cooking up this little interpreter.
Sometimes, in the course of human events, one might want to connect to one of your computers from another. And if you're a Gen X or Gen Y like me, you might immediately think of Microsoft Remote Desktop. And then, you might notice that Remote Desktop requires Windows 11 Pro, and you might just get out your credit card and pull the proverbial trigger on that upgrade. After all, Microsoft must have…
I don't know if people realize this, but coding agents are actually fairly good at reverse-engineering binary files. I suspect that a large number of academic papers on reverse-engineering and decompilation techniques is helping here, but regardless of what the magic is, it's quite impressive. I recently tested this by having Claude Code reverse-engineer the extract the exact chess engine used in…
Here is the simplest way to reset your joomla (3.x/4.x) password, if you have root access to the server (and database access): Log into your joomla server as root. Run the following command on the server: php -r "echo password_hash('my__new__password321', PASSWORD_BCRYPT) . PHP_EOL;" $2y$10$Vpi.NZOi95DB5vcxtbscNe06pK8nOm1xf1w/Qdtkuu.WfJohiDR/u Log into mysql (probably with the following command,…
In his 2011 article for the WSJ titled Why Software Is Eating the World , Marc Andreesen makes the case that the software industry had reached a level of maturity that allowed it to transform every industry, and in doing so made itself larger, and also caused those other industries to shrink. For example, the mobile phone revolution took a huge chunk of gaming market share away from Sony and…
After moving my site from cloudflare pages to my own server, the DNS seems to be flapping between the old value and the new. That kind of thing isn't that unusual, but this has been going on for a month now. What's the deal with that? This confirms my suspicions that Cloudflare pages are kinda half-baked. Also confirming that is the fact that Cloudflare seems to be de-emphasizing them by hiding…
For a brief period of time, I had a fake gameboy homepage: https://web.archive.org/web/20231202214457/https://edwardhalferty.com/ This was about 50% vibe coded, 50% off the top of my head, in a fit of inspiration while unemployed. I had the idea that WebGL had gotten to the point that drawing a 160x144 grid of 3D squares would be a good approximation for a gameboy screen, and using shaders I could…
Software developers who have been in the industry for awhile will eventually notice certain trends in the industry, and meta-trends that play out over decades. One such meta-trend is a shift in what predominantly occupies our time and thought. The (micro) trend here is that we as software developers are always in over our heads with some new technology. There’s always some new Javascript framework…