Older blog entries for shlomif (starting at number 177)

Rosh Hashana

Today is Rosh Hashana - the Jewish beginning of the new year. So, yesterday's evening we had a family dinner with the extended family. Unfortunately, many people were abroad, and another sub-family were visiting their in-laws. Still , it was very fun.

I also greeted several people in the IRC and in the Linux-IL mailing list. I truly hope it would be a good new year with few harms and disappointments for everybody benevolent out there.

DVD Playing (cont.)

I downloaded and installed the new version of Ogle from the RPMs/SRPMs I found at its site. Now it plays the DVD I tried very nicely, with a much better interface than mplayer (or kmplayer for that matter) and with DVD menus and all. Very nice.

That put aside it seems that mplayer has a bug in relocating the position within the film. (it also happens for MPEG films).


I did some work on Subversion: placed svn-push inside the Subversion repository, created a branch for it for future developments, and clarified some things in the mailing list and the IRC.

Then I took a break and started writing the Haskell for Perl Programmers presentation. wli helped a little after I queried him on the IRC. There are still things I'd like to add there, but it's quite OK as it is.

HTML Blues

While working on the presentation, I decided that I want to emulate the <table border="1"> look with CSS. I asked it on the web-design list and someone answere me with a recipe. I was able to customize it to emulate Konqueror's look and feel. But then when I tried it on the slides, it did not work.

After a long investigation, I finallly found that if I remove the DOCTYPE everything works again. Then I found out that the problem was that my selector was table.border1 > tr > td instead of table.border1 > tbody > tr > td. After that was applied it was solved in both Konqueror and Mozilla.

Then someone I consulted with on the IRC reported that it does not work in Internet Explorer. After some investigation, it was discovered that MSIE does not support the child selector (parent_tag > child_tag) at all. Aaaarrggghhhh! So, now either I make a non-IE compatible site, or switch to table.border1 td (which may cause problems in the future), or apply class elements to all the <td> tags inside. I can also kidnap Bill Gates and threaten to kill him unless Microsoft makes MSIE more standards compliant and makes newer versions of it available for free download, but that would be too sadistic for my reputation.

MSIE Die Die Die!!!!

New Computer

My father and I set up the new computer. A lot of data was lost and some of the backups turned out to be faulty, but we manage. The new computer is a spiffy Pentium 4, 2.4 GHz with a GeForce 4 video card, and two 80 GB hard-disks with 8 MB Cache. Thus, everything is much faster than before.

I had to finetune the Linux system, as well as install stuff there and on the Windows system. Now everything feels more or less right.

Linux Meeting at the Cafe

Ori drove me there, and we arrived rather early. Later on, other people arrived. All in all, it was a nice meeting and the only thing that disturbed me was that many of the other attendents were smoking. I ordered a chicken salad, which was good, but not too large, so I also ordered a sandwich. I ended up paying 70 shekels for it which is quite a lot.

We talked a lot about KDE, GNOME, Hebrew support, PHP and Perl, MLdonkey and many other topics.

Yesterday's Lecture

I remembered to announce the lecture only on Saturday, and so the attendance may have been smaller than the optimal. Still, quite a few people came, and I lectured and demonstrated the Gimp to them. I was asked that in the next lecture, I'll demonstrate more programming-stuff like Perl, PDL, etc. and hopefully I'll prepare something in this direction.


I took the bike for repairs. It took the repairman exactly one minute to make it fine, and he did not even charge money for it. Now I can bike again, and indeed did.

ALSA sound

On the new computer, I had some problems hearing sound. The sound seemed to be playing and all the volume controls were correct, but no sound was emitted. After consulting people on the IRC and a lot of frustration, I was finally able to solve it. What solved it was downloading the updated ALSA drivers from the Intel (the motherboard manufacturer) site, and compiling them.


I worked on getting the Freecell Solver integration with PySol working again. It did not work at first, and it took me some time to iron out the bugs in the development version of Freecell Solver that have caused it. I wanted to upgrade to the latest PySol, and so I had to compile the Python 2.3 RPM, and to upgrade Python.

One problem I encountered which took me a lot of time to resolve was that PySol was looking for the data in . instead of /usr/share/games/pysol/. Eventually, it turned out it was caused by a file I left there as part of a previous experiment. All in all, the bindings turned out to be fine, and there were different problems altogether.

I also worked on integrating svn-push into the Subversion repository. I searched for a way to build but not install svn-push, and eventually settled on adding my own buildonly meta-target and adding it to the configure.in as those targets that are built. I also re-indented the code (GNU indent seemed to get most of the job done). The code was not commited yet, because I'm waiting to see if people can suggest a better way to modify the build process.


