Yak Shaving and Typography
There are few things you know for sure in this world. But here is one that has been true for the last 30 years or so, and probably will be true for as many years as I can see into the future.
Fact: every student all over the world who ...
After I put up the original article I got a private piece of feedback from my old partner in crime, the other Pete that said:
You need a rule 5: Only use one.
I thought about it for a while, and decided he was right. I have mostly ignored all ...
Anti-Social Social Networking
Back in 2008 the Internet was a simpler place. Here's how it broke down:
To talk to people 1-1 you knew in real life, or sometimes to people you worked with, you used mostly e-mail but sometimes "instant messaging", which used to be different from texting because texting was ...
Just in case you thought that almost 3000 words on dynamic runtimes wasn't enough, I had a few more thoughts that did not fit into how the final piece flowed together. In addition I thought of an obscure but relevant piece of Ancient Lisp Lore that I am contractually ...
Today another rumination about programming computers. Today's thoughts expand on an earlier piece that I wrote here about programming languages, but it is also related to how programs are inscrutable tubes of complexity, and who is good at programming computers anyway.
Books to Read About Computer Programming
Eleven books to read if you want to be a computer programmer.
The Structure and Interpretation of Computer Programs - Abelson and Sussman
Programming Pearls - Bentley
The Mythical Man Month - Fred Brooks
The Dragon Book - Aho, Ullman, Lam, Sethi
The Soul of a New Machine - Tracy Kidder
Algorithms - Cormen/Leiserson/Rivest ...
Who are the Programmers
The 2015 Splash/OOPSLA conference was in Pittsburgh this year, so I took advantage of this fact to go see what the academics had to say about some aspects of what I do every day: program computers to do silly things. Even though I haven't been around academics since ...
As part of his future dork training, we took the boy to see The Imitation Game. This film is essentially a work of fiction loosely based on the life of Alan Turing. Though almost completely conventional in its structure and outlook, the film was enjoyable enough, I guess. It's ...
The Inscrutable Tubes
Here is what a wise man once said about software:
The complexity of software is an essential property, not an accidental one. Hence, descriptions of a software entity that abstract away its complexity often abstract away its essence. For three centuries, mathematics and the physical sciences made great strides by ...
Just Teach It
I have never liked the term term computer literacy. This phrase was coined in the early 80s right around the time the first consumer computers became available. Then, as now, there was a lot of anxiety around the machines. Then, as now, people weren't quite sure what to make ...
To The Fog!
A wise man once said:
A distributed system is one in which the failure of a computer you didn't even know existed can render your own computer unusable.
Since you are no doubt an erudite reader, you'll know that the wise man was Leslie Lamport, a computer scientist ...
What Programming Languages Say
It's probably not surprising that the easiest way to get programmers to talk to you is to ask them about programming languages. Mention your favorite new toy and you will get hours of excitement, invective, or a schizophrenic and bipolar combination of both. Therefore, it is also not surprising ...
This is Your Brain on Software
In his new book, How Music Works, David Byrne has a lot to say on the effects of digital technologies on how music is created, recorded, distributed and sold. One of the keener insights he has is this one, about software that supports musical composition:
Though software is promoted as ...
Software Models and Hello World
I was at home for Christmas one year reading the New York Times on my laptop as we do, when my brother asked a random and off-hand question. He said "If all a computer can do is store zeros and ones, how does it end up drawing text and pictures ...
The Ultimate Goto
When I was in college I was something of a programming languages hobbyist. I think all young dorks go through this phase. Programming languages are fascinating repositories of different ideas for creating abstractions for constructs that programmers find themselves building over and over again. Back in the day, one of ...
You need to do backups. Back when computers were primitive and useless, backups were not as much of a problem because no one was storing anything in the machines. But these days, computers have grown up and it’s possible that your entire life is stored in your laptop. So ...
What Computers Do
Every once in a while someone who I don't know will find out that I work with computers. Often when this happens they get a look on their face like they have just found a great free source of technical support. I try to quickly end any such misconceptions ...
Moore and Me
One of the many ways in which I’ve had a lucky life is that I grew up with Moore’s law. I became aware of computing hardware just about the time the integrated circuit came on the scene. From high school to college to graduate school and into my ...
The Abstraction Distraction, Part 2.
Previously on this channel we discussed the role of abstraction in the context of constructing software. Abstraction enables laziness by hiding details that are unimportant or irrelevant to the problem at hand. This is a powerful and beautiful idea because it gives the appearance of providing programmers with a great ...
The Abstraction Distraction, Part 1.
Abstraction is the activity that lies at the core of much of computer science, and computer hardware and software engineering. Understanding what the word means is thus at the core of understanding both how and why computing systems are are put together and evolve the way they do. It is ...
Marginal Added Value
There are two universal rules about people who work in software:
Inexperience breeds an unrealistic optimism towards the power of new tools.
To offset (1), experience breeds an unrealistic hatred of all tools.
We have seen this cycle play out over and over again in the design, implementation and adoption ...
The Digital Archive of Everything
I was walking around in my local Borders a couple of months ago just after
they rearranged the Music and DVD section. My eyes scanned through the shelves
of DVDs, and I realized something that was at once horrible and amazing.
There, on the shelves, was most of the history ...
Not Just Coding
Note: This is a reprint of a piece from tleaves. Go to the original page if you want to read the extra comments.
We were driving home tonight, and NPR was interviewing some Robert Frost
scholar about the publication of a book of Frost’s cryptic notebooks. It took
This is What I Do
Once in a while, in the midst of casual conversation, someone will ask me what I do. When I was a graduate student, I would mutter something about computer science research, algorithms analysis and by the time the word “geometry” came out of my mouth after “computational” their eyes would ...
The Soul of a New Machine
I read The Soul of a New Machine for the first time when I was in high school. It is the best book I have ever read about computers. It is one reason I ended up working in software engineering. If you have not read this book, you should go ...
The PC is Dead, Long Live the PC
Pete, as usual, has generated a lot of comment traffic with his recent rantings about whether or not it is the fault of the developer when a game on a PC is a crashy piece of crap. For the most part, the battle lines are drawn along the question of ...
No Free Silver Bullet Lunch
So my buddy Pete took me to lunch today with some fellow software engineering friends of his. While munching our rather excellent Indian buffet food, one of the engineers related an incident that happened to him on vacation. He was walking back to his hotel room, and he overhears one ...
The Axiom of Choice
I have been fortunate enough to get my hands on an iPod Shuffle. I was mostly seduced by the look of the item, but wasn’t sure how the screenless shuffle- only interface would really work out in practice. Surprisingly, the Shuffle is by far my favorite iPod device for ...
Software Engineers: A lexicon
I’ve been working at software companies for the last 15 or so years of my life. In this time, I’ve worked with a lot of people who call themselves software engineers. The following is a collection of shallow, unfair, insulting and overly general classifications of the types of ...