Skip to content

Künstliche Intelligenz

Yesterday I learned something. And whenever I learn an important lessen, I try to do my write-up in English, because a) it is an opportunity for me to use my rusty language skills and b) I have to really think about the things I write down. Thinking is important. But we will come to that later!

I have used ChatGPT to write a more or less simple programme, a bash script that outputs a PDF file of all the images it finds in a directory, arranged in a grid, like an overview or one of these contact sheets you used to get from the photo shop back in the dark ages before computers were a thing. Just for fun I used an LLM because I am curious to find out new things. My experience was, from a programmers point of view, somewhat OKish. I didn’t expect much more than what I got.

People who know me also know, that I despise AI generated content. I think it is theft of intellectual property for making some shareholder a quick buck. I think it desensitises us, you and me and all of humanity, to reality. It insulates us from the hard cold facts by creating a dream world that does not exist. And I think that it makes people believe they are artists or musicians or even programmers when in fact they are not. So, here is what I learned.

Over the past few months, since AI became the next big buzzword in an industry ruled over by idiots, I have had several run-ins with people who claim that AI is a great tool to get you started, to set you on the path to something new. So I deliberately chose a thing I am not particularly good at: a bash script. Bash is, for those who don't speak Computer, one of - if not the - most used shell in Linux and other Unix like operating systems. The old folks may remember when they had to type in commands into DOS to get it to start their favourite word processer. This is like that, but only it's not. Bash - or any other command line interpreter in Linux - and the associated tools you find on any Unix like machine is so much more. It is like a programming language on it's own. It can do amazing stuff. It can automate tedious tasks and run them in the background where no-one ever notices them, or it can create beautiful works of art and entertainment. And it can do harm. It can bring down your machine no questions asked and destroy you, your family, and your family’s pet at an instant because you misspelled one command line argument.

I am not good at bash. In my opinion it is a mess of conflicting specifications. That may be because it is rooted in Unix systems of the 1970s, when things were done wild west style - shoot first, ask questions later. I much prefer "real", "modern" languages with training wheels like C++, PHP or even Java. But for my little project, bash seemed appropriate. So I asked Mr. GPT: "Hello, can you write me a bash script that has the following function: There are between 30 and 40 image files in a directory. A PDF file is to be created from these, which contains a preview of these files on a DIN A4 page in a 4 by 5 grid with file names as subtitles."[1] Sounds simple enough and in any language I know what I would do: Get the directory listing, parse it for image files, get them prepared by resizing and put them in a grid, which then needs to be converted into a PDF file via some tools or libraries that already exist. A lifetime ago I wrote something similar in Haskell, for the love of God, not Haskell, why, oh why?! ;-)

And ChatGPT gives me exactly that, in a more or less well documented file. But, even at first glance, you get the feeling that something is not quite right. It all looks so clean. I looks so professional. This is a rough first draft and I don't expect it to be perfect, but the AI behind it all presents it to me like it is the final product, tries to explain what it has done, and - like the good dog it pretends to be - asks me for a treat. Instead I tell it to modify the code so that I can specify the input directory from the command line and dutifully it obeys. Then I pretend I'm dumb (like 99% of people probably are, me included) and tell it that I get a warning message that "convert" (the tool it uses to resize images) is deprecated and one should use "magick" now. This is a fairly new development and I, too, always forget this. No harm, no foul, Mr. GPT does what I tell it to and replaces all instances of convert in the code.

Next: I want them all! Regardless of what spelling is used in the file extension. You see, on Linux file systems "JPG" is not the same as "jpg" or "Jpg". Poor old DOS never learned that particular trick and 45 years later Windows still can't. It tries to hide this with all sorts of trickery, but in the end, there can only be one ring to rule them all. (It is not so much a restriction of the file system itself - NTFS can have files with different capitalizations coexisting happily side by side - but of the way they are accessed.) Anyways, here is where Mr. GPT surprises me: Instead of filtering for more and different spellings of file extensions like I would have expected, it uses the build in "shopt" command to tell the bash instance executing this script to ignore cases from now on. I consider this cheating. It basically dumbs down bash to the level of DOS. (BTW, the "correct" thing to do - in my opinion - would be to ask "file" for help in identifying which files really are images and which are not. Because, there is always someone who saves a JPG as a TXT and vice versa! ;-) ) But, for now, let's just keep this modification and see what happens next.

