Older blog entries for shlomif (starting at number 233)

Python-IL Activity

The second meeting took place in July. We were five people there: Gabor Szabo, Beni Cherniavsky, Amit Aronovich, Chen Levy and I. We mostly talked about the lessons from the Israeli Perl activity, and about the possibility of having a conference for all the P-languages (Perl, Python, Ruby, etc.)

After the meeting, we were given a lecturing hall in Aduva. So the next meeting along with presentations was coordinated for 16 August. There were a few glitches along the way, but it was very successful: over 20 people came, and we had a lot of fun. The first presentation which was supposed to be about TestOOB (pronounced "tess-toob") actually covered testing in general (not even specifically to Python) most of the time, which was nice. The shorter presentations afterwards had more glitches because they involved computer demonstrations, and there were a few hardware problems.

The room was crowded and we had to insert a few more chairs. If fewer people show up to the next presentations than this one, we'll be OK, but otherwise, we may need to be looking for a larger place.


I did quite a lot of work on www.perl.org.il. I added more CPAN authors and modules to the Israeli Perl Projects page. I heavily refactored the templates to avoid duplicate code and markup. Recently, I also created a modified look and feel, which I will hope will enable a multi-level navigation menu that will eliminate the need for the Miscelleanous Content Page. Most of my patches were accepted there.

News from my other Blogs

A use.perl.org Journal Entry about my article about HTML::Widgets::NavMenu that was published in Perl.com. Another one about the new Acme::Gosub module which brings BASIC-like Retro-programming to Perl 5.

In my Hebrew Linmagazine blog: A few more anecdotes about the IGLU Upgrade and Summary of August Penguin 4 from my personal POV. The latter sparked an active discussion about Debian vs. the world. (and some other smaller discussions)

Computer Problem 1: Kopete and Jabber

