Introduction
Apologies to those who received this in their email without an intro! I will do a better job proof reading next time.
Of course the situation in Ukraine is horrific and along with others I condemn Putin’s imperialist invasion, call for an immediate withdrawal of Russian troops and an end to NATO expansion.
As professional software engineers I call on us to reflect on the effects our work has in sustaining this system. Does your work in high-performance computing enable continued hydrocarbon extraction by corrupt petrostates? Does your algorithm to increase news feed engagement make political interference easier?
Writing
Having the right data
This article is about our use of JSON schema on Global.health. I want to go into a bit more depth on structured data over a few posts, it's a topic I teach on the software engineering MSc at Oxford and one that really helps design a software system efficiently and correctly. What parts of the topic should I cover? Email grahamlee@acm.org.
Trade Unions
This month’s De Programmatica Ipsum is all about unionising technology workers. A union is workers coming together and having a stronger voice when they act as one. If you believe in DRY code, consider trying out DRY bargaining for equal pay, shorter hours, less burnout, and other important workplace gains.
Audio
Episode 51: Responding to Change
'Whenever I show my customer what we've been working on, they say "Oh that's not what I meant, can it do this instead?"' In this episode I talk about why that is, and what to do about it.
Around the web
Editing stuff in prod
This is very good. It’s easy to have blanket rules (like “don’t edit code in prod”), it’s much more advanced to realise that someone might have a reason for violating those rules. Digging in to why they’re doing the “obviously” wrong thing shows you why it’s the right thing, and potentially what else needs fixing.
When Command-V (or CTRL-V) is your "copilot"
Following on from last issue's look at Github Copilot, here's a story that looks at the impact of pasting random code into your company's source tree. Knowing the company quite well I would expect that the originating developer got told how it was supposed to happen, why it should not happen the way they tried to do it, and not to do it again.
Russian Cybersecurity Giant Kaspersky Tries to Maintain Neutrality During Ukraine War
Eugene Kaspersky said he hoped for "a compromise" as Russia fired a massive rocket into a square in Ukraine's second largest city.
Software has real-world impact. War is one of the realms where it's a matter of life or death. Cyberwarfare techniques are being used by both sides in the Russian invasion of Ukraine, with risks to European and American supply chains, financial infrastructure, and critical utilities.
For Eugene Kaspersky, co-founder of the eponymous cybersecurity company (along with his ex-wife Natalya Kasperskaya, both among the richest people in Russia) to wring hands over whether the two sides could "find compromise" reveals a dark truth at the heart of infosec. Kaspersky (the company) has the mission statement "to build a safer world", and Kaspersky (Eugene) has talked about global cyberwarfare armistice treaties. Now we find a different story: cyberwarfare sells, click here to buy.
Let's Make Java Compelling for Desktop Development
Steve Hannah is the developer of jDeploy, a tool for turning Java applications into native bundles for ease of installation on multiple platforms. The link here is to the first article in Steve's newsletter, combining jDeploy info with reflections on the Java desktop experience. There is an old Java app I use, the grotag AmigaGuide viewer that I'd love to modernise. I'm looking forward to learning how from Steve.
Why (Enterprise) Software Is Bloated
Here's another of the few articles about software development that addresses one of the most important questions—whether to buy or build. I expect there isn't much on the topic because many of us would prefer to build so don’t ask about buying 🤣.
This article shows that building what you could buy is one of the contributing factors to bloated software.