Generative AI is Bad

This is just to put it out there that I am against the current slate of generative AI products that are getting pushed on everyone (ChatGPT, Copilot, Claude Code, etc.), and for a number of reasons.

Reason 1: It’s Bad

The first and most crucial issue with the current slate of LLM-based products is that they’re bad. They don’t work. They don’t accomplish anything you couldn’t do with pre-2022 Google and a tiny bit of patience. In addition, they constantly generate text that looks believable but is false. This is, in my opinion, the worst possible kind of text! If you’re going to tell me a sarcastic joke, please make it clear that I’m not meant to believe you. If you’re trying to share information with me, please make sure it is correct. Please read Ed Ongweso Jr.’s explanation of how AI fans create a strawman argument between people who are fearful that AI has become too powerful and people (like me) who just think it sucks in general: The phony comforts of useful idiots – by Edward Ongweso Jr.

Reason 2: It harms the environment

The massive data centers that have already been deployed to train and run LLM applications have consistently led to water contamination, water shortages, and health conditions related to poor air quality in the areas surrounding them. I happen to live in one of those areas. In addition to the worsening environment for everyone who lives here, the squadrons of itinerant workers who were moved here to build these data centers have created a local housing crisis where monthly rents have risen over 100% in the past year. Some might say this is an economic boon for landlords, but it really isn’t in the long term, since those workers are only here for the construction phase of the project. Once the data centers go into regular operation, the extra population will move on to the next job, and those houses will either return to pre-2025 levels or simply remain vacant until someone is willing to pay the elevated rent. Are the owners of those houses even local? Who knows. Please find a recent issue of Time magazine for a write-up of the environmental and economic issues created by the new data centers: Trump’s Stargate AI Data Center in Texas Sparks Housing Crisis | TIME.

Reason 3: It harms writers, artists, and developers

The last issue I wanted to mention about what passes for AI today is that the profiteers behind these applications have stolen the work of millions of writers, artists, and developers in order to create the massive training sets used to build their models. While I remain unconvinced that the AI companies are actually capable of turning a profit, any money they did make from this endeavor would be the rightful property of the creators who actually labored to publish, paint, and produce those stolen works. Instead of recognizing the immense value of the workers who spent the time and energy necessary to distill their thoughts, knowledge, and imaginations into books, videos, and applications, companies following the AI trend are laying off thousands of creators. The billionaires running massive corporations believe they no longer benefit from the labor of their creative employees. I think they’re wrong about that, but even if they manage to keep their businesses, they are still wrong for dismissing the real humans who made them rich as if they were disposable commodities. I am encouraged to know that some headway has been made in the fight for at least the rights of book authors in a recent lawsuit against Anthropic: Anthropic pays authors $1.5 billion to settle copyright infringement lawsuit : NPR

Also please see Ed Zitron’s amazing work on the financial shenanigans that AI companies have been getting away with so far. An economic crash may be coming soon that dwarfs the dot-com bubble of the 2000s. A key piece in that series, The Case Against Generative AI, sums up most of what Ed has been finding since he started digging into available financial data around NVidia, OpenAI, Antrhopic, and the other major players in the industry.

Literally the first AngularJS app everyone writes

So, I’m a fan of Javascript frameworks. I don’t know if that’s a controversial opinion or not. I’m in the camp of people who don’t believe they should write everything from scratch (well, obviously, since this is a WordPress site).

There are a lot of great frameworks. My personal favorite so far is AngularJS from the Google people. This is not a religious statement. I’ve written some StackOverflow answers about JQuery and pondered about new offerings like ReactJS. For me, for now, I like Angular.

Why Angular?

Probably my favorite thing about the Angular framework is that it clearly delineates the various pieces of code without making any assumptions about what they should be. EmberJS also has a very intuitive distinction between Models, Views, and Controllers, but I feel like Ember demands more rigidity on the server side. In other words, Ember’s conventions seem more inflexible to me, and that’s difficult since my web host is pretty exclusively a PHP machine. Maybe it’s just that I happened across Angular first, and “got it” more quickly. I could be convinced either way.

So what’s the first app?

One of the most radical properties of Angular is that you don’t actually have to write any Javascript to do basic manipulation on a page. The easiest example of this is a simple tip calculator, where you type in the dollar amount of your bill and the percent you’d like to tip, and the total bill is calculated automagically:

Your bill:

Your tip (%):

Total: {{ bill * (1 + tip * 0.01) | currency}}

The code for that little bit of mastery:


<style>.ng-cloak {display:none;}</style>
<div ng-cloak ng-app ng-init="bill=0;tip=0">
  <p>Your bill: <input type="text" name="bill" ng-model="bill"/></p>
  <p>Your tip (%): <input type="text" name="tip" ng-model="tip"/></p>
  <p>Total: {{ bill * (1 + tip * 0.01) | currency }}</p>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.8/angular.min.js"></script>

What’s going on?