It took me exactly 10 minutes to configure Kmail, subscribe to the Subversion developers' list and send a message with my patch there. Kudos to the Kmail team for such a nice product. My only problems with it is that when viewing a message, I cannot reply to it from the viewer, and have to go to the messages folders to do so; and that I cannot find how to sort messages by thread. But all in all, it's a very nice program.

DVD Playing

We bought a CD Encoder+DVD Drive for the computer. When playing "Bring it On", the DVD installed its own player on the Windows machine, which was not as nice as PowerDVD which came with the drive. I tried playing the DVD in Linux. Ogle crashed on me, and Xine refused to play it with some cryptic message. mplayer did work (after I found out it needs to be invoked with mplayer dvd://1/) and kmplayer gives it a half-decent but a bit buggy GUI.

15 Sep 2003 (updated 22 Sep 2003 at 05:10 UTC) »

Computer Woos (2)

It turns out the Windows hard drive got damaged as well, along with all the data that was present there. Now, we have to find if the new Linux hard-disk is OK, because it was present in the computer as well when the accident happened. It's not too critical because I only used it for a day and I have everything that was placed on it (except for a few IRC logs) backed up.


With my limited resources, there's not too much I can do. However, I did work on the version control systems comparison, and today was able to translate one chapter out of "Homesteading the Noosphere".

Upcoming Linux Events

There was a Haifux meeting today in which Shimon Panfil gave a lecture about Tcl/Tk. I wanted to come, but Ori Idan, who was supposed to give me rides there, could not go eventually, and I preferred not to telecomute by public transportation.

Tomorrow there's a Linux meeting at a cafe in "Yehuda Halevi" St. in Tel-Aviv, and I intend to come. Next, I give a lecture about the Gimp for the Tel-Aviv Linux Club on Sunday. And a week and a day from then, Aviram Jenik will give a lecture about Spam to Haifux.


I made some progress in "Programming Web Services with Perl". And I also listened to the stand-up version of the Cathedral and the Bazaar. The latter is very amusing.


I looked for an Advogato Subversion project and found it: Subversion. So I designated myself a contributor to it. Then, I noticed Ben Collins-Sussman was a member of it, so I certified him as Journeyer. That's it!

12 Sep 2003 (updated 12 Sep 2003 at 18:12 UTC) »

Computer Woos

My father bought a new hard disk for the Linux, and I picked it up on Wedensday. After I got home, I installed it, burned the first Mandrake 9.1 CD and installed it on it. The installation went pretty well, except for a glitch that the bootloader was installed despite the fact I did not want it to be installed. Plus, when I booted the computer it did not work.

Knoppix came to the rescue and I restored the old bootloader and copied the new kernel and initrd to my Windows partition. I rebooted, ran loadlin and started the new system. It worked. I then spent some time configuring it to my liking and restoring my data from a backup CD I made of the hard-disk.

I installed XFS there, and the hard-disk has an 8 MB cache, so everything felt very smooth. However, yesterday when I turned on my computer, it started burning inside, and would not boot. My father took it to repair and at midday he called me to inform that there was a short-circuit in the video card, and that the CPU, the motherboard and the video card are ruined. We'll have to buy a new computer. (which is a shame because the old computer worked very well until now).

So now I'm working on the WinXP laptop, and eagerly wait for the arrival of the new computer.


My bike's front wheel is not working now, the problem being probably with the brakes. I'll have to take it to repair after the weekend.

Version Control Comparison

I updated the version control comparison to include Monotone and added a few sections. I also fixed the CSS stylesheet a bit. Now it's working perfectly in Mozzila , but MSIE 6.0 still ignores the max-width property. I also converted to a slighly different XML format, which simpmlifies the DTD, and does not require defining a new tag for each version control system.


I wrote a utility titled svn-push that can be used to propagate changesets from one Subversion repository to the other a la BitKeeper's bk push command. I actually started writing it in Perl, and Chia-Ling Kao's helped me a bit there. It still did not work and exhibited a segfault which I could not tell why it occured and had difficulties debugging it.

So I converted it to C, and afterwards Ben Collins-Sussman and Mike Pilato helped me on the IRC to resolve the remaining problems. I finished writing it, and went out biking. I eventually wrote a patch to subversion that puts it in the contrib and builds it, because solving the dependencies is easier to do from within the Subversion tree.

I only checked that it worked for local file:///... URLs. There's still some work waiting there, but I'm waiting for my Linux system to be able to work on it.

Israeli Perl Mongers Meeting

There was a Perl meeting yesterday. After I arrived there, I helped Gabor shop for snacks and drinks. Then we mingled and had a good time chatting. Ran Eilam showed us a relatively large laptop he bought with 1600*1200 display, a GeForce 5 card, and a battery life cycle of 1.5 hours. It was pretty cool.

We then took a time for each to introduce himself. Some introductions sparked a few discussions. There was something about the banking system switching some internal systems to Perl. Then, Mikhael Goikhman lectured about Threads. The lecture sparked quite a lot of questions and discussions. It eventually lasted much more than was planned for it, but we still had a good time.

Afterwards, Gabor introduced Tcl for us Perl programmers. The introduction went very fast, with some comments from a visiting Tcl guru that came to the meeting especially. Then, I took a ride home with Offer Kaye, and we got to talk about computer devices for blind people.


I read a few chapters off "The House of Arden", and also reading "Writing Web Services with Perl", which I took from the perl mongers library. I also read David A. Wheeler's How to Evaluate Open Source Software article, which is quite good.

Objectivism and Neo-Tech

chalst - Neo-Tech is not a cult, albeit it may seem so under first impressions. Neo-Tech is in fact, an extension of Objectivism that also integrates such fields as Psychology or Business Management into one great integrated whole. Perhaps, its main step forward from traditional Objectivism is the fact that it recognizes that achieving bilogical immortality by technological means is a desirable goal. If you read the book of Ecclestias, you know that everything is meaningless because no matter what you do, and how good or bad you are, you will die eventually. Well, with biological immortality, everything becomes meaningful again.

BTW, you're the first person who have known Neo-Tech before that I encountered when telling people about it. When people ask for my philosophical/political orientation I usually say I'm an Objectivist because there's a greater chance of people knowing what I'm talking about. (albeit in Israel, sadly, it is small as well.)

In any case, what did you think of my article? (I presume you read it, because Neo-Tech was mentioned there.) BTW, it seems that the Neo-Tech material was pulled off the web a few days ago. I think it's a grave mistake on part of the Neo-Tech proprietors because it was a very useful resource, and you cannot do without a good web-presence nowadays. Maybe I'll write them about it.

Windows Bound

My Linux hard disk is causing more and more problems. So I found myself working more with Windows. I installed Cygwin on the desktop computer's Win98 system, but then the CPAN installation of Perl's LWP caused the computer to hang (twice). So I installed it on our Windows XP system, where everything went flawlessly. XP has the option of hiding all the taskbar icons, but I could not find a way to resize the taskbar to make it two rows high. Apparently, it crashes less often than Win98.

Version Control Comparison

I started writing a file in XML format that contained a comparison of several version control systems: CVS, Aegis, Arch, BitKeeper and Subversion. Then I wrote a perl script to translate it to HTML. My main problem in working on it was that my laptop's mouse-pad that was in the way of my hands to the keyboard, caused the cursor to jump. Then, I switched to working on Linux on the desktop computer where it was a better environment.

My code had some problems after I got it to run, but I solved it. I'm using XML::LibXML, perl's interface to libxml, which provides a great API for analyzing XML documents. It's much better than the tedious work involved in working with XML::Parser.

I then set out to write a DTD for the XML format I defined. I encountered two problems. The first was that I had several isomorphic tags and I had to write an identicla element definition for each one and enumerate them inside their container tag. I solved it by generating the DTD by another perl script.

The next problem I encountered was that I wanted the container to contain each at most one of each of the elements in any order. The good people at EF-Net's #perl channel helped me, and it turned out that it was not possible. So I settled for zero or one occurences of any of the tags. (it's the closest thing supported by the DTD definition).

