Older blog entries for shlomif (starting at number 188)

18 Nov 2003 (updated 18 Nov 2003 at 20:38 UTC) »

Article at Perl.com

An Article I wrote to Perl.com was published yesterday. The article covers solving some types of puzzles with the LM-Solve framework. (which I authored). I did not mention I originally wrote it (which was some months ago) here because I did not want to ruin the element of surprise. I'd like to take the forum and thank two correpondants from Perl-IL who commented on an early draft of the article, and for Simon, the Perl.com editor, for instructing me how to do a thorough revamp of it, and for publishing it.

Maybe I should take the opportunity to clarify my opinion on Perl.com, because some people who read the "usabilty" of the Perl Online World for Newcomers misinterpreted it. I don't have a problem with perl.com as a site. It's a nice site, with interesting articles. I do have a problem that it is considered the homepage of Perl, because it is very much inappropriate for it. Recently, www.perl.org got a facelife, and regardless of its shortcomings, is already more suitable as a homepage for the Perl culture. So I suggest people to link to that as Perl and not to Perl.com.

15 Nov 2003 (updated 15 Nov 2003 at 21:05 UTC) »

Linux Day of Haifux

There was a Linux day this Wednesday organized by Haifux at the Technion. It involved an installation party, several instances of the Basic Use lecture, and a presentation about Instant Messaging tools for Linux.

I arrived at the morning with a ride given to me by Ofer Weisglass (who also drove me back from the the first "Why Linux" lecture this year). On the way, we talked about Linux and Open Source. I arrived there at about 10:15, and had to go soon afterwards to a class until 12:20. Afterwards, I bought me something small to eat, took a book out from the Dean Library, and went back there. There were plenty of installers there, and most places were occupied by installations in progress so I did not have much to do. I was able to see Orr giving the Basic Use lecture, but not much besides. I eventually volunteered to carry an extra screen from Alon's room to the hall in the Student house were the insta-party took place. The screen was quite heavy, and my hands have ached for a few days afterwards, but at least I did something useful.

Then Chinese Food was served and I ate to my stomach's content. And then I had a recitation to go to. After I returned, I was able to perform a few installations. One of them had to be carried out in a limited space, so we choose the minimal installation (that was still 3 GB). It was networked. Took about an hour net. I almost forgot to set up a swap space - I'm getting a bit rusty at these kind of things.

The next installation, was done on a computer without an Ethernet card and so was installed from the CDs. The installation took about an hour and a half on a P3 733 MHz computer with a fast CD-drive. (perhaps because of a slow hard-disk). While the packages were installed, I talked with the lady for which the system was installed, and told her about Linux, Unix and their philosophy and gave her some basic concepts. The installation of the updates was pre-empted after all the packages were installed, due to the late hour.

In the party I met (again, I think) Etzion's Girlfriend, who designed the covers for the CD. I heard her say something about the GIMP, and so approached her asking what she meant. She said she really liked it when she used it, and think it has a great potential. I told her I found it easier to use than Photoshop. Still, the CD covers were designed in Windows on Photoshop. (but I told her GIMP could run on Windows as well).

One of the installed computer came with a faulty CD-ROM drive and had to be rebooted a lot for the CD to boot. This was quite annoying. At the end of the evening, Emil (Kohn Dan) drove me home and we talked about the usual things (Linux, the Technion, etc.). I arrived home at about 12:30.

All in all, it was a very nice day, with the usual overwhelming feeling of insta-parties. There is an estimate that 40 installations were done.


I found the High-Speed digital systems course quite hard to understand and counter-intuitive for me. So I switched courses to "Introduction to Statistics" (of Industrial Eng.). The course seems OK so far: a lot of Probability theory, with exercises that are not too hard. (but require some research as I did not attend the previous classes)

Now, I'm studying Monday and Wednesday instead of Wednesday and Thursday.

kilmo is blogging again

kilmo is blogging again after the long time he's been in South America. It's great reading his diary after all this time. kilmo, welcome back!

TeX Problems (and their Solutions)

I tried to get the Hebrew fonts not to appear blurry when I convert them to PDF and view them using Acrobat Reader. So, I followed the instructions the kind people of the Haifux mailing list gave me and downloaded the latest IvriTeX RP. It did not work at first, and after I did something the Hebrew fonts did not appear at all.

