Older blog entries for shlomif (starting at number 211)

19 Jul 2004 (updated 19 Jul 2004 at 19:27 UTC) »

Installing GIMP 2.1.x

To keep up with GIMP development (also see below) I needed to install GIMP 2.1.x from the CVS Head. So far so good, only that it requires Gtk-2.4.x, while Mandrake 10.0 ships only with version 2.2.x of it. I decided that in order to not mess too much with my system, I'll install it (and all the other dependencies) in a separate /usr/local/apps/gtk-2.4.x prefix.

So I started downloading and compiling everything with the --prefix flag, but then run into a problem. When compiling gtk+ (after compiling its dependencies), I got:

/home/shlomi/Download/unpack/gui/gtk+-2.4.1/gdk/.libs/libgdk-x11-2.0.so: undefined reference to `g_unsetenv'
./.libs/libgtk-x11-2.0.so: undefined reference to `g_type_instance_get_private'
./.libs/libgtk-x11-2.0.so: undefined reference to `g_completion_complete_utf8'
./.libs/libgtk-x11-2.0.so: undefined reference to `g_param_spec_get_redirect_target'

Someone on the IRC told me that it was because it linked against an older version of glib. After some grepping the .la files, I found out that the atk .la file contained a reference to /usr/lib/glib. (the global un-upgraded glib).

Eventually I realized that I had to use the following script for compiling atk:

export PKG_CONFIG_PATH=/usr/local/apps/gtk-2.4.x/lib/pkgconfig/
export LD_LIBRARY_PATH=/usr/local/apps/gtk-2.4.x/lib:"$LD_LIBRARY_PATH"
LDFLAGS="-L/usr/local/apps/gtk-2.4.x/lib" ./configure --prefix=/usr/local/apps/gtk-2.4.x/

That solved the problem. Afterwards, I had to install some support libraries that GIMP required. I eventually opted to use --with-svgz=no (no gzip compression) for librsvg, because otherwise it required a bootload of dependencies.

Eventually everything was installed, GIMP was compiled fine, and I was able to continue hacking on it.

Gradient-Fu Patch

As the GIMP 2.1.x development started, integrating my gradient-fu patch was one of the first priorities. This patch, as you may remember, supplies the GIMP with PDB entries to manipulate gradients. So, early in the GIMP 2.1.x tree, Michael Natterer integrated the patch into the GIMP (with some cleanups and modifications to the API). Then, when I wanted to adapt a script I wrote to it a while back, I discovered it did not have functions to actually manage the gradients list (create, delete and rename gradients). So I wrote one, and Naterrer added it after some modification.

I also adapted my old "Rainbow Strips" gradients' demonstration script to the new API. I also performed some general cleanups to the otherwise amateurish Scheme code I wrote back then. (not knowing better). It was eventually ready, but I don't think it's in the Gimp CVS head yet.

My sister and UNIX

My sister Noa had some C-shell assignments in her homework as part of her "Introduction to Systems Programming" course. I helped her in it. While I did that I explained to her about using basics: wildcard expansion ("*" into all files), program return code, argument values, etc. I also demonstrated some bash paradigms to her, and kept tauting its superiority over csh.

Some time ago, a record was broken: both my sisters were at the working room, and both were working on the Linux system, while I did not and could not. Michal was playing the KDE game Kolor Lines on the desktop computer (where the Linux system is installed), while Noa was using a VNC connection for her homework from the laptop. Amazing!

Job Interviews

Having graduated from the Technion, I'm now looking for a job. I've sent my C.V. to job ads in newspapers, the Internet, etc. and renewed my availability in various human resources agencies. So far, I had 4 job interviews.

The first one was for the DIMES project, which is a project in Tel Aviv University, that aims to map the Internet, by volunteers installing clients on their computers, and using them to send information to the server which will concentrate them. I think the interview went pretty well, but they did not contact me since. (they had other candidates) Tel Aviv University is very convenient for me, as I was able to walk there from home.

The second one (that took place last week), was at a startup called DiskSites. They manufacture an embedded Linux box that caches files that are transported over remote-file-service protocols (like SMB) over a WAN connection, so there will be less latency. The interviewer talked with me a bit about my past and then asked me a few technical questions. I did pretty well at it.

Today, I had a second job interview there, with the CTO (if I recall correctly). He asked me about my professional past and wanted to learn some things about my personality. It also went pretty well, but since they probably have other candidates, I'm not sure I got the job. He told me that they will let me know what their final decision regarding my employment is, at most two weeks from now.

Then, I had a job testing application at a company called Flash Networks on Tuesday. The questions there were challenging, but I did well on the test. ( except for the last question which required some TCP/IP zen). An employee there called lately, when I wasn't available, but I don't know exactly when . I know it because I saw a sticky note my Mom wrote for it.

Due to the fact that there are still more people looking for jobs, than job openings, finding a job may take some time. I just have to be persistent and not give up.

(BTW, the DiskSites office is located at Azrieli Center right next door to Qlusters, which is a past workplace of several friends of mine - sometimes nicknamed "Clue-less" by them.)

Bike Incident

One day when I was biking, I stopped at my usual place next to the water fountain in the Yarkon Park. An Arab kid approached me, and kept requesting me if I could let him have a ride on my bike. I told him I was just drinking water and that then I'll go on. Still, he kept insisting. Then he asked me if I had a pump to fill the air in his bike's wheels. I did, so I helped him fill some air there.

While, I filled some air, he got on my bike (without receiving my permission), and rode it. I think he was too short for this bike, and he also rode on the lawns. But he eventually came back, thanked me and jokingly asked if we could switch bikes. This wouldn't have worked, naturally, as his bike was far too small for me.

Ahh! Kids these days...

In any case, my bike had a few other issues since then. First of all, I changed the tire of a wheel, because the previous one got veryworned out. Now, there's a problem that the pedals are jumping, and I have to take it to the bike fixer.

Installing Maypole

I was considering writing a better NNTP reader for the perl.org newsgroups/mailing lists. I asked for help on FreeNode's #perl channel, and was told that the Maypole framework can do a lot of the things I'm looking for. One can also write a NNTP driver to it, so it will read things out of NNTP. So I set up to install it. Well, easier said than done.

Typing install Maypole at the CPAN.pm prompt failed to do the job. Eventually, it turned out I had to install a suitable driver for the DBI (for SQLite or whatever), and to temper with libapreq to get Apache::Request (which I think I eventually installed from RPM). Eventually, all the modules were installed, but getting the sample application to run was also problematic. I had to configure Apache accordingly. Afterwards, it turned out I missed the part in the documentation where I had to put the templates, in the appropriate path, and without it, it refused to work..

Then I got it to work, but the site looked considerably uglier than the screenshots at the Perl.com article. Possibly tweaking the templates and the CSS stylesheets will make it look better.

Maypole has a whole slew of dependencies and I was afraid the perl.org admins won't be willing to host an application written with it. I e-mailed them, and they told me it was relatively OK, but that there were other tricky parts.

I did not yet get to writing the NNTP interface because I was busy in other things. Maybe I will, sometime.

Perl Zen

I never really understood what was the difference between the ".." and "..." Perl operators. So, one evening I set out to understand it. I read the perlop man page again, and consulted people on the IRC. It turns out that with .. both states can change at once, while with ... the true one needs to change by himself. I wrote an example to illustrate the difference, and sent it as a patch to perl5-porters. It was incorporated immediately, which made me disappointed.

Hebrew Common Errors List