In any case, I notified the Subversion mailing list and afterwards the Arch mailing list about the comparison and received a lot of useful input and corrections. It's great to know there are so many enthusiastic people out there.

"Objectivism and Open Source" Essay

Based on some input from people I sent a notification about the essay to, and some ideas of my own, I updated and revised "Objectivism and Open Source". Thanks to everybody who contributed input!


The bicycle turned out to be fine after all (after we filled a lot of air in the back wheel), so I went out biking the past few days. Yesterday, when I biked and stopped at the Yarkon Park to drink, I noticed some rabbits on a nearby patch of grass. There were two kids nearby who were trying to chase them. I approached them and asked them if the rabbits were theirs. They said yes and told me they ran away and that they tried to catch them.

I helped them in our attempts to catch the rabbits (an older, bigger one who was the father of the smaller one), but we were not successful. When I left, ten minutes later, the rabbits were still on the loose. One anecdote was that the son has escaped to a closed container, so I tried to scare him away by throwing things at him. One date which I threw at him was eventually eaten by him... ;-)

Bug in uniq on my system

shlomi:~# cat uniq-test.txt
shlomi:~# /usr/bin/uniq < uniq-test.txt

A bug isn't it? My system is Mandrake 9.1, and neither the uniq from RedHat 6.2 nor the latest from the GNU diffutils exhibits this problem. It broke one of my scripts and so I installed the latest uniq to my $HOME/bin directory.

