3 private links
It Can Be Done
Tom Van Vleck
Andre with coffee cup
The late André Bensoussan worked with me on the Multics operating system at Honeywell in Cambridge. We were working on a major change to the file system, which required a subsystem, the VTOC manager, to manage file description information. It had to transport the file information between disk and memory, manage a shared memory buffer pool, and manage space on disk for the information. In other words, it was a small virtual memory manager.
André took on the job of design, implementation, and test of the VTOC manager. He started by sitting at his desk and drawing a lot of diagrams. I was the project coordinator, so I used to drop in on him and ask how things were going. "Still designing," he'd say. He wanted the diagrams to look beautiful and symmetrical as well as capturing all the state information. I was getting nervous about the schedule, so I was glad when he finally began writing code. He wrote in pencil, at his desk, instead of using a terminal. He declined offers of typing help, and just kept writing away in pencil. He rewrote parts, copied things over, erased and rewrote.
Finally André took his neat final pencil copy to a terminal and typed the whole program in. His first compilation attempt failed; he corrected three typos, tried again, and the code compiled. We bound it into the system and tried it out, and it worked the first time.
In fact, the VTOC manager worked perfectly from then on. Only one bug was ever found in it, and that was my fault: André had asked me the calling sequence for an error procedure, and I'd guessed instead of looking it up, so it crashed the first time it hit an error. Beyond that the program was perfect.
How did André do this, with no tool but a pencil?
IEEE Computer, April 1994 (Updated November 2003)
Competitive Programmer's Handbook. Contribute to pllk/cphb development by creating an account on GitHub.
Pretend you have a really great programming day. You only have to attend a few meetings, have only a few off-topic conversations, don'...
Tout le monde sait ce que sont le couplage et la cohésion, mais peu de gens savent l'expliquer. Encore moins de monde est conscient du fait qu'évaluer le couplage et la cohésion suppose de voyager dans le temps. En tout cas moi je ne savais rien de tout ça. Voyons ensemble comment appréhender l'évolutivité du code sans super pouvoir.Read more →
JavaScript has come a long way since I knew it as the “D” in DHTML. For anyone like me, who’s been reluctant to use the latest syntax that could require polyfills or a transpiler, I’ve written this cheatsheet to get you caught up on all the goodness that’s widely supported in modern browsers.
How we interact with programming environment matters more than the language, but such interaction has never been widely studied. Inspired by the idea of 'complementary science', this essay recovers interesting ideas from how programming used to be done using Commodore 64 BASIC. Reading about interactions is not enough and so this interactive essay lets you build a small Breakout game using a simple Commodore 64 BASIC simulator.
In 2010, Patrick McKenzie wrote the now-famous blog “Falsehoods Programmers Believe About Names”, in which he listed 40 things that were not universally true about names. Did programmers sit up, take notice and change their attitudes to names? Sadly, not really. We still get asked...