Mind you, until now the PDF this first draft script produces has all the images in one line at the bottom of the page. No grid in sight. To be honest, at this point I don't know myself what's going on. So I tell it to do something about it. And here you can clearly see that the Intelligence part of AI is just a simulation, fakery, some sophisticated algorithm that pretends to be intelligent but actually is not. It has all the information and the code is even written by itself, yet it does not understand. All it has done is copy pieces of code that other people wrote into one file and hope that noone notices that there is no logic or glue holding everything together. After a while and some debugging outputs it dawns on me and I tell it where the thing it wrote makes a boo-boo, but not why. And suddenly it gets it: COLUMNS is a reserved variable in bash, storing the width of the terminal it is running in, so when you set it to something else it retains that value for a while until it is reset by something - most likely when some external programme is called (like magick). Could any human programmer have made this mistake? Absolutely. Especially someone like me who is not very well versed in bash scripting. But should ChatGPT have caught that mistake? Should it even have made it in the first place? BTW: One can use shopt to suppress this behaviour. For someone so keen on using this command it should have known, because it is in the freaking documentation! But it chooses the clean way and renames COLUMNS and ROWS to something better.

Slowly the PDF takes shape. But 4 by 5 is not 40, like I asked for initially. It would take two pages to get them all. So I tell it and it adds another loop for more images. Looks OK. Wasn't the most difficult request, so I didn't expect any problems here. But I would have expected some mathematical capabilities from the start! 4 times 5 is clearly 20! Any seven year old kid still in elementary school would have been able to catch that mistake.

Now for something more problematic: I want all the images to take up about the same space. At the moment they only get resized in one dimension which means that those in panorama orientation are somewhat small but those in portrait orientation are HUGE! Spoiler: One trick I normally use would be to put each image into a square background first and then resize them. So, let's say, an image of dimensions 3840x2560 would be expanded to 3840x3840 with white borders on the top and bottom, and then be resized to whatever is needed for the script. Likewise an image of 2560x3840 would also end up as a 3840x3840 image first and then be resized. This way any aspect ratio would be kept, but all images would appear to be similar in size.

This task needs creativity. It is a roundabout way to get to a not so obvious result. And as you can imagine: ChatGPT fails. I mean, I could try and hint it in the right direction for some more iterations of its code, but I have better things to do so I abandon this problem for the moment. I don't believe without my help it would ever get an idea of what to do or even what I want it to do. We are a long way away from the self programming holodecks of the Star Trek future!

Everything else I ask it for this evening is more or less prettifying the result. There is no real intelligence needed for that, just fine tuning some parameters. After that I consider "my" script complete for now.

So, how was the experience? Weeeell. You know when you ask some AI generator for the picture of a person and then it has six fingers on one hand and three eyes? It's not that bad anymore, but you get the distinct feeling that you have to hold it's hand all throughout the process because it can trip at any second. It's like having a puppy and training it to not do it's business on the carpet. It's not mean, it just doesn't know any better. But it means you have to be on high alert all the time. Also: because all the AI does is copy pre-existing work from random sources you will never get a consistent result. The programming style is all over the place! It is like a painting that has been painted by a hundred different artists. Which is ironic, because in the end this script has only about 90 lines of code!

Yes, it is true: AI may get you started when you have no clue. It may write the boring pieces of code every programmer has to have somewhere, the bits and bolts that keep the thing running but are always the same, like setting up variables and stuff. But real creativity? I didn't see any of that. Inspiration? Nope. The code is sterile, just like AI generated "art" looks and sounds and reads like.

"Well, at least it works, right?" some might say. But to get it there it took me the better part of three hours! I could have written it in about the same amount of time all by myself, the old fashioned way, reading the documentation, and I would have learned stuff along the way. Now I have a programme, and if I wasn't a programmer myself and knew how things work, I would still have no clue as to what is going on. So no, it didn't save me any time and I missed an opportunity to improve myself.

Also, it doesn't! If I had not been there, holding it's hand, guiding it along the way, there would be no working script in the end. It would have been perfectly happy with it's first draft. Which had multiple problems. Even now there is no error checking, not even an idea of making sure that what goes into the script is indeed an image or what goes out is a valid PDF. It just trusts everyone and everything. Like that wide eyed puppy it is, the one that just made a mess on the floor.