Anxious to get it working (I had a homework to typeset and print), I started researching the source of the problem. It was a dvips problem and I played with the command lines it gave me until I found a command line argument to gsftopk that could achieve it. But I could not tell dvips to use it. Eventually, after a few failed attempts I was able to modify the file /usr/share/texmf/web2c/updmap.cfg and add the map of the culmus fonts of ivritex there. Then it worked like a charm and my documents even look nicer than before.

The error message I got was:

kpathsea: Running mktexpk --mfmode ljfour --bdpi 8000 --mag 1+0/8000 --dpi 
8000 rdavid
mktexpk: don't know how to create bitmap font for rdavid.
dvips: Font rdavid not found, characters will be left blank.

After I resolved the problem, the maintainer of the package told me that I have to install the updmap-something package in the same directory as it is needed for tetex version 1, and that will resolve the problem. (after I resolved it manually). But it was not mentioned in the README, which also said I should install a separate ivritex-Fonts package, which I was looking for, for a long time. But everything is good now.

Next thing on my agenda: PDF table-of-contents.

Mandrake 9.2

The Mandrake 9.2 ISO files are available to the public. I downloaded them yesterday, partly overnight, and today discovered that their md5sum don't match, and the file size are too long by about a 100 MB. Must be a wget -c problem.

rsync resolved the problem, but it took quite a long time to do so.


I read the recent interview with Linus Torvalds, which was quite nice and entertaining. I also read Paul Graham's Hackers and Painters which was also nice. As for paperware, I finished reading what I wanted out of "Writing Perl Modules for CPAN" and began reading "Extending and Embedding Perl". So far, this book has a complicated feel to it, as it covers the Perl 5 internal data-structures.


kilmo, thanks for the certification, and for the nice summary of the Linux Day. As for Computer Science vs. Software Engineering:

The Technion at the moment has a "Computer Science" department, and does not have a "Software Engineering" department. So, if you want to study programming, most people enroll either to CS, or to EE. From my impression, few people enroll to Computer Science to study about the theory behind Computer Science, and that exclusively. Normally, they would want to get a diploma that would qualify them as programmers, so they can later get better jobs or better pays. There are exceptions, naturally, but they are still the exception rather than the rule.

As for saying that CS is for Programming what Physics is for Civil Engineering, I'm not sure this statement is entirely correct. First of all, after reading "Hackers and Painters", I'm not sure Programmers can be labeled as "Software Engineers" so easily. Secondly, there is an entire theory of civil engineering, and many people research it. Ditto for Electrical Engineering. Civil Engineering uses only a small amount of the Theory of Physics, while the entire software body uses practically most computer science out there.

I know Dijkstra said that "Computer Science is no more about Computers than Astronomy is about Telescopes", and I agree that it is partially true. But I think we digress. I think that my claim that most Computer Science students did not came to the Technion to study the CS theory can be easily confirmed.

7 Nov 2003 (updated 25 Sep 2004 at 11:28 UTC) »


I tried to resolve Subversion issue #1093. My uneducated attempt at it received a complete depracation from C. Michael Pilato which followed with a discussion on how to best resolve it. The problem is that we need to efficiently trace the history of a file backwards, which can only be done in the repository level.

So, the final question is whether to perform each such lookup for every remote operation that need to do it (which would require changing the protocol in many places), or assigning a separate command to perform the lookup. The second option is simpler and would require fewer modifications, so we'll probably go with it.

Talk with Ya'El (Orr's ex-Roommate)

On the way to the Technion on a Thursday a week and a day ago, I met Ya'El, who is Orr's former roommate and someone who studied Game Theory with me. We talked when we were waiting for the Haifa local bus, and on the bus about various stuff. (details are in my private diary). But it was a fun talk and I enjoyed it a great deal. One thing she told me was that she did not take any programming courses except the required ones, because they were too much work. One would thing one would study Computer Science to become a programmer, but she was more interested in the theory.

I discovered something interesting about the buses that day. Even though, there's a previous inter-city bus that comes 45 minutes earlier, the bus from there to the Technion just leaves, and so I don't get to the Technion earlier. And using the other bus I get to the Technion at 10:20, which is in the nick of time. Oh well.