I started preparing a list of common grammatical and syntactical errors in Hebrew. (the page is in Hebrew (naturally), sorry) After I finished some of them, I posted a message about it to the Hebrew translation mailing list, with a small rant saying that I was tired seeing errors like that times and again on Hebrew forums, which was why I wrote the article. Some reader of the translation list has Whatsupped the document, which caused an active discussion (if not flame-war). Some of the comments there were useful, but not too many. I think I'll continue working on the document, and hope it won't get whatsupped again, without me initiating it.

Gimp Gimpressionist Work

Gimpressionist is one of my favourite GIMP plug-ins. What it does is take a picture and paint it using a specified brush and other parameters. A few days ago, I noticed it did not have a usable GIMP Procedural Database entry - you could not even specify one of the pre-defined preset. So I set out to correct it and sent this patch. It was eventually applied by Michael Natterer.

As I did, I noticed that the gimpressionist code was very messy, and started to clean it up. I refactored it heavily (reminded me a lot of Joel Spolsky's Rub a Dub Dub article) and also fixed many bugs. Most of my changes were incoroporated into the GIMP CVS by Michael Natterer or Sven Neumann. Eventually, they saw that I was consistent enough, and gave me a CVS account.

So now I can incorporate things on my own. There is a certain modified version of gimpressionist available (of before I applied my modifications), by Bill Skaggs that has some interesting ideas. I'd like to look into doing something similar starting from the current codebase.

As a long term goal, I thought that instead of generating a bitmap, that it could generate an SVG ("SVGimpressionst"), with one component for each stroke. Skaggs liked the idea quite a bit, but it's just long term.

Technion Graduation Ceremony

My father, my mother, my sister and I attended the Technion graduation ceremony. It was scheduled at the exact time of the Israeli Perl Mongers meeting and so I was not able to attend. Instead, I went to see the ceremony.

Before the ceremony began, I met Eran there, who returned my "Programming Perl" book which he borrowed. We talked a bit, and it turned out he graduated with an average of 85%-86%, which was only slightly better than mine. I expected his average to be considerably higher than mine. He left before the ceremony started, because he did not want to attend it.

The ceremony was split into two parts: the Technion-wide ceremony, and the ceremonies of each department. The Technion-wide ceremony started by the Academic March of the various deans in their black graduation suits (a few collar colours were missing though). It was followed by speeches by various people. One of them told quite a few old jokes (and not very well). There were also some performances by Technion students of three songs ("Take a Wife and Build a Home for Her" by Shalom Hanokh, "In My Life" by the Beatles and "A New Beginning" by Yehuda Poliker). I like these songs and the performances were good, so it was quite nice.

What was stressed was that the Technion governmental budget has been heavily decreased, which placed its future in jeopardy. A part I really liked was that one of professors said, that although only some of the students were cum laude students ("excelling" students in Hebrew), due to the Technion academic requirements, all graduating studnets were excellent ones. I could not agree more, but I still think there are many unnecessary frustrations in Technion studying, that can be eliminated, without lowering the academic level. Another thing that happened, was that the Summa Cum Laude students were awarded the degrees before the rest.

Then came the department ceremony. The department's dean speech was amusing with some nice jokes. (like "I know you are anxious to receive your degree, and I realize the only thing that delays that is me speaking here"). Then started the long process of giving the degrees: first to the Summa Cum Laude students, then to the Cum Laude ones, and finally to the other students.

When I was giving my degree, the dean asked me what I was doing now. So I told him: "Looking for a job, and working on Open Source software". :-)

I recognized a few students I knew, which was nice. As the ceremony progressed, my father started jokingly shooting the first names of the students who received the degrees, to cheer them. That was quite silly of him, and he knew it. Eran's name was given, somewhat after me, but he naturally, wasn't there to receive the degree.

We returned home, taking the road behind Mt. Carmel. (to avoid the traffic jams from the rest of the graduates). On the way back, we stopped to eat McDonalds' at Yoqne'am. We arrived home quite late.

Perl.org.il Variable Naming/Tabs vs. Spaces/Editor war etc.

Check this thread on the Israeli Perl Mongers mailing list for an amusing and long thread that discusses editing conventions. (variable naming, code style, editing features, etc.) It's hard to summarize and has many amusing parts so just read on.

Subversion's get_locations() Patch

The Subversion get_locations() patch monolith was applied into the Subversion trunk (after some rework) by Peter Lundblad. I'm happy it finally was, because I invested quite a lot of work into it.

Telux Lecture

I gave a lecture in Telux which was a re-run of my Haifux' Autoconf/Automake/Libtool presentation. Before the lecture, Eran called to inform me he had an interview in my area, and would like to meet. I told him I was going to give a presentation and invited him to hear it. He had some problems in getting there, but eventually attended it.

As far as I could tell the lecture went quite well. A few questions were asked and answered, and I was able to give some interesting demonstrations. (which were quite missing from the early one). Among the things I learned was that there was no strdup() function in the ANSI C89 standard, and only in C99 and in most UNIXes. This explains Autoconf has a macro to check for it.