Conclusion: Don't use AI on topics that you don't know anything about. Verify with other sources. You should never believe anything you read on the internet, and that goes for AI, too. Especially for AI, because it was trained using the internet, which you shouldn't have trusted in the first place! If you do use AI in a creative setting such as programming, and if you do so on a professional level, I hope you know what you are doing! Just imagine some dude selling this kind of crap to his employer - and please keep in mind, most employers don't give a flying F* about the code you write as long as they can earn money using it - , an employer who builds e.g. the black box that in some hospital room keeps your granny alive or controls the nuclear power plant next door or decides which terrorist to airstrike next with an unmanned drone. I think "the AI made me do it" is not a valid excuse in these cases.

Yesterday I learned something: billions of years of evolution in brains beats AI even at simple tasks.

[1] Actually I asked "Hallo. Kannst Du mir ein bash Script schreiben, das folgende Funktion ausführt: In einem Verzeichnis liegen zwischen 30 und 40 Bilddateien. Aus diesen soll eine PDF-Datei erstellt werden, welche auf einer DIN A4 Seite eine Vorschau dieser Dateien in einem 4 mal 5 Grid enthält mit Dateinamen als Untertitel." But you know, Englisch! ;-) "Künstliche Intelligenz" vollständig lesen

Hennef am Dienstag

Es war letzten Dienstag, da mich die Frau zum wiederholten Male in die Apotheke geschickt hat, weil Pest, und so kam es, dass ich mir schnell die Nikon geschnappt habe, die noch immer hier im Büro mit dem "kleinen" Zoom drauf rum lag und ich unterwegs mal wieder Fotos gemacht habe. Man darf mich ja nicht mal an einem trüben Spätherbst-/Frühwintertag mit Kamera vor die Tür lassen, denn ich werde auf Jeden Verd*mmten Fall zu viele Fotos mit nach Hause bringen. So denn auch dieses Mal.


In der Stadt ist noch immer ein bisschen was gesperrt, weil die da mal wieder den Schlittschuh-Gedönsrat aufgebaut haben, den ich noch nie in meinem Leben verstanden habe. Ich mein, wer legt sich schon gerne bei Eiseskälte freiwille der Länge nach auf einen harte Untergrund, während um einen Herum irgendwelche Nasen mit messerscharfen Kufen herum skaten? Aber vielleicht bin ja auch ich seltsam und nicht die Anderen. Andererseits soll man sich ja auch nicht immer selber Gaslichten, also: Die Anderen sind die Seltsamen! :-D

In der Stadt war ansonsten einiges los. Da sind wohl noch immer genug Leute unterwegs, ihre Weihnachtsgeschenke besorgen. Was mich dran erinnert, dass ich die Tage wohl eh noch mal da runter muss, denn meine Kalender sind noch immer nicht fertig. Scheint wohl wieder was länger zu dauern in der Druckerei. Muss ich noch mal in den Drogeriemarkt. Man. Die könnten mal in die Pötte kommen! Wo die Drucksachen dieses Jahr doch schon wieder teurer geworden sind! Mittlerweile ist so ein mittlerer Kalender (und drei kleine) schon eine echte Investition in die Zukunft. Deswegen spare ich mir dieses Mal auch die s/w-Weihnachtskarten. Ja, sorry an alle, die sich schon gefreut haben, aber dieses Jahr komm ich eh nicht dazu, viel zu viel zu tun.


Wie man sieht, nach Apotheke, Drogerie und Discounter haben ich dann den langen Weg hinten rum durch die andere Unterführung zurück zum Auto genommen und eines der Bullaugenlichter fotografiert. Weil es da war. Auch hier ist mal wieder kein spezieller Grund da gewesen, außer dass ich das Runde im Eckigen faszinierend finde. ;-) Nebenan noch die Garagen und vor allem den alten, historischen Kombi-Mercedes abgelichtet. Der gehört da wohl hin, der steht da öfter. Und das übliche Tier darf auch nicht fehlen, wobei dieses wohl den Stadtwerken Bonn gehört. Wie hat sich das denn hier her verirrt? Oder mischen die sich mit denen von der Bahn und dem VRS? Würde mich mal interessieren, wie die so organisiert sind.

Hinter der Bah blühen dann schon die ersten Ziergehölze. Die waren ja schon vor zwei Wochen knospig, jetzt sind die richtig aufgeblüht. Ist aber doch eigentlich wirklich noch ein bisschen früh, oder? Würde erklären, weshalb mir die ganze Zeit die Augen tränen, denn wenn die blühen, lassen sich der Hasel und die Erle doch nicht lumpen! Oder es war halt doch wieder der Knoblauch. ;-)