Transcribing Thermodynamics into LaTeX

My mom suggested that I transcribe the Thermodynamics material into the computer, so it will be more organized and that I'll review it further. So, I fired my favourite Hebrew LaTeX editor (he2) and started transcribing it. So far, I did two lectures out of three. In any case, it's progressing quite slowly because all the formulas slow me down considerably.

For your enjoyment, I give you a group of macros I wrote for one body of equations. Note that my code could still use a lot of modularization.

\newcommand{\osomething}[2]{\parens{1 #1 #2}} 

Telux Meeting

On Sunday we had a Telux meeting. Eddie Aronovich gave a nice intro to the advancements in RPC technology from RPC through CORBA to Web Services. One highlight from the lecture was that he prepared it on his laptop in Linux, and then discovered the screen had a problem there, so he had to switch it to Windows. So he converted the presentation from OpenOffice to PowerPoint. Then we told him OpenOffice was available for Windows... ;-).

But it was a lot of fun.

Israeli Perl Mongers Meeting

We met yesterday for the monthly meeting of the Israeli Perl Mongers. Before the meeting there was some food and a lot of interesting conversations with many people. There was someone there named Jason who came to Israel from Australia. When people asked him why he came to Israel, when all Israelis would prefer to be in Australia, he said it was more interesting here. ("May you live in interesting times"). We also discussed many of the books and other stuff.

Then came the lectures. Abraham Bernstein gave an overview of the things Tcl excel in. The lecture waThe lecture was very interesting. There was something there I did not understand about how to write an interpreter with Tcl. Then Gabor Szabo gave a brief overview of the Phalanx project which aimed to provide good test coverage for 100 of the most popular Perl modules. Afterwards, Ran Eilam gave a very entertaining and funny lecture about "Extreme Programming". He compared the common way that software houses manage themselves, which yield the "Big Ball of Mud" syndrome, and how Extreme Programming solves it.

A funny story that he told was that a manager once told the programmer to create a prototype of a software for a deadline in which he needed to demonstrate the software. So the programmer wrote something whose internals were lacking and gave it to the manager on schedule. After the manager returned from the meeting, the programmer asked him how did the software perform. "Great!" said the manager, "we need three more features by Monday".

During the break, I also talked with some people like Oded Resnik, and Eli Marmor. I took with me two books from the library: "Writing Perl Modules for CPAN" and "Extending and Embedding Perl".

The Neo-Tech FAQ

tk suggested to me that I read the Neo-Tech FAQ to gain a better perspective on Neo-Tech and understand why it is an "evil cult". Well, I was reluctant from reading it for a long time, but today decided to take Baz Luhrman's advice and "do one thing everyday that scares you". So I read the most recent version of the FAQ, which was pretty old (1996) that I found on Google Groups.

The FAQ is so ridiculous that it made me laugh a couple of times. I anticipated (from previous impressions of it) that it will try to attack mainly the Neo-Tech staff, while having little to say about the Neo-Tech wisdom, and I was right. Furthermore, most of the attacks on the Neo-Tech people were based on information or reports which I cannot easily assert, and most of the attacks on its wisdom quoted out-of-context snippets out of the Neo-Tech material, which can easily be refuted by someone with a better grasp of the Neo-Tech material. (and sometimes directly contradict other quotes, which state the opposite, plain and simple)

What killed me was the fact that it claimed Frank R. Wallace (the founder of Neo-Tech) advocated dishonesty because he said that in poker it was OK to cheat. (!) Seriously, Poker is very much about cheating as everybody know. Plus, the Neo-Tech Advantages state countless of times that dishonesty and lies are plain wrong and destructive. (except in Poker :-))

tk, if you think this poor excuse for criticism is good enough to invalidate the Neo-Tech Philosophy, then think again. If only, it made me more convinced that Neo-Tech is "The One True Way<tm>". And it certainly did not convince me that Neo-Tech is a cult or is Evil. Granted, Neo-Tech is huge in scope and takes some time to fully understand and integrate. But it is just an idea system, and a pretty darn good one.

In any case, I'm happy, because a huge stone was cast off my chest.

28 Oct 2003 (updated 28 Oct 2003 at 12:32 UTC) »


