Older blog entries for shlomif (starting at number 203)

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.

Perl-Begin

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.

Hackers-IL

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. (!)

Solving

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.

Studies

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.

GIMP

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?

DocBook

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.

24 Jan 2004 (updated 26 Jan 2004 at 08:21 UTC) »

Life + Studies

I had been sick starting a week ago, but now I'm OK. Meanwhile I missed the Statistics Monday, so I had a gap of several lessons which I did not learn, and could not hand in the three assignments. I E-mailed the T.A. asking when to hand them, and she told me to hand them on Wednesday. (which came right before my Thermodynamics lecture).

On Wednesday I felt better, and took a ride to the Technion. I found her room and waited for her there a long time, but the door was closed and she was nowhere to be seen. I came to the room two other times throughout the day, but she wasn't there then, either.

She eventually E-mailed me that she had an urgent meeting and could not come to her reception hours that day, and so I should hand in my assignment at the class on Monday (two days from now). I also need to hand in another assignment then, but I don't know how to solve one of the questions because it covers material that I did not learn yet. Whatever, I solved the other question.

At Wednesday I also photo-copied the Thermo lecture that took place at the hall without proper tables to write on, so I won't need to go through understanding my bad writing being even worse.

The Eternal Jew

I might as well tell that the philosophical essay I worked on is The Eternal Jew. It is complete now, and I sent it to several people for review, but none have responded yet. If you wish, you can read it and comment.

WWW::Form

I added a lot of tests to it, and fixed another bug (while writing a test to it, first). Ben promised he will release a new version of CPAN based on what we have in the repository now, when he finds some spare cycles. (he is very busy in work, now) We'll probably continue covering more and more of the functionality in tests, and when the tests coverage is reasonable, we'll start adding more features.

We've talked with instant messaging about some stuff, including error handling, and adding common controls (like country-list, U.S. states' list) to be auto-generated, as well as creating a function inside _setFields to set one field.

Review of Perl & XML

I finished reading Perl & XML and wrote a review of it. This means I now wrote the 10 last book reviews of the Israeli Perl mongers.

Quad-Pres Logo

I've been working on a logo for Quad-Pres using the GIMP. I started by constructing a wireframe text saying "Quad-Pres". I finished the Q and the u by now, but they are not perfect. Maybe I just need to look harder for a suitable font. I think I'll install "Print Shop Ensemble III" as it comes with plenty of fonts.

GIMP Bug Squashing

I spent some time tracing and fixing some bugs that had to do with the GIMP Image Info Window. You can find the patches and discussion in Bug #118084 and Bug #132329.

Spam

Despite the fact that my SpamAssassin installation is up-to-date, a lot of Spam on Vipe still slipped through. So I decided to enable its Bayesian filtering. I invoked "sa-learn" with my ham and gradually had more and more spam to put there. Now it seems to be working better and better.

I don't have a spam filter on my home E-mail, but I may eventually. To prepare for this, I started collecting all my spam, so I'll later can input it into the Bayesian filtering. I wonder if SpamAssassin can easily work with kmail, because it's very nice.

Otherwise I discovered my ISP's SMTP server is on the black-lists of several other SMTP servers. I still don't know if it's really an open relay or not.

MySQL Client Library

The MySQL client library for versions 3.x of the product was LGPLed, and for versions 4.x it is GPLed, which does not allow proprietary applications to link against it, without purchasing a license. So, I decided to compare them to see how different they are and if the old one could be forward-ported to the other.

It turns out to be a 2,764-lines patch, that most of it are whitespace-changes, and can easily be manually applied to the older source, in a few days of work. Generally, I disapprove of using the GPL in hope of getting more revenue this way when LGPLed original is available, and the library does not have something substantial to offer. So I think I'll forward-port the MySQL library.

Studies

On Wednesday, there was some construction on the Tel-Aviv->Haifa road so the inter-city bus came late on Wednesday, and I had to take a later bus and arrived late at class. Nevertheless, it seems it just started, and I was able to write everything that had been written on the board in my notebook. I then took the material for the previous lecture that was given in the week in which I missed the lecture.

Other than that, I've been a bit busy solving the exercises in Statistics. They seem to be pretty easy once you get the hang of them. Now, I have an exercise about Linear Regression which seems very easy, but the page with the formulas is a bit illegible.

Scanner under Linux

Turns out my scanner (UMAX Astra 3450) works fine under Linux. I first tried it with kernel 2.4.x in which it did not work too well. After trying it in Windows, and then rebooting, it worked well again. With kernel 2.6.x, I needed to compile the USB sub-system and load some modules with various parameters. (which I did not do already, but now I have the right configuration file to do it).

