Programming Leftovers
-
Riccardo Mori ☛ A few insights by Don Norman from 30 years ago that are still relevant today
I was perusing some past issues of ACM Interactions magazine, and I stumbled on an interview with Don Norman, a figure I’ve always admired and one of the main forces of inspiration for me to delve deeper in matters of usability, design, and human-machine interaction.
The interview, titled A conversation with Don Norman, appeared on Volume 2, Issue 2 of the magazine, published in April 1995. And of course it’s a very interesting conversation between Don Norman and John Rheinfrank, the magazine editor at the time. There’s really very little to add to the insights I’ve chosen to extrapolate. While discovering them, my two main reactions were either, How things have changed in 30 years (especially when Norman talks about his work and experience at Apple); or, 30 years have passed yet this is still true today. I’ll keep my observations at a minimum, because I want you to focus on Norman’s words more than mine.
-
Nicolas Fränkel ☛ On inheritance and subtyping
Java is the first language I learned in my career. Its structure is foundational in my early years of understanding programming concepts. After going through several other languages with very different approaches, I’ve widened my point of view. Today, I want to reflect on the idea of inheritance.
-
Marc Rochkind ☛ A Retrospective on the Source Code Control System [PDF]
The Source Code Control System (SCCS) was first introduced in 1975 [1]. It controlled computer program source code by tracking versions and recording who made changes, when, and why. The present retrospective paper assesses the strengths and weaknesses of SCCS and traces its influence on software engineering over the past fifty years.
-
Sean Goedecke ☛ Working fast and slow
Some engineers work very consistently, putting in the same hours every day and getting out the same amount of work. I don’t. Some days I only have a few hours of focused work in me, while on other days I feel like I can go on almost indefinitely. I used to feel like this was a problem - that I was either overworking or slacking off - but now I lean into it. Instead of trying to push harder on slack days and pull back on focus days, I accept that I’ll be much more productive on some days than others. There are serious advantages to this working style.
First, a disclaimer: “focused work” means “genuine progress on projects”, not all work. There’s a set of low-priority tasks I can do while I’m not focused. Company trainings, straightforward PR reviews, responding to messages, and even some straightforward programming is in this category. I’m not doing an hour of work and then going to the beach.
-
Unmitigated Risk ☛ The Laws of Stupidity and the Gaps in Your Security Posture
In security, stupidity isn’t just a human problem. It’s systemic. Your security posture is the sum of every decision you make—large or small, deliberate or “temporary.” Vulnerabilities don’t just happen; they’re created at the intersections of components and processes where decisions are made in isolation. And as Cipolla’s laws remind us, these decisions often externalize harm without yielding any real benefit to the decision-makers.
-
Perl / Raku
-
Arne Sommer ☛ Prefixed Alien with Raku
You are given a binary array.
Write a script to return an array of booleans where the partial binary number up to that point is prime.
-
-
Shell/Bash/Zsh/Ksh
-
[Old] The Unix Heritage Society ☛ /bin/sh: the biggest UNIX security loophole [PDF]
There are lots of ways for “crackers” to become UNIX super users illegally. There are two main classes of loopholes. Class 1 consists of many different arcane difficult to perforn special tricks. Class 2 is the one big easy way anyone can cause trouble. This note is about Class 2.
In particular, legitimate UNIX commands (such as mail, troff, etc.) running with super user privileges, can be made to inadvertently execute UNIX shell commands of the cracker´s choice. In practice the careless way many setuid programs are written provides the system cracker with the loopholes he needs.
This paper has examples. They might work on your own UNIX system.
-