My first week started quite eventfully. After the day in which I had Thermodynamics, which went OK and in which I learned little new things, I went expectedly to the "Automata and Formal Languages" lecture. There, I discovered that "Set Theory and Logic" is a hard pre-requisite for the course. I talked with the lecturer during the break and he told me that he won't allow me to take the course. I asked him why the requisite was so important and he said that "You see, we have set theory all over the place". But I did not have a problem to understand what I saw in the first half of the lesson!

In any case, I cancelled the registration for this course and registered to a different course from the Electrical Engineering Department on the same day. ("Design of High-Speed Digital Systems") For it I'm sure I have the pre-requisites.

DVD Playing Trouble

I had a trouble playing DVDs. Ogle and mplayer have emitted the error ""Can't open file VIDEO_TS.IFO" and Google could not help me. I then tried playing a music CD, and mounting a filesystem, and neither of them worked. Then it hit me: the ide-scsi emulation! After I switched the device to /dev/scd0 (the SCSI device) everything worked fine again.

Am I lame or what?


I done a little translation of Homesteading the Noosphere, up to and including the end-note about the Fijian Village Chiefs. I also received some corrections about "Rub a dub-dub" which I happily applied.

Subversion and Win32 Guide

I received an E-mail from the guy from whom the guide was intended, telling me he failed to install Subversion once again. This time, he did do a step he did not do before, but he did not follow the guide exactly (and named a URL differently), so this may be a problem. He said he'll try again later, but meanwhile will use CVSNT for the current project.

grip woos

grip ripped at 4x speed, while my CD-ROM drive is 52x max. I posted a message to Linux-IL about it and Matan Ziv-Av replied with a good advice, that increased the speed to 10x. Still not maximum but better.

Welcome to Linux

I ended up preparing the slides for 3 out of 6 of the lectures that would be given in the Welcome to Linux series. Recently I was asked to prepare a version of them that would be viewable from the hard-disk. A quick script did the job, but it took me some time to debug it.

The first lecture was given yesterday by Ori Idan. The lecturing hall was full, many questions were asked, and Ori gave a good presentation. There were a few glitches in the lecture that KDE there got stuck, and so the lecture came out longer than agreed on. I came to the lecture with Ori, and went back with a guy who had to drive to Northern Tel Aviv, which was very convenient for me. He was a Linux newbie, and I told him a lot about what I'm doing right now, about CVS, about software patents and other things.

Perl Golf

The last three days I was heavily occupied with the PERT/Gantt chart conversion Perl Golf. The day before yesterday, I ended up with a 65-characters long solution, and yesterday I was able to optimize it twice, each time by one character. Right now, I'm stuck 6 characters before the currently best solutions, with no ideas on how to further optimize it. But I'm still not giving up.

GIMP Lecture at Telux

I gave a lecture about the GIMP on Sunday to the Tel Aviv Linux club. It went pretty well, but there were few people there (less than the previous lecture). Some things sparked a bit of discussion, like whether Graphic Artists can learn the GIMP Scripting or do they need something more foolproof.

After the lecture I talked to two guys. One of them was a system administrator in a high school who converted some of the server infrastructure there to Linux, and wanted to conduct an experiment to see if development could be taught there.

Quad-Pres Hacking

I released a new stable version of Quad-Pres, with some critical bug-fixes. The problem was that upload did not work, because of a leftover file which was revamped without proper modifications to the rest of the code. So, I added some tests and now have some items on my pressing to-do list.

Rub-a-dub-dub Translation

It's finished! Did not take too long at all, but maybe the article was just short. I have applied some corrections by going over the translated text. Now I'm looking for someone to go over the translation and copy-edit it.

Setting up ViewCVS for Subversion

I wanted to set up ViewCVS for the Subversion repository. So I read the install file of ViewCVS from the CVS, and followed it. The first problem I encountered was that the Python SWIG bindings of Subversion refused to install. I received a hint in response, which led me to a solution. (an explicit make install-swig-py-lib command)

Then I installed and configured the ViewCVS config files and they refused to work due to an unfound module error. Turns out the problem was that Apache did not pass the PYTHONPATH environment variable to the CGI scripts. After RTFMing, I found a solution: a simple "PassEnv" directive.