Objectivism and Open Source Essay

I wrote an essay titled "Objectivism and Open Source" today. It aims to explain to Objectivists why open source is a Good Thing<tm>. Read and flame away!

Subversion Issue #854 Revisited

Apparently, I did not notice some comments in the issue in the Subversion bug-tracker, that said that the behaviour has changed, but still was not as expected. So, the bug was re-opened and I created a new fix, that checks if "svn revert ." is done on a newly added directory and throws an error if it does. Quite a trivial fix, but I also wrote a regression test to make sure this is what happens.

It was eventually applied with small fixes. One less bug before Subversion 1.0.

Larry McVoy Interview

I went to the BitKeeper homepage today to recall the name of the push command, and saw on its front page that Linux World conducted an interview with Larry McVoy. This was partially in response to a previous interview with Bruce Perens. I wonder how I could have missed it.

I searched the Perens interview for BitKeeper and read this part. Basically, Perens accuses McVoy of threatening him every time he meets him. McVoy denies these accusations in his interview. It's one's word against the other. I do know Larry McVoy has threatened several other people with ligitation online. And he does seem to me to be quite hot-headed. So I tend to believe Perens.

This all brings me back to my conclusion that reverting the BitKeeper license would be a good idea.. The reason the source code was hidden in the first place, was because some companies modified it to subvert BitKeeper and disable the OpenLogging facility. This is all very well, but I doubt a substantial number of them would have become paying customers.

With its current licensing scheme, BitKeeper would never become the state of the art. Never. While it is technically superior to any free software alternative (at least for now), hardly anyone dares touch it with a ten-foot pole because of its license. If its licensing change to something much saner, and its source code be revealed, it could, OTOH, eventually conquer the market and be distributed as part of major distributions. I don't know why McVoy does not realize that, but it is mainly his loss.

Vipe is back online

Vipe returned online this morning. After logging in, I discovered that some of my mail folders had bootloads of messages which I had to delete, and that the mail bounces caused the Mailman-based mailing lists to make me in "no mail" mode. So I had to cover them and change it back.

In any case, without vipe I felt that I was missing a rib, and am very happy that it's back online.

Getting MikMod to Play using Artsd

I wrestled a bit trying to find a solution to get the command line mikmod player to play using Artsd. I believed this was the case in Knoppix, but then discovered it plays there using OSS. After contemplating coding a libmikmod driver for Arts, I found an easier hackish solution:

artsdsp /usr/bin/mikmod -d 2

Smile! You're on camera!


I advanced a little in the Hebrew translation of ESR's "Homesteading the Noosphere". Other than that, after vipe returned, I've been looking at Subversion Issue 854. The instructions there for reproducing the bug worked flawlessly on my computer. So I closed the bug, and sent in a patch for a regression test.


I read a chapter or two from "The House of Arden". I also covered some chapters from "Apache: the Definitive Guide". Some of the later chapters were interesting but as a whole the book is quite disappointing.

Finally, I finished "The Art of Unix Programming". Now I'm looking for something else to read online.

Linux Events

On Friday there was the conference and installation party. I spent most of the time installing RedHat on a few computers. One installation was done through VMWare which gave some problems in installing the xpdf RPM. Other than that, a guy I tried to install a system for him, brought his computer there and we again failed to install it. Then he drove back home and brought his new computer, on which the installation went fine. (he also drove me back home).

Then there was a raffle, which I did not took part in and so did not earn anything, but it was fun to watch, especially as one name (of someone who wasn't there) came up three times.

On Sunday, I went to the Hertzlia Inter-Discplinary Center to hear a lecture about Mono (the open-source .NET implementation), and also was able to give a lecture about The Cathedral and the Bazaar series. We were about 10 people there.

Finally, on Monday, there was a coordination meeting for the Haifa Linux Club Welcome to Linux series, which I volunteered to be responsible for some of the tasks there. They rejected my suggestion to make a shorter "Linux in Action" series, claiming that the first lecture was about that already. I still think the W2L as it is, wastes too much of our time, while giving very little in return to the beginners.


This and that. I worked on implementing the Patsolve logic into Freecell Solver. It is working now, but does not give as good results as Patsolve has. I'll have to analyze the results to see if there's a bug.

I also worked on Devel::LineTrace - a Perl module to assign callbacks to lines in the code without modifying it. (for debugging purposes, like adding prints).

I also went over the CatB lecture and fixed typos. There were quite a few of them and two of which (one which I forgot) crept up during the lecture. :-)