I recently upgraded to Mandriva 2006 Beta2. I won't talk about the upgrade right here. I'll just mention that afterwards Kopete (the KDE Instant-Messaging client) had problems connecting to Jabber. When trying to connect using it, it said: "There was a connection error: Operation is not supported.". After compiling Kopete, making sure it will compile with "-g" and without "-O2", trying to debug with gdb, with many problems along the way, and not succeeding (it's a long and sad story), I ended up concluding that I should try to manually tweak the configuration file.

In the config file ($HOME/.kde/share/config/kopeterc) in the Account_JabberProtocol_* section, there were several keys starting with PluginData_JabberProtocol. I removed them (and most other keys) and then started Kopete again. Then Jabber did not work with a different error. After I went to the Jabber account configuration, and saved it, it worked, so it is possible that removing the extraneous keys was not necessary. It may be a backward-compatibility problem between KDE 3.3.x and KDE 3.4.x.

Problem solved, but futzing with gdb, etc. took several hours.

Computer Problem 2: cp -i -f

The -i flag causes UNIX commands like rm, cp or mv to be interactive and request confirmation before deleting or overriding files. -f is the opposite: force such deletions without requests. Many people alias these commands to rm -i, cp -i, etc. for safety.

When I was working on Eskimo I tried to copy a file using cp -f (with the alias cp="cp -i" in place.) That still asked for confirmation - apparently the -f flag was ignored. On my Mandriva system a similar invocation worked.

It turns out Mandriva applies a patch to GNU cp to allow the later "-f" flag to override the "-i". Debian did not apply a similar patch. Now the question is which policy is the philosophically correct one. Note that with the "rm -i -f" command, GNU rm happily applies the "-f" flag.

Bug in GNU grep

I came across a bug in GNU grep fixed it, and submitted a patch. It turns out the bug was already fixed in the CVS version, but without the test case that I proposed. So a similar test case was added. It's strange that a new version of grep was not released yet as this bug is a crash. In any case, delving into the code was fun.

Revision of the Beast

* Revision 666:

File svn-commit.tmp saved File svn-commit.tmp not changed so no update needed. Sending MANIFEST Transmitting file data . Committed revision 666. shlomi:~/progs/perl/www/Nav-Menu/trunk/module$

This was a commit to the MANIFEST of HTML::Widgets::NavMenu to add two test-related files that I had already added to the repository. (the MANIFEST lists all the files that are part of the Perl distribution). It was part of a larger amount of work on HTML::Widgets::NavMenu, SVN::RaWeb::Light and possibly other modules within the web-cpan repository. A short time and 34 revisions later I also hit on revision 700. Right now, I'm at revision 720.


For some reason, I believed that the Perl 5 IO::Scalar module is part of the core Perl distribution. However, it is part of the CPAN IO-stringy module. Maybe what misled me was the fact that it was installed on my Mandriva system, and the fact that it is such an elementary module. In any case, I had to add it as a dependency to SVN::RaWeb::Light and HTML::Widgets::NavMenu, and accidently reported it as uninstalled in PONIE (the ongoing Perl 5 implementation for PONIE), when I tried to see if HTML::Widgets::NavMenu passes all of its tests there. The good news is that it does after IO-stringy is installed.

GIMP Hacktivity

Looking for some GIMP Hacktivity to do, I looked into making sure the GIMP resources can be categorized (as was suggested by a mailing list post). Sven Neumann had suggested a pre-requisite and I wrote a patch as a result. More information can be found there.

Mozilla Bookmarks Patch

The Mozilla and Firefox browsers have an annoying behaviour with pasting bookmarks. I decided to write a patch to remedy it. This involved hacking the Javascript "chrome" code of the Mozilla internals. I neglected working on this for a long while, because Mozilla yelled at me from some reason I could not understand at an XPCOM statement. As it turned out, I was misled by the Javascript debugger, which caused a "Next" or "Step" statement into a certain XPCOM call, to run indefinetly. (guess I now have another bug to report). Having sorted this out, fixing the patch was relatively uneventful and the patch was ready.

I posted it at the SeaMonkey bug record, but then it turned out that SeaMonkey has a separate Bookmarks Editor, and my patch is Firefox specific. So I filed a separate entry for Firefox (after going over all the Firefox Bookmarks bugs and seeing nothing relevant there). Right now, my patch is waiting for a review, and has been for over a month. I hope it is reviewed soon, because this bug is very annoying. (and I have a fix, damn it!) This was my first Mozilla patch ever.

Prologue - Blogger Definition (via mulix)

Muli said in one E-mail that he heard that a blogger is defined as someone who'd rather write about doing X than do X. Am I an avid blogger? Right now I have 14 (!) items that I'd like to blog about, and would rather do something better than write about all of them. Some of them actually contain useful technical information and others talk about my hacktivity.

The blog entries of most bloggers focus on one or a few issues and if more issues are discussed, the blog is updated more frequently. I, on the other hand tend to collect many topics, and write about them in one swoop. Thus, many people who read my Advogato/LiveJournal blog may be overwhelmed by it. But most Advogatoers do something along this line as well, partly because the Advogato recent-log does not like small entries much.

But I digress. What I want to say is that while I find my online diary important, and a good way to remain organized as well as to sharpen my writing skills, and to hopefully entertain a few really bored souls (hi guys!), I find that if I do it often it becomes very time consuming. When I write blog entries or E-mails, I usually take a long time to think about what I'd like to say, what I wanted to say and forgot while writing what I have written until now, etc. It's quite time consuming for me. So I might try to avoid doing it too often.

I also thing that I find writing about things I did in a weblog less entertaining than actually doing these things in the first place. But so far I treated it as something I just need to do.

Aside from this thought, I'll entertain you (ha!) today with two other topics of the remaining 13. One of them is copied from an E-mail I wrote to a correspondant, but still is very much a classic blog entry. The other one talks about etymology.

Hectic Thursday and Friday

On Thursday, I woke up prematurely at 3:30 AM and decided that it was one of these days that I did not want to go back to bed. I stayed awake until I went to sleep at around 23:00. At first I started working on making sure a Perl module (HTML::Parser) has 100% test coverage as part of the Phalanx project.

However, some things in the module were relatively anachronistic and quite annoyed me so I delayed continuing working on it. So instead I went to continue working on preparing a vector graphics sketch of the left pane in this Ozy and Millie panel strip.

I made a lot of progress. What I have now seems to resemble the lower part of the original, but the curves are still quite non-identical. Nevertheless I want to complete everything and then to fine-tune everything at the end.

Working on such an image is relatively tedious, so I alternated between doing it and doing something else. Throughout the day I found myself to be pretty bored, so I decided to try doing something productive and hope that the appetite will follow the food.

So I set out to work on a project which I started and then abandoned to write the SVN::Pusher module and the svn-pusher command line client. I wrote a basic version of this utility called "svn-push" in C which is working but is very limited, and I wanted to write it in Perl so it will be more flexible. Someone wrote a module called SVN::Push and placed it on CPAN which contained a similar functionality, and I decided to base on it. However, after converting the code to do what I want, I encountered some problems, and thus abandoned it for a while.

So on Thursday, I went back to it again, was able to find a workaround for the bug that troubled but encountered other bugs. I resolved them as well, and when I finished late at night (22:00 or so) I had a working version. I still have some work to do, but I'm glad that I was successful. Most of my problems were caused by the fact that what I wanted to do was quite different than the original's code, but at least the API was bug-free.

I conversed on the IRC almost the entire time, in hope that people can help me. I think I found out the problems on my own eventually, but it was still a fun conversation. Here is an excerpt from towards the end of it:

     <rindolf>  Success!!!
     <rindolf>  I discovered another copy-and-paste-bug and now everything is
                working. In Perl.
     <rindolf>  Problem between the keyboard and the chair.
      <Rytmis>  The most common sort
     <rindolf>  _My_ keyboard and chair.
      <Rytmis>  I stand by my statement *grin*
     <rindolf>  That's the problem with starting from a code that does things
                differently, and does more.
     <rindolf>  It's a good thing I wrote this test case.
     <rindolf>  ayita: kfogel interview?
       <ayita>  I don't know anything about kfogel interview.
     <rindolf>  ayita: learn kfogel
       <ayita>  rindolf: I don't understand what you are telling me.
     <rindolf>  ayita: kfogel interview is
       <ayita>  Thanks!
     <rindolf>  ayita: good girl.
     <rindolf>  ayita: kfogel interview?
     <rindolf>  ayita: kfogel interview?
       <Dave`>  kfogel interview?
             *  Dave` smells ayita timing out
       <darix>  ayita: index kfogel.*
       <darix>  you killed her it seems
     <rindolf>  darix: LOL
  <davidjames>  It's not nice to hurt people
       <darix>  eh: pokes
       <Dave`>  Oh my god, they killed ayita!
     <sussman>  hiiiiiiiiiidey ho!
             *  rindolf quickly finds someone else to blame.
     <rindolf>  a scape-goat!
     <rindolf>  sussman: excuse me?
     <sussman>  obscure tv reference, it's ok
     <rindolf>  sussman: you'll be the ideal scape-goat for the murder of ayita.
     <rindolf>  Here's another t.v. reference:
     <sussman>  I think you'de be good at the 'werewolf' game
     <rindolf>  "You know it would be the easiest thing to blame it on Nanny."
     <rindolf>  "Let's do it then."
 <littlezoper>  sussman: mr hankey?
       <Dave`>  sussman: the werewolf game? Is that the card-based RPGish game?
             *  rindolf is listening to The Beatles - Come Together
     <sussman>  littlezoper: ding ding
 <littlezoper>  woo hoo! :)
     <sussman>  http://svn.red-bean.com/repos/sussman/software/werewolf/
 <littlezoper>  that show's horrible :P
  <davidjames>  sussman: South Park is obscure? :)
     <sussman>  it was to rindolf
     <sussman>  http://svn.red-bean.com/repos/sussman/software/werewolf/wolfbot.py
     <rindolf>  sussman: I maybe watched 10 minutes of south park in total.
     <sussman>  ah
     <rindolf>  "Got to be good-looking cause he's so hard to see."
     <sussman>  Beatles?
     <rindolf>  sussman: yes, from "Come Together".
     <rindolf>  I was listening to it now.

Pretty silly I'd say.

Then when I checked E-mail I found out that some folders had 30 or 20 messages. Apparently the flame-war in discussions@hamakor really heated up. It all occured because someone who is a member of the Israeli local Free and Open Source Sotware (FOSS) Community is quite tactless and tends to troll and insult people a lot. As a result this discussion heated up and people tried to reply against the accusations. When this member was decided to be moderated, people tried to say it was a wrong decision to moderate him, and as a result a lot of further accusations were thrown.

This has caused several subscribers to leave the mailing list, some people to request to revoke their membership from the Israeli FOSS NPO, and one member of the board to resign. (claiming that the board should have the approval of the assembly) Now it seems like it has hopefully cooled down a bit.

