The I in AI

I’m job hunting. Last night my emails included a notice of a position for a COBOL programmer. Contract job. 6 months. This is not what I was looking for, but it gave me hope that there are still opportunities for old farts. And a long a time ago I was trained as a COBOL programmer (three years at what is now the University of Johannesburg) so maybe…

When I looked at the job spec things got interesting.

The job is not really programming at all. The employer has some sort of AI that they will give a specification to. The AI will generate various COBOL programs that should fulfil the specification. The contractor’s job is to evaluate the generated code and tell AI which of the various generated programs was best (it’s not clear how “best” is evaluated, presumably this is why they want an experienced contractor). So this AI is going to get trained by a human.

By this method the AI will be equipped with gold standard (I think that’s the phrase that was used) code that it can use to build more complex solutions.

This surprised me. Though maybe I am less surprised the more that I think about it. Let’s see.

First test must be does the code compile? So does this AI have the ability to compile the code. You’d think it would be able to save its code on actual machine and do the compiling, pick up any compile time errors and adjust the code (this is what us humans have to do).

Then there should be testing with sets of inputs, where we know what the output from the program will be because we modelled everything as part of the design process. This is the sort of job that AI is very well suited to.

Also, since we want to have the “best” code, there should be some measuring of resources used and program run time. Again AI should be good at creating scenarios like what if we have twenty or a hundred or five hundred instances of the program running simultaneously.

Those circles are not yet closed? This surprised me.

It’s not just the one job either. I found a couple more similar positions. One specified that only SA citizens need apply, so I doubt this is Google or Amazon or Open AI.

I’ll add that I don’t think it should be necessary to get a human to validate the code. Not if the AI is properly educated.

Early on in my life as a programmer I ran into “style”. Programmers would defend some piece of code as being written according to their “style” IE their habits or their personal preferences. This is as sort of you say “potato” and I say “poh-tah-to” argument - you do it the way you like and I’ll do it the way I like and why are we wasting time on this?

Well, there are technical papers available that will tell us which is the fastest way to sort and arry of 1000 items or whatever it is that you want to do. There are whole volumes of algorithms, mathematically proven best ways of doing all sorts of things, expressed in a pseudo-code rather than in any particular language.

There will also be technical papers from vendors showing benchmarked results of various methods of addressing a particular problem. I remember seeing these, and I remember my then boss enforcing those because she was tired of programmers and their “style” and wanted the code to run efficiently and these papers, with provable and reproducible results, rendered subjective “style” a non-issue: Here is the best way of doing that thing, end of discussion.

Don’t you feed your AI on that stuff first?

aha, hier kom die ou RAU manne nou uit :smiling_face_with_sunglasses:

This story is absolutely great - I have used AI for writing batch files to run on my PC every morning at 0200 to do maintenance and restore point etc, works like a bomb BUT the secret in AI is to prompt [ask] very specific and give scenarios, yet, as with my accountant and bible analysis, in the end the human being MUST verify and sign-off; it is a great tool containing trillions of pages with data YET we must always double check whether the scewdriver needs to be flat or star, just another help, Elon’s dream, the German Schlaraffenland [not for diabetics!].

It occurs to me that this is where the pay-off is.

A few months back I had to write code to process a piece of JSON. The language I was working with had no libraries for parsing JSON that we could easily deploy on production systems so I would have to write my own, essentially in Dartmouth BASIC (all good clean fun).

I asked ChatGPT to write a JSON parser. It did it in seconds. I looked at the code more with an eye on WHAT it did rather than the way in which it was done. It wasn’t very different from what I’d already come up with. I did think there was some code optimisation that could be done.

BUT

It did this in seconds. Sure it would still have to be compiled, tested, maybe tweaked. But there’s the trade off. It would have taken me days to get to that point (with a large part of the delay being having to actually type all that code). AI got there in seconds. So what it if requires human testing (always expensive) etc. It’s saved so much time already.

That’s a general statement about things we think of as “AI”. The project that I came across might be a homespun sort-of-AI, or at the very least needs some training.

One problem with things like ChatGTP is that companies don’t want to use them for fear for exposing confidential client data or, more likely, their own intellectual property. So they either have to rely on a local instance of Gemini or ChatGTP or whatever, or use a less generalised commercial product. I would guess that if you buy the rights to have a local instance of ChatGTP that only you can use, then you get the ability but maybe not all the knowledge.

So in the case of having your AI generate COBOL code it’s up to you to feed it manuals, technical bulletins etc.

Tangent: There was for some years a dedicated machine that was the “world champion” of Chess. It would defeat any grand master over a given number of games. Then Google came to the fight. Their solution ran on less powerful hardware and could not compute as many possible moves per second. It also had to teach itself chess (though I would be that somebody had show it “this is a rook. A rook moves like this” and etc). After four hours training it took on the hitherto undisputed champion in a 100 game series. Most of the games were stalemates, but the Google solution didn’t lose once and became the new champion.

