Weakly typed APIs can bite you, particularly when you’re using a language like F# where you’re for the most part blessed with strongly typed APIs. Thankfully, strongly typed wrappers are often one-liners.Continue reading “F# tip: ToString considered dangerous”
Boolean logic is central to many business rules. But sometimes it’s not enough to know whether a chain of conditions evaluates to
false; we might want to know which of the conditions failed. F#, unsurprisingly, lets us model this in a very succinct, composable, and completely type-safe way. But there are pitfalls – sometimes, a seemingly simple and pure function just won’t cut it.
One cannot venture far into the world of software engineering literature without hearing about The Mythical Man-Month by Frederick P. Brooks, Jr. The book is consistently hailed as a classic, so in my quest to grow as a software practitioner I decided to shell out and see what all the fuss was about. Unfortunately, being written in 1975 (re-issued in 1995 with minor changes to the original material), it seems so out of date now that I doubt it can have more than academic appeal.Continue reading “The Mythical Man-Month: Too obsolete to be useful today”
Software changes at an accelerating pace. People, on the other hand, stay the same. That’s why some software engineering books are timeless classics: They speak to the human rather than the technical side of development. Robert Glass’s Facts and Fallacies of Software Engineering seems to be hailed as one such classic, and I too found this a highly rewarding read.Continue reading “The curmudgeon’s take on the malpractices of software engineering”
The Pragmatic Programmer: From Journeyman to Master promises to make you a better programmer with around 70 concrete tips covering many different aspects of software engineering. But while I would have hoped for 70 deeply practical and thoughtful tips, many of them aren’t really that great. Pragmatic Programmer lacks depth, and its age (15 years) means that some of its tips are not nearly as helpful today.Continue reading “The slightly outdated and not entirely Pragmatic Programmer”
I recently finished developing my very first WordPress widget. It’s called GR Progress, and it shows books from your Goodreads shelves together with their reading progress (which, to my knowledge, no other Goodreads or WordPress widgets can do). In this post I want to talk about how I went about “unit testing” the widget.Continue reading ““Unit testing” a WordPress widget”
One of my earlier functions was a true abomination.
It was 250 lines long, accepted 18 input parameters, and was nested up to 9 levels deep with highly complex conditions at all levels. It’s not only gross; it’s horrible, and I wish it would just go away. But it does its job, and I would need to put in significant effort in restructuring the whole program if I wanted to do something about it. And you can bet I’m not touching it now, not with a ten-foot stick.
The worst part? It’s the central cog in an equally abominable class (written entirely by yours truly) producing these plots, which are still used during scientific rocket launches from Andøya to determine the optimal moment for pressing the big red button.Continue reading “Uncle Bob and the importance of clean code”
I’ve heard it said that you can’t get a job doing something you’ve never done. What a load of equine droppings.
What follows is mostly a personal story of how I switched careers from academia to software development without really knowing the relevant technologies. More specifically, it’s about how I got a job as a C#/VB.NET/Xamarin developer when I started toying with those technologies just before the interview.Continue reading “Yes, you can get a software development job without knowing the relevant technologies”
When you’re into web design, of course you can’t simply install WordPress and be done with it. The current default WordPress theme, Twenty Sixteen, is nice and clean, but a few tweaks here and there made it look a bit better and even less noisy.Continue reading “Technical details about my new blog”