WWW::Form

Ben Schmaus (WWW::Form's head developer) finally commited the most up-to-date files into the WWW::Form repository. I continued the work by first generalizing the "tr_class", "tr_hint_class", etc. parameters to be "container_attributes" and "hint_container_attributes". Then I documented everything that I added.

Following that, I wrote a couple of tests to one of the utility functions in the module, and hope to continue this trend of writing tests. Ben is a bit busy at work now, so he cannot invest a lot of time into it. We are still discussing things via Instant Messaging, which is very convenient.

Anti-MSIE Campaign

I finally started out the anti-MSIE campaign on my web-site, after frustration from Microsoft's abuse of its users, the web-developers community at large, and their apathy towards users of non-Windows systems. Also pay attention to the large no-IE icon at the side-bar. Feel free to join!

Telux Meeting

I've been to gby's Telux presentation on Sunday, about Embedded Linux. He gave some guidelines for error-free development of Embedded Linux systems, and introduced uClibc (a libc that can be customized with just the right functionality), BusyBox (an all-in-one UNIX toolchain, that is also configurable to death), Kaction (formerly Tiny X), and FLTK (the Fast Light Toolkit). It was very interesting and lasted only one hour.

Egged Site

The new incarnation of Egged's (the Israeli national bus company) stopped working with Konqueror, and only a basic functionality half-works with Mozilla. I filled in the feedback form (an E-mail to webmaster@egged.co.il did not work), and got this reply:

"Hello Shlomi. I'm sorry, but the site is designed only for the Explorer browser. I will thank you for your understanding."

This answer is very laconic, and does not address half of my complaints there, nor assured me that they were going to be fixed. I answered him in return, but was not answered. Guess I'll have to find some other means of complaining.

9 Jan 2004 (updated 10 Jan 2004 at 19:39 UTC) »

Perl Meeting

I had a Perl Meeting yesterday. It was raining on the way to the bus stop, but from the bus stop next to Dapey Zahav until then, it wasn't raining, so I was lucky because it is a long walk. I met Shlomo Yona at the hall, and we talked a bit. Then other guys came. Kfir Lavi brought a digital camera and took a few pictures throughout the meeting.

Before the lectures, we chatted about various topics. We talked about processor speeds (Pentium 4's vs. UltraSPARCs), form process handling (WWW::Form and friends), whether to use my meta-data database access or Tangram, DBIx::DWIW, the August Penguin conferences, and other things. It was very fun. I went to buy two bottles of mineral water, because I saw that we were going to run out of them in the fountain. (they don't seem to keep a spare container there for some reason). Afterwards, Ran Eilam and I went to buy some pastries to eat, which were eaten like crazy.

Gabor could not come for the second time in a row, and his presence was once again missed. Some people paid entrance fee to the YAPC::Israel::2004 conference, to the other organizers.

Then the lectures started. Shlomo Yona gave a very nice presentation about edit distance. I recall needing to do this algorithm in one of my Algorithmics courses, so this was a nice comeback. What I did learn there was that related algorithms like this are a field of very active research and that they are very useful.

Afterwards, Ran Eilam gave the second part of his presentation about Extreme Programming. It was very insightful and entertaining as well, with various interesting ideas and techniques for better software management. Like the "Dukes and Engineers" game. Or cards to write the names of classes in the program as you come with them, instead of UML. And naturally, the usual depreciation of the Gantt chart. He explained why "pay-per-project" outsourcing and especially off-shore outsourcing cannot work. Someone told there that an outsourcing project that costed twice as much and had half the requested feature-set was declared a success, because most projects don't do that well.

Afterwards the guys went to hang in a pub, but I picked a ride home with someone who drove northwards as I was quite tired.

Studies

I ended up switching to gvim for my Hebrew LaTeX needs. he2 sucks pretty badly as an editor, and gvim is naturally much better. Now I'm using F9 to toggle the direction leftwards and rightwards and it is much more convenient. And I have all my favourite gvim features.

Hacktivity

Did some work on my yet-to-be-reviewed/yet-to-be-published philosophical essay. But more importantly, it seems that the development on WWW::Form is really going to take off. Its Wiki is being filled up, its author sent me the password he wants for the Subversion repository. I'm still waiting for the code to be imported there, but it may take a while, because the author has a job and is quite busy. Still, I was able to talk with him on ICQ and AIM, and so I have a way to reach him in which he is very responsive.

I upgraded my system to kernel 2.6.0. One thing I notice is that the first instance of gvim (running above KDE) takes much less time to load.

Mailing Lists Threads of Interest

Here's a thread I started about the NVidia drivers. The problem I mention there may be better now that I upgraded to kernel 2.6.0. In any case, here's my conclusion of the thread.

I joined the linux-elitists mailing list and witnessed a large and lively GNOME-related discussion. I introduced myself which sparked a lot of discussion about BASIC. I always thought the WHILE...WEND loop was present in most BASIC interpreters, but it only got introduced later on in the PC revolution.

Then, I joined in the GNOME discussion with some rants about GNOME's lack of similarity to what I was used to. Just read it to find what a GNOME developer answered, but I was not satisfied by it. (I still find its behaviour annoying)

Reading

Finished reading Extending and Embedding Perl. The book was written professionally but pretty boring. Here's my review of it.

I also read more chapters out of "Perl & XML". This book is very short, but also very interesting, so I think I'm going to finish it soon. Then, I'll have to find something else to read, and I did not take any books out of the Perl library. (due to the fact that no one brought the requested books from Gabor's house)

5 Jan 2004 (updated 25 Sep 2004 at 12:10 UTC) »

Linux Events

I attended Aviram Jenik's lecture on Sunday. Before the lecture I had enough time to give a quick appetizer in the form of my "Template Toolkit" Lightning Talk. I received one positive criticism, and two others that said that it was not very understoodable. I believe they were correct and I understood how to improve it. (but think it may make it into a seven minutes or ten minutes talk).

Immediately after I was finished (and before I had the chance to hear any feedback) Aviram came, and started with the lecture. The lecture was very good, funny, and interesting. I first believed it was going to be a "preaching to the choir" type of lecture, but it ended up also bringing up alternatives for full disclosure, and many cases from the security history. (some of which were very amusing) The room was crowded, and Shachar (who is also a humorist "behesed") also contributed things.

There was also a Haifux Lecture on SMTP and Qmail by kilmo. It seemed interesting and Eran was there, but I was very tired that day so I decided to leave prematurely. I dozed off at least twice during the ride back home, so I guess I couldn't have made it through the lecture.

I ended up modifying my Template Toolkit lecture and am looking for a chance to give the modified one before the YAPC.

Talk with Ya'el Marksemer

On Monday, I drove to the Technion with Ya'el Marksemer (the girl who studied Game Theory with me, and also was Orr's Officemate), and had a very pleasant talk with her on the way. We discussed many topics. Among them:

  1. SQL - she said she studied about databases in a course, and found the bare SQL standard very hard to get by with. I told her that database vendors create incompatiblity on purpose so people will not want to port their databases to something else. I then told her of my (so far failed) Extended SQL initiative.
  2. I told her about a Technion lecturer I know. When I came to see him once he was running an old PC computer with fvwm on it probably running Linux. What he did was that he invoked one Emacs window and worked on it exclusively.

    When I came to meet him again, a year ago or so, his computer was upgraded. Now, he had a Red Hat system with the Red Hat icon instead of the K, anti-aliased graphics, flashy looking and all. What did he do? Invoke an Emacs session and worked in it exclusively.

    Of course, he was quite old and studied at MIT back then. I'm still very fond of him.

  3. Software Management Stuff - we discussed having private offices (Peopleware, etc.) vs. two or three people in an office. I told her of a company I worked for, where people had to move their chairs to let me out and she said that was indeed unbearable. I told her that Microsoft U.S.A. allocates an office even for interns. Like I said, she was a theoretical computer scientist, but she was still interested.
  4. Her Thesis - she said she and her instructor for the M.Sc. were now writing a scientific article about the proof she did for his conjecture. She said she only used high-school Combinatorics there, but there was a certain tricky part. I told her I wish to write an article for a scientific journal about Freecell Solver, but said I would need someone to tutor me and instruct me exactly what to do.

Forums Threads of Interests

My post to Hackers-IL's about "Reading Open Source Code" took several interesting turns. First of all we came into conclusion that reading code was relatively neglected in university, even though it's a very important skill and can possibly teach students how to write better one. Otherwise, Tzahi Fadida said that some open source code (and non-open-source code) was very hard to read, and we discussed what measures could be taken. We discussed the XP-belief that no documentation should be written for the code, because the code needs to be self-explanatory. And we further discussed the validity of XP and how "scientific" it is or should be.

My post Some Thoughts on FogBUGZ for Windows on the Joel on Software forum may be of interest, because it contains a answer by Joel.

Here's another one: More Linux Developers than Windows Ones . This recent statistics, and what does it mean. (and what would be the implications of open source on programmers) An offspring of this post is Open source complexity Issue.

There was an opinion piece in the Register that was Slashdotted and discuss.fogcreek.com'ed. See this thread on Joel on Software for some of my comments.

Finally, if you want to converge the two most common themes in the JoS forum (outsourcing and open source vs. the world) to one big conspiracy theory, look no further than here.

All in all, mailing lists, the Joel on Software forum and Whatsup.org.il are a huge productivity killers! But they do add some insights and understanding even to very knowledgable persons.

Linux Problems

Here's a bootload of problems I've encountered recently. Ever since I installed the Bitstream Vera TTF fonts, many fonts on my desktop got uglier. I don't know why it happens and I don't know how to fix it, but I'll look into it. (removing the package did not help).

I also was able to install and use kernel 2.6.0 today, with some advice from a Linux-ILer (to install the module-init-tools package). At first, the Internet did not work because I did not compile the Tulip-class modules (they were off by default), but now everything is in order. (I'm writing this E-mail on 2.6.0)

The mouse cursor however, became much faster after the upgrade. I found a good workaround by issuing "xset m 10/10" (play around with the numbers), but all in all it is quite frustrating, and I'm not sure I'm happy with it as it is now.

Finally, an old problem which still was not resolved. When I play an mp3 file using XMMS with artsd, then I must set my buffer size to over 1000ms (precisely that - 999ms does not work) or else the sound sounds garbled. It does not happen with directly to ALSA playback or with KDE's Noatun. It is annoying because the music gets played for another second when I press the stop button or when a song is switched.

Recent Update: - my computer accidently rebooted itself when I shut down X, and some of my files got corrupt. Luckily I had a backup and was able to restore .ICEauthority and the .kde sub-dir to a working state. Other than that, I found a way to change the font in gvim to something more likable. Now for the other apps.

Hacktivity

I populated some of the Israeli Perl Mongers Wiki (created a page there for non-Perl Israeli Projects) and created a Wiki hypertext base for WWW::Form. I also wrote some of the outline for the second draft of an essay I wrote a prelimary version of some time ago. Now comes the hard part of writing it in DocBook, entirely.

I also wrote the Cross-UNIX Portability - Facts and Myths technical article. (first on paper and then on computer - don't ask).

Too much time E-mailing. Far too less coding. Teh teh.

Certification

Certified graydon as Journeyer for his work on the Monotone version control system.

26 Dec 2003 (updated 26 Dec 2003 at 20:17 UTC) »

Life after Gradient-Fu

Now that I finished the gradient-fu patch, I don't know what to do with myself. Well, let's not exagerate: I have plenty of things to do, but still need to get on the hacktivity schwong.

I have some pending Perl-related tasks to do. For once, I want to find a good Perl module that will enable me to maintain all the navigation menus I created in my sites. I found two of them on CPAN - one of them is not maintained and its author did not respond to me; for the other one I got a response from its author with a CGI script he wrote for me that demonstrates one of the menus in question. However, the CGI script uses a CGI parameter to distinguish between the pages, and is not spread across two servers as is the case with what I need. Thus, it, and perhaps the module as well, may justify some more work.

Now, after I received this, I also received an answer from an Israeli correspondant, who tweaked his code to do what I need. I suppose I have to check it as well. In any case, this probably can wait for later on, because my ad-hoc code for navigation bar is still functional and extensible. (even though it sucks)

Next is the work on WWW::Form, which I have still to hear from its author after the last E-mail I sent him a couple of days ago. (I'm beginning to think, I should just fork it off for the time being, and continue to work on it on my own).

And finally there's Quad-Pres. Here it's quite pressing, because I need some new features for the Template Toolkit presentation I'm going to give on YAPC. Maybe I should just throw the glove, and prepare it using Open Office.

Next, there are some lectures I want to prepare: the TT one naturally, and "Freecell Solver: The Next Presentation", and the "Web Publishing with LAMP" (Linux, Apache, MySQL and Perl/PHP/Python) one.

Then there's Doclanx. I have great plans for taking the Perl man pages, and revamping the hell out of them, but haven't really started to do so, yet. I suppose it can wait as well.

Finally, there are some political/philosophical essays I'd like to write. I'll probably go with the one about drug legalization first.

So I have plenty of things to do, and not enough time to do them. At least that would mean I'm going find time to do some of them. If it weren't for all these E-mails I keep wanting to send...

Advogato Diary Interest Ratings

I'm not entirely sure the Diary Interest Ratings are a good idea. For a very simple reason: people don't rate other people diaries! I don't think I ever rated the diaries of fellow Advogatoers. Some of the blogs, I read because I personally know these people and I'd like to keep up-to-date with their whereabouts and thoughts. (so I don't rate because I cannot objectively testify for their interest, as they are surely interesting to me). The others I read on occasion, when I go over the recent entries list, when I post one. I usually don't recognize all the nicknames, so I can't tell if their diaries are intersting or not. (and I don't consider myself a blog lurker, so there you go).

Even the blog I write is mostly for myself and my friends, and only secondly for other people to read. (albeit I did receive some interesting comments in response to things I wrote here from people I did not know).

Reading

I started reading the "Perl & XML" book that I borrowed from the Perl Mongers Libary. It's a very good read, funny and interesting. And naturally, I learn some new things. So far, I highly recommend it to any Perl programmer. (but can only give a final verdict when I finish it) As for "Extending and Embedding Perl", I finally arrived at the chapter covering the Perl Internals, after skipping some less interesting material. I don't read it at bedtime, because I feel that I'm too tired to concentrate on this highly complicated topic, so I'm not making too much progress.

I don't know which reading book I'll pick up now. I can continue reading "Ender's Game", I suppose. Meanwhile, my sisters have given away one of the copies of "Harry Potter 5" and lent another, so I'm stuck without any copy to read. :-)

I also just read the article The Hundred-Year Language in which Paul Graham speculates about which language we will use a hundred years from now. It's a good read, as most of the other things by Graham are. However, I disagree with him on some points.

Especially annoying is his claim that languages will introduce various paradigms as others that can map to it but are less efficient. He even goes as far as saying that numbers can be represented as lists whose length is the length of the number. I personally would hate to see that happen. Order of complexity un-optimizations like that can make your program completely unscalable with anything beyond a very limited input. (many times even if you have a very capable hardware to run it on). As such they should not be introduced into the core language if you can help it.

At the moment, I can write programs in Perl, and they would finish almost instantenously. This probably could not have been the case on a 386 computer. (which is still more than capable of running Perl). Still, if the Perl interpreter had implemented numbers as lists, it would not have run efficiently, even on today's hardware.

Another thing, that I found intriguing was his claim that in Arc he was able to write recursive functions on strings implemented as linked list that were better than many regular expressions. I actually did it when I converted Quad-Pres to Haskell (just for the experience). And it came out hideous. An experienced Haskell programmer who inspected the code, told me I should have used a regular expressions library and said he could not make heads nor tails of the code. Oh well, who is John Galt?

One thing I did not like about it is that he said there that it's not true that those who can't do - teach. I personally have always felt this way, and now I know of someone else who supports me.

Hacktivity

Well, bits of pieces of many things that do not amount to too much. One thing big I did was write a review of TAOUP. (you can also refer to the letter I sent to Raymond about the Review and some things he may find interesting in Freecell Solver</a>). This review became the latest one in the "Good" reviews in the book's site which are not the same as the raves. Apparently, raves are such that claim the book is perfect (or at least almost so), while good are those that are somewhat critical of it. I don't know which one ESR considers better. ;-)

I also added various bits and pieces for my homepage and related sites. I don't recall all of them.

Politics #1: Normalizing Thorahic Education vs. Antiochus' Decrees

Recently a suggestion was put forth to make sure the pupils who receive Thorahic education (among the Orthodox Jews in Israel), also receive general studies like the more secular Jews do. So one MP said it was unacceptable and in the wonderful spirit of Hanukkah compared it to Antiochus' Decrees during the time of the Macabees.

The problem here is that the Thorahic education are financed by the Government out of Tax Payer's money. If this was not the case and these Religious Jews were self-staining, I wouldn't have cared less if they received general education or not, but this is far from being the case. As the financers of this education, we have a right to pose conditions for them, and if they don't like it they can stop receiving funds and try to finance it on their own. If you ask me, an even better idea would be to stop financing education at all, and simply lower the taxation considerably. It is getting more and more sub-standard anyhow, and privatized education is usually the only good long-term way to handle state-wide education.

Politics #2: A solution to the Palestinian Problem

And on a more serious note: I'd like to bring forth here, something I thought about (and conveyed to an American correspondant of mine) as a solution to the Palestinian problem. So far, the general belief among the Israelis is that the Palestinians are primarily responsible for the situation. Likewise, the general belief among Palestinians is that the Israelis are responsible. So we have a deadlock.

Here I propose a way for the Israeli leaders to solve the problem once and for all for the mutual happiness of both sides. Furthermore, this way is very easy and simple. Here goes:

  1. Give Israeli Soldiers a choice of whether they wish to protect the Israeli Settlements inside the West Bank or not. Soldiers may choose to stop protecting the settlements at any time, and will be relocated to inner-Israeli squads.

    Forcing someone to protect someone else is wrong, as any mandatory draft is in essence.

  2. The settlements can either remain using only their self-protection, or its settlers can choose to relocate to Israel, where they will be given an alternate home.
  3. Israel will stop giving food relief to the occupied territories. If this implies that a Palestinian State must be established, so be it. (I don't care if there's a Palestinian State or just a very hostile governing body)

The Geneva Accord has three serious flaws:

  1. It advocates disarming the terror organizations. I don't see how it can be done efficiently and the right to bear arms also come to mind. I would adovcate the opposite: give arms to each and every palestinian. That way, they will be less afraid of the terror organizations, who in turn would be much more afraid of them. (you could allow all Israelis to carry arms as well, for good measure.)
  2. It adovcates forcibly evacuating the Israeli settlements. By all means the Israeli Settlers have a right to live there as every lawful person has a right to live anywhere. The entire concept of immigration regulation and "fathers' land" is wrong.

    What is wrong is forcing other people to protect them living there. (as force is always wrong) This distinction must be understood and followed.

  3. Last, but probably most important is that it requires the mutual cooperation of both sides. One cannot expect the other side to follow his part of the deal, while my suggestion does not require the cooperation of the Palestinians.

If all of this seems to be absurd to you, just remember that I'm just an everyday libertarian. (well Neo-Tech Objectivist to be exact, but the political agenda is the same). As such I am doing my best to be loyal to Justice, Freedom, Individual Rights and lack of Government Control. This suggestion is perfectly in accordance to it.

I'm not trying to classify myself as the (Nationalistic/Religious) Israeli Right-wings, or the (Pragmatic and Regulation-enacting) Israeli Left. Instead, I'm trying to be Just, Noble and Free. It's a bit hard in Israel, where most people do not know what Objectivism or Libertarianism are, or sometimes even that this political option exists. But I'm handling it, as this is what my ideals dictate.

23 Dec 2003 (updated 23 Dec 2003 at 19:43 UTC) »

Studies

I now have an extended vacation as I don't have to study tomorrow as part of the Hanukkah vacation, which is nice. Meanwhile, in Statistics I had a difficulty with one of the home exercises. The problem was that we were given several distributions for the case in which there are two populations. And it was not clear from the page when to use which. But I think I can overcome it now.

Private Lesson in Perl

Someone who once drived me away from a Linux event and I later met in others, wanted to learn Perl or other Linux things that I can teach him. Today, we finally held our first session. I first asked him for what his experience was with Linux and programming. It turned out he worked as a sys admin in a company with several Linux installations, and had very little experience in programming (not even from school). Then he told me that he asked people what should he learn first: some said "shells", others "Perl" and others "C". This is without taking Python, Ruby and Tcl into account. :-).

I said I think we will start with Perl. The reasons for it are that it is easier to write shell scripts in Perl, than it is to write many Perl programs in shell, so there will be a faster path to results. Retrospectively, I think there are other reasons: I would not recommend C as a first language, because it's two low-level and as such newbie-unfriendly. Also, learning shell first may have a relatively crippling, because shell programming has a different philosophy than either Perl (and friends) or C.

So I began teaching him Perl by following my Perl for Newbies series. I found out he was quite proficient in vi, and a fast typist, so it was not frustrating to watch him code. During one hour (which was the sesssion length) we covered most of the first lecture (which is originally intended for two hours). I realized that there were many things he did not understand at first, which I had to explain to him verbally. This may indicate a deficiency of the material I prepared as far as people who are complete beginners to Perl are concerned.

During the lecture I made a couple of small comparisons with Python. For instance, I showed that "+=" and friends did not exist in earlier versions of python and "++" still does not.

I ended up receiving 50 NIS for the lecture, but it was fun any way you look at it.

Site about Giving Presentations

Someone read in this weblog that I'm going to give a presentation, so he pointed me to his site which is dedicated on how to give effective presentations. I checked this site and it is very good, so I'm mentioning it here.

Gimp Gradient-Fu Patch

I finished writing the patch, and it even has one more function that was not present in the previous incarnations of it. You can check it out on Gradient-Fu for GIMP 1.3.x page. Now I have to wait until the development of GIMP 2.1.x to start for it to be integrated. Or I can accelerate its accpetance by resolving standing issues with GIMP 1.3.x myself... ;-)

WWW::Form

If you remember, I started using WWW::Form in the past for the IGLU Jobs tracker and had to modify it to suit my needs. I haven't heard from its developer for quite some time, after sending a couple of messages, so today I decided to try and reach him again. I emailed him asking if he received my last modifications, and if he'd like us to cooperate somehow on its development more closely. He answered me saying he would gladly accept me as co-developer, and we agreed that we will use a Wiki, and a version control system, and modify the module extensively together.

Hopefully something good will come out, because it's preferable not to fork it and the developer seems very much alive and kicking.

Some Threads of Possible Interest

Check this thread on Linux-IL about the Hurd for some discussion on how good Hurd is, and some speculations if it'll ever be ready for prime time. (taking into account the fact that Linux has been for years) It's quite amusing.

Here is a Hackers-IL post I wrote about the "Great Divide" between Windows and UNIX.

Finally, here are my answers to the recent Microsoft Poll as I posted on the appropriate Newsforge article about it.

Advogato Replies

movement: congratulations for your new job. I know it took you a long time to find it, and I hope you'll enjoy it and make a good living out of it. Solaris should be a very interesting thing to work on.

lindsey: I recall the time I had to convert MikMod (which was originally written in C) to Java. During that time, my code generated a bootload of exceptions because I did not trap some file I/O related exceptions. At first I tried to throw them to oblivion, but then realized it only made the situation worse, so I ended up catching them at the function that did the I/O and returning an error code instead. Doing exceptions logic properly is very hard, and the code already had error handling in the function return values.

I really like the fact that in Perl I don't have to explictly catch any exceptions, because it is very suitable for Perl. I'm not sure it's appropriate for C#/.NET, though, which is much more Java-like.

21 Dec 2003 (updated 23 Dec 2003 at 18:45 UTC) »

YAPC::Israel::2004

The presentations list for the "Yet Another Perl Conference" in Israel, 2004. So, it's final that I'm going to give a lightning talk about the Template Toolkit and a 60-minutes long presentation about LM-Solve.

Now I need to prepare the presentation about the Template Toolkit, but first I'm waiting for the notice about which formats are acceptable for submission ,so I won't work twice. Meanwhile, I'm planning it...

KDE Problem and its Resolution

The "Konqueror" and "Home Directory" buttons of the KDE panel stopped working. I found out the very command line kfmclient openProfile webbrowsing did not work at all, not even from the konsole. (got a "KDEInit could not execute kfmexec" or something like that message). After some investigation, I realized that it worked for different users.

At first I was able to resolve it by creating a $HOME/.kde/share/kfmclientrc file with some settings there. (this is after some investigation of its source code). But then yesterday, it broke again. Renaming .kde to .kde-bak resolved the problem, but made me lose all the settings. So I started renaming directories inside it, and seeing if they change anything. After a long time I found out that renaming applnk-mdk resolved the problem. Then I tried just deleting the konqueror.desktop file there which also made the problem disappear.

All in all, I wasted a lot of good hours on this problem which could have been invested in something more productive. Whatever, now I'll know what do when it happens again.

Gimp Patch

Now I can tell that I updated my Gradient-Fu patch to the latest development version of the GIMP. I received some helpful comments from the core developers on the mailing list and on the GimpNet #gimp IRC channel.

What this patch does is create Procedural Database functions for manipulating gradients, thus allowing them to be manipulated from withing scripts. Here is the Gimp Bugzilla Issue for it, where one can follow its development.

The patch is not complete yet, as there are some gradient manipulation routines that can still only be done in the gradient editor. But I'm getting there. The patch was scheduled for inclusing in Gimp 2.2, because the developers are anxious to get Gimp 2.0 out soon.

What is "Computer Science"

kilmo: I think that defining "Computer Science" solely as "The science that deals with the study, implementation and creation of algorithms" is incorrect and tries to convey some political agenda. By all means, "Computer Science" deals with the entire whole of programming for a computer, not just theoretical algorithms. What you describe is better defined as "Algorithmics".

Let's look some definitions. The Wikipedia entry say: "In its most general sense, computer science (CS) is the study of computation and information processing, both in hardware and in software. In practice, computer science includes a variety of topics relating to computers, which range from the abstract analysis of algorithms to more concrete subjects like programming languages, software, and computer hardware. As a scientific discipline, it is a very different activity from computer programming and computer engineering, although the three are often confused. ".

The Free Dictionary says: "computer science - the branch of engineering science that studies (with the aid of computers) computable processes and structures". And you can find more in Google.

So limiting the definition of Computer Science to pure theoretical Algorithmics is probably not a rational thing to do. By all means, it includes many areas that are more practical and applied.

A Productive Day

Yesterday was a productive day. I prepared several questions from the pending Statistics homework, and also worked on the GIMP patch, managing to do a lot of work. Eventually, I was interrupted for a while by the KDE problem, but I was still very productive. Today is a bit slower with all the E-mail reading/web-surfing/arrangement stuff, but I hope to get on the swing soon.

Haifux Site

Haifux has a new site courtesy of ladypine. It is based on her and mine original design of the syscalltrack site. I also contributed some comments in the discussion about it in the mailing list.

An anatomy of Wikis

Recently I had to work with several Wikis, and I can testify that the syntax or implementation of several of them could made using them a bit frustrating at times. For instance, Chiq-Chaq's heavy reliance on JavaScript made it unusable on Konqueror. Also, Kwiki seems to have a relatively poor syntax, and some things are simply not possible in it. It is however, supposed to be very easy to set up.

The Wikipedia seems nice for what I dealt with so far. It has a very powerful syntax and also allows uploading of images and stuff like that.

17 Dec 2003 (updated 21 Dec 2003 at 08:54 UTC) »

Studies

I had two tests one in each subject I'm taking this semester. The Thermodynamics test went pretty well, but I'm not entirely sure I did it perfectly. I'll see what my grade will be.

Yesterday, I had a test in Statistics. It went so-so, and I had difficulties with some sections. Nonetheless, both tests just protect the main score from the main test, so they are not critical.

I had a relatively hectic few couple of days. On Monday, I had to get up early to attend the Statistics lessons (as usual), and in the evening I had a Haifux meeting, which meant I arrived home late. On Tuesday, I had the test in Statistics from 17:30 to 19:30, and I returned home again, and went to sleep at about 10:30 PM. And today (Wednesday) I had to get up early and go to the Thermodynamics lessons. But I'm glad it's over and now I have an extended weekend in front of me.

Perl Meeting

I had a Perl Meeting last Thursday. I went there by bus and had to walk. When I came there, there were few people there and not too many joined us. But it was fun. Before the meeting, Ran collected money from everybody and we went together to buy the snacks. Then the presentations started.

Shlomo Yona gave a presentation about the Perl Garbage Collector. I could not say he renewed too much to me. (except in telling that the Java garbage collector supported distributed GC). Still, it was a very good and fun lecture. It was followed by a small demo by Ran Eilam. He demonstrated how he started from the Java test in Eclipse, and gradually wrote the rest of the code with the help of the IDE that did a lot of code writing for him. We concluded that it would be very difficult to do it with Perl, because it's a more complex langauge and such that is much less easy to manipulate.

Then, some people had to leave and could not hear me give the presentation on Haskell. The audience asked many questions during the lecture, and I had to explain some of the simpler examples in detail. Eventually, I ran out of time and skipped some of the more complex ones. But it went quite well, albeit I'm not sure how many understood it.

During the meeting, I returned the "Writing Perl Modules for CPAN" book and took the "Perl and XML" book (by O'Reilly) which was something that someone returned.

Afterwards, the guys decided to go to the bar, including the one who was supposed to give me a ride. I decided to skip it as I was tired and found a ride with Thomas Maier. On the road, we talked about his job and my educational/employment status.

Ran Eilam wrote a meeting report on the new Israeli Perl Mongers Wiki.

Haifux Meeting

On Monday, Aviram Jenik gave a presentation about Spam to the Haifa Linux Club. The presentation was very entertaining and fun, with many interruptions from the audience to discuss the dynamics of Spam and how to deal with it. I was especially amused by the "Time Traveller stuck in 2003" junk-mail he received.

After the Meeting, Aviram gave a ride to Tzafrir Cohen and me until the Netanya Junction. I called Dad on the way, and he drove us from there to Tel-Aviv.

Reading

I finished reading Mary Poppins. It's a very nice book, and I might order the sequels if I feel like it. I also read more of "Extending and Embedding Perl". I also read things I found on the web like myths open source developers tell ourselves.

Hacktivity

I added some idioms to the page in progress of Idiomatic Perl. The Wiki implementation gave me some trouble and sometimes reported the page has changed during its editing, which it didn't.

I also added some things to the newly set up Israeli Perl Mongers Kwiki: a page for Israeli Perl Projects which is now more up to date than the one at the regular site. (I imported all the existing content there); and I also started a book reviews section, where I place my book reviews without having to wait for the webmaster.

I also downloaded and installed the latest GIMP 1.3.x and played with it a bit. It's very impressive and polished, but so far it seems that the Script-Fu logos scripts got broken. This may have been fixed according to a message I saw in its developers list.

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