This opened up a can of worms in tournament chess. How do you stop entrants from using AI? One method put in place is to look for novel moves. The Google solution doesn’t play according to the classic gambits, it’s moves are often counter intuitive to humans. But no matter what you think, it will open up a can of whupass on you. So now if the referees see unusual moves they get suspicious.

AI makes a good coder better, and a poor coder worse. It amplifies what is already there. Additionally we also have a bit of a loop that starts to develop, where work done by an AI later starts feeding that same AI, which means that something that is badly maintained gets worse, something that is well maintained tends to get better.

Here is a video I watched recently that addresses some of that.

Yip, spot on - you mention you use ChatGPT, I have moved to Supergrok on the paid version as my wifes business is the account holder. It took me training AI to the kind of answers I need, for instance at least 5 peer reviewed sources, counter arguments etc - If I use a specific bible translation [I’m not a pastor] I need it to compare the verse with the Greek/Hebrew/Aramaic translations and give me the whole thing in context, like a child or dog, the parameters must be laid down, then the algorithms start to produce good material in seconds, scouwring sources like thesis, obscure source material and the WWW; sometimes more than 100 web pages - and then I ask it to be more specific - if it were a human it would have killed me by now.

Thanks. I’m surprised at the outcomes he reports, but I won’t protest because they’ve done proper research here.

I was particularly struck by the discussion on code quality. One of the hallmarks, for me, of what is referred to as “boring” code is that it’s easy to understand. This is what development should be strong on. If there’s a bug in a program I want to spend an hour on the bug, not first spend three hours trying to figure out what this code is doing. Productivity.

This is where I thought AI might make get away from what I think is good quality code. it may use arbitrary variable names, not bother with comments, be unconcerned about formatting. All these things make a big difference to human developers.

Cannot agree more with this statement …

Recently got a opportunity to take a old VB6 program (±865 000 lines of VB6 code) over to a WWW application.

To rewrite it all from scratch, min 2 years.

So, VB6 code is given to AI.
AI takes VB6 and gives back in the latest web application code. (Blazer, .NET, HTML etc)
Hardcoded VB6 SQL becomes SQL Stored Procedure.
Once AI written, developer checks the code, tweaks it here and there, at times tells AI “do better”.
Screens are a breeze to code as AI does it super fast.
Developer tweaks the screens, add some rules, done.

Parts that would have taken months is done in days.

Then tester tests the new program.

Here is the fun part …
The new web application runs on the EXACT same DB as the VB6 program.
Which means one can use the web application or the old VB6 program.
Made testing a breeze comparing apples with apples.

Once it is released to the clients and the VB6 program is removed from all PC’s, then one can improve the web app further.

Because of AI this was made possible.
… and because the developer knows his shiite.

Oh I use at least three different ones. ChatGPT seems good for general enquiries, the stuff you might otherwise google. It is also rather excellent at discussing theology (I think you might like that), and what I quite like is you can ask it who the scholars are that holds a certain position. I had a long discussion with ChatGPT about the book of Mark… blew my mind. Never realised what an amazing book it is from a literary standpoint.

For coding I use Claude. I love the way the Claude Code integrates with my process, running as a separate process, showing the changes it wants to make in a language I already understand (unified diff output), it’s like having a coding buddy to do pair programming with (a concept popularised by Kent Beck back in the late 90s). It’s also excellent at writing unit tests, because unit tests are especially boring and repetitive in nature.

On my mobile phone I use Gemini, because it came with the thing built in. I find that while ChatGPT will try to agree with me in some manner, and even praise me for the wonderful question I asked, Gemini is far more likely to tell me what I got wrong.

Claude is very good at figuring out the coding style, it will even tell you, when you ask it for the first modification, that it is taking a look at the rest of the code to see how things are done. This is probably part of where the amplification happens, if you have a good code base where things are already formatted and named well, it will continue doing that. It even comments the code, and in Victron code where there is often some internal terms for things, it seems awfully good at knowing what it means too!

That sounds like the stuff of nightmares. Way back around 1998, or maybe it was 1999, there was this small two-credit subject the entire science student block had to do, which was coding in VB6, and I remember how I hated it because everything was different, the way you continued a line over multiple physical lines, the way you did comments. At the time I was pretty much a C/C++/Java guy, with heaps of pascal experience as well, a little bit of perl here and there, so I couldn’t understand why they seemed to be different from absolutely everyone else. Of course that was before I ran into lua and realised that there is hardly consensus on how we do these things :slight_smile:

Edit: Oh, as an aside, I asked Gemini to find me they lyrics to the song “China in your hands” by T’Pau. I have no idea what it did, but it literally stuck “something” in there when it didn’t know… and pretty much made the rest up.

