Modern CSS gives us powerful math functions to simplify layout logic that used to require media queries.
One of these is the min() function.
With min() we can define a property that depends on multiple values, and the browser will automatically use the smallest one.
This helps us write more responsive and maintainable styles.
Continue reading →
The waves crash upon Eilean Draoidheachd, the Island of Magic.
From the mainland it is little more than a shadow, forever veiled in mist and salt-born fog.
Sailors whisper that it is cursed, that the storm itself makes its home there.
Others speak of endless wind and rain, bound to that shore by some forgotten spell.
But the islanders know better.
They tell of An Naoimh, the Holy One, whose breath stirs the clouds and whose voice moves the sea.
Some still name her An Cailleach, the ancient crone who weaves her will through storm and silence alike.
And when the waves rise higher than the cliffs, they say she is speaking again, chanting her spells into the wind.
Continue reading →
Sometimes it happens.
You stumble upon something that feels brand new to you — only to find out it’s been around for years.
When I joined Moderne and started working with its OpenRewrite framework, this exact thing happened.
I discovered the Java Service Provider Interface (SPI), a native mechanism in Java that enables plugin-like extensibility in applications.
Continue reading →
It’s the year 2023.
JDriven colleagues have gathered to discuss the new trends and deprecations of our work to put on the latest TechRadar.
Once everybody is seated, everyone contributes their latest opinions.
Very soon discussions run high.
Lombok is dropped at the table of discussion as well.
After some debate, it is decided.
Lombok is put on HOLD!
Continue reading →
False expectations take away joy, according to Sandra Bullock.
Such was my feeling when I tried to write a full-fledged document using AsciiDoc.
I thought I would be a pleasant journey.
Could I be wrong?
Continue reading →
Sometimes the answer to your problems is right in front of you.
But somehow you just can’t grasp it until you’ve had a bit of an enlightenment experience.
This happened to me a couple of weeks ago.
Continue reading →
You never touched Groovy, nor did you jump on the Scala train.
Clojure never attracted you; and you heard about Ceylon long after the language had already died.
You are one of those old-fashioned Java folks!
But now, after all those years, you want to join the cool Kotlin kids.
So, where to start?
Let’s discover the language together by decompiling it to Java code.
Today: The things we tend to forget!
Continue reading →
"Hobbits really are amazing creatures.
You can learn all that there is to know about their ways in a month, and yet after a hundred years they can still surprise you".
The astonishment Gandalf experiences, that you know something very well but somehow overlooked it, is not unfamiliar to me.
Well, let me tell you a story…
Continue reading →
You know that feeling when it suddenly clicks?
Something you never knew or could not understand.
And then, boom, this new knowledge is there for the taking.
Well, I had this experience some time ago.
Continue reading →
You can tell your old man
You’ll do some largemouth fishing another time
You just got too much on your plate to bait and cast a line
You can always put a rain check in his hand
'Til you can’t
Continue reading →
You never touched Groovy, nor did you jump on the Scala train.
Clojure never attracted you; and you heard about Ceylon long after the language had already died.
You are one of those old-fashioned Java folks!
But now, after all those years, you want to join the cool Kotlin kids.
So, where to start?
Let’s discover the language together by decompiling it to Java code.
Today: Inline functions caveats!
Continue reading →
You never touched Groovy, nor did you jump on the Scala train.
Clojure never attracted you; and you heard about Ceylon long after the language had already died.
You are one of those old-fashioned Java folks!
But now, after all those years, you want to join the cool Kotlin kids.
So, where to start?
Let’s discover the language together by decompiling it to Java code.
Today: Inline functions!
Continue reading →