Pac Man!
I built a Lego thing. This time: Pac Man! It’s a gaming classic that I’ve played a lot on a C64. I was intrigued when I saw the box at a Lego store, and wanted to build it to see how the mechanics are working (of course it has moving parts).
Of course, it all starts with a big pile of numbered bags. The first thing that gets assembled is the little Pac Man hunt that sits on top of the machine. You can push a button to make the Pac Man and ghosts turn (which is what happens in the game, too).
Next, the frame of the big arcade machine is built (notice the crank!), and of course this part needed Curly’s quality control. She approved.
The rather realistic screen was built next. I have to say, this is one of the most finicky pieces of Lego I’ve ever assembled. That’s for a reason: there are moving parts, as the screen, when the crank on the arcade is turned, will simulate part of the gameplay, and the little icons actually move about the scene. This is an amazing example of Lego engineering, and very rewarding indeed. The way a single axle, powered by the aforementioned crank, moves all the parts, is ingenious.
Here’s how it looks in real life.
The finishing touches include building the top part of the arcade machine (proud and tired builder visible in the window reflection), and a little bit of playful scenery that’s well hidden inside the big box (notice the mini replica of the game, and the bubble gum dispenser?).
Assembling the set took me about 6 hours in total. I’m not a speed builder (boo), but one who likes to relish in the details, enjoy picking the parts, and even more enjoy assembling them. This set brought a lot of joy.
Tags: the-nerdy-bit
ssh Tips
Most of us technical people are using ssh in one way or another. I came across a posting that laid out some of the features of ssh for me in a very clear way, and gave me some insights into features I hadn’t in my active working memory. Here it is.
Tags: hacking
WFH, RTO, Whatever
Is working from home better? Is working in the office better?
In these very polarised times, it just has to be one or the other. There is no room for nuance. The exchanges on Twitter (occasionally called X now) and LinkedIn look just like this was just another one of those highly contentious, inevitably partisan, issues.
Frankly, I’m quite fed up with humanity’s renewed knack for tribalism. The question I asked above is just one example that happens to be a good fit for this blog. There are endless others.
So. Is working from home better? Is working in the office better? It depends. My answer to that is not so simple as some would have it.
If I have a task in front of me that requires some deep thinking, analysis, reading, research, and writing, I prefer to work from home. There are just less distractions there. Don’t get me wrong - I love meeting the colleagues. I also love the occasional coffee machine chat (I sit near the kitchen when I’m in the office for a reason), but my tendency to freely engage in those can just be counterproductive.
If, on the other hand, I have a day that’s devoted to a mix of focus time and meetings, with no big-and-deep task of the aforementioned nature on the plate, I prefer to be in the office.
Tertium datur: If I have a day with small bits of focus time sprinkled in between a lot of meetings, it doesn’t really matter where I work. I have a slight preference for the office because the occasional coffee machine chat also has a relaxing effect. Some plainly social interactions between meetings take some of the stress out of the frequent context switches.
What’s the point? Companies seem to scramble a bit at the moment. Some mandate a fixed number of office days per week, some leave everything completely open. I think counting and enforcing a number of office days is simply using the wrong metric. It’s like measuring productivity by counting hours spent in front of a screen.
What counts is whether the outcome is right. If, for that to be the case, it is necessary to have everyone in the office for some particular purpose, then so be it, and it is even fine if a company mandates that. Otherwise, it should be fine for people to work from the office or from home however they see fit.
Tags: work
How Much Tech Debt is OK?
How much tech debt is OK? The question of when to refactor, what to refactor, how big to refactor just keeps coming up. Of course everyone wants and likes tidy code, and that ugly piece of tech debt sitting there right in the midst of it is just icky. So let’s remove it … or should we?
This article has some interesting answers, and I appreciate its pragmatism: if it’s not broken, don’t fix it; and have a measurement for the level of brokenness, as well as a threshold that pushes an artifact to “too much debt land”. Instead of attempting to fix all tech debt, the question should be “can we sustain our debt?”
Tags: work
Smalltalk, Anyone?
The Smalltalk programming language is a wonderful tool for “pure” object-oriented programming. It goes back to the 1970s; the first official release was in 1980. Smalltalk came with a full-fledged graphical user interface, and an integrated development environment. Its debugger allowed for changing code of the running system on the spot, without having to restart everything, even in the middle of running a test suite. (If that makes you shrug, remember this was in 1980.)
There are multiple implementations of the language and environment still. The one I’d recommend - and that helped me earn my doctorate and subsequent postdoc position - is Squeak. It was written by a team around the original inventors of Smalltalk.
In case you’re interested in getting a different idea of what object-oriented programming in a live environment can be, check out Squeak, and the free book Squeak by Example. The latest release PDF is here.
Tags: hacking
Bring Your Whole Self?
“Bring your whole self to work.” This is a popular one. So what about it? Let’s take a look.
What does it mean to literally bring your whole self to work? Making every aspect of you extremely present in the workplace, even those that are unrelated to work? This is often how it’s interpreted. Unfortunately, that interpretation, unquestioned, is a blank cheque for narcissism.
The point is, the workplace is the workplace, and what it needs from you is your skills and attitude towards work. It’s OK to bring your whole self (what else could you possibly do?), but keep in mind the workplace isn’t your stage for everything there is about you. It’s not for political activism, pushing a personal agenda, or putting up a me-show.
You deserve to be respected for who you are, and you deserve a harassment-free workplace. But it’s not all about you, or about all of you.
Tags: work
Electronics
For everyone who’s interested in learning basic (and more advanced) electronics, The Art of Electronics by Horowitz/Hill is a treasure trove. The explanations in the book, starting from first principles, are lucid and instructive.
Tags: the-nerdy-bit, books
Know Your Tools!
Mastery of a craft comes from understanding deeply the mechanisms at work in it, and the tools used to wield those mechanisms. This is true for any craft. A master carpenter will have to understand the different kinds of wood, and various techniques for how to cut and connect pieces. That’s all theoretical knowledge, and of no use, if it’s not combined with a deep knowledge and understanding of the tools used to handle the materials, and to transform them into something usable. Knowing what a tool does, in principle, is not enough; wielding it well means understanding how it, too, works.
This is true for software engineering as well. Knowledge of algorithms, and principles of design and architecture, is necessary, but bears little value if it’s not combined with a deep enough understanding of the tools - programming languages, compilers, runtime environments, libraries - that support building something.
Software engineering relies on abstraction to a considerable degree. This can be dangerous: superficial knowledge of a library or framework can easily be mistaken for a sufficient understanding of the same, leading to all kinds of problems when naïvely applied.
Know your tools!
Tags: work