After the lecture Eran and I went to Kanyon Ramat Aviv to grab a byte. On the way, while we were eating and afterwards, I told him about the history of UNIX (AT&T UNIX, the BSDs, System V's, GNU, Linux, etc.) and other things. Then we went to meet his sister, and as she was in Tel Aviv, but not familiar with the geography, we walked all the way to the Train Station (a very long walk, where I decided to escort Eran, even though my home was in the opposite direction), after which we had to walk somewhat more, and to enter her car on the road. I instructed them how to drop me at home, and to get to the Haifa highway.

It was nice meeting Eran again, and the lecture was also a fun event.

C++ quirks

My sister has to prepare a C++ assignment for her homework. I instructed her how to do it, using what is left of my quite rusty C++ knowledge. One thing we tried was to use qsort() with giving as a callback an instance of a template function. This worked perfectly in g++ 3.3.2 on Linux, but Visual C++ 6.0 gave some weird compilation error, which we could not understand. One guy on the IRC (FreeNode's #c channel) just instructed us to use a newer compiler. It's weird that there is this limitation, even in this version. It also worked fine in a newer version of DevStudio.

Eventually, my sister resorted to working on it on Linux, using VNC. The assignment needs to work on Solaris with gcc, so it isn't required to make sure it runs nicely on older versions of DevStudio.

Perl Zen (2)

Yesterday, I attended a FreeNode #perl discussion where someone (calling himself simcop2388) was trying to figure out why his Perl code was failing. It was generating some kind of regular expression to parse Assembler code, and Perl indicated there was an error in the regex. The error reported was of an extraneous ")" character right at the end.

To find out what the problem was, I wrote a perl Module, that overloaded the strings constants, by putting them inside classes with an overloaded "." (= string concatenation) operator. I logged all the places where it concatenated two strings with the right string ending with ")", to STDERR.

After a while, I detected where it happened. The offending code looked something like this:

my $string = "(";
foreach (@elements)
    $string .= myfunc($_)."|";
$string .= ")";

Now, chop will remove the last character, but if there are no @elements, then it will remove the beginning "(" and we get an extraneous ")". A more correct way, is to either collect all the strings in an array, and use join, or to use $string =~ s/|$//;.

After that, the error was corrected. I experienced some other random errors, because I continued to use the module (which caused some random string escaping problems), but after I removed it everything worked fine.

Anyway, simcop2388 was so impressed from what I did that he eventually said: "rindolf, you are a fucking god." (rindolf being my IRC nick). I received many compliments in my life, but it was the first time I was labelled a god (and a f**king one as such...).

Review of the Gtk+ 2.4.x File Chooser

I wrote a rant^H^H^H^H review of the Gtk+ 2.4.x file chooser and planned to post it here as well as on my site. However, after I've shown what I intended to post here to the good people at #gimp, I received some valuable input including a reference to its informal specification. So I'm still relative unhappy with its usability and "intuitiveness", but will have to revise my report in accordance with the new things I've learned. So, stay tuned.


Certified lewing as Master for his work in Ximian, and naturally for creating the super-important Tux the Penguin image. ;-) Certified neo as Master for his work on the GIMP. Ditto for carol to Journeyer, and mitch to Master. I certified vidar as Journeyer for his work on gimpressionist and gimp in general.

I think I'm a good Advogato citizen in the fact that I certified more people than people certified me. Have you certified an Advogato personality, today? ;-)


Advogato is back again! Finally... Well, I have one really old entry that was prepared but not posted, and another one which I started preparing and have not posted yet. I guess I'll post the older one, and wait a few days before I post the new one. I actually thought of temporarily putting them on my homepage. Now there's no need.

Note that this entry is dated 27 May, 2004. So all caveats apply.


The department's secretary finished dealing with my degree and informed me to contact the student's center. There I was informed that I still needed to return a magnetic button to the faculty. So on one day, I took the bus to the Technion and returned the button. Then, I was informed that everything is OK, and then an approval of the degree will be sent in a few days.

It arrived in the mail a few days ago. I graduated from the Technion with an average of 84.6 (higher than what was on my grades' list), and it was said there that it is "with honours". So I am finally a Technion Graduate.

Clock Skew

Two of the computers: my desktop computer which is dual boot Linux/Windows and the Win98 laptop, encountered a one month ahead clock-skew. From late April to late May. To fix it, I wrote a Perl script to scan my home directory, and modify the files's access time and modification time to their appropriate date, using the utime command. (which I learned about from good people on the IRC).

For the KMail mailboxes I had to write a different script that would convert the dates in the messages to their appropriate dates. I consulted the #perl guys further on this to learn about the format of maildir mailboxes. After that, everything worked fine.

Nvidia Driver

The recent version of the Nvidia driver, which I tried to compile barked on me saying it was unable to compile it. To understand what was wrong, I unpacked the package, delved into the source, and tried to figure out why it refused to compile against the source tree.

Eventually, I discovered that by setting the SYSSRC environment variable to /usr/src/linux, I could make it detect the kernel source tree there, and build itself. This took me a long time, however, and the kernel source tree was located in the standard place. This really shows that it is high time the Nvidia drivers were GPLed.

Subversion: BDB 4.0 vs. BDB 4.2

I discovered that Subversion on my local workstation still used Berkeley DB 4.0 instead of Berkeley DB 4.2. To fix it I had to fully mess up with the ./configure flags of the depenedencies to get it to use BDB 4.2 instead. But I was able to eventually.

After I did it, I tried to process the repositories of stalker with my local copy of subversion. It did not work. Someone at #svn told me that it could be because of a different libc or whatever. "Berkeley DB compatibility is subject to planetary arrangment.".

Israel.PM Meeting

The meeting occured a long time ago, and since then I forgot a few things. I recall it was a hot day, and that we mingled outside the building. We collected money to buy snacks, and were dismayed to discover that the shop we bought the drinks in moved to a different location, and we had to settle with the water fountain inside.

Pinkhas Nisanov gave an interesting presentation about TRIZ - the theory of inventive problem solving. I could not quite understand how to actually use it, but it ended with the subset of the 40 basic principiles for contradiction resolution, which were pretty interesting. Pinkhas brought with him two guests from the Israeli TRIZ association, which left after his presentation.

Then Gaal Yahas gave a presentation about using Perl as an interaction language in a Java environment. He described a commercial system written in Java for helping to manage Internet equipment, and showed how he used Perl to parse and process Java code, generate an equivalent Perl code (with accessors and all), and then use it to perform queries at run-time. There was also some XML involved there, in the queries and reports. It was pretty interesting.

I was able to lend the "Design of Everyday Things" book to Yuval Kogman, and also to take a book: "Design and Analysis of Algorithms". I started reading the latter, but decided I was not interested in reading it and so just left it on my desk, and will return it the next meeting.

Telux Meeting

There was a meeting of the Tel Aviv Linux Club about two weeks ago. Mike Almogy gave a presentation about Web Hosting. The presentation was interesting but a bit unfocused. The main problem was that there were many technical glitches throughout the lecture. First of all, he was unable to connect his laptop, then we had to call the building's supervisors to log in into the computer for us. Finally, after the break, the computer was locked with a password and we could not use it again. This all happened because Eddie was away.

I was supposed to get a username and password there, but unfortunately, I couldn't reach Eddie in time. Hopefully next times would be better.

iglu.org.il Upgrade

iglu.org.il was upgraded, from RedHat 6.2 (!) to Debian Stable about two weeks ago. The upgrade itself was done on Friday, and on Saturday, the machine responded. I was able to login as root and create an account for myself, but then the password was changed. To get the password, I sent the old one to sun encrypted with his GPG Public Key. He sent me an encrypted message back with the new password.

After I got the password, I was able to restore my home directory, as well as restore accounts for some people who contacted me. Finally, and most importantly, I restored the web server. This involved quite a lot of work, as Debian is incompatible with RedHat as far as the httpd configuration is concerned. I had to start with the old configuration and gradually convert it to the new one.

What gave me trouble was the fact that I used a few CPAN modules in an application I wrote for the server. I tried to use the perl CPAN.pm module, but it turned out that outgoing connections were blocked. Someone found one of the modules (CGI::Application) in the Debian Packages pool, and I was able to install it using apt-get. But then I discovered it was an old version of the module, while I was using a newer feature. So I installed the new version of the modules I needed on the script's local directory, (after scping and copying them - %-)), and then it worked.


stalker.iguide.co.il experienced some hardware problems, but was restored a few days ago. It then turned out all the binaries I compiled there could not run because they complained on an incompatible libc version. So I had to recompile everything (Berkeley DB 4.2, Apache+libapr, neon and Subversion).

I had a few problems with running the programs after everything was ready. Strangely enough, they were resolved after a few recompilations. Then, however, I found out that the old repositories could still be accessed by the new configuration there, which was nice.

Subversion Hacktivity

I've been doing some Subversion bug-squashing lately. In Issue #1771 where paths with identical prefix of components were trimmed by the display of the diff command, I first wrote a shell script to fix the problem, and then wrote a regression test, and a fix, based on what was suggested in the issue. The patch was eventually applied.

In Issue #1851, I investigated the cause a bit and added a comment there. I also wrote a fix to Issue #1814, which was not applied yet. I also added a comment to issue 1043, claiming it is invalid. Again, there wasn't too much activity about it.

Perl Quiz of the Week

I've been heavily involved with the resurrected Perl Quiz of the Week lately. I've written solution for the two latest regular quizzes. Plus, I contributed an expert quiz. It turned out the latter was an NP-complete problem.

I also sent out another expert quiz suggestion to MJD, which may be submitted some time later, and have an idea for another one.

Long time no blogging... teh, teh. Oh well, here's what I have to say today.

Social Gatherings

There was a Haifa Linux Club lecture a while ago about Ingo Molnar's O(1) scheduler. I got a ride there with Ori Idan. On the way there we ran into a traffic jam and so we were late. The lecture was very nice and interesting, and I think I sort of understood how the O(1) scheduler works. I found out someone was driving back to Tel-Aviv, but his car was full and I did not really know these people, so I decided to go back with Ori (who dropped me only on Hertzelia) as well. Ori and I talked with each other on both ways on some interesting subjects. (too numerous to mention).

Then there was a Tel-Aviv Linux Club meeting. It was about Apache 2. Eddie Aronovich talked at first about "Why Apache?" and then described how to configure it. I expected the lecture to be about the advantages of Apache 2 over Apache 1.x, but this was not the case. In any case, Eddie is a good lecturer and we certainly enjoyed it, and had some discussions in the middle about Apache, IIS, and other stuff. The time of day of this lecture sparked a lively discussion on Linux-IL in which I bashed the long Hi-Tech work-day that is so prelevant.

Helping my sister with UNIX

My sister, Noa, now takes the Technion "Introduction to System Programming" course in which they are required to test their exercises on a UNIX system (a Solaris box to be exact). To help her get along with it, I tried to teach her some UNIX shell, vi and ncftp basics. She did not took my advice to prepare everything on UNIX from the start, and instead did the exercise with MS DevStudio. But naturally she then had to test it on the UNIX system.

So I guided her through that as well. What made matters more complicated was that FTP and SSH access to the designated host is blocked by the Technion firewall and we had to login and transfer files through an intermediate host. I tried my best that instead of telling her the commands, I'll tell her what needs to be done and so she'll have to recall the right commands herself. I wasn't entirely successful.

I don't think she's fully independant now either, but hopefully she'll get better in time.


I passed Statistics with a score of 57%, which is just above the passing grade of 55%. I'm happy this is behind me. Then I saw that the Thermodynamics grade did not enter the system. After some arrangements with the lecturer, it happened, but quite late.

Then, I had to manage my way through some telephone and fax red-tape to become applicable for the degree (which I hope I can get). Now, it is on the waiting queue to be processed, and the secretary told me to contact her a few days from now. Hopefully, I'll get my degree soon.

Subversion Hacking

Pheew... what past few days. First of all, I continued workin on the patch, after there was some silence about its specification. Working on the operation over WebDAV functionality was very time consuming and involved writing quite a lot of code. At one point I found myself in need of recording the HTTP conversation, and having been unhappy with what tcpdump gave, I used Ethereal, which is a great tool and was just what was needed. This helped me resolve the bug, but gdb was also of help in other places.

I also wrote more tests to test the functionality of the added product. While testing, I ran into a nasty gdb bug, which strangely enough was worse in gdb 6.1 than in gdb 6.0. Apparently printing some addresses or variables produced random output while the program run was halted. Hopefully, I'll be able to reproduce it with the final version of the patch.

Writing the bindings for the custom Subversion protocol was relatively easier, because the protocol was simpler, and was not XML-based. After I was done, it turned out the conventions of the callback were inconsistent with the rest of Subversion. So I redefined the specification to be more so, and had to revamp the code somewhat to accomodate for the change. The new conventions actually made the task simpler, but since the code for the previous spec was already written, I just removed parts of it.

Now it's time for the patch to be reviewed. While one developer reviewed some relevant parts of it, and another commented on what appeared in the log. It was not reviewed entirely. I also have some items on the patch' TODO list which I'd like to ask people about.

A recurring theme, was that I was perhaps not as independant as one can hope and kept bugging people on the IRC. I'll try to be more independant next time. Another issue is that people did not like the fact that I would create a branch for working on the patch on the central Subversion repository. Thus, I used working copy diffs, which were "versioned" according to their patches filenames. I have about 29 such patches on my hard disk so far, and also wrote some supporting scripts.

Now I'm going to faint...


I finished reading Julian Jaynes' "The Origin of Consciousness In the Breakdown of the Bicameral Mind". It was very interesting. Now, I started reading "Feeling Good" again, and now see a lot of things I missed or did not read in the first place (can't tell because I don't recall them).


My payment for one of the O'ReillyNet has entered my account. So, I wrote and mailed a check for my payment for my account on stalker.iguide.co.il to nyh. Afterwards, he was glad to help me, and enlarged my quota. I got the Subversion service back online by compiling and installing everything in my home-directory, and restoring the repositories from their dumps.

Then a problem emerged. There was a hard-disk hardware problem on stalker, it went down for a while, and afterwards most of the contents of the disk were restored (including my files), but now we have less space, until the disk is replaced.

Powerout and its effects on KDE

I noticed that after the computer is shut down while X and KDE are running, many of the KDE customizations get lost. My solution was to restore the kdeglobals file from its backup copy. I now keep a copy of this working file at hand for safe-keeping in that directory. And I have no idea why it happens.


While I was working on a presentation with Quad-Pres, I noticed that it always prepares the "Hard-Disk HTML" version of the lecture after every "quadp render". It is supposed to be triggered only by a "-a" flag. The problem was in a local copy that experienced some heavy refactoring lately.

Today, I fixed it in my local copy. There was a small mixup that it occured in the 0.10.x branch and not in the repository trunk, which took me some time to figure out. (the trunk's code looked fine).


That's it for today. Well, this is what happens when you don't write an entry for about three weeks. Next time I'll try to write more often.

Passover Seder

My extended family held a Passover Seder last Monday. It was very nice, and it featured that in the second part of it my cousin Ronen and his wife came to visit. (he and his wife are now staying in Seatlle where he works). He said that his work demands long hours, and he works in a company that does all kinds of things with computer games.

Hike with Dad

My father and I decided to go outdoors at one day of the Passover vacation. We drove all the way to the Apolonia site in Hertzlia, and nearly lost our way there, only to find out it got closed shortly afterwards. So we drove back home and this time really lost our way (there were no signs there), but managed to get back home. We went to the field north of the neighbourhood. There were many blooming flowers there ("Kahvanim" and "Hartzioth" and others which I did not know by name). We also noticed the horses farm that was established there. One time I've been there a horse nearly ran over me, which made me unwilling to return. We also visited the Shomronite graves there. So, it was very nice.

Perl Meeting

We held a Perl meeting at April 1st. I wrote a report of it on the Perl Mongers Wiki.

Registering to Yahoo Messenger

The guy I teach Perl too, only has a Yahoo Messenger and MSN Messenger accounts for IM. So I had to get an account on one of these. I tried to do so for both, but with no avail. Eventually I succeeded in making Yahoo work. The steps I took were:

1. Vainly trying to configure it in gaim.
2. Reading the Gaim FAQ, and realizing that I need a newer version of Gaim.
3. Downloading the SRPM of the new version of Gaim.
4. Trying to install the depedencies, and discovering that they were moved to a different place.
5. Reconfiguring the Mandrake sources (which made it download the hdlist.cz all over again.)
6. Downloading the dependencies.
7. Compiling the SRPM.
8. Installing the RPM.
9. Successfully loginning in to Yahoo Messenger!.

Now allow me to faint...


My RMS-Lint article that I published on 1 April, got slashdotted after I submitted it there. This caused the iglu.org.il server to become unresponsive. At first to every protocol, but after a day or so, only to HTTP. (ssh was fine). After a fellow administrator restarted the web-server, everything worked fine again.

I guess I shouldn't try to slashdot an Israeli resource like that again.


I finished reading "The qmail Handbook" and wrote a review of it to the Israel.PM Wiki. It seems like I was given the first edition while there's already a second one.

Now I started reading the book "The Origin of Consciousness in the Breakdown of the Bicamarel Mind" by Julian Jaynes, a book I have wanted to read for a long time.

I'm now at half of the book, and it's very interesting so far. Mind blowing, even.


I was finally able to enable unregistered users to submit news in www.iglu.org.il. This had been a factor that decreased the site's popularity in the past after the switch from the Zope and Squishdot framework which allowed that. Now, there's a minor problem that no topics appear in the topics drop-down, but I haven't figured out how to enable this. Still, it's still functional.


Not too much. In Subversion, I started tackling an efficient tracing of the past revision URL from a peg URL and revision. I got halted in the middle because I did not know how to design the appropriate protocol over Subversion's variant of WebDAV/DeltaV. After a lot of reading and consultation, I was able to deduce something on my own, but afterwards C. Michael Pilato gave a specification for a different API handler that he'd like to see implemented.

So, now I'm on the rebound waiting for some Subversion officials to what exactly should be done.

Otherwise, I spent some time yesterday, cleaning up my Dmoz.org categories. It was time consuming, but now I have very few pending links there.

Google and the Google Directory

Google seemed to have lowered the profile of the Google directory. For once, it isn't linked to from the front page, or from a search results page. The web-sites that are searched now also don't contain the directory's description or links to the category where it appears in.

It does appear in the More Google options page, but this is relatively out of the way. This is a step backwards because I actually liked the descriptions and the integration with the directory. Besides that, the Directory is still heavily out of date, and was not synchronized with dmoz.org in a long while.

Gilbo'a March

The Saturday before the last, my father and I attended the Gilbo'a March. He wook me up early, we drove and there and took the short 6 km route. Dad came there with sandals and kept getting stones into his shoes. He also slowed me down quite a bit, and I had to wait for him a lot. As far as food was concerned, I ate a few apples, a snack, and a hot dog after the March. I don't remember my father eating anything at all.

Anyway, we had a good time. The scenery was beautiful and it was fun walking outdoors. I took the book "The qmail Handbook" with me for the ride and read it on the way there and back.

Random Computer Problems

When trying to use KAddressbook, I noticed that my distribution lists disappeared. Turns out it was a change of format, which I had to fix manually. Berkeley dbxml caused me more problems, with some obscure exceptions being thrown by the C++ code. After contacting a support person of Sleepy Cat, I found out it happened because I was using Xerces-C 2.5.x instead of 2.4.x. Downgrading Xerces-C solved this problem.

When upgrading some of my Mandrake packages, I noticed that upon invocation of some scanner-related code, the process started to consume all CPU and print some kind of message. This even happened during boot time sometimes. I filed a bug report and found out that the problem can be solved by replacing the faulty sane-backends package with its older version (of the Mandrake release). I did it and now everything works fine.

When trying to help Eran, I tried to install the ADSL connectivity as a PPPoE straight to the computer, without the router in between. I was not successful, and eventually, decided to revert it. Upon boot, my networking was left in a sub-optimal state: there wasn't a /sbin/route route to the Internet and the eth0 Ethernet card was enabled. After a lot of head-scratching , I was able to solve the problem by removing the S11internet startup script. This is a script that starts the Internet connectivity, was enabled by the Mandrake control center, and was kept there, after I tried to revert the problem.

I tried to use drakfont to uninstall several fonts using the command line --uninstall and it did not work. Nothing happened. I filed a bug report to it and eventually was able to fix it with a small patch that took me quite a long time to write. (also available at the bug report).

rpmdrake and MandrakeUpdate converted to using gtk2, so now the buttons are in different locations in the message boxes. Thanks to the GNOME HIG (= Horrible Interface Guidelines), I pressed the wrong buttons, but now I simply have to take the time to think for a while about that. Wretched GNOME developers.

I had a problem with Yahoogrooups that I was a member of a mailing list , but could not access the web files. I tried many things, but they did not work. After reading the usage instructions, I was able to be registered to the web services.

Finally, now that I'm using KHTML 3.2.x it seems there are some new bugs in it. For example, DocBook TOC's are displayed with vertical spaces and a use.perl.org journal is not displayed correctly. Hopefully, I'll find some time to isolate these problems and report them to the KDE bugzilla. Will wonders ever cease?


I took the two second chance tests - in "Introduction to Thermodyanmics and Statistical Physics" and in "Statistics". I did not felt very confident about the Thermodynamics test (it was pretty hard), but eventually I got a final score of 78%. (Yay!)

The Statistics test did not go too well. There were many difficult questions there and several things that I did not know how to answer. I'll wait for the grade and see how I fare.


A couple of days ago, I downloaded a song at a speed of 40 KBps during its entire download. It was finished in a second, and it was not corrupted!

17 Mar 2004 (updated 25 Sep 2004 at 13:06 UTC) »

Solving the smb mount problem

I had a problem with my Mandrake installation that after upgrading to Mandrake 9.2, I could not mount SMB partitions with the mount command. I tried to look at the source of the mount command, but the util-linux package is very hard to build with debug flags. (I could not figure how to do it within my time frame).

But strace came to the rescue and I was able to find out it was looking for a /sbin/mount.smbfs program. Since I only had /sbin/mount.smbfs2 I symlinked to it, and then everything worked properly.

Installing dbxml

One day I set out on trying to install Berkeley dbxml. Problem is it had several dependencies: Berkeley DB with the C++ bindings, Apache's Xerces, and Pathan, an XPath library for Xerces. Compiling Berkeley DB with the C++ bindings went very smoothly (I just had to tweak my configuration script a bit). I was also able to compile Xerces as an RPM from its tar.gz.

Then I set out to install Pathan. I tried to compile the .src.rpm but I encountered two problems. The first was a compilation problem that was only encountered on gcc 3.3.x (which I have). I was able to resolve it based on the description in that bug report. Then, I encountered a missing header file. After a long time of head-banging, I realized I had to set up an env var to the path of Xerces' source, instead of its binary installation. After I did it, everything worked.

After Pathan was installed (which took several hours all in all), I compiled dbxml, which went very flawlessly, and nice. Did not have time to experience with it yet, but I may need to find a way to use it from within a scripting language of some sort, because I'm not fond of using C++ for this.

What I did do was play with the Perl XML::XPath CPAN module. I got the hang of XPath through it, but of course, the queries did not run very quickly as it's a pure Perl module.

Upgrading to Mandrake 10.0

I upgraded to Mandrake 10.0. The upgrade went pretty OK, albeit it is highly possible the CDs were not burned well. Then came the usual slew of upgrade problems.

First thing was that xmms kept crashing when trying to play a song. I found out the problem was that xmms-arts was not installed at all, and so had to install it. After I did (version 0.7.0) everything worked well. 0.7.0 seems more solid than 0.6.0 which was buggy as hell and forced me to downgrade to 0.4.0.

Then I realized I had no Internet. Apparently, the Ethernet driver configuration got lost and I had to fix it using a quick visit to the Mandrake Control Center.

Afterwards, I found out KMail was crashing and I could not read the mail. I had no idea why, until I looked at the rpms list and found out that version 3.1.x of KMail was still installed. I removed it and installed KMail 3.2.x instead. The problem was probably that kmail 3.1.x belonged to kdenetwork and kmail 3.2.x to kdepim.

Then, kmail informed me that it was now using $HOME/.Mail instead of $HOME/Mail and had to move all the directories. I instructed it to do so, but then I saw that it displayed none of my existing folders. I panicked ("all my mail was lost"), but then remembered to check ~/.Mail. What I found there was that there was a ~/.Mail/Mail directory there, with all my original files. (stupid KMail!!). So I moved all the files manually to ~/.Mail/ and then everything worked fine.

One thing I noticed was that suddenly all my fonts became smaller. It may have to do with the Sans font becoming smaller, for some reason. I changed the fonts manually in kmail. gvim itself displayed the fonts in a horrid font. After consulting the good guys at FreeNode's #vim channel, I found out that I had to do a set guifont=Bitstream\ Vera\ Sans\ Mono\ 12 (with backslashes before ths spaces) instead of a set guifont="Bitstream Vera Sans Mono 12" (surrounded by double quotation marks) which worked fine previously. Don't ask me why, but it works.

The came the GIMP Compilation problem. I tried to compile gimp from cvs, but could not because of the following error: << Can't locate object method "path" via package "Request" at /usr/share/autoconf/Autom4te/C4che.pm line 69, <GEN1> line 111. >>. After I searched google for it (which was a bit hard because it does not accept quotation marks inside.), I realized that I had to delete the autom4te.cache directory and then everything worked. Afterwards, during the linking stage I had to resymlink some shared libraries because gimp was looking for their canonical unversioned filenames.

The last problem I encountered was that Samba did not send Hebrew filenames to my Win98 laptop. I looked at the smb.conf man page, but could not find anything. So I logged on to the channel #linux.il at EF-Net, where someone told me I needed to set the "unix charset" directive (and from my understanding the "dos charset" directive as well). This caused everything to work again. I also deleted the old directives that were relevant only to Samba 2.x.

Just another typical upgrade, only this time more eventful.

Perl Meeting

We had an Israeli Perl Mongers meeting last Thursday. Here is my report of it as I wrote in the Israeli Perl Mongers Wiki.

Telux Meeting

Last Sunday we had a Tel Aviv Linux Club meeting. Ohad Ben-Cohen gave a very nice lecture about Securing Linux. I learned through it about some common exploits and about some ways to better secure your Linux system. (which I am a bit reluctant to implement on my system).

One thing that disturbed us was that the lecture was prepared in PowerPoint 2000, instead of in a cross-platform solution like OpenOffice. Lecturers should know better than that. And besides, the PowerPoint 2000 format has a security problem of containing the Ethernet address of the computer in which it was last edited. So the shoe-maker has no shoes.


After playing a bit with the GIMP, I discovered a GIMP bug. Apparently, it also exists in GIMP 1.2.0, and is quite annoying.


I finished reading "The Design of Everyday Things" and wrote a review of it. All in all it's a very good book: very entertaining and very important.

Now I started reading "The qmail Handbook", which I took from the book giveaway of the last YAPC. Having read the first chapter of the introduction, I was impressed with qmail's feature-set and design. The second chapter with the installation instructions left with the feeling that Dan Bernstein wished to make it hard on his users. Clearly his belief that "There are two kinds of interfaces: good interfaces and user interfaces" is showing. As a result of it and its license, qmail is a mess to install. But I'll read on, because I need to administer a qmail installation and may need to administer further ones in the future.


I've been studying a lot lately for my upcoming Thermodynamics exam. I finally got the hang of Ideal gas (Fermions or Bosons) in the classical limit, and Fermion Gas and Boson Gas in the quantum limit. With the help of someone on the IRC, I understood something else about it which disturbed me.

Telux Meeting

We had a Tel Aviv Linux Club meeting the Sunday before the last on the "Open Source development model and how non-programmers can contribute" given by Ori Idan and Shoshanah Forbes. The lecture was very nice and was finished quite early which gave us a lot of time to chat. (I was also able to return buying a soda to someone whom I lended money for a soda can from). Can't recall exactly what I talked about but it was fun.


I've been to YAPC::Israel::2004 some time ago. I woke up early in the morning to catch my ride with Thomas Maier. We drove to Central Tel Aviv to pick up Ran Eilam. Ran was a little late, but he arrived at the end. Then we drove to the Interdisciplinary Center in Herzliya, where we got to the designated location. There we helped prepare the bags for the participants, and their tags. It took quite a while, but was quite fun.

Then came the introducory talks and the lightning talks. I enjoyed them a lot, and one of them was my own that went very well. Next came the longer presentations. Ran Eilam's presentation about the Aspect module was very nice, and introduced some Aspect-oriented-programming voodoo. Marth Greenberg's "System Monitoring with Perl" was quite informative and interesting.

Next I attended Yuval Kogman's "Making your objects smell funny" presentation where he introduced some cool AUTOLOAD tricks. Afterwards I had to give my presentation about the LM-Solve module, but there was very little attendance in the hall. (3 people to be exact) I gave it anyway and finished up in due half the time, and was still able to catch half of Dov Grobgeld's presentation about the Perl/Gtk2 module. (I felt that my own presentation did not go too well).

Afterwards I attended Mikhael Goikhman's "Artificial Intelligence and Perl" which was a bit tedious. Then came the book giveaway's in which I was given a book about qmail as a present.

Then came the Speakers' Dinners and BOFs. It was at the Seven Stars Mall, in a coffee shop called English cake. There was a show for children nearby and all in all I did not feel very well. I called my father to pick me up from there. While he took the time to arrive, I went to the key-signing. The problem was that I was the only one who brought my key fingerprint from home and no-one else seemed to do so. So I figure out that I'm not going to sign the keys of the other people. :-(

Disk on Key

My father upgraded his USB disk-on-key and gave me his old one. So I tried to get it to work with Linux. After trying to figure out why the appropriate SCSI disk could not be mounted with a simple mount command despite the fact it was present in the SCSI listing under /proc, I finally realized I did not have the SCSI disk module compiled. After compiling it in the kernel 2.6.x tree and installing it, the problem was resolved.

I was able to mount the disk and place files on it and everything now works. Hallelujah!

Sodipodi's Font Problem

Sodipodi had a problem that whenever text was typed, or the font dialog invoked, it would crash. It started happening only after I installed a large number of fonts. I reported the bug to their mailing list, but it did not get me very far. After a long while, I discovered that inkscape, which is a Sodipodi fork did not have this problem. Then I read an E-mail in its mailing list that said that someone else had this problem and fixed it.

The patch he supplied in the problem report fixed the problem for me as well, and Lauris Kaplinsky (the Sodipodi developer) applied it to the CVS version. All's well that ends well.

Gobliiins on Dosbox

I'm now playing Gobliiins on Dosbox - it's a lot of fun, and I'm making a lot of progress.

New Wiki for Perl-Begin

Having been displeased with Chiq-Chaq for the wiki implementation, I've been looking for a different wiki. I've tried installing TWiki, but its installation could not be carried out by a mere mortal, especially if I don't have root. PerlJam on FreeNode's #perl suggested PmWiki. I've tried it out and found very easy to install and with a nice syntax.

So, I set it up on BerliOS, and converted all the old content to the new wiki (in one evening), and now the new wiki is set up and filled with the original content.

Israel.PM Meeting

The recent Israeli Perl Mongers meeting went very nicely. First of all, I had an opportunity to do a lot of Chit-Chat there, which is something I like a lot. We talked a bit about WWW::Form, Perl in Israeli Banks (some banks don't wish people to know they are using Perl, because most people don't know what it is), Cobol and Java as the new Cobol, Mail::Audit vs. Procmail, Spelling errors and Microsoft Office features to correct them, and Microsoft Office in general (95, 97, 2000, XP).

Then came a lightning talk by Jason Elbaum. The first thing I noticed was that he had a strange accent. I guess I'm not very used to hearing Australian Accents. He gave a lecture about making XML-TV listings out of Israeli television listings on the Internet. The lecture was very interesting.

Afterwards, I took the stage and gave the Template Toolkit presentation (in preparation with the YAPC one). It went quite well, but after it, Ran told me I should have focused on one part more and create more suspense. I'll keep that in mind for the YAPC. One question I received was how compatible was my solution with laymen, who don't know squat about programming. I answered that the philosophy of the Template Toolkit (and Perl in general) is that you and your co-workers should know what you are doing. I previously encountered this mentality in talks I had with several PHP users.

After that, Gabor took the stage and lectured about HTML, CGI, CGI::Application and HTML::Template. The lecture was very interesting and instructive and I enjoyed it a lot despite the fact it was quite long. I learned some things there: "<form>" without arguments in the HTML leads to the same URL, a bit more about CGI::Application, etc. We learned that the first language Larry Wall designed had its code embedded in text, but luckily he came to his senses afterwards, and did not implement Perl this way.

Afterwards, most of the people there decided to go to the Bar and I took a ride back home with Ronen Kfir. I forgot my coat there, but when I got home, I called Gabor and he let me talk to Ran who took the coat with him. Eventually, I was able to set up a time to take it a few days ago. My father drove me to his home in Northern Tel Aviv, and I took the coat, while being able to meet his wife and see his baby. (but not much besides)

Hamakor Meeting

We held the annual meeting of Hamakor members, a week or two ago. I was one of the first to arrive, but was very soon followed by many other people from Haifa and Tel-Aviv. I got to do a lot of chat with people I know which was very nice. The meat of the meeting was:

  1. A presentation by gby about what was done in the past year of Hamakor. (current status)
  2. Short introductions by Hamakor members who wished to be elected.
  3. Elections for the new board and comptrollers committee.

I was first nominated for the board, but then moved my nomination to the comptroller committee, and in my introduction asked people not to vote for me because I did not think I was very suitable. I indeed wasn't voted, but I hope to find other ways in which I can get involved without being an official.

New Homepage URL

I changed my homepage URL from t2.technion.ac.il/~shlomif/ to http://shlomif.il.eu.org/, thanks to the kind help of the il.eu.org hostmasters. The new domain gave me some trouble so far. Hopefully, it will be resolved in the near future.


I did a lot of work on the Solving site. A lot of revamp and more revamp, new content, some graphics, some CSS tweaks, etc. I asked for critique from the webdesign-l mailing list and received some very useful input, which I also applied.

Solving now stresses a completely different paradigm: instead of trying to implement distributism in the government, I simply propose that individuals form competing leaderships, or support them, to make sure that people don't take the elected leadership for granted.

I also did a lot of work on the Better-SCM site. With contributions from other people, I added Visual SourceSafe and CM Synergy, and perhaps other systems into the comparison there. I plan to put all the source in an online Subversion repository, which will make contributions easier.

One thing that annoys me about Better-SCM is that people keep bugging me about darcs.

Vocabulary Builder

I'm looking for a vocabulary builder with a certain behaviour. This post to linux-elitists explains what the program I want has. I have yet to receive a satisfying answer. Meanwhile, the discussion there diverted to discuss whether Debian was indeed the Elitists distribution, and whether Debianists are simply too full of it. I am to blame for this. ;-).


I certified miguel as Master due to his work on GNOME. I also see that mulix is blogging in Advogato, again. Welcome back, Muli!

12 Feb 2004 (updated 25 Sep 2004 at 12:55 UTC) »

Aarrggh! My Hebrew has turned into Question Marks

I edited a Hebrew HTML file with kedit, but forgot to set the encoding appropriately. The Hebrew was edited fine. However, when I closed it, I realized (after some experimentation) that the Hebrew characters have all turned to question marks. The actual ASCII question mark letter.

I ended up losing the entire document. What the hell? Fury... fury... fury.

To prevent it once and for all, I added this to my .bashrc:

function kedit
    LC_CTYPE=he_IL.UTF-8 /usr/bin/kedit $*

The reason I don't use an i18n'ed locale by default is because it causes my fonts to become uglier. How lame is that? <sigh />

DocBook continued

Well, Bob Stayton helped me and instruced me the how to modify to the code of the DocBook/XSLT itemizedlist handler to make it propagate the role attribute as a class. Now, it works and I'm happy. Still I think it's a huge mis-feature that role is not propagated for any element.

Version Control Article

My Version control article now has many more comments. Many of them were in the vain of trying to protect CVS and why it should still be used. I think this is not true, and new projects should not start with CVS. I expect CVS to be used in years to come, but be considered hugely deprecated just as RCS and SCCS are still used today, but are also deprecated.

It was referenced on OSNews.com (courtesy of Eugenia Loli-Quero who also contributed to the Better-SCM site and comparison), where there are more comments, and it also hit Whatsup in this feature in Hebrew. There it seems to form a discussion of the Linux Kernel Development Model, why it requires BitKeeper, and whether it's a good thing.

As a result, or just out of word of mouth, I received a great deal of E-mails about the Better-SCM site lately. Someone even sent an addition to put in Visual SourceSafe and CM Synergy to the comparison. (which I bounced because it wasn't a patch to the XML file). I have modified the pages a bit since then. Next, I plan to put its source on a public Subversion repository so people can contribute more easily.

I also started sending a Newsletter about Better-SCM to all the people who contacted me about it. ("Cathedral and Bazaar"-style) It worked pretty nicely so far and I received a lot of useful input. Someone, however, wished to be unsubscribed from it, and suggested I ask before I add someone to the Newsletter. I have to think about it a little, but think I'll go with unsubscribe on demand, given that most people are not very responsive.

Finally, there's now a new mailing list - better-scm-discuss. Several people have joined now, and there was some active discussion. That's good.


I managed to do quite a bit of work on Perl-Begin. I moved its source to a Subversion repository at opensvn.csie.org (which offers a very discreet and unintrusive service, albeit sometimes the connectivity seems slow), and then added a lot of content and changed the CSS somewhat (made it more modular and nicer). Finally, I created a newsletter for it as well, and sent some announcements to the people who contacted me about the site. One of them replied with some useful suggestions. :-)

In any case, I contacted ask and the rest of the beginners workers about contributing to learn.perl.org. Eventually, I found out that perl.org had a hardware failure and so work on learn.perl.org was stalled. What I did do was write a "learn/" section to www.perl.org, which will take some time until it is proof-read, and integrated into the main site. What I did there was simply link to the appropriate places on learn.perl.org and perl-begin.

I'm glad I could find some time to do a lot of really productive work. I missed hacking, and hacking on web-sites, while not being as challenging as hacking on code, is still fun and rewarding.


Check this message of Hackers-IL for a post I made to Hackers-IL in regards to the new and annoying Yahoo Groups limitations. (Hackers-IL is hosted there). There are three possibilities: accept the Status Quo, pay Yahoo Groups for getting a primum service, or move to our own service.

We decided that being hackers, the last option would be best. The problem is that several people have resources at their disposal, but none has the time (except me). So, I went out and contacted sun, one of the beak.hamakor.org.il's admins to host the hackers.org.il domain there. He told us we should send a description of what Hackers-IL is all about to the appropriate list and he'll see if everything can be arranged.

I wrote a charter, which was criticized as being too long to be effective and Arik Baratz wrote a shorter one, which was still very good. I ended up revising both charters and putting them online. We decided we are going to use the shorter charter for contacting the beak admins and for further purposes like that, and the more verbose one for putting on the future site.

The discussion was pretty long, and eventually we debated if it was off-topic or whatever. We reached a conclusion that it was just a "meta" discussion, which was a necessary evil, but that it was still annoying. This was towards the end when everything stabilized, so it just closed the discussion.

Yesterday, I sent the mini-charter in its final form to the appropriate list, with some explanations on what we need in the present and in the future.

Mozilla's Firefox

I'm glad the Mozilla people changed the name of their browser so it won't clash with the Firebird database. I also like the new name. It is almost certainly based on the Biblical story where Samson sets fire to the tails of 400 foxes and drives them to the Philistines camp to throw it into chaos and destruction. There's a nice symbolism with trying to do the same with MSIE, but I don't know how many of the target audience know the Old Testament well enough to realize that.

Still, the name is very cool, even without recalling the story. Of course, I have a feeling that it might start a new trend: Fire+[Animal]. Firecat. Firedog. Firedove. Firebear. Firepenguin. Etc. All these names are very cool, but one will have a hard time distinguishing between them. But who is John Galt?

How Good are my Technion Grades?

I posted a post to the Joel on Software forum about my Technion grades. This seemed to be a mis-calculation as many people took the opportunity to criticize me, claim I was no-good or lazy, etc. They obviously haven't been to the Technion...

Here is the creme de la creme of the discussion by someone calling himself "Caliban Tiresias Darklock":

Shlomi, just a bit of constructive criticism here... and this *is* supposed to
be constructive...
 You come across as childish, inexperienced, and belligerent. Nothing you have
 written interests me. What little sticks out in my mind is not positive. You
 sniff at the college for not having a standards-compliant web page, as if
 anyone really cares. You sneer at CVS for not having a few minor features, as
 if anyone really cares. You solve a few basic puzzles, and build a
 presentation generator that you use to create a bad Perl tutorial. Then you
 come in here and say you know you're a good engineer. 
 Unfortunately, you're not. You're just a competent Perl programmer. But
 engineers solve problems; if you expect to impress me with your work, do
 something that's relevant to someone other than yourself. Why in the world
 would I want to read your ramblings about SCHEME or run some program you wrote
 to solve mazes? I know why I would want to read *my* ramblings about SCHEME or
 run some program *I* wrote to solve mazes -- because I'm arrogant and
 self-involved. I love writing stupid little things for no good purpose, just
 because I can. Every engineer does. 

Maybe I should check the definition of "constructive" in the dictionary again...

Melissa Joan Hart - Pictures

You innocently type "melissa joan hart" into Google and search it for images and what do you get in the first hits? That's right - soft porn.

A few notes are in order. The Google search for MJH (=Melissa Joan Hart) is perfectly fine and clean and leads to various fan sites and pages. Secondly, some of the other pictures in the search are not provocative at all. Thirdly, the first pictures are absolutely horrid, IMO. I don't have a problem with sexual or even provocative photos - some of them are very nice - but these are done in very bad taste. (I guess ESR was right when he noted that most porn is disgusting)

Moreover, this is not entirely an issue of "child-safety", keeping "innocence", etc. I just wish that the Google images search was a bit smarter about this, as the Google regular search is. It is possible that it was the anti-thesis to these pictures that made them get a higher rank.

In any case I found a very nice picture in the first page of hits. Hart (fully groomed) standing among automn leaves. She looks a bit sad, but the picture is very beautiful. Having downloaded it, I noticed it was scanned and of low quality. So I decided to reduce its size using the GIMP. The latter simply opened it in %50 scaling ratio, which made it look very decent, so I just reduced it to this size. Finally, I placed the picture in my Konq+Xmms Virtual Workspace instead of a very nice picture of Gabrielle Anwar, which I had there for several generations now. (I guess it's always time to move on)

Melissa Joan Hart - Silly Etymology

Well, enough Cybersex for now and let's just discuss MJH's etymology. Her full name is "Melissa Joan Catherine Hart". Considering the fact that Catherine is a variant for "Catherina" we can see she has no less than 6 private names:

  1. Meli (short for Emily)
  2. Lisa (short for Elizabeth, or Alisa)
  3. Jo (the "Little Women" short for Josephine)
  4. Anne
  5. Cathy
  6. Rina (a common Hebrew female name meaning sing-song)

Six names for a girl who isn't even thirty yet. (!)


Well, for something a bit more serious. I had some kind of enlightenment in regards to Solving. Now, I simply say that instead of trying to bring the open-source world-like Distributism model into western-world-countries, I am instead going to propose that competing leaders will compete for controlling the countries instead of the "official" elected government. This will create a multi-tude of leaderships all competing for the same niche, and doing so logically and reasonably, instead of one leaderhip who cares more about his public image than about being a honest one.

I revamped the content of the site (without re-writing it from scratch). Then, I linked to it on the IRC in several channels, and also on a web-designers' list I am a member of. From the replies I received, it seems that I did not explain myself correctly enough, and people thought it was Feudalism or even worse. This means something is still wrong there. I still got some useful replies and input. Guess it's time for more revamping... <sigh />

30 Jan 2004 (updated 25 Sep 2004 at 12:47 UTC) »

Version Control Systems Overview Article

An article that I wrote with an overview of Version Control Systems got published on O'Reilly's ONLamp.com. I wrote a suggestions to it (with a summary, IIRC) to the editors of O'ReillyNet some monthes ago. chromatic answered me, said he would publish it and asked me to write a draft. I wrote a draft and sent it to a couple of people I know from the version control business, and they helped me revise and correct it. Tom Lord of Arch fame was especially helpful with his commentary, but I received a lot of useful commentary from other people.

The published article is not identical to the final draft I have. Some things were clearly modified, and I believe that it detracted a lot from the article's colour. But whatever.


I have no more lectures and tutorials for this semester. My first test is in two weeks, and the next one a few days afterwards, which gives me some time to study. I have a lot of material to cover as far as Thermodynamics is concerned, and also need to prepare some material summary pages for Statistics. (and naturally need to prepare for that too)

Work on WWW::Form

It turns out we forgot to include the README in the MANIFEST of WWW::Form 1.13. I fixed it along with a test to make sure it won't be neglected. Now, the question is what will make sure the test file will be included there. (Who will watch the watcher?).

I also did some refactoring of the code. The original code had a function to set all the fields parameters as inputted from the user. I converted it to one small loop that calls a function that sets each parameter individually. I thought that was enough to add new parameters for every form field, but then thought of a better idea, and so created a function to return them as a hash.

Now, the user can sub-class this method alone, call the original and add more parameters of his own to the hash reference that is returned.

I'm doing test-driven development now, writing tests before writing the code.

Hebrew XML with Perl

I wrote an article about processing Hebrew with Perl (it's in Hebrew). I received some useful commentary on it and revised it accordingly. Now I hope it will be published in the Perl and Hebrew page.

PCLinuxOS Live CD

I downloaded the PCLinuxOS LiveCD which is a Mandrake-based Linux Live CD. The first burning produced a CD that booted but got stuck with some errors in the middle of the initialization. It was probably because I did too many things at once. So I re-verified the MD5 sum and did another copy. This time it worked perfectly.

Well, I only played with it a little. I found out it did not have gvim, or joe, (guess that if you want to have both GNOME and KDE, you have to give up something), and so it wasn't ideal as a rescue CD. Still, it seems nice. Probably a nice way to introduce Linux for newbies, or install Mandrake for them.


I stambled across a bug in the GIMP Curves dialog when I was looking for interesting GIMP bugs to solve. So, I tried to reproduce it on my system, but could not. One thing I was able to do, even with fewer clicks than were described was in the bug report, is to grab the pointer for the window with a few rapid clicks. It is so bad, I have to kill the GIMP to release it.

However, Sven Neumann could not reproduce it on his machine, and he claims it is a problem in my X server. I tried to disable the Nvidia acceleration, but this did not help either. Even a bug fix from Sven to disable the explicit pointer grab did not help. What could be the problem?


I ended up using the XSL stylesheets of DocBook for processing "The Eternal Jew" into XHTML. They are quite nice and I was able to customize them to include a CSS stylesheet and other stuff. Now, I'm stuck as I want to make sure a specific itemizedlist will be CSS-classed according to its role attribute. This turned out to require a hairy XSL customization, and I guess I'll have to learn XSLT better to do it by myself.

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