This video comes to mind: https://www.youtube.com/watch?v=6Xx1GXjRbMk
Not the actual product but the development of a AI that can improve itself…

I wonder about GIGO. I play a bit of guitar and occasionally perform at a local open mic night. I set myself a challenge - every time I play there I have to play a song I haven’t played before (there is a point to all this, I promise).

Sometimes I will figure a song out by myself, sometimes I need some help and I will use some of the online services that give you sometimes tablature, less often actual notation (which I can’t read for any practical purpose), nearly always the guitar chords.

And very often they are wrong. I play it using their chords. I think oooh, that sounds not so right. I don’t know what the right thing is (though I can now eliminate one possibility) but I can hear that this is not right. A common mistake is that the song changes key, but whoever is figuring out the chords doesn’t, so the chords in the passage for which the key is changed are right relative to each other, but wrong relative to the rest of the song (and I still have to figure out what key the song goes to).

So I tend not to trust AI when I’m trying to figure out a new song. Because what does it have to learn from? Probably lots of tablature written out and published on web sites (the public domain services usually don’t do the transcription themselves, they just allow anybody to upload).

There are some interesting services that get used in the music industry. One category is services that build up a signature of a song (really a recording) and then monitor radio stations and match what is being played to those signatures. This helps recover royalties and is a useful tracking tool to help figure out what this week’s most played song is. But they don’t figure out the chords or the top line or whatever because they don’t need to. So having AI tap those services (assuming it has permission, because these are pay services) is not going to be helpful.

That all said, it does seem to me that by now, or pretty soon, there should be a way for the AI to “play” the chords it has and compare them to a recording. But I suppose this might be resource intensive. Plus you get folks (the Beatles being a good example) who detune their recordings or didn’t use concert pitch, and so what you hear when the record plays is somewhere between two actual chords at concert pitch.

Which will leave AI with the problem I have: What I have is wrong, but what is right?

Yes. I’ve noticed this with ChatGPT, it is always sucking up to me. Sometimes I will even congratulate me on pointing out that it has said two contradictory things. So I think that sometimes it is just making stuff up. Or is a victim of GIGO, but has no way of knowing that.

1 Like

Yes, indeed. If someone had to do that, Elm street with Saw level nightmare comes to mind.

It helps immensely if you have the author of the OEM system siting right next to you, the one who knows the weaknesses, the good stuff and what can be dumped … who knows exactly what to expect from the converted code.

Who knows what is in the DB tables where and why …

In other words.

You go from nightmare to a musical.

As you have the I … :joy:

You are absolutely right!

I watched a clip of Prof Hannah Fry talking about AI this morning. She touched on the matter of sycophancy. She says that some AI teams tried turning down the sycophancy, but the result was that the bots got so rude that nobody wanted to deal with them. So they err on the side of massaging your ego.

This is interesting. There seems to be a lack of middle ground with these bots. An obvious example was Grok being accused of being “woke”. Now Musk can’t have that. So we don’t know exactly what went on, but at some point Grok got considerably less woke and became a raging Nazi instead, churning out anti-Semitic comments, and amplifying various pro-Nazi tropes and conspiracy theories.

So two things

  1. They are at least in part what their makers want them to be (or tell them to be).
  2. They don’t seem to do moderate. You can have ChatGtp massaging your ego or calling you names. You can have Grok being woke or being a Nazi.

Fry made some other interesting observations. She said they are very good at computational stuff. They are pretty good when it comes to dealing with bodies of knowledge that are well mapped out and (she was talking mostly about Maths) finding connections between seemingly isolated areas of Maths. But, she said, they are no use at imaginative “thinking”, at abstraction. The example she gave was that if you had modern AI in 1900, loaded with everything that was known then about maths and physics, it would not have come up the General Theory of Relativity.

Grok seems to change it’s tune a lot. I guess this is the Grok team trying to get it to be as neutral and objective as possible. This has changed the way Grok gets used on X. A lot of folks used to use it to settle arguments: @GrokGrokGrokGrok, fact check this post please.

Recently there was some fun when people started using Grok to generate a picture of various wealthy people together in a room, then asking Grok to airbrush out the person who had done the most harm. They cackled with glee as it removed Bill Gates, George Soros or even Cyril Ramaphosa.

Then something changed and Grok would invariably airbrush out Elon Musk.

Apart from Grok chopping and changing, another problem with AI is that we too often don’t think that a machine can know more than we did. We expect it to tell us what we already think. I have seen this a lot with Google Maps.

You tell it where you want to go. It tells you to go the end of your road and turn RIGHT.

RIGHT? Does this thing really think I don’t know where the Pick ‘n Pay is? Load of rubbish.

Then you find yourself stuck in appalling traffic because a police car just hit a fire hydrant and part of the route you usually would use was flooded. Google had given you a better route. But no, you know better.

