Robert A. Uhl

Unix time to hit 1234567890

Computers generally track time as the number of units of time (e.g. second or milliseconds) since some date (called the epoch); Unix counts the seconds since 1 January 1970 at 00:00:00 GMT. Well, at 23:31:30 on 13 February 2009 it will be 1,234,567,890 since the epoch. Yeah, I’m just a bit of a geek … Read more →

Apache, SELinux and CGI scripts

Tonight I upgraded to Fedora 10, which was relatively less painful than such upgrades have been in the past. One big problem, though, was getting Blosxom working. Try as I might, I kept on getting errors in /var/log/httpd/error_log stating Permission denied: exec of '/var/www/blosxom/bin/blog' failed. After lots of playing around, I discovered the solution: just run chcon -t httpd_sys_script_exec_t /var/www/blosxom/bin/blog. It turns out the in the latest Fedora SELinux has pretty fine-grained controls and needs to be told that it’s okay to execute CGI scripts. Read more →

Where’s the Semantic Web?

A few days ago I was driving along when a great song from my college years came on the radio (One Headlight by the Wallflowers). It occurred to me that it’d be really great to know the next time they’re in town. But then I realised that there’s no way for me to be alerted of the fact. Sure, I could sign up for their mailing list. But then I’d get announcements of records, of shows in other cities and states, perhaps the lead singer’s thoughts on politics or art or some other subject. 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 →

Return of the Lisp machine

Arto Bendiken notes that Lively Kernel is a reinvention of the Lisp Machine concept. For those who’ve not heard of them, Lisp Machines were really great pieces of work: at a time when command-lines and static software which crashed were the norm, they provided full GUIs, dynamic software and elegant error recovery. Perhaps Lively Kernel can bring some of that coolness into the 21st century. Computing really is about continually reinventing the wheel. Read more →

No dashes or spaces

We’ve all seen those credit-card-entry (and other) forms which ask us to leave out dashes, spaces and other punctuations when entering our numbers. Never mind that credit card numbers are naturally written with spaces, that Social Security numbers use dashes and that phone numbers have a number of different representations involving dashes, parentheses, spaces, periods and plus signs. The really ridiculous thing is that removing extraneous punctuation is dead-simple for a computer to do. Read more →

Lisp for the web

Adam Petersen demonstrates how to create a simple polling web app in Common Lisp — in around 70 lines of code! It’s not perfect (as one reddit comment noted, he needs to escape his strings for HTML), but it’s a pretty cool demonstration of how Lisp can serve as a rapid development platform. Lisp isn’t perfect, but it’s better than the alternatives out there. Read more →

Metcalfe’s Law is wrong

Metcalfe’s Law states that the value of a network of size n is proportional to n2. This follows from a simple observation: that the number of possible connections for each user in a network is n - 1; and since there are n users, then the total number of connections is n × (n - 1), which is roughly n2. This all seems reasonable and makes sense. But it’s wrong. It begs one simple question: Metcalfe’s Law assumes that each connection is equally worthwhile. 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 →

Windows games that crash Vista but work on Linux

We all know that Windows Vista breaks a lot of things. What’s surprising is that it breaks Windows software so badly that running that same software under Linux and Wine (a free Windows implementation) can be a better choice. Here’s a list of games which run better under Linux+Wine than under Vista. Microsoft sure have some egg on their face with this one. Read more →

Navigator mortuus est

Today AOL has killed Netscape Navigator. I remember using Mosaic on Solaris and Macs, and when Navigator came out I thought it was just a ripoff of Mosaic (which is was — in fact, IIRC the first version was called Mosaic …). But then it became extremely popular, setting several records (including buggiest software ever). The best thing Netscape ever did was free its code, giving us Firefox. The rest is … well, it happened: that’s the best which can be said for it. 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 →