A few words from Agical

ChatGPT: Are you holding it wrong?

As far as productivity boosts go, ChatGPT (which calls itself Assistant), represents the biggest leap in a long time. Especially if our work involves writing. Correctly used, that is. Incorrectly used, ChatGPT can produce pure garbage, although it might look very similar to the valuable help we could have gotten if we had wielded this new tool rightly. Whether it boosts our productivity, by quickly helping us fill in the blanks, or wastes our time with garbage we need to identify and clean up, it will do so using the same engine.

Läs mer »

A conversation with ChatGPT about ChatGPT

I blurted out ”How are you?” at the start of a session with ChatGPT and it turned into a conversation where I really tried to get the AI to answer this question. It gets appearant that ChatGPT is a good writer, even if it can get stuck and repeat things a bit too often. That the chatbot ”remembers” the conversation and can use it for its answers is very powerful and reveals to me some about how useful this technology is and can become.

Läs mer »

Top 5 reasons for NOT becoming a programmer

Don’t you ever become a programmer, this is the final warning. Don’t become a nerd that more than 40 years later, thinks it is “fun”. Makes people wonder, if you see what I mean.

Läs mer »

Why I Shrugged the Agile Yoke

“Agile workplace” is a red flag to me. I immediately start to worry if it implies that I am expected to participate in a lot of meetings and rituals, even though I might be on pins and needles to get some bug fixed, or to tweak this or that feature. Is it just me? Actually, I like the idea of making it easy and cheap to adjust and to correct directions.

Läs mer »

The Agile Theater Proudly Presents: The Factory

Imagine that you have discovered that you enjoy the vegetarian diet. Your body responds well, you feel more vital and digestion is a clockwork. You run into a friend and tell them about the fantastic results you have achieved by eating vegetarian food. Your friend becomes convinced and decides to visit a vegetarian restaurant. Later, when you meet again, your friend is remarkably upset and complains about how awful the vegetarian diet is.

Läs mer »

shadow-cljs + Clojure with Calva: The basics

This How to use shadow-cljs with Calva in a fullstack project guide will not take the short path of presenting some steps and then ”BOOM there it is!” Instead we are going to look at the pieces involved and how they are composed to create Calva’s connection with the ClojureScript app being developed. The point with this is to give you the knowledge to get yourself past obstacles that a short 1-2-3 step guide might land you in.

Läs mer »

The story behind Rusty Aquarium

Or; “Why I chose to use Rust and Macroquad to develop a data visualization application” I've had the idea of using a virtual fish tank as data visualization for longer than I can remember. So it’s not entirely clear how I came up with it. But I've always thought static graphs are quite boring to look at. A fish tank screensaver on the other hand. It’s a lot more calming.

Läs mer »

Be aware of NUMA when your application needs to run very fast

With the article about a performance mystery involving Java and BitSets, I got help from Hacker News (and a lot of other sources as well) to investigate and also solve the mystery. However, I haven’t managed to solve the problem that this NUMA (+ Docker, in my case) issue is causing me. I'm very happy I could find the solution to this mystery. But the solution is quite unsatisfactory for my particular problem, since I can't use `numctl --membind=0` in the drag-racing environment.

Läs mer »

Help solve this Java BitSet performance-flicker mystery

UPDATE February 6, 2022: The behaviour seems to be triggered by that the JVM process sometimes gets scheduled on a different NUMA node from where the heap is allocated. I tested this by using this command to run the sieve: numactl --cpunodebind=0 --membind=0 java PrimeSieve On my first try this gave me the error message setting membind: Operation not permitted. The workaround I used was to run the docker container in privileged mode:

Läs mer »

A Calva workflow for quil drawing

Quil is a Clojure and ClojureScript wrapper around Processing. Quil takes learning how to code within the context of the visual arts and applies 10X to it. (I say being a passionate Clojurian.) With Clojure and its REPL comes the promise that you dynamically can tweak and form your sketches, as they are running. That’s what this is article is about. There is a Calva context, but things generally apply accross all Clojure editors/IDEs.

Läs mer »