Yuval Noah Harari makes a claim that in fact Google Maps, Wayz and etc play a clever game of balancing. They won’t send everybody the same route because that route then becomes the bottle neck, so they spread the load over various candidate routes to try to keep things balanced. And they watch those routes in close to real time and if one starts backing up then they start recommending an alternative.

I think this can happen with AI as well, especially on topics that we think we know about. Some might say that this is just proof that a little knowledge is a dangerous thing.

I tend to follow Google quite closely when it comes to navigation.

I recently had an error message on my Goodwe inverter. I asked 3 AIs about this. Gemini and ChatGtp went pretty much down the same road - problem is that a string voltage is hitting the maximum per MPPT and so the inverter shuts the MPPT down as protection, then starts drawing slowly drawing progressively more from it (something to do with “MPPT parking” which is a strategy that Goodwe chose because they think it is more efficient). But Claude told me it was detecting a DC component in the AC output from the inverter.

I tend to go with the majority report here, because if I look at the data I can get from SEMS we see a pattern that correlates with the error long entries - one string’s voltage goes up, up, up and then the inverter decides to not deal with that string and the power from that string drops to zero.

But I don’t KNOW! (If I did, I wouldn’t be wasting Open AI’s or Google’s time)

I saw the exact same one! I would love to see the series they are working on, called AI Confidential.

Another mathematician that I know who has looked into this extensively, but I haven’t read his book(s) on the topic yet, is John Lennox. He is on the opposite side of the spectrum to Hannah though, in terms of religious views. So that should be interesting.

I have long been fascinated by the philosophy behind this question, as to exactly how to define consciousness and intelligence. A couple of bullet points…

Man and the machine

A book I probably read a decade ago, titled “Man and the machine”, by Matthew Dickerson, argued that consciousness transcends mere computation, or at least, as humans we act like it does. When a man jumps into a raging river, risking his life to save someone else, we call that bravery. But what happens to bravery if it is merely the outcome of a calculation done by a machine? What happens to creativity, if humans are reduced to mere (slow) meat computers? How can you punish a man for murder, if his crime is akin to a bug in the firmware?

Matthew used an example from The Lord of the Rings to explain this, well, technically from the prequel, The Silmarillion, which explains how middle earth essentially came to be. Iluvatar is the supreme creator in this story, and Aulë the Smith is one of the divine beings. Aulë creates the dwarves, but he is unable to give them true life. They end up being somewhat robotic beings. Iluvatar eventually confronts Aulë about his impatience, and Aulë explains that, like a child copies what his father does, so did he created in the same way (in short, he argues for creativity). Iluvatar takes pity on him, and grants the dwarfs life.

In this example, the dwarfs represent artificial intelligence. Hugely capable, but can only do as much as their own creator can grant them. In the same manner, humanity might be unable to birth something larger than himself.

Transferring your consciousness into a computer

People like Ray Kurzweil have long prophesied that we will reach a singularity, where not only AI might surpass humans, but we will be able to upload consciousness into a machine, using something called “Brain emulation”. This vision scares me profoundly. It is already possible, and in the video mentioned earlier this comes up, to emulate people pretty accurately. Imagine a loved one dying, and having their consciousness transferred, only… it is not really them, and you can never be sure. We could make a scary movie about this.

Of course, as a religious man, I also find this a little funny. What they are saying, is that life after death is not possible… but only because they haven’t invented it yet.

Brain of Theseus

Like the Ship of Theseus thought experiment, this asks whether you would remain the same entity if your brain was replaced, one neuron at a time, until you were machine. People like David Chalmers say that you may well experience this as “fading qualia”: a medical professional holds up something red and asks you what you see, and you hear yourself say “I see a red object”, but what you really wanted to say is “I can’t see a thing! I’m trapped!”. Outward observers see no change, but internally your consciousness shrinks to nothing, you become a zombie in your own body.

There is something very specific about being human, something which philosophers have been trying to grasp for ages. And interestingly, again because I lean that way, that is why the early church are immediately at logger ends with the heretics, like the Gnostics, the Nicolaitans, and the Marcionites, precisely because they preach that somehow the body isn’t an integral part of what it means to be human.

Harari has also looked into this. He predicts that this will come, in time and for the very wealthy. It may involve a robotic skeleton, may involve existing inside memory chips. It will allow those with the resources or the good fortune to “live” forever.

This leads, of course, to discussions about whether or not the preserved consciousness qualifies as a human, even if it has robotic eyes and legs and arms. We can also ponder the quality of “life” that these consciousnesses will enjoy, and the legal changes that will be required. What if one of these preserved consciousnesses is called to court? Are they even human? Does the court have jurisdiction? How will they be identified as being the accused? Etc.

I think that if we get that far, some might welcome the loophole and take advantage of it.

1 Like