Saturday, January 04, 2025

Programming sucks, why "learn to code" was bad advice

 Don't confuse this post with the awesome and timeless Programming Sucks, which you should most definitely read. But like that post, mine also makes the point: you don't want to be a programmer. I will leave the biggest reason for later, and it is a very big reason.

I've been programming a long, long time. When I got into programming it was fun, I like coding. But as every year went by being a programmer meant a little less about writing code and a little more about working with other people's software and code - which is not fun at all. The fun part of coding is the creating part, but every day I get to do less of that. It's probably why I started blogging and working on software projects at home, so I could still be creative.

And let's face it, programming is just not fun for most people. Do you really want to be chained to a computer all day? It used to pay well, and a few places still do, but the average programmer does not make that much anymore. Of course the reason until now has been open-source software, which greatly degrades the value of programmers. Open source means we need less code, and needing less code means we need fewer programmers (and thus we get paid less). Oh before I forget to mention one little detail: programmers are famous for being arrogant dicks who think they are smarter (and more special) than they actually are. Some are nice, but others you're gonna wanna smack.

But it gets much, much worse. Check out this code Claude.ai wrote for me:

        private static byte[] EncryptECIES(byte[] plainText, ECPublicKeyParameters recipientPublicKey, ECPrivateKeyParameters senderPrivateKey)
        {
            // Perform ECDH key agreement
            var agreement = new ECDHBasicAgreement();
            agreement.Init(senderPrivateKey);
            BigInteger sharedSecret = agreement.CalculateAgreement(recipientPublicKey);

            // Derive key using HKDF
            byte[] salt = new byte[32];
            _random.NextBytes(salt);
            byte[] info = Encoding.UTF8.GetBytes("ECIES");
            byte[] key = HKDF(sharedSecret.ToByteArrayUnsigned(), salt, info, 32);

            byte[] iv = new byte[12];
            _random.NextBytes(iv);

            // Encrypt using AES-GCM
            var cipher = new GcmBlockCipher(new AesEngine());
            var keyParam = new KeyParameter(key);
            var parameters = new AeadParameters(keyParam, 128, iv, null);
            cipher.Init(true, parameters);

            byte[] output = new byte[cipher.GetOutputSize(plainText.Length)];
            int length = cipher.ProcessBytes(plainText, 0, plainText.Length, output, 0);
            length += cipher.DoFinal(output, length);

            // Combine salt, IV, and cipher text
            byte[] result = new byte[salt.Length + iv.Length + length];
            Array.Copy(salt, 0, result, 0, salt.Length);
            Array.Copy(iv, 0, result, salt.Length, iv.Length);
            Array.Copy(output, 0, result, salt.Length + iv.Length, length);

            return result;
        }

AI has only become wildly available recently and will only get better. AI will absolutely decimate programming jobs. We will need much fewer programmers and they will get paid much less. Soon anyone will be able to build complex software systems with minimal training. NVIDIA is already claiming we won't need programmers AT ALL. I don't necessarily believe NVIDIA but I do believe a terrible winter in the field of programming is coming.

Here is a list of the things AI can do extremely well right now:

  • write complex software
  • make one programmer as productive as two or three programmers
  • make our shitty documentation much more accessible, AI can explain things better than 99% of people
  • actually at can explain everything better than most people, not just programming
  • turn our shitty notes into useful documentation
  • summarize bloated emails into something actually useful and readable
  • make system administration much easier and more reliable
  • help trouble shoot problems of all types
  • make recommendations, for example which software to use to solve a specific problem
  • create images, create marketing, create movies
  • perform all customer service functions
  • manage people

AI perfect? No. Better than most people at most things software related? Yes.

As if the picture was not bleak enough, AI will accelerate the trend of managers expecting shorter and shorter development times. Content on the Internet, open source and frameworks have contributed to shorter and shorter schedules. AI will mean schedules will become ridiculous.


Check out my other work at GerrysApps.com and Gerrys Investing on X

Friday, December 27, 2024

Why Writing Android Apps is Awful and How to Fix it

Android's APIs are like something out of a horror movie, they are just freaking nasty.

GPS: A Developers Nightmare

Consider the tale of The GPS API That Ate Christmas (as in ate up all your time off). GPS is just a few basic fields: timestamp, latitude, longitude, altitude, heading and speed.