In any case, I did not have a time to catch up with it too closely at that point, because I had to go to sleep. I was waked up at 6:30 AM by my Sleep Alarm, because I was picked up at 8:00 by Lior Kaplan in order to upgrade the server iglu.org.il (known as eskimo to the adminstration group), from Debian GNU/Linux 3.0 ("Woody") to Debian 3.1 ("Sarge"). Despite the fact Sarge is a .1 release, it was about 3 years since the previous release, so it's the most fundamental upgrade to Debian so far. We also wanted to install a new 320 GB hard disk there.

The upgrade took some time, but went quite well. Lior was a big help. One problem we encountered was with setting up the RAID array. It seems that the previous tool chain for managing them was no longer available, and the replacement required some tweaking to be compatible with it. I won't bore you with the technical detail, but eventually we had to do a relatively ugly kludge to get it to work. Luckily there was pretty good documentation available on the hard-disk.

After we installed the hard-disk, we had to format it, which took a long time. It's strange, but I don't recall that formatting an XFS partition takes so long. Granted, my hard-disk is quarter the size of the hard-disk we installed there, but I think it took less than quarter of the time. Maybe I should ask Linux-IL about it.

In any case, this gave us the opportunity to eat, so we went outside, and bought Shawarma, and went back. The formatting was finished and we decided that everything was in order and we could continue doing the rest from remote.

I should note that the place has left quite an impression on me. The Eskimo server is hosted in the server farm of an Israeli ISP called Actcom, which is very friendly to Israeli Open Source Activities. It occupies most of the second floor of a building called "The Tower of Haifa" which is relatively old. The rooms and corridors looked relatively aged and neglected. The server room was heavily crowded with servers one next to the other. I was told it "looks like shit" on one occassion but I was actually relieved when I saw how it really looked like. We spotted other servers we were familiar with there.

We had to work in the room of the Technical support people. (Four supporters crowded in one room with microphones, computers, etc.). So we listened to their conversation and had to be quiet. We worked on the remote computer through a mechanism that allowed seeing the screen output of the computer on our local screen. The local computer which we sat next too has ran Windows 98 and we had a graphical browser, an SSH client, etc. available there.

After we were finished, Lior drove me to the Train and Bus station. The last train to Tel Aviv was leaving, so I decided to take the bus instead. Then my father drove me from where the bus stopped. I arrived at the house at around 16:00, washed my face and ate, and then went to the computer to catch up with the E-mails.

Someone actually told me that he'd like to hear my opinion on that. I answered him that I was busy working on SVN::Pusher and upgrading Eskimo, and so could not engage in something less productive like a grand-scale flame-war. Productive work is a dirty job, but someone has to do that...

In any case, I cought up with the rest of the correspondence, and wrote some E-mails summarizing my opinion.

Meanwhile it seems that a server on the Technion (vipe.technion.ac.il) which I have an account on, to read E-mails and host some web stuff, has become disconnected yet again. I feel like I'm missing a bone or something. I went to sleep at around 22:00, but fell asleep only at around 00:30.

I had a good night sleep, and woke up on Saturday at 11:30 AM and today at 10:30. I feel refreshed from the sleep, which I did not get enough of for two consecutive days. Yesterday and today I also went to ride my bike, so I got some exercise, and did some physical travelling.

There's some more upcoming open-source related activity in Israel (either "real-life" or electronic), so there will be more things that other people and I will need to take care of.

Placement of Sentence Parts in Arabic and Hebrew

My family and I went to my grandmother for lunch. My grandmother and her husband are Iraqi Jews and my step-grandfather also knows Literate Arabic. So he asked me about Inna and her Sisters. So I told him that it was a group of connectives that included "Inna", "Anna", and others (he added "Lakinna" "La'anna", and maybe others.). I remembered it from my Arabic studies. Then I tried to remember what were they all about. And then it hit me.

