G-J van Rooyen
gvrooyen.com
G-J van Rooyen
@gvrooyen.com
Director: Engineering & Innovation @ http://octoco.ltd. Associate Professor Extra-Ordinary in Industrial Engineering @ Stellenbosch University.

programming languages · trail running · innovation management · startups · good wine · business · reading
With the sad passing of Tom Lehrer, a flashback to the place where I heard one of his songs for the very 1st time more than three decades ago
July 28, 2025 at 8:30 AM
:fistpump:
May 31, 2025 at 9:57 AM
The prompt string I use in my `.zshrc` to just show the current minimal change ID. Since the working copy is always committed, no need to check for any uncommitted changes.
May 26, 2025 at 5:19 AM
Love using plain chat as a scratchpad where I can back-and-forth with the AI until I get what I need (I've been desperate to turn my bank's old email statements into flexible machine-readable data for DECADES) and then just ask for a prompt that I can use in future or pass along to an agent
May 25, 2025 at 5:26 PM
I think the git workflow bit is worth talking and writing about even more. This is definitely a topic I'll pick up with my team. I love how new tools can unexpectedly level-up old tools – thanks for pointing this one out!
May 15, 2025 at 7:07 PM
This feels right out of Snow Crash. Read the wrong text and you might catch a serious mind-altering (or -destroying) neuro-linguistic virus.

(It's thrilling! Like a new frontier still waiting to be tamed)
May 14, 2025 at 6:33 PM
Upping you one uppance 😁
Yes, it is still functional. Mid-50s wood and bakelite with a vacuum-tube receiver
March 28, 2025 at 8:37 PM
What I adore about South Africa's constitution is how clear it is to understand. E.g. §2 sets out the powers of the President (Hi, Uncle C! 👋) and it's just so simple, direct, and democratic. The Prez has no authoritative powers (we've had enough of that). The director conducts, the orchestra plays.
March 15, 2025 at 8:37 PM
And to you!
March 7, 2025 at 4:31 PM
Well, according to the instructions on my shaving foam can I should spit into the palm of my hand and then tip a cigarette into it. After applying the paste to my cheeks I can shave.

Not sure where the shaving foam factors into this
March 3, 2025 at 7:18 PM
February 24, 2025 at 9:15 AM
Well they *did* control the 6th-largest navy in the world in 1989, right?
February 20, 2025 at 7:53 AM
Gave the neighbours a heads-up that there's a visitor on the block. The snake handler rescued it from their compost heap just now 🐍
February 3, 2025 at 3:38 PM
Season's Greetings from the Global South!

#DatesAreNotSeasons
December 20, 2024 at 12:05 PM
December 18, 2024 at 6:16 AM
Each Faculty has its own design in its traditional colour. The patterns' symbolism capture elements of the various academic disciplines.

I think it's beautiful!

#Stellenbosch #Stellies #StellenboschUniversity #academia #graduation #design
December 13, 2024 at 4:33 PM
It's lovely to see graduates in the tastefully updated academic dress at Stellenbosch University this week. Undergraduates still wear plain black robes, doctorandi scarlet – but the hoods now have the most intricate embossed patterns reminiscent of shweshwe design (www.google.com/search?q=shw...)
December 13, 2024 at 4:33 PM
Day 9 of #AdventOfCode was a pleasure in #Odin, mostly because it favoured in-memory processing and I could use the language's concise loop syntax. And pretty fast! 2.6 ms for both parts to run in WSL2 Ubuntu on my rather ordinary laptop.
December 9, 2024 at 8:46 PM
But mostly, it's just super easy and computationally efficient to write a power function that does exactly what you do for your specific use case. Libraries don't have to provide trivial utilities that have non-trivial edge cases.

You don't need someone else to write your single-liners for you.
December 7, 2024 at 10:48 AM
After that, procedural data processing is straightforward. You can natively just add two arrays like a vector sum!

Part 2 was a bit of addition logic to also take visited locations' direction into the account... but not that much more

Overall, a very joyful bit of puzzle #pogramming!
December 6, 2024 at 6:47 PM
Business rules go into data structures. For today's solution we don't have steenking funkshins, we have data, and we'll have procedures to wrangle them safely, and oh so efficiently!

I love that Odin doens't have "glyphs", it has "runes" as 1st-order types. It's a lo-ki in-joke I guess 💜
December 6, 2024 at 6:47 PM
Love it! Had a similar experience earlier this year flying to Mafia Island just south of Zanzibar. The airport on the island is basically a strip of tarmac and a building that looks like a big red shed. Makes travelling so much more fun!
December 5, 2024 at 3:38 PM
Pretty happy with #AdventOfCode Day 5 in #Odin.

I happened to solve Part 1 with a map to all values smaller than the key. That meant Part 2 became a simple sort with a custom comparator. This is also a nice example of using an anonymous procedure in Odin.

github.com/gvrooyen/AoC...

#Programming
December 5, 2024 at 3:23 PM
My abyss gazes back expectantly, hoping for a backrub or a bite to eat
December 3, 2024 at 7:44 PM
Odin's built-ins also felt too powerful here! Here's the Counter() equivalent. Odin leans towards "I'll give you sane defaults; ask me if you'd like an error result too." Which means that a simple hashmap counter needs no initialisation or extra checks.
December 1, 2024 at 4:52 PM