Hard to imagine anything simpler. Should take about 15 minutes to add to your app right? Wrong! Instead, this is your life:

  •     Read thousands of words of documentation to understand the nuances of the Location API
  •     Write dozens or even hundreds of lines of code, annotations and declarations
  •     Spend hours, days, or even weeks wrestling with the API to get it working nicely
  •     Put a massive amount of effort into permissions, something the OS should take care of completely transparently

If you use high accuracy Android will bombard your app with location updates as frequently as every 100 milliseconds, even when the values haven’t even changed. The code behind the API is completely brainless, the developers did the absolute bare minimum.

And then there is the special hell of getting your app approved for the Play Store. Any app that wants to use GPS is treated as malware.

The Forgotten Standard of APIs

The Android people, like pretty much everyone else, seem to have forgotten that APIs are supposed to provide a service. One of the top goals of all APIs should be to help the API caller be successful. If you have done any Android development you probably wondered if the goal of Android APIs is to get developers to quit Android development. It is almost as if they want to waste as much of your time as they possibly can.

It is pretty clear Google wants it all for themselves. We know they rig search results (fact) and they rigged ad words to keep costs up (fact). It would not be a stretch that they are intentionally making app development less than ideal for everyone else in order to give their own apps an advantage.

Access to GPS data and accurate timers are two examples of permissions that are notoriously difficult for non-Google developers to obtain. While Google's own apps seem to have unfettered access to these resources, third-party developers are forced to jump through hoops to achieve similar functionality, if it is even possible.

The Play Store

Deploying an app is like an episode of the Twilight Zone. There are many hops to jump through, but when they have a problem with your app, the problem is often incredibly vaguely communicated, almost like they are trying to prevent you from publishing. One example: your app may be rejected because of one of the countries you have selected to publish to. Which country? They won’t tell you!!!

Even when Google may have a very specific reason for rejecting your app, all they will do is point you to a huge web page (or pages) of documentation that covers many different topics and scenarios. At times their own support people appear to be embarrassed by the hidden rule that they are not allowed to tell you why your app is rejected.

Sure AI can develop apps, but that is no excuse for bad API design. Google/Android fix your shit APIs. And stop withholding information from app developers.

My Android Apps

Google often changes things then demands developers update their apps. Comply or your app is removed from the app store.

Pink Calendar Appointments

A “wall calendar” style calendar and day planner. The best feature is the criteria for repeating reminders is simple yet powerful, custom tailored to fix the selected date/time. Available here.

This app is shadow banned by Google: despite its unique name the last few times I have searched for it have all come up empty.

GPSOwl

This app is part of a larger system used for tracking mobile assets. For example a shuttle bus company can use it to know where all their buses are at all times. Available here.

Saturday, June 08, 2024

HardMail AI - The AI Powered Email Client

 

Revolutionize Your Inbox

Are you tired of drowning in a sea of emails, wasting precious time reading through lengthy messages to get to the point? HardMail AI is here to change that all that.

 

Introducing HardMail AI

HardMail AI is an innovative email client that uses artificial intelligence to summarize your emails, saving up to 80% of the time you spend reading your email. AI technology condenses the main points of an email into a concise summary, allowing you to quickly understand the content without having to read through the entire message.

 

Maximize Your Productivity

 

  • Get straight to the point of an email without wading through unnecessary details
  • Identify important and action items at a glance
  • Stay on top of your tasks and responsibilities with ease

 

Try HardMail AI Today

Experience the power of AI-driven email management for yourself. Download HardMail AI now and discover a smarter way to manage your emails.

 

Visit OrangeSoftware.Net to learn more about and download HardMail AI

 

Saturday, March 11, 2017

My other website: GPSOwl.com

Had some free time so I build a new website with the help of a friend: gpsowl.com

In short it is used to keep track of the location of anything with an Android phone. There are basically two types of users: regular people and small companies with fleets of vehicles.

Regular People
Say you would like to know when you son borrows your car that he only drives it to work in back. Or what if your parents are going on a driving vacation. With GPSOwl.com you can follow their progress from the convenience of your computer.

Companies
Most fleet management systems are expense and complicated. Not GPSOwl.com - it is simple and inexpensive. Keep track of personnel and or vehicles without having to call or text them to ask where they are. A quick look at our website and you can see if they are on their way, on site or on their way back.