Vipe is Disconnected

vipe.technion.ac.il is disconnected because it's lying in the Technion's dormitories network which was entirely disconnected to facilitate dealing with the worms attack. This means part of my homepage and the Haifa Linux Club homepage and mailing lists are inaccessible, and I cannot read my primary E-mail account. The Technion staff is now on vacation so it's not going to be fixed until Sunday.


I read a lot from "The Art of Unix Programming", as well as some chapters out of "The House of Arden". I also advanced a little in "Apache : The Definitive Guide". The latter seems a bit boring and technical to me, and I'm not entirely sure I need this information.

Haifux Meeting and Birthday Party

On Monday, I went to hear a Haifa Linux Club lecture about Real Time and Embedded in Linux given by Iftach Hyams. The lecture was very nice and there were many bursts of laugh throughout it. Afterwards, we went to a restaurant to celebrate Haifux' 4th birthday (which was incidentally ladypine's birthday as well)

Ori Idan (who drove me back to Hertzliya the last meeting) gave Meir Maor and me a ride to the restaurant. (the arrangement was that Ori had a car, Meir knew how to get there, and I neither). We arrived there, and I sat at one end of the table next to Ori and Jess. The food was good, and Jess told a lot of jokes throughout the dinner.

sun gave Jess, some other guy and me a ride home. The first part of the ride was full of jokes, but the second one held a serious discussion of Intellectual Property and whether "all software should be free".

I arrived at home at 1 A.M. and went to bed even later, but had a fun day.

Warcraft III

I finally discovered how I can finish a level I was stuck in. My problem was that the gameplay was fast, and when I switched it to slow it was doable. I did not finish it yet, but I'm getting there.

Movie: Pirates of the Carribean

I went to see the movie "Pirates of the Carribean: Curse of the Black Pearl" yesterday, along with my father and my sister. The movie was very entertaining and Action-paced. Highly recommended.


I worked on integrating Freecell Solver with Python using the Python bindings I wrote. It was quite straightforward as a basis for it was in the code and all I needed to do was adapt it to my new interface. The Python debugger was a lot of help in tracking some crashes. Now I have it working for most Freecell variants.

Upcoming Open Source Events

There's an installation party and conference tomorrow at John Bryce College in Tel Aviv which I'm going to attend as an installer. Afterwards, on Sunday, there's a lecture about Mono at the Inter-Disciplinary Center in Hertzliya. If there's time, I'll also give part of my lecture about CatB.


I read several chapters out of "Apache: The Definitive Guide", and chapter 3 of "The House of Arden". I also covered "Homesteading the Noosphere" in preparation of the lecture on Sunday.

Perl Meeting

Here's a report I wrote on the latest Israeli Perl Mongers, that took place on Thursday. My father drove me to the meeting, and at first I bought some Burekas in the nearby bakery. Then was the meeting. After the meeting Ronen Kfir drove me and Kfir Lavy home. Kfir and I chatted for a long time and ate supper at McDonalds. We discussed Linux and touched on many topics, including my projects.

Python Bindings

I've been toying up with the idea of integrating Freecell Solver into PySol. Since Freecell Solver is written in C, and PySol is a Python program, I had to create bindings for it. At first I started using SWIG. This created very C'ish APIs without much trace of a native language behaviour. Then I realized it does not handle arrays well. So I set out to write Python in the native bindings language. I consulted the Python tutorial, the Python extensions writing manual, and the people at the #python channel on FreeNode and eventually got things to work nicely enough.

I'm still a bit worried about memory leaks, but I suppose that Valgrind will help me detect if they exist.

Subversion Issue #1473

To further test my Repos->WC file copy code, I wrote a test that set up the svn:keywords property on the source file and then copied it. The result was nothing less than a segfault. So I filed an issue about it. The problem is that the translation is done without an entry existing in the .svn/entries file.

Ben Collins-Sussman and I discussed the best way to resolve it on IRC. Our conclusion was that we should probably create another post-process routine that will do the translation after the entry is created (which is already the case, just that the translation is done beforehand). However, Ben thought it was inelegant and so he wanted to consult the list.


I made some progress with "The Art of UNIX Programming". I also took the book "Apache : The Definitive Guide" from the Perl Mongers book pool and started reading it. I reached the beginning of the chapter on authentication.


Two days ago, when I biked, I noticed 1/3 of the way that a lot of air went out from the back wheel. So, I returned. I don't know what causes it, but I'll have to investigate, because I can't bike otherwise.

168 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!