Retrotechtacular: Critical Code Reading, 70s Style

Anyone who has ever made a living writing code has probably had some version of the following drilled into their head: “Always write your code so the next person can understand it.” Every single coder has then gone on to do exactly the opposite, using cryptic variables and bizarre structures that nobody else could possibly follow. And every single coder has also forgotten the next part of that saying — “Because the next person could be you” — and gone on to curse out an often anonymous predecessor when equally inscrutable code is thrust upon them to maintain. Cognitive dissonance be damned!

It’s a tale as old as time, or at least as old as programming has existed as a profession. And by 1975, poorly written code was enough of a problem that an outfit called Edutronics put together the animated gem Critical Program Reading: Structuring an Unstructured Program. It’s apparently Part 1 of a larger series on structured programming techniques, and comes to us by way of [Alec Watson], host of Technology Connections on YouTube, by way of his second channel, the delightfully named Technology Connextras.

The film’s three minimally animated characters, each of whom could have been the villain in an episode of Scooby Doo, are tasked by a stern-sounding narrator to analyze a fragment of pseudocode that’s written in a concoction of COBOL, PL/1, and a bunch of other languages. The code is a hot mess, but our heroes muddle through it line by awful line, making it more readable by guessing at more descriptive variable names, adding structured elements, and making logical changes to improve the program’s flow. The example code is highly contrived, to be sure, but the business logic becomes much clearer as our team refactors the code and makes it far more approachable.

For as much as languages have changed since the 1970s, and with all the progress we’ve made in software engineering, the lessons presented in this film are still surprisingly relevant. We loved a lot of the little nuggets dropped along the way, like “Consistency aids understanding,” and “Use symbols in a natural way.” But we will take exception with the statement “Wrong means poor structure” — we’ve written seen plenty of properly structured code that didn’t work worth a damn. We also enjoyed the attempt at socially engineering a less toxic work environment: “Use tact in personal criticisms.” If only they could learn that lesson over at Stack Overflow.

It’s not clear where [Alec] found this 16-mm film — we’d sure like to hear that story — but it’s a beauty and we’re glad he took the time to digitize it. We’re consistently amazed at his ability to make even the most mundane aspects of technology endlessly fascinating, and while this film may be a bit off from his normal fare, it’s still a great find. Continue reading “Retrotechtacular: Critical Code Reading, 70s Style”

The Dawn Of Synthetic Milk: When Milk Becomes More Like Beer

What would we do without milk in modern day society? Although lactation originally evolved as a way to provide a newborn mammal with nutrients and the other essentials during the first weeks of their life, milk has for thousands of years now been a staple food in human cultures. Whether from cows, camels, sheep or other mammals, each year humans consume many liters of this mythical substance, with our galaxy’s name – the Milky Way –  coming courtesy of Greek mythology and a spilled milk incident.

A major issue with mammalian milk, however, is that it is only produced by females for a certain time after giving birth, which requires for example a dairy cow to constantly go through pregnancies, which is both cumbersome and not very animal-friendly. Simultaneously, the newborn offspring cannot drink this milk, but must be provided with an alternative. For these reasons synthetic milk is becoming an increasingly more popular animal- and environmentally-friendly alternative.

For years now, companies such as US-based Perfect Day are producing milk that’s for all intents and purposes identical to cow milk, with the added advantage of being free of lactose and other problematic additions. The best part of this all? It’s all done with existing fermentation techniques.

Continue reading “The Dawn Of Synthetic Milk: When Milk Becomes More Like Beer”

Something’s Rotating In The State Of Denmark: A Clock

If you visit the Copenhagen City Hall, you’ll see an ornate mechanical clock. By itself, this is unremarkable, of course. There are plenty of ornate clocks in city halls around the world, but this one has a fascinating backstory that starts with a locksmith named Jan Jens Olsen. Unfortunately, Jens didn’t actually complete the clock before his death. It would take 12 years to put together the 15,448 individual parts. However, he did manage to see most of the clock that he had been designing for 50 years put together.

Jens was 60 when he started constructing the clock, but the story starts when he was only 25. In Strasbourg, the young locksmith saw an astronomical clock with a perpetual calendar in a cathedral. He was fascinated and returned several times to study the mechanism. Around the age of 30, Jens had moved to watchmaking and had a keen interest in astronomy — he was a founding member of the Danish Astronomical Society. Perhaps it was the combination of these two interests that made it inevitable that he would want to build a precise astronomically-correct clock.

