Robert A. Uhl

Running Lisp as a Linux service

One of the truly wonderful things about programming in Common Lisp is that the system is complete interactive: the programmer can manipulate anything at run time, including the language itself. This is a really powerful technique — but how does one preserve the state of the system between reboots? And how does one get an image-based Lisp system to play nice with Linux’s system service model? Well, John Wiegley published a great technique a few years ago which I’ve adapted for Tasting Notes. Read more →

Software as a Craft

Bob Martin proposes that software development teams model themselves after craft guilds, with a master programmer supervising journeymen programmers who supervise apprentices. Not only that, but computer science degrees would be replaced by apprenticeship in most cases. He demonstrates that such a team would be fairly inexpensive and could be highly productive. It’s an intriguing idea. My big concern with eliminating college is simply that higher education expands the mind. But is it really necessary to spend $200,000 between the ages of 18 and 22 in order to expand one’s mind? Read more →

Software as a Craft

Bob Martin proposes that software development teams model themselves after craft guilds, with a master programmer supervising journeymen programmers who supervise apprentices. Not only that, but computer science degrees would be replaced by apprenticeship in most cases. He demonstrates that such a team would be fairly inexpensive and could be highly productive. It’s an intriguing idea. My big concern with eliminating college is simply that higher education expands the mind. But is it really necessary to spend $200,000 between the ages of 18 and 22 in order to expand one’s mind? Read more →

Thoughts on up-or-out

Bruce Webster has some interesting thoughts on modifying the Cravath model for the technical field. The ‘Cravath model’ is the standard big-company practise of having partners, directors, senior managers, managers, senior associates & associates who are rated annually, with the lowest performers being asked to leave and the highest performers being promoted. In many ways the model is good, but one problem is that it doesn’t really work for technology because technologists generally don’t wish to manage and generally don’t do well in management; Webster proposes a parallel track of associate engineer, engineer, senior engineer, technical officer, senior technical officer, executive technical officer and chief technical officer. Read more →

Thoughts on up-or-out

Bruce Webster has some interesting thoughts on modifying the Cravath model for the technical field. The ‘Cravath model’ is the standard big-company practise of having partners, directors, senior managers, managers, senior associates & associates who are rated annually, with the lowest performers being asked to leave and the highest performers being promoted. In many ways the model is good, but one problem is that it doesn’t really work for technology because technologists generally don’t wish to manage and generally don’t do well in management; Webster proposes a parallel track of associate engineer, engineer, senior engineer, technical officer, senior technical officer, executive technical officer and chief technical officer. Read more →

An introduction to REST

My fellow web programming geeks will have heard a lot of buzz about Representational State Transfer (REST). It’s definitely an improvement on the Ozymandian Web Services stack. But what is it really? How is it used? How does one adapt a design to it? Stefan Tilkov has a top-notch brief introduction to rest. If you write or design web-consumed services, or plan to, or manage those who do, check it out. Read more →

An introduction to REST

My fellow web programming geeks will have heard a lot of buzz about Representational State Transfer (REST). It’s definitely an improvement on the Ozymandian Web Services stack. But what is it really? How is it used? How does one adapt a design to it? Stefan Tilkov has a top-notch brief introduction to rest. If you write or design web-consumed services, or plan to, or manage those who do, check it out. Read more →

Religion and programming languages

It’s often said that one’s choice of computer languages is at heart a religious matter (I tend to disagree, but that’s another matter): now there’s a survey of religions and programming languages which is attempting to see if there’s any connexion. It was difficult for me to choose the languages I prefer. Common Lisp was a no-brainer, as was Python. But what about C? I decided against it — while it was a neat & cool language once upon a time, it’s hardly a sane choice today. Read more →

Religion and programming languages

It’s often said that one’s choice of computer languages is at heart a religious matter (I tend to disagree, but that’s another matter): now there’s a survey of religions and programming languages which is attempting to see if there’s any connexion. It was difficult for me to choose the languages I prefer. Common Lisp was a no-brainer, as was Python. But what about C? I decided against it — while it was a neat & cool language once upon a time, it’s hardly a sane choice today. Read more →

The programmer’s pyramid

Oliver Steele proposes a programmer’s pyramid based on the ideas in the food pyramid from the Department of Agriculture. Basically, a programmer should spend most of his time reading code, particularly exemplary code, then his own code, then code that he’s using which other people wrote. He should spend somewhat less time revising code. He should spend a bit less time writing code. He should spend even less time reading about code. Read more →

The programmer’s pyramid

Oliver Steele proposes a programmer’s pyramid based on the ideas in the food pyramid from the Department of Agriculture. Basically, a programmer should spend most of his time reading code, particularly exemplary code, then his own code, then code that he’s using which other people wrote. He should spend somewhat less time revising code. He should spend a bit less time writing code. He should spend even less time reading about code. Read more →

Effective emacs

Jacob Gabrielson wrote a nice blog post giving some tips for effective use of emacs. I’ve managed to reduce my emacs start-up time from six seconds to one, which ain’t too shabby. Read more →