Basically, Angular is all about managing data in a given context, called a scope. The ng-app directive creates a new scope, and the ng-model directives declare variables within that scope. Those variables are initialized by the ng-init directive so that the “Total” expression has valid input at the start. Without that, the “Total” area would read “NaN” until the user writes numbers into the fields. The expression for total is just the basic tip formula piped through the built-in currency filter. One cool thing about this filter is that it automatically adjusts to the user’s locale, meaning UK users will see “£” while US users see “$”.

But how does it work?

Ultimately string manipulation. Javascript can do anything to the page it wants, including parsing the page for expressions delimited by curly braces ({{ and }}) and replacing them with calculated values in scope. This is exactly the kind of code best left to the experts, in my opinion. The last bit of trickery is preventing users from seeing the curly brace expressions while the Angular library loads and does its work. That bit is handled by the ng-cloak directive, which, unlike the other ones in this example, was declared as a CSS class. In general, angular directives come in three varieties: elements, properties, and classes. That’s right, you can create your own HTML elements using Angular directives, and that’s awesome! Most of the directives displayed here were properties like ng-app and ng-model="bill". The third type lets us sneak under the radar by declaring a CSS style on the page to initially hide the element (display:none). When the angular directive kicks in, it immediately removes the ng-cloak class to reveal the Angular-powered elements underneath.

Didn’t Google already explain this more clearly?

Yes, they did! However, I thought I’d take this opportunity to prove to myself that A) I understand it well enough to explain it and B) I can demonstrate single-page apps on my WordPress site. Mission accomplished.

Hello again, world!

I once told a friend about a Xanga blog I was running at the time, and she just laughed and said, “You and your websites!”

I was stunned. I never thought of myself as owning a website before. I managed profiles (at that time) on Xanga (since abandoned), Google, Facebook, and LinkedIn (hadn’t heard of Twitter yet), but I always thought owning a real personal website was either too expensive or too much work.

Fast-forward a few years, and my life has now brought me to a point where I feel it is too expensive not to run my own site. Here are my top 5 reasons why:

5. Basically, I’m a developer now

My official title at Ludlum Measurements, Inc. is “Project Engineer”, which means I take primary responsibility for the development and production of new and existing products assigned to me. That said, what I end up actually doing for 40+ hours a week is a mix of desktop application and firmware development.

In today’s job climate, it’s best to keep abreast of new opportunities as they arrive. After all, people who change jobs every two years earn more than those who stay put. Most employers of developers, especially web developers, would expect a potential new hire to maintain a personal website.

4. I’m already hosting and maintaining other sites

Through Walke Designs, I’m already managing other web pages. So far, these are all WordPress sites (like this one). Our service provider is very accommodating and inexpensive (thanks JustHost!), and as long as you don’t do anything funny like try to install Laravel, NodeJS, and Rails 4 (guilty), they allow a lot of storage and bandwidth at a flat rate. Thus, the only cost to me to run my own site is the domain name, which is really very inexpensive compared to anything at all. You can barely get milk and eggs without spending $15 now. Compared to what I spend every month for my smartphone data plan, it’s basically free.

3. I like to rant

Technically, I could log in to the Walke Designs blog and post whatever I want. However, I don’t think it’s appropriate to use a business site to talk about personal issues, projects, or political thoughts. I think about those subjects a lot, and while I feel free to express those thoughts on Facebook and Twitter, the blog format is better suited for collecting and sharing these thoughts in a coherent, non-invasive way.

2. I like to code

Honestly, I feel a bit ashamed to be relying on a “batteries included” framework like WordPress to publish my blog. I feel like I should be able to code the whole thing in PHP-HTML-JS-CSS (JustHost pretty much just likes PHP on the server side, not my favorite). However, as I was sketching out how I would design the site, I realized that pretty much everything I wanted on the backend would just be replicating what WordPress already does for free. With that in mind, I decided to publish the main site the easy way and add flair later my customizing themes and adding JS modules to individual pages when appropriate. This site will be the perfect playground for that kind of experimentation, as it won’t interfere with the professional sites I host, but it will still be live and public. In other words, I like the pressure, but not too much pressure.

1. I want to give back

I’m continually inspired by my coding heroes who blog, including personal acquaintances like Bryan Hughes (@nebrius) and slightly more public figures like Charles Max Wood (@cmaxw) and Saron Yitbarek (@saronyitbarek). Saron and her CodeNewbie group are especially inspiring, because she’s been programming for many fewer years than I have, but she’s already blown me away in terms of making a real impact in industry.

I feel like the common thread among these individuals is that they each decided at some point in their careers to make an effort to connect with other people who were interested in writing code by sharing their own thoughts and experiences. I get so much from listening to Charles Max Wood’s 10 or so podcasts every week (most notably Ruby Rogues and Javascript Jabber), and they would never exist if the panelists on those shows all waited until they were millionaires with several decades of professional experience under their belts before they joined the conversation. Yes, some of the panelists have been around the block a few times, but not all, and the diversity of the panels is a big part of the value of those podcasts.

So, this is me, looking to do my part to join the conversation after a few years of relative silence. Me and my websites, right?