Category: Computers

AI – The Emperor Has No Clothes (But Inverted)

In the story of The Emperor’s New Clothes the Emperor is convinced by his disciples that he’s wearing invisible clothes that only the wise can see. When talking about AI however, the story is more like “The Citizenry’s New Clothes” because the Kings (Billionaire tech-bros) are convincing the masses that they’re wearing the clothes. They’re convincing government agencies, business leaders, and the average Joe that AI is the inevitable next phase of computer science and the internet when it’s only inevitable because Meta, Alphabet, Space X, Oracle, and Microsoft have to continually show growth when they’ve already hit their market cap.

AI as it’s being sold is a scam. We’re being told that it’s so powerful it can do our jobs; that Artificial General Intelligence is on the horizon. In reality, AI can TAKE our jobs because a salesman can convince a CEO that it can do all the work when it really can’t, and LLMs won’t just magically become AGI by throwing more GPUs and RAM at it.

These AI companies aren’t profitable, and based on current trends they won’t be anytime soon. For every customer an AI company adds, it doesn’t make them more money. It costs them more. The hardware and hosting costs greatly exceed what they can charge companies and government agencies to use the LLMs. So what’s the end game here? The AI companies know this. Either they are just hoping to hold out with more and more investment money in the hopes that they eventually find a way to achieve AGI and align their pricing to profitability, or it’s just a big money laundering scam through NASDAQ to make sure that certain people make a ton of money before the whole bubble comes crashing down taking our economy and retirement funds with it.

This interview with Jon Stewart and Cory Doctorow is a brilliant explanation of this. How do all the CEOs not see this? It seems that everyone sees this coming but continues to act like everything is fine. Don’t worry your highness! You’re wearing invisible clothes that only wise people can see!

The Inherent Problems with Using LLMs to Code

Introduction

Software companies are pushing their developers more and more to use LLMs in order to increase productivity. The argument is that LLMs allow developers to write more code in a shorter period of time. Whether it’s automating processes like requirement gathering or pull request reviews, or creating code like prototypes, unit tests and new features, or refactoring old code into newer more efficient code – there’s a point to be made. Yes AI can help with that. There’s been a joke for a long time that Google searches are a developer’s partner when it comes to coding. LLMs take it one step further and actually write the code you need based on the code it’s been trained on from the internet. But while LLMs can help developers produce more code, faster; what are the downsides? In this article I’m not talking about the technical downsides, or using AI agents to automate processes, but more about the psychological downsides to the workforce, and how that effects the code being generated.

Motivation

I’ve heard from some of my colleagues that they really like using LLMs because they “hate coding.” I find that quite interesting since being a developer means you’re going to be coding a lot. Why did you go into a career where the majority of its purpose is something you “hate”? If you asked a career counselor in high school what careers pay a lot of money, one of the top answers would be “software engineer.” Many of those kids went that route for that answer alone. They had no real interest in computers, or coding. It was just the default job to get into if you wanted to make a lot of money. These engineers will hail AI as their savior, and if you truly don’t like coding, that makes sense.

Then there’s the other people who got into software development. Nerds. There’s a group of people that were into computers as a hobby, and the natural transition was to continue that obsession into a career. These are the people that actually enjoy coding. Making someone who enjoys coding use an LLM to code for them is like asking a mechanic who enjoys working on cars to control a robot to do it. What motivation does a software engineer who enjoys coding have now that you’ve taken it away from them? Why continue to learn new languages? Why stay in the industry at all?

Ownership/Pride

If you’re a software engineer that enjoys coding, you have a sense of pride in what you create. You took on a challenge, designed a solution, and executed that solution. That’s something to be proud of. It’s also something you take responsibility for. You designed it. You wrote the code. It’s yours. If the code is good, you take credit for that. If the code ends up having problems, you have to take credit for that too and take it upon yourself to fix it. In a nutshell, because you have pride in something, you claim ownership of it, and if you own it, you want it to be good.

In the case of using AI, you tell the LLM what you want, how you want it implemented, and ask it to generate the code. What if the code created by the LLM works but is optimized badly? What if there’s security risks? What if the data model that was created is bad? Would a human have the same amount of pride in something they didn’t actually create? I would argue no; It’s just human nature. A developer in this situation SHOULD take as much care as one that wrote the code from beginning to end, but I don’t think that’s realistic. The feeling of ownership isn’t there. If the level of pride is less, then the level of care is also less. In the end, less pride ends up with lesser code.

Skill

What happens to a software engineer’s coding skills the more and more they use AI? Unlike riding a bike, coding is a “use it or lose it” skill. Much like learning a new language, if you don’t speak it often, you get out of practice and start forgetting what you’ve learned. Using AI to generate code lets that “brain muscle” atrophy over time. In fact Anthropic, one of the leaders in AI development, recently published a study showing that a collection of software engineers using AI over a period of time performed worse on a skills test than the engineers that didn’t. The article about the study can be found HERE. Use it, or lose it. What does this predict for the future of software engineering? Will there be a mass of AI generated code that after years of changes no one knows how to troubleshoot? Will companies be locked into paying for AI forever because there’s no one around who can write decent code from scratch anymore? These are probably exaggerated consequences, but they are something corporate leadership with have to deal with. This also leads us into the next topic, the workforce.

Workforce

Early in the push to use AI for coding there was the concern that AI would replace junior engineers. If the executives of software firms were to think logically, and see the big picture, they’d realize that if they’re not training and mentoring their junior engineers, they’re not investing in their future. Junior engineers become senior engineers and you’ll need that expertise to maintain your code in the future. However, that assumes that executives are thinking logically, and that they’re looking past their upcoming quarterly market goals. While using AI as the scapegoat for layoffs is currently rampant in the industry, there’s still reason to be concerned that the more you rely on AI means relying more and more on AI in the future. If using AI does negatively affect the skills of software engineers, if allowed to reach its inevitable conclusion, you’ll end up with code beholden to AI, maintained by engineers beholden to AI. Is that what these corporations want? Their intellectual property tied to the services of an AI company?