Wednesday, September 23, 2015

How to turn off Gawd Damn vibrate-on-touch in Android 5.0


Got a new Android phone a while back. It blew my mind that by default it vibrated on every keyboard input, every back button, every time I looked at it. How absurd, why would anyone want that at all, let alone make it the default.

Sometime later my phone started generating a message about gapps crashing or something. Great. Only fix was to reset the phone. Then it started vibrating all the time again! Ahhhhhh, turn it off! But now I could not find where the hell the setting was, it is based on user input, so checked anything to do with input and plenty of other places, but it was no where to be found. Finally gave up and had my wife look for it. She found it under:

Settings -> Sound & notification -> Other sounds -> Vibrate on touch

Other sounds, really? Anyway, thank gawd, turn that stupid shit off.

Thursday, May 07, 2015

Nationalism IS Propaganda

U-S-A! U-S-A! U-S-A!

Oh, Canada, blah blah blah blah blah blah...

I was born in Canada, not a bad place, I definitely picked the right country to be born in, damn I'm smart. I'm a proud Canadian.

What a bunch of bullshit. One person is not more important than another person because of where they were born.

When your political leader, excuse me, your "elected representative", gets up on some podium  and feeds you some line about how "great" your country is, know that you are being feed a bunch of propaganda. These people don't give a shit about you or your country. They are parasites working hard to keep the masses ignorant and placated.

The hidden messages to you behind their "isn't our country great" talk:
  • I'm (referring to themselves) doing a great job
  • No need for you to pay attention to what is going on
  • Things are fine, no need to look for areas of improvement
  • Don't do anything
  • Don't say anything
What would happen if people in power would just stop lying and tell the truth? First people probably wouldn't believe them, there isn't much people hate more than the truth. But eventually, after some time of hearing the truth, maybe people would say "Hey, let's take the steps needed to make things better. We can solve these problems."

Wednesday, December 17, 2014

My Homemade Bailey's Recipe

After reading the ingredients on the back of a Bailey's Irish Creme, and noting the lack of Irish whiskey, decided to make my own. I haven't been able to reproduce the flavor of Artificial Flavor, but it's pretty good! In fact, I think it is better than Bailey's.
  • 10 oz. Jamison's Irish whiskey
  • 8 oz sweetened condensed milk
  • 3 tsp instant coffee (Starbucks is best)
  • 2 tsp almond extract 
  • 2 tsp vanilla extract 
  • 1 cup cream

Otherwise mix all the ingredients in a blender and store in the fridge.

Hopefully you got my Artificial Flavor joke. I can't reproduce artificial flavor: I'm not a chemist!

Update: got some Bailey's for Christmas and decided the missing 'flavor' from my Irish Creme is 'butter' flavor, but since mine is better I am not going to try to reproduce the butter flavor.

Friday, September 12, 2014

Using Vi (XVim) in XCode 5 & 6


XVim is great for us Vi users that also use XCode, but the installation instructions on GitHub are (as of the time of writing) useless.

Here is the best way to install XVim, as email to me from the author himself:
  • Install git if you haven't already
  • Clone XVim: git clone https://github.com/JugglerShu/XVim
  • Go to the dir: cd XVim
  • Change to develop branch: git checkout develop
  • Open the project file XVim.xcodeproj
  • Build
  • Restart XCode (make sure the XCode process is completely restarted)
Finally, there seems to be some misconceptions out there about Vi: it's just a text editor. It is not an IDE.

Friday, August 22, 2014

Where is the class action lawsuit against Comcast?

Imagine you go to the grocery store, choose one apple (which is priced at 50 cents) and go to the checkout with this one item. The clerk then charges you 75 cents. "Why are you charging me 75 cents?" you ask. "50 cents for the apple, plus 25 cents to eat it" responds the clerk.

Customers paid Comcast for Internet service. When those same customers tried to access NetFlix Comcast throttled the service, rendering the service quality unacceptable. Comcast didn't block NetFlix: Comcast blocked their own customers, failing to provide the very service they had already been paid for.

Later Comcast blackmailed Netflix into paying for the same bandwidth, the bandwidth that Comcast's customers had already paid for.

It is complete bullshit and should be illegal. At a minimum Comcast should be sued in a class action lawsuit.