Then it worked, but I'm not sure that it traced files across copies. I may try Chia-Ling Kao's SVN::Web script later on.

Haifux Welcome-to-Linux Preparation Meeting

We held a meeting in preparation for the "Welcome to Linux" series. kilmo was there as he returned from abroad, and I was surprised to see him there. Here is the summary of the meeting which I took down.


Studies are beginning tomorrow. I have to get up early to catch the bus, which should arrive a while before the first lecture.

17 Oct 2003 (updated 25 Sep 2004 at 11:20 UTC) »


More Hacking. More tests, and finally a new stable version release. I branched and tagged version 0.10.0 only to discover I did not update the file list of the tests directory, so I released version 0.10.1 as well.

It seems Quad-Pres has disappeared from Freshmeat, possibly because vipe was down for a while. (I did not receive an E-mail about it, though). Eventually, I registered a project at BerliOS, and now it has a new homepage. So, now Freshmeat points at it and hopefully it would be safer there.

Version Control Systems

Added a few items and corrected some typos in the version control comparison. Also, I recommended Subversion in a recent discussion in webdesign-l, and someone posted a message that when he tried to install Subversion on Win32, it did not work for him.

To help him and others in the future, I installed Subversion myself on my Windows XP laptop, and documented the process. Et voila: a Subversion Win32 Installation Walkthrough. Share and enjoy!


I'm taking a break from translating "Homesteading the Noosphere" by translating the Joel on Software "Rub a Dub Dub" article (to Hebrew, of course. Like I know any other language besides that and English well enough.) Here's the site where I'll put intermediate copies of the translation.

Finally, I went over the slides of the GIMP Lecture in preparation for my lecture on Sunday. And on Monday there's a Haifux Welcome to Linux coordination meeting.


I went to see "Finding Nemo" the other day along with my father. The movie was nice, albeit not quite as much as "Monsters Inc.". At the end of the movie there was a very long list of credits, and my father joked that it would have taken less time to draw the movie pixel by pixel. In any case, the Graphics was great.


I finished reading "The House of Arden", which had a rather disappointing end. I also read Joel on Software's Unicode article. Not too much I did not know, but it was still a very amusing read.

Finally, I started reading "Ender's Game", and read two or three chapters. It's a bit strange so far.


I decided to backup my Linux system. Due to the fact I have an IDE CD Writer, I had to install ide-scsi. So I followed the instructions in the "Installing your ATAPI CDRW Drive in Linux" tutorial, which involved rebooting the computer (gasp! I thought in Linux we were never supposed to do that). Eventually, after the reboot and setting a parameter in loadlin, it worked on the first try, and I have a burned CD with some backups.


I worked on Quad-Pres the past two days. At first I added an option to set the encoding and language, on a per-presentation level and a per-page level. To make sure it works correctly, I wrote a test script for it. Eventually, I ended up with more lines of test code, than lines of added code, and the code worked at the first try my test suite had no bugs in it. The test suite involves a bash script that calls two Perl scripts. (%-) - it was the easiest way to do it).

Then when I fixed a bug (that the rendering process did not stop on the first WML error), I added a test for this as well.