Am Jugendpark habe ich dann auch noch die üblichen Bilder gemacht und dann aber nichts wie nach Hause. In der dicken Winterjacke war mir nämlich ein bisschen zu warm. Komischerweise, denn den Rest des Tages hatte ich gefroren wie ein Schneider. Der Kater sitzt auch die ganze Zeit nur noch drinnen rum, weil draußen ekelig. Aber man muss ja jede Sekunde nutzen, in der man sich an der frischen Luft bewegen kann, ohne pudelnass zu werden.

Ein paar Restbilder aus Seelscheid

Es war mal wieder Donnerstag (also, letzte Woche irgendwann, ich bin hier noch immer ein bisschen mit meinen Artikeln hinterher), da war ich in Seelscheid, wie ich das meistens Donnerstags bin. War mal wieder volles Programm, soll heißen: Erst zum Zahnarzt, dann durch das ganze Dorf, zum "normalen" Arzt zum Vorzeigen der Versichertenkarte und dem Einsammeln des Rezepts, unten in die Apotheke, zur "Post" (Spielwarenladen), zum Drogeriemarkt und auch noch zur Sparkasse, bevor ich dann in den Aldi bin. Und auf dem Weg hin und her habe ich ein paar Bilder mit der Canon gemacht. Hatte noch immer das 24er drauf und das passte auch ganz gut zu Stimmung und Motiven.


Der Weg nach Siegburg führt ja zZt nicht über die B56, weil die irgendwo in Pusemuckel kurz vor Pohlhausen wohl gesperrt ist, weshalb jetzt alle die Umleitung unten durchs Tal fahren müssen, weshalb die Heimreise jetzt immer so ca 10 Minuten länger dauert, weil die da unten zwar eine Baustellenampel hin gestellt haben, um den Verkehr zu regeln, der sich erwartungsgemäß weit zurück staut, wenn Rush Hour ist, aber die ist eben nicht an, aus Gründen, die niemand so richtig nachvollziehen kann, sodass da noch immer die normale Vorfahrtsregelung wie immer gilt, die aber darauf ausgelegt ist, dass die Leute, die von Neunkirchen kommen, direkt weiter nach Siegburg wollen, und umgekehrt, sodass alle auf der Wahnbachtalstraße nach Süden fahrenden Personen jetzt warten müssen, bis ihnen graue Haare gewachsen sind und/oder der Tank leer ist, und wenn ich wollte, könnte ich diesen Satz noch länger machen, aber ich glaube, es reicht jetzt! ;-)

Die Absperrungsdinger, die da rum stehen, haben allerdings nichts damit zu tun, die gehören noch immer zu der Baugrube, wo einst der Döner-Laden stand. Alles weg da mittlerweile. Nur noch der Bagger und das verbogene Geländer erinnern daran, dass hier einst ein Haus stand.


(Und um das Geländer finde ich es ja fast noch mehr schade, denn das ist so ein typisches 1970er-Ding mit diesen gedrehten Stahlstreben. Da bin ich schon immer dran vorbei, als ich als Kind zum Kindergarten/Schule unterwegs war und hab mir das angeguckt. Ja, es steckte schon immer ein Fotograf in mir, ich wusste es nur nicht. Liegt vielleicht daran, dass man das damals noch als "Photograph" geschrieben hätte und nicht so wie diese neumodische Jugend das heute lernt! ;-) Jaahh, ich weiß, der alte Mann erzählt wieder aus dem letzten Jahrtausend! :-D)

Ansonsten, da, wo einst die Floristik war, stehen noch ein paar der alten Büsche rum, die jedes Jahr um diese Zeit anfangen zu blühen. Wobei das nicht ganz richtig ist, ich habe den Eindruck, dass auch die den Klimawandel spüren und einen halben Monat früher dran sind. Aber was wundere ich mich, ich habe ja auch juckende Augen und die ersten Haselnussbäume sehen schon so verdächtig aus.


So, und das war das. Ausnahmsweise noch mal ein Eintrag mit wenigen Bildern und relativ hohem Textanteil. Gewöhnt euch nicht dran. ;-) Nächste (also, wenn das hier veröffentlicht wird, eher mehr so diese) Woche bin dann auch mal mit der Zahnärztin verabredet, dass die die Beißerchen von allen Richtungen aus anguckt. Muss ja auch sein, ist ja auch wichtig. Mal sehen, ob es hilft, dass ich komplett auf "weich" gewechselt habe. Sie sagt, ich scheuer zu viel. Wo rohe Kräfte sinnlos walten und so.

Ein 120er unter der Dusche