Continue reading “Something’s Rotating In The State Of Denmark: A Clock”

The Problem With Passwords

By now it’s probable that most readers will have heard about LastPass’s “Security Incident“, in which users’ password vaults were lifted from their servers. We’re told that the vaults are encrypted such that they’re of little use to anyone without futuristic computing power and a lot of time, but the damage is still done and I for one am glad that I wasn’t a subscriber to their service. But perhaps the debacle serves a very good purpose for all of us, in that it affords a much-needed opportunity for a look at the way we do passwords. Continue reading “The Problem With Passwords”

In Praise Of “Just Because” Hacks

Sometimes you pick a project because the world needs it to be done. Or maybe you or a friend need it. Or maybe you don’t really need it, but it fulfills a longstanding dream. In my mind, the last stop before you reach “why am I doing this” is the “just because” hack.

The ideal “just because” hack is limited in scope. You don’t want to spend years on a whimsical project, and because of this a “just because” hack isn’t usually motivating enough to keep you going that long anyway, except for the tenacious few. A “just because” doesn’t necessarily have to be an easy win, but it makes sense for you to see your way out before you get in too deep.

I’m not sure if it’s the Baader-Meinhof phenomenon or not, but in the last week or so in the Hackaday universe, a lot of people have been singing the praises of “just because” hacks. (Check out this one discussion, for instance.) Mostly, it’s a combination of them turning out better than initially thought, or it’s about the learning that came along for the ride. Of course, many of them spin off into longer, serious projects even if they didn’t start that way.

Not everything in life can be frivolous, of course. But that makes the “just because” hack that much sweeter, and you should try to make mental room for them if you can. When the stakes are low, creativity can be high. You might still want to impose a deadline, lest you fall into eternal yak shaving, but take it easy. You don’t need a justification all the time: the journey can be the destination.

Hackaday Podcast 199: Ferrofluid Follies, Decentralized Chaos, And NTSC For You And Me

This week, Editor-in-Chief Elliot Williams and Assignments Editor Kristina Panos decided against using one of Kristina’s tin can microphones to record the podcast, though that might be a cool optional thing to do once (and then probably never again).

After a brief foray into the news that the Chaos Communications Congress will be decentralized once again this year, as COVID restrictions make planning this huge event a complete headache (among other notable symptoms), we discuss the news that the EU is demanding replaceable batteries in phones going forward.

After that, it’s time for another What’s That Sound results show, and despite repeated listens, Kristina fails to guess the thing. Even if she’d had an inkling as to what it was, she probably would have said ‘split-flap display’ instead of the proper answer, which is ‘flip-dot display’, as a few people responded. Finally, it’s on to the hacks, where we talk about uses for ferrofluid and decide that it’s one of those things that’s just for fun and should not be applied to the world as some sort of all-purpose whacking device.

Check out the links below if you want to follow along, and as always, tell us what you think about this episode in the comments!

And/or download it and listen offline.

Continue reading “Hackaday Podcast 199: Ferrofluid Follies, Decentralized Chaos, And NTSC For You And Me”

This Week In Security: Adblock For Security, ProxyNotShell Lives, And CVSS 10 To Not Worry About

The ubiquity of ransomware continues, this time with The Guardian announcing they were partially shut down from an attack. Staff are working from home as the incident is being investigated and data is recovered. Publishing seems to be continuing, and the print paper ran as expected.

There have been a couple reports published recently on how ransomware and other malware is distributed, the first being a public service announcement from the FBI, detailing what might be a blindly obvious attack vector — search engine advertising. A bad actor picks a company or common search term, pays for placement on a search engine, and then builds a fake web site that looks legitimate. For bonus points, this uses a typosquatted domain, like adobe[dot]cm or a punycode domain that looks even closer to the real thing.

The FBI has a trio of recommendations, one of which I whole-heartedly agree with. Their first suggestion is to inspect links before clicking them, which is great, except for the punycode attack. In fact, there are enough lookalike glyphs to make this essentially useless. Second is to type in URLs directly rather than using a search engine to find a company’s site. This is great so long as you know the URL and don’t make a typo. But honestly, haven’t we all accidentally ended up at website[dot]co by doing this? Their last recommendation is the good one, and that is to run a high-quality ad-blocker for security. Just remember to selectively disable blocking for websites you want to support. (Like Hackaday!) Continue reading “This Week In Security: Adblock For Security, ProxyNotShell Lives, And CVSS 10 To Not Worry About”