You see, in Arabic, the verb usually precedes the subject: "Walked the Boy to the Garden" (pardon my Anglicalization of the Arab words, but otherwise this entry will make less sense to people who don't know Arabic than it already does). However, after "Inna", "Anna", etc. the subject precedes the verb: "I said that the boy walked to the garden.".

Now, in ancient Hebrew in regular sentences the verb also preceded the sentence: "And said God 'And there was Light'". Maybe after some of the Hebrew equivalents to Inna and her sisters, there was a similar rule regarding the placement of the verb and subject, but I don't remember. However, occassionally we can find the subject preceding the verb. For example, in Genesis 4, 1, after Adam and Eve have been driven out of the Garden of Eden, it says "Weha'dam Yada Eth Hava Ishto", which means "And (the) Adam knew Eve his wife". Only because the subject came before the verb, some people claimed that it means something like "had known" in English, and they actually mated when they were in the Garden of Eden already.

Now in modern Hebrew (both spoken and Hebrew), the subject, the action and the object (or indirect object) can come in any possible combination:

  1. The boy went to the garden.
  2. Went the boy to the garden.
  3. To the garden the boy went.
  4. To the garden went the boy.
  5. The boy to the garden went.
  6. Went to the gardent the boy.

The most commonly used form is the first, but they are all technically valid. Other combinations can sound funny, but probably less so than English. Also, when constructing complex sentences out of clauses, etc. it is possible that some combinations will no longer be valid.

I was told that in German, they have some kind of aural indicators for different parts of the sentence (the subject, the action, the object etc.). These things don't exist in Hebrew. A listener has to deduce which part of the sentence is which according to the meaning of each part.

To add to the confusion, in Literate Arabic, pronouns (like "I", "He", "Them") come before the subject. So you say "I walked to the garden" instead of "Walked I to the garden". If you think Semitic Languages are insane so far, wait till you get to the verb and noun formation...

E-mail, RSS, and doing something productive - choose two

(This entry is on the house). I came up with the conclusion that I can do two of either reading and writing E-mails, catching up with the RSS news, and doing something productive like programming or working on a site or an essay. If I read all the E-mails and read all the relevant RSS news items, then I don't have much time for doing something productive. If I'm doing something productive, then a lot of unread E-mails or RSS news items are gathered unread in my folders.

I think I'll just start using the "Mark all as read" menu option. If I don't read everything in "Planet Everything-Under-the-Sun-And-His-Mother" or miss some technical discussions in an interesting mailing list, (which may be enlightening, but not things I can't ask later on if I ran into this particular issue myself.), then I'll probably survive. And it will give me more time to do something productive.

3 Jul 2005 (updated 3 Jul 2005 at 16:51 UTC) »

Random Hacktivity

I added some sections to my Objectivism and Open Source essay. I did more work on the Web Meta Language homepage focused on getting all the pages to validate. The pages use a lot of deprecated markup (like <font> tags, zero-width images, various visual attributes, tables, etc.) and getting it to be valid and semantically correct is proving quite a lot of work. It also makes use of many WML APIs, which as I am unable to replace right now, have to work around them or replace with more modern equivalents.


I gave some love to SVN::RaWeb::Light after a long time of neglect. What I did involved implementing the so-called URL translations, in which one can specify URLs of the real repository to be displayed next to the URLs in the web-interface. That way, you can copy the link and paste it in a console (or wherever) to manipulate the actual repository. As usual, I wrote more test code than actual code. As a result of all this feature adding, the directory display function became very long, and ugly. I guess I'll have to refactor it.

Pod::Xhtml's Pleasant Surprise

During one discussion in the Perl-IL, Offer Kaye complained that the output of Pod::Html does not validate. I suggested he uses Pod::Xhtml instead, and after he tested it he found that it still did not validate. I realized it was because some of the XML IDs generated by it were identical. So I planned to fix it, but when I came to it a couple of days ago, and inspected the code, I found it was already implemented.

Turns out Offer reported it to the module maintainers, and they fixed it themselves. It was a pleasant surprise.

SpamAssassin Compilation Trouble

I had problem compiling SpamAssassin on Mandriva 2005 LE. The test seemed to get stuck and started to consume all available memory and CPU. I eventually found it happened because I had pointed LD_LIBRARY_PATH to a Berkeley DB-4.2 installation. After I removed it, it compiled fine.

DIMES project

We had a very nice presentation about the DIMES Internet Mapping project over at the Tel Aviv Linux Club. The purpose of the DIMES project is to map, measure and track the Internet. It does so by having users install agents on their machines, which then collect networking data and send it to a centralized server that processes it. It has a lot of cool applications.

If you have a Windows machine, you can install the Java agent their and join a team to track the statistics. A Linux agent is in the works.

Perl-IL Meeting: Stas Bekman

Stas Bekman is now visiting Israel and last Thursday he gave a presentation to the Israeli Perl Mongers. Despite the fact it was announced relatively at the last minute about 13 people arrived, and we had a lot of fun. There wasn't a lot of time for us to occupy the room, and so as a result, Stas could cover only very little of his presentation (that normally takes 5-to-6 hours).

One anecodte he told us was that when he was lecturing somewhere in Canada, and asked if people wanted to have a break after a few hours, they told him that they did not, and yet kept asking him questions, etc.

The slides are available online in PDF format if anyone is interested. All in all, it was very interesting.

BerliOS Problems

Three of the bugs I filed in the BerliOS bug tracker got closed before the weekend, without a comment or anything. Plus, they are all still valid. I could not find a way how I can re-open them. Another thing I noticed is that Apache no longer serves tar.gz files, and I have to put them in the projects files and link there. Now I have to put all the Freecell Solver tarballs of previous stable versions there.

Fixing a Mandriva Upgrade

There's this guy who uses Linux, and who contacts me whenever he needs help. Recently, I burned out the new Mandriva 2005 LE CDs to him, and he used them to upgrade the system. Then he reported he had a problem. After he drove me to his house and I operated the computer, I discovered that the problem had something to do with the fact devfsd was mounted, while udev should have been used instead. I did not know how to fix it, but this document explaining how to disable devfs on Mandriva was very helpful. Turns out I had to tweak the LILO settings. I did not encounter the other problems reported there.

Then I tried to set up the Microphone, but I was not able to, no matter what I tried. Waveform playback in the soundcard worked perfectly, though.

PmWiki Reverting Script

The old Perl-Begin Wiki, powered by PmWiki got heavily spammed. I wanted to write a script to revert the pages along with their histories back to a previous date. When I posted a message to the PmWiki mailing list, Patrick Michaud (the PmWiki writer, among else) explained that it would be very difficult, said it should better be done manually, and then explained the format.

Despite that, I set to write the script. It turned out to be not very hard, and the main thing in which I spend a lot of time banging my head on, was the fact some pages started from a filled-in state. But otherwise, after I ran it, it worked beautifully, and probably took less time than a manual work.

The script is available on my site. I now re-enacted the Perl-Begin wiki as a MediaWiki, and not I monitor its RSS feed to prevent future spam.


I am now the proud admin of 4 MediaWikis: The Hackers-IL Wiki, The Perl-Begin Wiki, The Python-IL Wiki, and Perl-IL Wiki.

The wiki that took the largest amount of time to set up was the Perl-Begin wiki, because it took time for Berlios.de to make the database ready. The wiki that sparked the most contreversy so far is the Python-IL one, because some people insist on using Moin-Moin instead. The Perl-IL wiki is a second attempt at having an active wiki for the Israeli Perl Mongers, after our old Kwiki-based wiki first got spammed and then stopped working for some reason.

Additions to the Art Section

I added the "Made with Latemp" logo and the background for the "Human Hacking Field Guide" story to the Computer Art section of my homepage.

thac's KDE 3.4.x

I upgraded to KDE 3.4.x from thac's RPMs for Mandriva. It is working sort of, but has many bugs. There were many duplicated entries in the menus and toolbars which I had to eliminate by manually editing some configuration files. Also, Konqueror no longer detects RSS feeds for inclusion in Akregator. And the Kedit menus are completely borked. I'm seriously considering downgrading back to KDE 3.3.x.

The Daemon, The GNU and the Penguin

I read the chapters of "The Daemon, The GNU and the Penguin" that were published so far. It was a pretty good read. I expected all the chapters to be much longer than they actually were, which was both a pleasant and a disappointing surprise.

Presentation about LAMP

My presentation about Web Publishing Using LAMP is now online and linked from my site. It is already a bit out of date, but that's life in the fast lane of web publishing. ;-)


I published a weblog entry about Catalyst in my use.perl.org blog. Aside from that, I'd like to note, that I found WWW::Form useful there too, but had to extend it a bit for the purpose. A new version of WWW::Form (1.16) was released on CPAN to reflect these changes.

Pythoneers Meeting

The Israeli Pythoneers had their first meeting for a long time which I organized. (despite not being very fond of Python). At first we gathered next to the cinema, and waited till everyone who planned to arrive arrived. The cellphones were really helpful there. We had some small talk about various things, like Perl, Python, PHP, Linux, Demand for various open-source related jobs in Israel, the demand for Python programmers in Israel, etc.

Then after everyone arrived (8 in total - pretty good I think), we went to a quiet place (same place as the Israeli Wikipeders meeting took place) gathered around the table and started discussing our plans for the future. The summary of this meeting (in Hebrew) is available on the Wiki.

A few people left early for various reasons. Eventually 4 stayed to eat there. Amit Aronovitch and I took meals from Smokey, Beni Cherniavsky took a Chicken Salad from Nandos, and someone else took Sushi from the Japanese Bar. We sat around one table and ate and chatted. We discussed the linmagazine discussion on the the term "Nazi", and I told them about the funny discussion in discussions@hamakor (search for "You can easily install the binary distribution of Mozilla") that was started from someone mentioning that he was still using Mozilla 1.1.

Then we parted. I took the bus back home as no-one was driving in my direction.


After a discussion in the Web Meta Language discussion list, where someone suggested to host the WML homepage on his own machine, Ralf Engelschall has noted that he enabled the server-side ePerl in thewml.org. This inspired me to continue my work and now I got the front page and the about page to validate as XHTML 1.1. I'll probably do more in the next days.

Blog Aggregation Using Perl

In order to get all my blogs aggregated on Planet FOSS-IL, its webmaster requested me to aggregate them all into one place, so they'll all appear under my name. After a long time of negotiating with him, I decided that if the Mountain won't come to Muhhamad, then Muhhamad will have to go the Mountain, and decided to write it.

I decided not to use PlanetPlanet because it probably wouldn't be able to run on Debian Woody where I wanted to run the cron job. Instead I opted to use XML::RSS::Aggregate. So I ran it on the three blogs, and then found out that the dates on many of the blogs were wrong. After some investigation I found out it generated an RSS 1.0 feed. I tried to get it to generate an RSS 2.0 feed, but it didn't work. Turned out the version of XML::RSS in Woody was so old it did not support it. So I installed the new version of XML::RSS under a path in my home directory.

Then, it turned out all the dates of the use.perl.org journal were wrong. Why? It was an RSS 1.0 feed for some reason! I tried to find if I can get an RSS 2.0 feed instead, but my URL guessing did not work. So I had to overcome several problems. The first was that the field of the date in the spec has changed from dc:date to pubDate. This was relatively easy to fix. However, the date format has also changed. In order to translate the old date format into a timestamp, I had to install the new version of the Date::Parse module. Then, I tried to convert it to a formatted time using the localtime() Perl built-in. Only it turned out it was not the correct format for RSS 2.0 which required RFC822 format. So I looked for an appropriate format string to format it to. Two google searches later I found one in the code of HTML::FormatData, and I copied and pasted it.

Then (finally) akregator approved of it and I was able to notify the Planet FOSS-IL webmaster about it. After installing several modules, and patching XML::RSS. What's the lesson here? I honestly don't know. Nevertheless, it's just convinced me that I'd like to upgrade eskimo.iglu.org.il to Sarge as soon as possible.

Human Hacking Field Guide

I did some extra work on "The Human Hacking Field Guide". Rather minor changes, except for styling the page, in a much better way. I started from the Two Triangles style of Open-Source Web Designs, but then discovered it was missing some graphics, so I designed a similar layout using GIMP, which looks pretty well. I still need to set up a for-print stylesheet, and see how I can get the XSLT stylesheets to include this statement in the HTML <head>.

I received some comments on it, some positive and some critical.


My bike broke the other day and I wasted all afternoon carrying them back home. On Sunday I went to the bicycle repairman. I asked him some stuff about what it takes to be a bicycle repairman, and we even discussed Liberalism, Democracy and Laissez-Faire Capitalism briefly.

Anyway, when I returned from him, I dragged my bike among several people, among them were a few girls with an incredibly adorable puppy. I think he was grey but he was very beautiful. I asked his owner if I could pat him and she said I could, and I did.

And for the record: I'm a Cat person.

Neo-Tech News

I recalled that the Wikipedia did not have an entry about Julian Jaynes, or his theory about the origins of consciousness. Well now it has: entry on Julian Jaynes, entry on the theory. The latter page also links to the entry about Neo-Tech, which I'm sure did not exist.

In any case, the latter also points to the fact that a lot of the Neo-Tech material is now online, but in a different URL. Here are The Neo-Tech Advantages, here are the Selected Portions from the Neo-Tech discovery, and here is Neo-Tech - The Philosophical Zero.

It seems that many occurences of "Neo-Tech" were changed to "Neotech". I don't know exactly why.

Ruby on Rails

I took the Ruby on Rails tutorial over at OnLAMP.com. The tutorial is quite Windows centric, and I also needed to update it to later conventions. I also got stuck on incorrect whitespacing in one of the fails. All in all, though, it seems like a very nice technology. Now, I'd like to take the Catalyst tutorial and see if it also lives up to my expectations.

If so, I'll guess I write a sample application (which I'd like to have anyway) just to learn it better.

Countering Anti-File-Swapping Lawsuits

I posted a notice about my editorial to the Linux-IL and discussions@hamakor mailing lists. This sparked quite a discussion, which I happily took part in. However, my original intention, to ask whether Hamakor was going to do anything about it was quickly answered, and then people simply continued to debate whether file-sharing was moral, ethical, or whether violating the letter of the law in this regard, could undermine Liberalism.

I was not convinced that file sharing is immoral or unethical, and I believe it should be perfectly legal. I also think that downloading some songs from P2P networks and other sources "illegally" cannot undermine Liberalism. There are many other gems there, if you care to read it.

Miss Universe Site Outage

After the Miss Universe ceremony there was a lot of discussion on #perlcafe about the various candidates. So I went on to check the site. What do I get? A standard Microsoft IIS page saying that too many people access the web-site, and that I should try again later. After the night, it got better, but still, it was obvious that it could not handle the load.

So what have caused this? The server+OS? The machine being not fast enough? Or maybe the bottleneck was the I/O?

23 May 2005 (updated 3 Sep 2005 at 17:15 UTC) »

"Human Hacking Field Guide" - Now Public

The "Human Hacking Field Guide" is now publicly available on my web-site. It's a humourous story about L.A. high-school teenagers who are involved in open-source. There aren't too many technical terms, and it might also serve as a good propaganda for more teens and children to become interested in computers and science.

Note that I believe grown-ups may enjoy it, too. So far I received mostly good commentary about it by people who read it. The story is not completely finished and there are some known logical or plot issues, but it's still very usable.

Enjoy and spread the word!


I realized Pod::Xhtml does not generate valid HTML. So I fixed it. Now it's time for the good people in the British Broadcasting Corporation to incorporate the patch. <sigh />


I released Latemp 0.2.0. Now what I'd like to do is to try to get everything packaged in RPM packages. Time to write some scripts, I guess...

Perl DBI

Hmmm... turns out DBI returns the same array reference each time you call fetchrow_arrayref. It's documented, but if you ask me counter-intuitive. In any case, You Have Been Warned.<tm>

IGLU Jobs Tracker and RSS

I added an RSS feed to the IGLU Jobs Tracker. It took me some time to get right, but it proved to be quite useful, even for me. A problem was reported on using it with rss2email, but akregator can handle it fine.


There was an Assembly of Hamakor the other day. It was on the same day of the European championship and of a Tau-SEC meeting, but nonetheless many people have arrived. We voted on several things. Most of the really imporant modifications to the bylaws were passed. The new board is Orna Agmon, Alon Altman and Gilad Ben-Yossef. The latter urged us not to vote for him because he had a business, and was about to have a baby, but people still did. Ori Idan was not elected, but he promised to still be very active.

Adir Abraham, Nadav Har'El and I are the comptrollers committee. So far it seems that Adir is the most energetic of us three. I still have to get acquainted with the full text of Hamakor's bylaws...

Another important event was a new meeting of the Israeli Perl Mongers. There's a report of it over at the Israeli Perl Mongers site. I've written about some things that are missing from there in a message to the mailing list.

New CDs

I received some money as a present from my grandmother, and decided to spend most of it on CDs. I went to the store wanting to buy a CD of Enya, a CD of Des'ree, and "The Comedy Store" (an Israeli group of comedians) CD. They only had Enya, so I also bought two U2 collections. The collection CD of Enya is mostly excellent. The U2 cds are also nice.

I converted them to .ogg, and I think they sound a bit better than the equivalent .mp3's. This is the first time I bought so many CDs.

Israeli Pythoneers

I wrote a Call to Israeli Pythoneers to become more organized. I received some comments, and as a result set up the Python in Israel homepage with a wiki. We'll have an informal meeting (i.e: meeting at a mall, talking, eating and shopping), so if you're Israeli and like Python or care about it, spread the word.

A caveat should be mentioned: I don't like Python too much. Sometimes I can write it or hack on code that's already written in Python and it's OK, but I prefer Perl by far. I'm doing it because I noticed that there are many Pythoneers in Israel, and it's a shame they are pretty much inactive offline and to a lot of extent online.

eskimo.iglu.org.il Upgrade

Check this thread in iglu-web about the eskimo upgrade. At the moment iglu-web runs Debian Woody, and we'd like to upgrade to Sarge Real Soon Now. I also mentioned some other stuff I'd like to do, like gradually switching to Siesta instead of ezmlm, and then to replace qmail with postfix. This triggered the opinion bit of a few qmail+ezmlm zealots. (who are otherwise free software advocates).

A Hebrew spin-off of this discussion can be found in linmagazine.co.il. However, it deteriorated into a Linux-vs.-BSD flamewar.

BitKeeper Essay

I wrote an article titled "What BitMover Got Wrong" over at the Better-SCM site. I OSNews.com'ed it and judging by Google it seemed to have hit the rest of the blogosphere. It seems to have been rejected from Slashdot, though.

I also sent it to Linux Weekly News. I did not find it on their newswire, but hopefully it will be mentioned somewhere in their weekly edition.

New Weblogs + Personal Ad

I have two new blogs. My use.perl.org blog is a blog in English dedicated to my Perl activities. My linmagazine blog is a blog in Hebrew, where I write about Open Source activities in Israel, and open source advocacy.

Other than that after talking to Jeremiah Kauffman (jkauffman) on the IRC, I was convinced that I should not wait until I have a job to get a girlfriend. Having reached that conclusion, I wrote a Personal Ad. I received a lot of good feedback from it from people I consulted. I'd like to spread it around at various Internet places, but the Students Association of the Tel Aviv University, where a lot of my prospective audience can be found, only has one web forum and it's restricted to TAU Students alone. They obviously don't know the value of good social engineering. The Technion's Student Association has several web-forums (powered by PHP-BB) and none of them are restricted.

In Memory

I'd like to tell the story of my personal encounter with a soldier who lost his life in battle. At first, though, a note is in order for International readers: terrorism in Israel is not as severe as people are led to believe. Most households are completely unaffected by it, the streets are perfectly safe, most people don't carry weapons, and more people get killed due to car accidents than terrorist acts. While Israel is far from being as peaceful as Switzerland, for example, it is nonetheless pretty safe to be here.

At high school, I became friends with a kid who studied in my class. He was very fun, very intelligent, and had a great sense of humour. I really liked him. He wasn't one of my two best friends who were from my class, and my two secondary friends whom I knew from Elementary school, but he was a good friend nonetheless.

It was in our Junior year, when his brother (whom I did not know) who has served in the Army at the time as a Battlefield Medic died in battle. It was an encounter with the Hizbullah in Southern Lebanon. We heard about the upcoming funeral by word of mouth, and I was able to attend as well as many people of my class. (Jewish funerals must be conducted as close as possible to the time of death). I recall that I forgot to bring a Kipa (a traditional Jewish ceremonial hat), and had to borrow one from my aunt's friend. I don't recall too much from the ceremony except for people saying Amen or Qadesh several times.

My friends and I went to visit this kid a few days later, when his family was hosting friends and relatives for the "Shiva'a" - the traditional Jewish week for comemorating the dead. We chatted a bit. He was dealing in his geneoulogy at the time, and having given him a freeware geneology program for DOS to facilitate it. I asked him how it went, and he answered that he had problems because many of the records were in German. When he left the room my friends scolded me for doing that, because they thought it was inappropriate at a time when a family member died. I did not thought so at the time, and retrospectively don't think it was inappropriate today as well.

Afterwards, I felt a change in him. He became more cynical, and used to insult me in public (not too much or too hard). He was still very fun, but I definitely felt a change.

As a result, I started having bad sentiments and thoughts about the Hizbullah. At one time I said to myself "I hate the Hizbullah." (I don't think rationally feeling hatred is bad, and still hate them.). I had less emotional baggage towards the Palestinian organizations. I considered the Hizbullah the second worst "Liberation organization" I knew of after the IRA. Don't get me wrong, some liberation organizations were very noble. Prime examples are the Maquis and the Haganah (except for a brief period in which they performed Terrorist acts) were very noble. But the Hizbullah, the IRA, and many other organizations some of which are still highly reverred, and most others entirely forgottten are anything but.

Eventually, I decided I'd like to write a story about the Hizbullah. I had an idea for a story about a Hizbullah soldier (or was it a friend of a soldier) who had stayed in his village, right before his troop (or is it platoon) went to battle, when he knew most of them would never survived. The kind of stuff, many completely uninteresting movies in Holywood or the Hallmark channel are made of.

My real inspiration came later on from two things. First I read Neo-Tech and was heavily inspired by it. Among the many things of inspirations were:

  • A specific mention that the Ends never justify the means. This in turn made me think that "The Ends Justify the Means" actually mean "Ethics = No Ethics".
  • I encountered a piece of Aristotle's Organum:

    1. A is A.
    2. A is not not-A.
    3. All entities are either A or not-A.
  • Together with "Ethics = No Ethics" I had a winning formula.

The other source of inspiration was reading The Bastard Operator from Hell, a delicious story about a UNIX system administrator who re-defines the term "User Friendly". ("'What's your username, again?' click-click-clickety-click").

I came up with the idea for The Enemy and How I Helped to Fight it during a trip to England. I became so obsessed with the story during the last days of the trip that I could hardly function. During our return home I fired up MS WordPad and started writing the first draft. It was relatively short, and as I showed it to my best friend, he said that it was OK but not too funny. He was right.

It took me six months to rewrite it. I started by writing the first chapter (on Paper), and went to my friend's house and read it to his brother and him. They liked it as a whole and gave some useful commentary. I transcribed the story into the computer refactoring it as I went along and continued it. I printed excerpts to my friend, but he was too busy with his army service to read it till its end. My co-worker, once he heard I was writing a story, insisted on me sending it to him to read. I send it to him and his commentary was essential for shaping the final story.

I received mostly good critiques of it since.

I'll give a teaser which covers only the first chapter, out of 10. One day the Member of the Organization wakes up and goes to the base. It's a lovely spring day, the flowers are blooming and there is a lot of wildlife on the way. He thinks it would have been a perfect day to fire missiles on the Enemy's soldiers, but he has different plans.

After having a chat with some of his co-soldiers who are outside, telling them he plans to quit, he goes to his commander and tells him he's quitting. His commander is sorry to hear he's living, saying the Other Member of the Organization is also quitting today ("When it rains it pours") and wishes the now ex-Member of the Organization, good luck in his future whereabouts and that he would maintain the spirit of the organization and its philosophy.

The ex-Member (sorry for the bad connotation) is about to leave, when he comes back and says that he has served the organization for several years now and yet no-one has told him what its philosophy was. So the commander explains it to him. The objective of the organization is to fight the Enemy (a country to the south of the country in which the Organization operates) with all of its might. However, there's one thing that hinders their actions. It's not even real, but a meta-physical term, that accepting most interpretations of it would have caused them to be unable to operate. This term is "Morality". As a result, they have decided to accept the Philosophical Equation "Morality = No Morality.". However, since it contradict Aristotle's Organum (see above), they decide to reject the Organum or at least don't see it as necessary true.

The ex-Member tells him that in this case, it is a good thing. He too has read the Organum and had his doubts about it, but thinks that rejecting it opens a possiblity for the members of the Organization. If A can be not-A and since the Members of the Organization are not the Enemy's soldiers it is evident that they are its soldiers (!!!). This makes there task more easy: they can kill each other, and all of the casulaties are of the bad guys.

The Commander thinks it's a brilliant idea. He thanks the ex-Member of the Organization and tells him he'll implement his decision right away. The ex-Member tells him he's glad he did. He says goodbye to his commrades, finds the other member who quit that day, and they walk back to the village.

As they finish climbing a hill that overlooks the base, they hear sounds from its direction. They see the members of the base killing each other. Eventually one last member remains on the roof victorious. The commander exits from the remains of the base and shoots him. He then enters and writes a memo about it to the Organization's upper level, files it in the base's post-office box, and then shoots himself to death.

The two ex-Members shrug their shoudlers and continue on their way back to the village.

Like I said, it is only the first chapter. There are nine more. The story is available in English Hebrew Word-Generated-HTML (sorry, but it seems to be readable on every browser I tried). The Hebrew is quite high, and I (who is not a native English speaker) did the translation. I translated some words using a dictionary and when reading the translation could not understand them. (I know it's lame). I'd like to write a fourth draft in which I simplify the langauge of the story, but I did not get to it.

An Iranian correspondant (who now relocated to Canada), has read and enjoyed the story, and said he would try working on a translation to Farsi. The story's copyright does not say so explicitly (I have not updated the page yet) but it is licensed under the Creative Commons Attribution Share-Alike license version 2.0 or at your option any greater version.

If you like it, please circulate this blog entry or link to it. Remember Death.

Memorial Day

I have a great entry for Memorial Day, but I have to post it later, because I need to really think about it and make sure that it's in the right spirit. If I know you well enough and trust you enough, I can send it to you by E-mail privately. E-mail me or post a comment on LiveJournal (with your E-mail) and I'll see what I can do.

New Signature

All hail my new signature. It's based on something I thought about and then said in FreeNode's #perl channel, with a later edition, which makes it much more funny. Here goes:

"Tcl is LISP on drugs. Using Strings instead of S-Expressions for Closures is Evil with one of those gigantic E's which you can find in the beginning of Paragraphs."

Which Masses is Linux Ready For?

There's an interesting thread in Linux-IL about which of three masses of users (The "Aunt Tillie"'s, the Power Users and the Gurus) is Linux ready for. You can find some "WinXP eats Linux alive" E-mails which were eventually reasoned against properly. A very good and informative thread with many interesting anecdotes and real-life stories.

Ehud Manor - 1941 - 2005

Ehud Manor, a famous Israeli song writer passed away some weeks ago. He wrote many famous Israeli songs, and as a tribute to him, some of the radio channels played his songs non-stop. I discovered some songs I really like are by him. He will be missed.

Account on freehackers.org

I helped a freehackers.org sys-admin resolve an obscure Apache+Perl+UNIX permissions problem, and as a gratitude he gave me an account on the machine. I knew of freehackers.org before as the developers of KVim, the Vim KDE-based interface. (now superceded by Yzis). So far, I customized the account to my liking, and also installed (with permission by the admins), an instance of infobot.org which I called Pninith (after the Hebrew word for "Pearly") and who hangs around some Freenode channels. I also set up demos of SVN-RaWeb-Light there. I'm really glad I got this account.

libcurl and file uploads

According to this article on LinuxDevCenter.com libcurl is capable of uploading files using FTP. I previously thought it could only download FTP files. This is a very good revelation and can also scratch an itch of Joel Spolsky where he was looking for a library that can do FTP uploads.


I had my 28th birthday on May 5, but it coincided with the Holocaust Memorial Dad. My sister's birthday is coming on May 30.

Latemp - A CMS for Static HTML Sites

Latemp is a new Content Management System I created for static HTML files using WML files. You can find more information about it in its about page as well as this announcement on my use.perl.org blog and its Freshmeat record.

I decided to use SCons as an installer, out of the constant frustration of having used the GNU Autotools for previous projects. So far, the experience has been a relatively pleasant one, with the various problems easily resolved, and a working installer. Someone reported problems getting the installatioin process to work properly, some of which I resolved by now, but otherwise I'm very happy with it.

I'm thinking of trying to switch to CONS (the spiritual father of SCons) and to resurrect it in the process. That way people won't need Python to install Latemp.


I did a lot of work on The Website Meta Language Homepage. So far what I did was switch the site to a CSS-based navigation menu instead of the old one made of images. I also fixed the user references page by temporarily moving the cgiemail script to a different server.

There's still a lot of work to be done. The site still contains many images as headings, and it's possible the HTML is not very valid or semantically marked. Also, none of the server-side scripts work.


I did backup yesterday, which included copying the dumps of the Subversion repositories to a CD. Now I have soom repositories hosted in OpenSVN, and getting them involves loginning in to an HTTPS account, filling a form and submitting them. I decided that it should be done automatically, so I wrote a Perl script to do that for me. I used libwww-perl, and by analyzing the HTML and passing the relevant parameters (and cookies) to the scripts on the server, was able to eventually download the dumps successfully.

I think I'd like to create a module out of it and put it on CPAN, but I did not get to it yet.


Certified boog as a Journeyer. I saw an entry he wrote in his Advogato weblog, and then saw that he was the one who wrote Learn which I found amusing when I had encountered it on his blog originally. He seems like a cool and capable person so I certified him.

wget tip

If you want to resume a multiple-file wget download that has been interrupted in the middle, you should try the -nc flag. What it does is skip files that are already found on the disk. I encountered a case in which this happens, and after some research I came upon it.

SCM Comparison Work

I invested some work in the SCM Comparison. It was motivated by an E-mail I received about a Subversion web-interface that I missed, which I added along with my own SVN::RaWeb::Light. Subversion is now listed with 8 different web-interfaces.

Afterwards, I spent some time working on the ability to add a version control timestamp to the result page. Then I made a lot of cleanups to the code: converting complicated DOM code to XPath, extracting methods, etc. I also tweaked and fixed the CSS and XSLT stylesheets. There were quite a lot of commits since I started: 22 in all.

The discontinuation of the gratis BitKeeper

In case you haven't heard, the gratis licensing of BitKeeper intended for developing open-source software with, has been discontinued. Here's a page I prepared with a summary and links.

GImageView Bug

I discovered and fixed an annoying bug in GImageView. After a lot of grepping and debugging it turned out to be a simple typo (as I expected) with a one line fix.


As I was about to start working on the code of SVN::RaWeb::Light, my lightweight Subversion web-interface, I realized that the complete lack of tests was not a good thing for it to remain so. So I decided to write some. Now, I am using the CGI.pm and the SVN:: modules in the code, so I wanted a way to mock them (without modifying the original code) so I can see what methods are called and control everything without needing a real CGI or SVN access. So I designed my own modules, that register their basic methods in the SVN:: and CGI namespaces, and also manipulate the %INC internal variable to cause perl to believe they were already loaded.

I did it relatively quickly and was quite fluent in what I did. Then I started writing a lot of tests to the code. After and between writing tests, I also refactored the code a lot so it's now in a better shape. I released a new version (0.4.0) on CPAN whose highlights were the code cleanup and test adding. Running Devel::Cover on the code I found that my tests had near complete coverage of it. Test-driven development ownz!


New CPAN Module - XML::CompareML. This is a re-usable Perl module that can be used to render multi-item, multi-system comparisons into either HTML or DocBook. It was derived from the code of the Better SCM comparison which now makes use of it.

Better SCM Site Work

After the work on the comparison, I started doing a lot of work on the Better SCM Site. It felt very good, and I am very happy with my productivity.

As I went to design a logo using Inkscape, I discovered two glaring bugs in it. One of them has been resolved in the CVS version, but a different one was still present. I think the problem was that I could not "Raise to Top" a certain element of the drawing. Eventually I opted to "Lower to Bottom" the other ones. In any case, I re-used an arrow from the Open Clip Art library. It seems like it matured into a usable resource.

Net Upgrade to Mandriva 2005 LE

I did a net upgrade to mandrake 2005 LE. At first I encountered a problem, then when invoking urpmi --auto --auto-select, it wanted to retrieve revision 2mdk of the urpmi package, where the server had revision 3mdk (and not 2mdk). Fetching the file and installing it from the disk solved this problem, and afterwards the installation progressed smoothly enough.

There were other missing packages, but they did not disrupt the rest of the installation. After I rebooted, and started KDE, I found out the "kfmclient openProfile" problem is no longer present (which is very good), but now a lot of my fonts are different and Bitstream Vera Serif render all wrong. This is not surprising. Many Mandrake upgrades I've done, have messed up the font settings.

Articles Index

I keep an index to my articles on my site. Up to some time ago, it used Web Meta Language's wml::std::toc extension to create a table of contents. However, as I went to validate the entire site, I realized the markup it generated was completely non-standard. So I had to look for an alternative.

I decided to use XML for that, created a simple markup with support for categories and entries, and wrote an XSLT stylesheet to transform it into HTML. Now it validates perfectly and I'm happy.

accesskey woes

The Wikipedia sites have many HTML accesskey's defined for them, some of them for commonly used menu hot-keys. I came up with an idea to use greasemonkey and my own user-defined script to cancel them. So I set out to write a script to do it. This page was a lot of help, and I based my script after it.

When I was done, I loaded my script into greasemonkey and enabled it for http://en.wikipedia.org/*. Then I noticed that Alt+E indeed invoked the Edit menu, but Alt+F still jumped to the find form, instead of bringing up the File menu. It turns out it was a bug in Mozilla in which accesskey's are not removed from <input /> elements. This bug has been confirmed since then.

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