Statt Frühstück gab es gestern Filmeentwicklung. Hatte ja einen von den Kentmere 100 in die alte Agfa Box gesteckt, die ich von einem meiner Kunden in die Hand gedrückt bekommen hatte. Ich erwarte da ja nicht viel, deswegen war ich schon positiv überrascht, dass da Bilder raus gekommen sind, die nicht allzu unscharf zu sein scheinen und zudem auch einigermaßen brauchbar belichtet. Es ist immer wieder erstaunlich, wie falsch man Film belichten kann und schon nass unter der Dusche sieht, ja, das ist trotzdem was geworden.


Was mir besonders aufgefallen ist: Der Kentmere hat keine Farbschicht in seiner 120er Version? Habe mich gewundert, dass da kein buntes Wasser raus gekommen ist. Die Fomas färben das Vorspülwasser ja sehr... was ist das überhaupt für eine Farbe? Irgendwo zwischen tintenblau und grasgrün. Aber hier kam nichts mit raus. Erstaunlich.

Zum Entwickeln habe ich die Foma-Variante von Rodinal (Fomadon R09) verwendet, das ich jetzt ja auch richtig gut dosieren kann, seit ich mir endlich mal in der Apotheke eine Spritze besorgt habe. Die Nadel ist allerdings wirklich etwas kurz. Moment, ich glaube, das habe ich schon mal erzählt. Habe ich? Ich werde alt! Sie könnte jedenfalls ein bisschen länger sein. Oder wahlweise der Hals der Plastikflasche weniger hoch.


So, und jetzt hängt er da, unter der Dusche und man sieht genau, wo ich den Film über die Nummer hinaus gedreht habe. ich hab das echt nicht sehen können durch das kleine Fensterchen auf der Rückseite der Kamera. Hätte das vielleicht doch andersrum eingeklebt werden müssen? Sind die Nummern auf der Rückseite des Kentmere einfach sehr grau statt richtig schwarz? Oder war es da in Oberpleis an jenem Nachmittag nur einfach sehr, sehr dunbkel? Bin jetzt mal auf die Scanergebnisse gespannt.

Berg rauf, Berg runter - Zweiter Advent '24

Am Sonntag, also gestern, war der zweite Advent. Das Jahr geht heftig dem Ende entgegen. Das merkt man auch daran, wie früh am Tag jetzt schon die goldene Stunde daher kommt. Wenn denn mal die Sonne scheint, was nicht allzu häufig zu sein scheint. Deswegen habe ich mich einfach mal so raus begeben, auch wenn ich nicht viel Hoffnung auf Lichtblicke hatte. Aber am Ende habe ich dann doch ein paar ganz nette Fotos mit nach Hause gebracht, auch wenn die ersten paar nicht so spannend sind.


Am Weihnachtsbaum unten im Dorf hängen die üblichen Gebamsel, die ich wie immer abgearbeitet habe. Und nebenan fand das Nikolausfest statt, oder wie die das nannten: Ein Haufen Kinder, dazugehörige Eltern, diverse Kuchen und Glühwein. Scheint so ein Nachbarschaftsdings zu sein. Aber ich hatte da eher weniger Interesse dran: Keine Blagen und ich kenn auch keinen von den Nachbarn. OK, wäre jetzt die perfekte Gelegenheit gewesen, aber ich war ja eigentlich raus gegangen, um meine schmerzenden Kochen ein bisschen zu bewegen. Soll ja angeblich helfen. Ich glaub es nur langsam nicht mehr. Tun nämlich noch immer genau so weg wie vorher. Wie gesagt, komme mir vor, wie so ein alter Sack im Werbefernsehen, wenn ich jetzt schon 'ne halbe Ibu nehme, weil mir die Hüfte schmerzt. Der Lack is' ab! :-D


Nach dem Weihnachtsbaum also einfach weiter das Rosental hoch und an der Dorfkneipe vorbei, den Campingplatz auch links liegen lassen und dann - statt weiter nach Söven - die Abzweigung nach Hofen genommen. Der Weg den berg hoch war allerdings extrem matschig und ich habe zum Glück die gammeligen Schuhe angehabt. Allerdings haben die auch null Profil, das ist alles abgelaufen und zu Mikroplastik geworden. Deswegen mehr so den berg hoch geglibbert statt gegangen.

Wer Pferde und ein paar winzige Rehe sehen möchte, neben diversen Strohrollen, der möge den erweiterten Artikel anklicken. Alle anderen auch, weil! ;-) KLICK! "Berg rauf, Berg runter - Zweiter Advent '24" vollständig lesen