Ville Oikarinen
wipu.bsky.social
Ville Oikarinen
@wipu.bsky.social
How can I help you write your software? How can your software help users?
Some programmers are "afraid" of #DIY, labeling it "reinventing the wheel". Sometimes it is. More often it means solving the right problem the right way, no extra.

And even if the task proves too difficult, your skills improve by trying. You are also readier to choose the right 3rd party solution.
November 25, 2025 at 8:40 AM
Most null/empty checks are unnecessary and even harmful. (Hey, Or/\c|e database: empty is NOT null!) And why even bother with "isBlank" checks?

Things either exist or don't. If they do, use as such. The "convenience" of tolerating and silently modifying variance only confuses and causes bugs. #java
November 14, 2025 at 1:58 PM
Reposted by Ville Oikarinen
Hello Bluesky. I'm here because Meta doesn't want me. Looking forward to post unfiltered, unhinged and un-whatever stuff here. Tell your friends!
October 19, 2025 at 12:51 PM
Solution to a problem. Answer to a question. Implementation to a specification. Production code to pass a test. Those who feel #TestDrivenDevelopment is "reversed", why is it different from the rest on that list?
Generating tests based on your implementation is like setting exam questions based on your answers.
August 29, 2025 at 3:50 PM
@openjdk.org Removing support for preventing #java System.exit is the biggest and most unnecessary mistake I'm aware of. bugs.openjdk.org/browse/JDK-8... "Not an issue?" It is a huge issue! There are many reasons to call code that tries to exit. Agent-based solution is clumsy (cli args!). Please!
Loading...
https://bugs.openjdk.org/browse/JDK-8199704"Not
August 28, 2025 at 10:28 AM
I guess I should start including scandinavian characters in all test data and using some exotic default charset in test docker containers. This would force us to explicitly define the encoding in all #java code.
July 3, 2025 at 12:15 PM
The top three desktop operating systems from a server programmer's point of view: #GNU, #BSD and (thanks to WSL) #BSOD.

Sorry, maybe it's not fair to mock the loser. But the fight it finally lost was not fair, either. So maybe this once...
June 27, 2025 at 11:29 AM
I have an "all or nothing" attitude to #AI. I'm definitely not buying any "learn AI or stay behind" arguments. Instead, I expect AI to become smart and wise enough to come and help me, as I am.

And to impress me with its superhuman skills. To complement my human skills.

I'm waiting, welcome.
June 7, 2025 at 2:53 PM
I just realized a missed opportunity when #java introduced records: optional named parameters. Given record R(int a, int b) it should be possible to not only write new R(1,2) but also new R(a=1,b=2).
May 26, 2025 at 6:38 AM
The photographer of this image certainly has no fear of heights. How many books are under the left one?
May 19, 2025 at 9:55 AM
Reposted by Ville Oikarinen
Trump wanted to be president to pardon his own crimes. Now he wants to be Pope to pardon his own sins.
May 3, 2025 at 10:12 AM
Reposted by Ville Oikarinen
In today’s Vatnik Soup, I’ll talk about the takeover of social media by illiberal, populist influencers. For the last ten years, social media has been dominated by these voices and it is one of the main reasons for the political rise of people like Trump and Orban.

1/25
March 26, 2025 at 12:02 PM
#java should allow return void. Now the following proxy won't compile. The keyword "return" needs to be removed/added when iterating the method return type:

@Override
public void m(String arg) {
return delegate.m(arg);
}

Furthermore, while at it, why not make all statements expressions?
March 19, 2025 at 11:11 AM
Why do we still use pseudo-code? Many current real languages *can* and should be used to express ideas that are not only readable but also executable.

Furthermore, why do we still use only natural language (English) for specifications? Specification by example i.e. acceptance tests instead, please.
February 22, 2025 at 11:54 AM
When I code a change, I pay much more attention when typing than when reviewing my changes before commit. Much easier to avoid mistakes that way. One of the reasons why I don't use #AI. It's easier to carry the responsibility if I as the diff reviewer trust the entity who wrote that diff.
January 22, 2025 at 1:01 PM
One good metric of code cleanness is how well it can be used as "pseudocode" in documentation and discussion.
January 19, 2025 at 10:41 AM
Reposted by Ville Oikarinen
I think the Russian orthodox church just called me a wanker....
January 17, 2025 at 9:28 AM
For some reason I'm very lazy to learn advanced magic/tech powers in video games. I just enjoy the stupid AI and shoot them with traditional weapons. If I'm lucky, the game lets me get away with it. If not, I have to learn the advanced stuff after getting killed a dozen times by the final boss.
January 13, 2025 at 3:03 PM
When will we find new words/symbols for obsolete technology? How long will people recognize the 3.5" diskette icon to mean "save to permanent memory"? Or the term "disk" to mean that memory? How long will there even be volatile memory and the need to save? (Only even more need to clear caches...)
December 3, 2024 at 1:33 PM
#ContinuousIntegration and #TrunkBasedDevelopment not only make your own developer life easier by avoiding growing integration debt. It also makes other's lives easier when you publish small increments often instead of infrequently dumping incohesive merge commits.
November 20, 2024 at 10:52 AM
I hope this platform flies and the ex bird dies.
December 2, 2023 at 12:26 PM