22 Nov 2003 shlomif   » (Master)

Job Tracker Revamp

I've decided to take some time and revamp the iglu.org.il Job Tracker. I first decided that since practically everything I had in mind was going to be different, I'd be better off starting from scratch. But, then I thought better of it, and started from the code I already have, and don't regret it. I already accomplished quite a bit and only been working on it for a couple of hours net.

Yesterday, I went to sleep at 23:00 because I tried to track a couple of bugs. One of them ended being an Apache mis-configuration. Apparently, when you use ScriptAlias the plaintext non-executable .css files are not served from some reason. Trying to solve it, required writing an ugly configuration code, with a regular alias, and then association of *.pl files with the cgi-script handler. But it works! ( I wish I would remember more of "Apache: The Definitive Guide", but I don't)

In any case, here are a few insights from the process:

  • At one time, we needed to add a posting date directive to tell when the job was posted. Someone volunteered to add it, and he created a workaround, that treated the "PostDate" field especially in the code. I still thought back then, that it was a good ad-hoc solution for a complex problem.

    When I did the change yesterday, I did it the right way, by designating the field in the fields' list with a few special directives, that were then treated by the code regardless of the field name. This took me exactly 5 minutes. Go figure! (this reminds me of what Joel Spolsky told about the Excel Drag&Drop Prototype).

  • Someone was unhappy with the jobs tracker before and suggested he would revamp it. I sent him the code, and he said that the first thing he'll do was convert it to Python. I told him he should rather not do it, because I don't know Python very well. So he told me that as an ex-Perl hacker, I wouldn't have any problem understanding his code. (I forgot to tell him that I would have a problem hacking his code).

    Anyway, with his attitude, I knew nothing would come out of it. Last I heard of him, he said his code was "close to be finished", but he then neglected working on it. And my code is working perfectly right now. (in Perl)

  • More recently, some other hacker I met, said a completed system he wrote in Python could be used as a replacement for what we have now. However, he turned out to be quite unresponsive, so I don't have access to the code now.


I read Paul Graham's Why Nerds are Unpopular article. It was quite a good read, but I got the central message right at the start, and then it continued chewing it. I also continued reading "Extending and Embedding Perl". It now covers the Perl 5 API, which has a lot of functions, and it is getting quite tedious. Nevertheless, it is probably a better reference and introduction than the Perl man pages on the subject.


In Statistics, we have to submit each three consecutive exercises in the following lesson. Since I joined late, I had to prepare all of them in one week. It was quite a lot of concentrated work, but I did it.

Other than that - it's fine. Thermodynamics seems quite easy so far and I understand almost everything. I hope this situation will last.

LM-Solve Article

I received a few comments for the LM-Solve article. Ran Eilam (my former boss at Cortext) commented that it was very well-written and that he understood everything. He did say that it raised many questions that will be addressed at the next meeting.

A certain correspondant also responded, that a pattern found in the code was discussed in the perl6-language mailing list, but also that there's a more efficient algorithm (which he sent to me). I acknowledged this was the case, but said that I didn't want to invest time thinking how to do it right when I wrote the code, and also that the original code was conceptually simpler.


My comments regarding Yapcom (the Perl Conference mangement software that Israel.PM is writing) sparked an interesting discussion between Gabor Szabo and I in its mailing list. I commented a bit about the Subversion repository organization. I also had trouble getting all the tests to succeed, and was able to solve it with some consulting. Eventually, a patch of mine was accepted there.

Bill Joy Interview

haruspex: I agree with what you say about the Bill Joy interview. He seems incredibly cynical and pessimstic. His comments about Linux are also strange:

Re-implementing what I designed in 1979 is not interesting to me personally. For kids who are 20 years younger than me, Linux is a great way to cut your teeth. It's a cultural phenomenon and a business phenomenon. Mac OS X is a rock-solid system that's beautifully designed. I much prefer it to Linux.

First of all, there has been much progress in Linux since what was the state of the art at 1979. Secondly, in a way Mac OS X benefits from the progress done by the Linux community. Most Linux programs can run on Mac OS X as well, just as much as they can run on other UNIXes. Hell, some UNIX programs were also made to run on Windows, so in a way Windows people benefit from them, too.

Thirdly, Linux still has some clear advantages over Mac OS X, and many features that are present in Linux are not present there. (and naturally, vice versa). Finally, if you want to compete with Microsoft and Windows, Mac OS X is not enough. You can't tell people that they need to buy a non-i386 computer just to run the alternative Operating System that they want. Linux can co-exist on the same x86 computer as Windows, which is not the case for Mac OS X.

I'm not the kind of guy who would immediately denounce Mac OS X, just because some of the GUI and the desktop there is not open source. Also, while being a big fan of the GNU extensions, I still accept other more minimalistic UNIXes. But saying "Mac OS X Rocks while Linux Sucks" is kind of like saying that "Windows XP Rocks while Windows 2000 Sucks". (or vice versa).

Latest blog entries     Older blog entries

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!