Finally, I added a module to channel Getopt::Long and make sure it can use an array besides @ARGV. (a kludge, if you ask me, but that's life). And I added a unit test for this as well. After I got the test to work, I found out I had a bug in my code (!) because of it.

I'm quite happy with this "write tests as you write code" scheme. So far, it slowed me down a bit, but in the long run it gives way for more robust code.

10 Oct 2003 (updated 10 Oct 2003 at 18:43 UTC) »


I wrote some patches to the perlop and perlsyn Perl Man Pages, which I sumbitted to perl5-porters and there Michael Schwern and others have revised them. The two patches were applied to the bleadperl version.

I also copy-editted the translation of Open Source Software - A History that was done by Oren Maurer. Finally, I made some modifications to the Haifa Linux Club "Welcome to Linux" lectures that I'm responsible for. There may have been some other things, but I don't quite recall them.

Subversion Woos

I upgraded the Subversion at the stalker host, without first dumping the repository. That has put me into trouble, as nothing I tried to resotore the old homepage repository (which was changed since the last backup) worked. Eventually, I settled on using the few-days-old backup, checking out a working copy, and syncing the new working copy in, using a Perl script I wrote for the job. Now everything is up again.

Next time, I'll know to be more careful.

New Cellphone

My father decided that the entire family will switch their cellphones to Orange (GSM cellphones) to enjoy their intra-family calls discount. So, I now have a new cellphone. I still have to get used to it, and so far using it is a bit annoying.

One thing I noticed was that I could not enter Hebrew contact names longer than 5 or so characters. After calling the support, it turned out that we could only have it longer if the interface (and the names) were in English. So much for human engineering.

Orange Site

I had wanted to view the new cell-phone in the catalog so I tried to use the Orange site. With Konqueror it was dead on arrival, so I tried Mozilla. This worked better, but when I accessed the catalog page, I could not see anything displayed there.

I wrote an E-mail to the webmaster telling them that Mozilla was not supported. In reply, I got a message saying that the site is guaranteed to work only with Microsoft Internet Explorer 5.5 and above. I asked them if they plan to support Mozilla any time soon, and got a reply that they don't for reasons I found very interesting. Here's my reply:

> Dear Mr. Fish,
> I thank you again for your mail.
> I regret being so blunt but, no, we are not going to change our website in
> the near future. We have developed an amazing website,

"amazing"? By this do you mean full of non-portable bells and whistles, and other idiosyncracies? Sorry, but that's not an amazing web-site according to my book.

A good web-site is either simple and clean, or includes standard-compliant, portable embelishments. (which are usually not necessary).

Usability, low bandwidth, etc. is much more important than "amazingness" and I bet it's not very usable in MSIE either.

> that costs us a > lot of money to develop and maintain,

Why does it? Why should it? I maintain a few web-sites in my free time and I'm not getting paid to do so. If you keep your web-site clean and simple, it will cost less money to maintain and will also attract more visitors.

> and it is currently built exactly > according to our business needs.

I seriously doubt it is built according to anyone's business needs. Why do you need JavaScript to display the catalog of images? Why not simply include them in the HTML? If you look at popular international sites, you'll see that most of them are built with simple and clean HTML (sometimes without any trace of JavaScript).

> I can also say that although > technologically it might be possible to develop a version for Mozilla or > other browsers,

1. It is possible.

2. I'm not talking about a separate version for other browsers. I'm talking about one version > orange, and many other content providers, are investing > in the most common browser, it is currently not cost efficient to > develop versions for other browsers. >

It is cost efficient if you hire clueful developers. Look at my site:


(which links to other sites I made).

They all look perfectly fine in all modern browsers, including lynx (a minimalistic text browser). Why? Because I know what I'm doing and I know how to write good HTML.

First you tell me your site costs a lot of money to maintain, and then you tell me it is not cost efficient to support other browsers. Now, let me tell you this: if you keep your site clean and standards compliant, you can have it support all browsers and it will cost you much less money to maintain.


Shlomi Fish

1 Oct 2003 (updated 25 Sep 2004 at 11:15 UTC) »


IBM has recently bought Rational, the producers of Rational ClearCase, which is an SCM system competing with BitKeeper. Does it mean all IBM employees (including many Linux kernel hackers) are forbidden from using BitKeeper? ;-)

I suppose only Larry McVoy can tell. I talked about it on the IRC with some people and they said IBM is so large, that it can hardly be considered as one entity. Still, I'm not sure it is a separate entity as far as copyright law is concerned.


Various bits and pieces. I worked a bit on perl-begin, compiling it again after the move to the new computer. Then, I added some links to web-forums there. I also worked a bit on the Haskell for Perl Programmers lecture, adding stuff on arrays.

I worked on the Homesteading the Noosphere translation. I finished the chapter "Ownership Rights and Reputation Incentives", replaced my own translation with a corrected first chapter I received from someone else, and also went over the existing translation and corrected various stuff.

I also modified my homepage to include the interviews section, and placed Adrian Ettlinger's interview online. You probably know of it from the front-page article.

Haifux Lecture

Been to the latest Haifux lecture on Monday. Ron Artstein talked about Multi-lingual Typesetting. It was basically a coverage of the constraints that written languages imply on getting them typesetted. It was loads of fun and amusing.

179 older 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!