Mental Paradigm

I’ve come to realize that for me, using an LLM to write my code is more mentally tiring than writing the code yourself. When you’re working with an LLM to write code, you’re essentially “chatting” with “someone” all day. We interact with LLM‘s using somewhat normal speech. You’re convincing an entity to write the code you want. The thought process is totally different. When you’re writing the code yourself, there’s no conversation, it’s just logic. That’s a different part of your brain. After a day of coding with AI, I feel like I’ve been in a day long meeting because at it’s most basic form – I was.

Conclusion

AI and using LLMs to assist with software development is here to stay. It IS useful. It does help developers create more code at greater speed. It also allows developers to create things they might not have been able to create without it. But like most things in life, AI is a double-edged sword. The good needs to be balanced with the bad, and I hope the challenges I discussed here are things that we as an industry can avoid or find solutions to.

Enable Administrator Login in Windows 11

Did you accidentally lock your administrator login by attempting the wrong password too many times? Do you need to re-enable the account, and reset the password? Try the following :

  1. Hold SHIFT and click the power icon on the lock screen. Continue holding SHIFT and click on “Restart”. This will boot the machine into Troubleshooting mode
  2. Select “Advanced Options” on the “Troubleshoot” screen
  3. Select “Command Prompt”. This will open a command prompt window.
  4. In the Command Prompt window, type the following command :
    net user Administrator /active:yes
  5. Now that the Administrator account has been re-enabled, you can set a new password by typing this command :
    net user Administrator <type your password here>
  6. Close the Command Prompt window
  7. Restart the computer
  8. Login with the Administrator account with the password you just set

Clone your Windows Drive to a Larger Drive

I recently wanted to put a larger SSD in my laptop. Unforunately, it can only have one drive. So, if I didn’t want to have to reinstall Windows and everything else on a new drive, I would need to move all the data off the old drive onto the new. This can be done with a Debian-based live distro called “Clonezilla” that will clone your existing drive to a new drive. Tom’s Hardware did an excellent write up at the link below.

https://www.tomshardware.com/how-to/clone-your-ssd-or-hard-drive

Restore the Old “Right-click” Context Menus in Windows 11

If you’re like me and don’t dig the new cartoony icons for cut, copy, and paste in Windows 11 when you right click on things; you can use this terminal command to bring back the old context menus.

  1. Hit Windows Key + X
  2. Select “Terminal”
  3. In the terminal window, copy and paste :
    reg.exe add "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32" /f /ve
  4. Hit Enter
  5. Reboot your machine.

After you reboot, the right-click context menu should be displayed in the old way, with “Copy”, “Cut”, “Paste”, and “Delete” being words, and not icons.

2022 Asus Zephyrus G15 Keyboard Issue Resolved? (Nope.)

My Zephyrus laptop has been having keyboard issues for quite some time. The “E” key has been intermittent at best and it doesn’t appear to be a hardware issue, but a software one.

The “E” key won’t type by itself at all, it will only register if it’s immediately follows another keystroke. So, for example, if you just type “e” nothing happens, but if you type “Pre” and hit “r” and “e” fast enough, you get “Pre”. (Sometimes it’ll do “Per” though, so it’ll even register the order wrong.) This appears to be related to ghost key detection, or sticky keys (even though I have it disabled in Windows 11) or rollover key detection. What’s weird and frustrating about this situation is that it doesn’t happen all the time. Sometimes, the “e” won’t work at all.

The other oddity is that if I do a clean install of Windows 11, the keyboard works perfectly fine… for a while. Sometimes it’s a day, sometimes it’s a couple hours before it starts acting up again. This led me to believe it must be a software, or more specifically, a driver issue. Either Windows 11 is installing an update that breaks the keyboard driver, or the MyAsus utility is installing something that’s broken.

To test this, I reinstalled Windows 11, and I disabled Windows 11’s ability to include manufacturer updates. Like always the keyboard worked fine for a couple of hours, and then the “E” key started acting up again. So it’s not Windows Update that’s the issue. It MAY be MyAsus installing something that Windows 11 doesn’t like.

At this point I gave up, and decided to go with the nuclear option, and installed PopOS (Linux) on the laptop. Guess what? The keyboard is working fine now without issue. So, it’s definitely a software problem, not a hardware problem, and I guess I’ll just have to keep Linux on the machine from now on. (The laptop isn’t under warranty and I’m not paying $90 to Asus to have them take it in for repair because they wrote a crappy driver.)

Strike that. The keyboard had to be replaced at a local repair shop, with mixed results. No more Asus laptops in my future.

Linking a Local Folder with Microsoft’s One Drive

You may want to sync a folder on your computer with OneDrive that isn’t one of the Windows standard C: drive folders like “Documents”, “Pictures” etc. If that’s the case, here’s the command line for you to use to link any folder with OneDrive.

mklink /j “<path to configured OneDrive location>” “<path to directory you want synced>

So, if I had a folder called “photos” on the D: drive that I wanted uploaded and synced with my OneDrive, and my OneDrive was configured to exist at c:\onedrive (the default is C:\users\<username>\onedrive) I’d do the following command in a Command Prompt window:

mklink /j “c:\onedrive” “d:\photos”

You’ll see the “photos” folder appear in your OneDrive, and the OneDrive app should start syncing the files from your local storage to the remote cloud-based storage.