Sign in

Rune Flobakk

@rune.flobakk.org
173 followers 115 following 139 posts

Synth player at Bekk, where I also do occasional software development. I post mostly in English about my 2 main passions: coding and music. He/him. github.com/runeflobakk

PostsRepliesMedia
Rune Flobakk @rune.flobakk.org · 06/07/2026
Because that is a topic for conversation explicitly disallowed in the preamble of any management initiated AI competency workshops. It distracts from learning how emplyees can use AI to benefit their employers.
000
Rune Flobakk @rune.flobakk.org · 01/04/2026
Gøy aprilsnarr fra @vygruppen.bsky.social 🤣🤣🤣
010
Rune Flobakk @rune.flobakk.org · 26/08/2025
Er det en slags variant av supertrikset med “forsinket” tam-fill? Altså at fillet som tradisjonelt brukes som overgang/oppbygging til neste periode, spilles faktisk ikke før enern i perioden det skal lede til, også lander man typisk på crash (og skarp) på toern, og grooven fortsetter således derfra?
100
Rune Flobakk @rune.flobakk.org · 26/07/2025
I need to study this.
Two 8BitDo Ultimate 2 Wireless game controllers, only difference one is purple and another is black. Also shows that they identify themselves as exactly the same device in a device index on a computer, making it impossible to tell them apart.
000
Rune Flobakk @rune.flobakk.org · 01/05/2025
Had a @cinemassacre.bsky.social “Just walk over it” moment. Revisited a 3yo hack I used PowerMock for some weird test conditions. Want to get rid of PwrMock, tried to adjust my approach, other reflection hacks, no avail. Then it dawned how I could just used regular language facilities all the time 🤬
000
Rune Flobakk @rune.flobakk.org · 06/02/2025
Oh no, not at all using general collection types (unless your domain actually expresses a list of something of course). Type obsession instead of primitive obsession, perhaps 😅 See the alt text of these two examples.
An example data model implemented with nested Java records.This shows constructing an instance of the model, and instead of using named parameters (or an equivalent builder facility) like e.g. from=“a string”`, the String which indicates who the message is from is an actual _instance_ of From. So with just regular use of constructors, you get the naming/role of the string, and in addition you get the benefits of it being a type, not just yet another String being passed around and being prone to be wrongly interchanged with other strings. Say, should the “Subject text” (admitedly a String) and From switch places, the compiler screams immediately, and you can more safely pass these simple value types around and have confidence they will be used the way they are intended by parts which know their type. You get this kind of safety from named arguments as well, but to me the value of modeling types in this way gets so much more other benefits than using named arguments with generic types (String, int, etc).

I also usually heavily use nesting when implementing the various types. This enables me some flexibility to choose how specific I want to be in different contexts. In this example I use Mailbox.Provider, but other places it may be redundant to mention “mailbox” and just new Provider is sufficient. Other contexts may require spelling out new DpiMailboxMessage.Mailbox.Provider.

This often leads to each type don’t actually have that many properties. DpiMailboxMessage has 5 properties, which I think is quite manageable. But it wouldn’t be shocking if all the state of the To-type was “flattened” as separate Stringly typed values on DpiMailboxMessage. Then named parameters or a builder would be appropriate to help manage these values.

I rely on existing names of the values. Either as names of variables being passed, or names of constructors. E.g. I don’t need named parameters to pass conversationId=ConversationId.gen(), that’s duplicated information. And types ensure I do not pass values as the wrong (positional) argument.
000
Rune Flobakk @rune.flobakk.org · 15/01/2025
Merged to main today, and started timer until the first one who forgot to mute their Mac speakers runs a build ⏱️
A diff view from GitHub displaying added music-maven-plugin configuration in pom.xml set to play the "Nanowar of Steel - HelloWorld.java" song from an also added MP3 file.
110
Rune Flobakk @rune.flobakk.org · 29/12/2024
Thugg, from the Cryo game Lost Eden (1995), when offered a flute, he responds “Thugg like drum. Boom boom!” 🤘
010
Rune Flobakk @rune.flobakk.org · 20/11/2024
I remember using AspectJ for this when doing my MSc thesis on “design level assertions” (term coined by Alef Arendsen, O.G. SpringSource). Neat to get these kinds of messages directly in the IDE, as any compiler error or warning, but the toolchain to set up is of course a bit involved.
Immediate feedback example with text: "Given that a proper design definition is created in AspectJ, using integrated development environments (IDEs) such as Eclipse, which supports incremental compilation, a developer will get immediate feedback the instant a statement which breaks the intended design is written.” Also contains a screenshot displaying Eclipse IDE giving an immediate error message when trying to instantiate a class which should not be used from the GUI component.
100
Rune Flobakk @rune.flobakk.org · 11/11/2024
If you see this, post a concert pic you took 🖤 (or vid, as I am doing 😇) Igorrr @ Blå, Oslo, April 22th 2022. Aphrodite Patoulidou doing a breathtaking bel canto segment, ending with an infernal roar. Goosebumps!
010