02-Dec-2002

Internet Bits and Pieces

The Technion's connectivity is fine now, but has been a bit sporadic lately. (sometimes it congests). What does not work is my CVS repository at BerliOS. It seems that I can't even login into the CVS server, even from shell.berlios.de. And the new CVS instructions on the project's page are lacking.

I joined a web-designers mailing list which I spotted on Google. So far, the traffic there has not been particularily high, and the SNR is quite high (lots of talk about HTML standards, CSS, etc.). I received one response (in private) to my question about how to make the navigation looks fine in MS Internet Exploder, so I'm going to switch to Windows and tinker with the CSS stylesheet. Then I'll have to switch back to Linux and fix it in the WMLized source, and upload it again. <sigh /> Maybe I should use VMWare or Cross-Over Office.

Hacktivity

I download the source RPM of the new version of aspell, compiled and installed. Using its HTML/SGML mode I was able to spell check one of the chapters of the Architecture Document. I could not commit it into the CVS yet, due to the aformentioned BerliOS problems so I'm on hold now until it is fixed. The previous version of aspell gave me problems when ran in HTML mode, and Emacs's ispell-buffer mode started asking me to verify all the DocBook/XML tags, which made it quite useless. It's good to know Kevin Atkinson is hard at work on aspell.

I also managed to do a lot of the Solving lecture: covered Neo-Tech, and Homesteading the Noosphere and almost finished the Magic Cauldron. What's left is giving a section that explains how Solving integrates and expands on the two, and giving it some final touches, and adding sections if necessary.

I received a user account on a Co-Op server and am going to set up a globally accessible Subversion repository there. So far Berkeley DB-4.0 compiled without a problem. However, Apache 2.0.x requires the headers of OpenSSL to compile mod_ssl and it is not available there. I guess I'll have to wait for it to be installed.

./configure and the compilation of C modules is very fast on this machine, so it must be a pretty spiffy one. I remember timing the Freecell Solver scans ran so much faster on the Pentium 4 1.7 gHz at the Com-Net Lab than it did on my P3 667 MHz workstations. Working on my home P3 600 MHz is also pretty nice and fast, but greater speed still makes you a bit less frustrated.

Life

It's Hanukah now, so I light up the candles every evening, and we eat latkes. The weather has become quite cold at night. The Technion was closed yesterday and today, so I'll have to postpone doing my arrangements on Tuesday.

I have to check the "Hever" students' personnel company for available temporary positions, register as a tutor for some of the courses I have taken (those that I received a suitable grade and feel confident enough about teaching to others), and talk with the supervising lecturer of "Intro to Software Systems" about breezing through the course. I basically know this course already, and would just like to get the extra points for it.

I got to bike twice yesterday. What I could not do was wash my hair, because we ran out of available shampoo and then there was a lack of hot water. I'm already three days late in washing my hair.

17-Dec-2002

Hacktivity

I've been mostly obsessed with the program I wrote to solve the Perl 'Expert' Quiz of the Week #8. Since it was finalized, I added two optimizations and tweaked it a bit. You can see the results here and here.

Since I decided to learn O'Caml now, I also converted this code to O'Caml. It took a lot of time to get it to compile and then I had a bug or two to iron. Google pointed me to an entire thread about Memoizing in Caml. Now I should take a look at O'Caml object-oriented features.

I also finished all 100 boards of StoneAge, so I'll have another thing that won't distract me anymore. Aside from that, I now finished all the chapters of "Programming Perl" up to and including the one about regexps. I did not read too much of the other books.

I reviewed my WebMetaLanguage lecture today, and corrected some typos in one of the newer pages. I also checked out the GIMP 1.3.x from the CVS, compiled it and installed it. The fact that an older version was installed in its installation directory gave me some problems, but I after I deleted it and ran "make install" again, everything resolved itself. Hopefully, I will work on the Gradients logic a bit and get a functionality similar to my gradient-fu patch.

Lastly and very importantly, I implmemented the "{long_test_name}" notation for Freecell Solver's test order, and refactored the tests' order parser a bit. Now I still have the hard part of implementing the generic state ordering functionality.

18-Dec-2002

Camel Book

I'm progressing nicely with it. I have just finished the chapter about modules, and am on page 308. By skipping to the history part, I found out it was Perl's birthday today by coinicidence. Happy Birthday, Perl!

Graham's Function Program

By profiling Perl using the Devel::DProf module, I found out that the multiple_squaring_factors function takes out %40 of the run-time. I tried to optimize it in several ways but they all proved to be worse than the original. Then I tried to code it in C, so I can give a lower bound to its CPU requirements. By using the Inline::C module I was able to write my first Perl extension:

SV * multiply_squaring_factors(SV * n_ref, SV * m_ref) {
    AV * ret, * n, * m;
    int n_idx = 0, m_idx = 0, n_elem, m_elem, n_len, m_len;
    SV * * n_elem_proto, * * m_elem_proto;

    n = (AV *)SvRV(n_ref);
    m = (AV *)SvRV(m_ref);

    ret = newAV();

    n_len = av_len(n)+1;
    m_len = av_len(m)+1;

    while((n_idx < n_len) && (m_idx < m_len))
    {
        n_elem_proto = av_fetch(n, n_idx, 0);
        n_elem = SvIV(*n_elem_proto);

        m_elem_proto = av_fetch(m, m_idx, 0);
        m_elem = SvIV(*m_elem_proto);

        if (n_elem == m_elem)
        {
            n_idx++;
            m_idx++;
        }
        else if (n_elem < m_elem)
        {
            av_push(ret, newSViv(n_elem));
            n_idx++;
        }
        else
        {
            av_push(ret, newSViv(m_elem));
            m_idx++;
        }
    }
    while (n_idx < n_len)
    {
        n_elem_proto = av_fetch(n, n_idx, 0);
        av_push(ret, newSViv(SvIV(*n_elem_proto)));
        n_idx++;
    }
    while (m_idx < m_len)
    {
        m_elem_proto = av_fetch(m, m_idx, 0);
        av_push(ret, newSViv(SvIV(*m_elem_proto)));
        m_idx++;
    }

    return newRV_noinc((SV *)ret);
}

This required a lot of consulting from the perlguts man page and the Inline::C-Cookbook one. After I ran the script using it, I found out its CPU usage was reduced to %10, which means the Perl implementation slows it down a bit. Using a C extension is cheating, but I still wanted to identify some bottlenceks.

Aside from that I also implemented code to generate the sequence that compose the perfect squares. Then I decided to see if I can generate the linear base of n+1 based on that of n, but I realized that the base generated was lossy, and so it will not give good results.

I go into an awful lot of trouble for this limited task. I'm positively obsessed with it. I can't wait for Mark Jason Dominus to publish the official solution so my mind will be relieved of it.

Gimp Bug

I tried to hack on the CVS Gimp code to get gradient scriptability to work there. I looked at the gradients code a little, and sort of understood where it falls apart. Then, when playing with the gradient editor I discovered a bug which I reported to the GNOME Bugzilla. It turned out to be a bug in glib (!) and is now resolved.

19-Dec-2002

Hacktivity

I left's Graham function alone today... ;-) Instead I began with some work on Quad-Pres (my presentation tool) which involved some minor cleanups. After breakfast, I discovered it started to rain so I could not go out to bike today. Instead, I spent some time working on a lecture management system for the Haifa Linux Club Home-Site.

As of today, the situation is, that every lecture has to be placed and maintained in several pages. I wrote a Perl script and module that will render everything based on a set of tables that are updated at one place. Here's what sloccount has to say about it:

SLOC    Directory       SLOC-by-Language (Sorted)
1008    top_dir         perl=1008
0       CVS             (none)
0       dest            (none)


Totals grouped by language (dominant language first):
perl:          1008 (100.00%)




Total Physical Source Lines of Code (SLOC)                = 1,008
Development Effort Estimate, Person-Years (Person-Months) = 0.20 (2.42)
 (Basic COCOMO model, Person-Months = 2.4 * (KSLOC**1.05))
Schedule Estimate, Years (Months)                         = 0.29 (3.50)
 (Basic COCOMO model, Months = 2.5 * (person-months**0.38))
Estimated Average Number of Developers (Effort/Schedule)  = 0.69
Total Estimated Cost to Develop                           = $ 27,244
 (average salary = $56,286/year, overhead = 2.40).
SLOCCount is Open Source Software/Free Software, licensed under the FSF GPL.
Please credit this data as "generated using 'SLOCCount' by David A. Wheeler."

2.42 person-months of effort concentrated in a day...

Afterwards, I spent the late afternoon, vainly trying to re-design the Syscalltrack Homepage the way I want it while using only <div>'s and CSS 2 for layout. If I had been able to use table tags, I would have finished it in no time. After I visited the #html channel on EF-Net I found a site that accomplishes what I wanted to do, but was not able to fully duplicate its functionality. I'll try again later tomorrow, or simply fall back on tables.

Reading

I made some progress with "Programming Perl", reading part of the chapter about Objects. By reading it, I become familiar with a lot of new tricks and new Perl nuances.

21-Dec-2002

Hacktivity

Yesterday, I started the morning with giving some final touches to the lectures' management code, and adding an extra future lecture. Then I went on to handle the Syscalltrack homepage, converting everything to table based layout, and handling the various issues ladypine had with it. It took me sometime to understand where things went wrong, but I was finally able to.

Finally, I did some work on Quad-Pres. I encountered a Permissions conflict, where I wanted files to be created with a certain group, so they can be handled by both the user and the httpd-ran process. Two kind Linux-ILers answered to me how I can do that (with two different methods), and one method I tried worked so far. (using a chgrp-like system call). The other method seems even nicer, and I'll have to check if it works.

Reading

I finished the chapter about Objects in "Programming Perl". Then, I went on and finished the one about Operator Overloading. That's it, I think.

Life

There was a strong wind and some raining yesterday, so I could not go out biking again. I stayed at home most of the time, either reading or working on the computer. At the evening, I watched "Whose Line is it Anyways?", "Just Shoot Me" and "Third Rock from the Sun", which are given on Friday nights.

21-Dec-2002

Hacktivity

The newer method using SGID for directories, and a 02775 mode worked beautifully so I switched Quad-Pres to using. Afterwards, I spent most of the day cleaning up Quad-Pres and adding some new functionality. I still did not got to implementing the global installation of the executable, Perl code, and the common base WML template yet, but it was still a lot of important work.

ladypine applied most of my changes to syscalltrack's home-site. I wrote a message to its mailing list with some other observations. I'll have to see what the other web-masters think about them.

At the evening, I added the ability to generate a raw list of the future lectures to the lectures manager. This required cleaning up the code a little, but I intended to do it anyway.

Life

The sun came out at the late morning, so I went out for a walk (taking an advice from my mother). Michal was busy all day preparing a Linear Algebra assignment she got from school, and I helped her out a little.

29-Dec-2002

dmoz Cleanup

Throughout the last couple of days, I settled out on cleaning the "Configuration Management : Tools" dmoz category. Now I'm left with 17 pending links. Man, this takes a lot of time, but I'm almost finished with it.

Syscalltrack's Homepage

I started a branch in the Syscalltrack CVS to implement some homepage cleanups. Here is a report I wrote on what I did.

Meanwhile, it was reported that MSIE displays the border of the navigation bar in white instead of black. This turned out to be a bug in the CSS stylesheet in which the text specified border-right : medium solid ; color : black; instead of border-right : medium solid black. I also fixed it in my branch.

KDE 3.1

While looking at the KDE archives, I found out that packages of KDE 3.1-RC5 for Mandrake 9.0 were prepared. I decided to install it. The installation went quite OK, and my new system is stable. Some bugs were eliminated from 3.0.x and some were added (as usual).

Strangely enough, I found old bug reports of the same bugs in the KDE bugs tracker, but then realized they were very old. So I reported them again.

kdegames from the CVS

Having KDE 3.1 installed made it possible to compile the HEAD branch of kdegames from the CVS. Took a bit to install, and the out-of-date makefiles (which I had to run automake with) gave me some trouble. Then the DocBook documents absolutely refused to compile, so I removed their directory from the SUBDIRS of the makefile. And naturally, it takes a long time for g++ to compile KDE code. At the end of the day, however, I had it built and installed.

This enabled me to work on kpat and integrate the changes I wanted their. I removed the limitation for game numbers only up to 32,000, and integrated the new Freecell Solver their. gcc was ran with a lot of extra flags (-ansi, -pedantic, -Wundef, etc.) and it spewed a lot of warnings and complained about many things. Eventually, however, I was able to resolve them.

Then, while trying to solve a game, I discovered a bug in Freecell Solver which forced me to release the 2.8.3 version of it. I fixed it in both CVS branches, and in the KDE integration, and now I'm back on track. What's left to do is to hard-code a nice command line preset into kpat, so it will have less unsolvable games reports.

Life

It was raining on and off the last couple of days. On Friday morning, there was a beautiful sunshine and I went to bike. Then it started raining in the afternoon. On Saturday it was also sunny, so I went to a walk in the morning and biked in the afternoon. Today seems sunny as well so far.

My sister Noa and Dad returned from their trip to England and the States. Noa had a surgery which was supposed to handle her over-perspiration problem. They brought a lot of toys, food, books and other stuff.

Michal (my other sister) meanwhile has homework to do. In her "Intro to Programming" class, she had to write an C function, that removes a specified character from a string. It can be done in O(n) time by keeping two pointers. Today, she worked on her Linear Algebra exercises and I also helped her a little.

30-Dec-2002

Dmoz

Cleanup is complete! The "CM :: Tools" category now has 4 pending links and they are all inside the CVS sub-category which I cannot edit. Now I can focus on other things, and just login into dmoz occasionally to see if new links were submitted.

Hacktivity

Yesterday I worked a little on Quad-Pres (turned exceptions into classes and wrote a TODO list). I also worked on getting a Freecell Solver command line preset into kpat and wrote two scripts to do that in the process. Then I discovered an incompatibility of the command line interface: it changed a char * argument, which I passed from a global constant. I changed its code in the KDE CVS and now it is working. In any case, I think it is a good idea I change the relevant places to const char *.

Reading

Since I last updated you, I read several Camel Book chapters. I'm now in the middle of Security. Besides that I also started reading the Namesys Future Vision paper which I've been referred to by several people. I admit that I did not fully understand it. And now I also read the latest Linux Weekly News edition, and several documents that were referred there.

Life

My bike broke when I drove it on Saturday. Apparently, the chair fell down and blocked the handle that enables to lower and upper it. When my father came home yesterday's evening he was finally able to fix it, and brought the chair to its right height. Now I can ride it again.

He did notice that I was out of air. The problem is that I don't think the current air pump I use is very good, and I have troubles using it.

31-Dec-2002

Hacktivity

Freecell Solver-wise, I busted the warnings I encountered in the KDE compilation inside the CVS development version. Then I worked a bit on Kpat Integration, and made sure the solver instances are recycled.

I also worked on the Syscalltrack home-site. I sent a message to a web-design mailing list I am a member of to find out if the various versions of Microsoft Internet Explorer, view it with the proper top vertical alignment. I already received several inputs that they did, so I assumed the report I got was singular.

After that, I got a green light to merge my CVS branch into the HEAD, but was told to watch for a change that mulix did to the HEAD involving the logo. I applied his change, and then used the cvs update -j command to integrate my changes. There were some conflicts there, which I resolved manually. And then I re-built and uploaded the site.

Reading

In "Programming Perl" I finished the chapter about Security, and am now in the middle of the chapter about idiomatic programming, which is very interesting.

Life

There were more trouble with the bicycle. As much as I tried to pump air into them I could not, and I tried two different pumps with both wheels. When my dad returned home, he again was able to pump air there, and said the trick was screwing them till the end, and pumping very hard and till the end.

I did manage to walk at quarter to four. In any case, since I jogged the day before yesterday, then yesterday my feet muscles became sore, and they might be sore today as well.

It rained tonight, and the weather forecast said there are going to be local rains today. I don't know if it would be a good idea to go biking today.

4-Jan-2003

I left you at last year, Dec 30, or maybe it was the Israeli Jan 1. So here's what happened so far.

Syscalltrack Home-site

I posted a request-for-comments for the Syscalltrack web-site on webdesign-l and received some useful comments. The web-design people are really professional, and the posts there are of very good quality.

Once thing I noted there is that they are recently littered with posts about trying to get CSS2-based layout to work. This makes me happy that I'm using table-based layout for all my site.

In a private E-conversation with Muli and Orna, it was made clear that Orna is our official web-master and has the final verdict on everything, and that I am just a web-technician. I also noted Muli that I might resume my efforts working on the Perl+Lex+Yacc configurator. But like I said to him, I could not promise anything as I have many other things to do.

Freecell Solver

I also worked on a detailed and elaborated to-do-list for Freecell Solver. The original TODO list found in the main distribution and in the CVS is very brief and may only be understood by myself. The reason I did was in accordance with what ESR says in Homesteading the Noosphere: "If one does one's braggin through the code, and then says 'Well shucks, it doesn't do x, y, and z, so it can't be that good", patches for x,y, and z will often switfly follow."

Whether it will indeed happen with Freecell Solver remains to be seen. A problem is that I feel that Freecell Solver is a fairly complete package that satisfies the need of most "hobbyist" and "professional" Freecell gamers. It will remain satisfactory even if no added-features development takes place (just like Perl, gcc, gvim, Mozilla or many other "complete" packages).

Many times when developing it and releasing a release version, I felt that "damn, after I release x.y.0, all I'd like to do with it is purely speculative, so I can just leave it at that." But I kept discovering more and more things to implement. I guess a project never ends, but I still can't see anything pertinent I'd like to add to FCS after I integrate Patsolve's state ordering. Except maybe Patsolve's mixed bfs-dfs scan and what Bill Raymond wrote for his solver (should he agree to convert it to the new Freecell Solver architecture).

Quad-Pres

Not to much in this direction. The autoconf-based installer is working and functional, but the functionality is still limited and the user documentation is non-existent. I think I'll now begin to write some lectures and use the quadp command line interface exclusively (in accordance with the using your own dog-food principle). That may give me motivation to improve it further.

I also have some craving to write my lectures using PerlPoint, because it is very brief. Maybe I should find a nice way to integrate it into Quad-Pres to create an hierarchy of pages. It has an API, but what could be a problem is that the HTML it creates is quite non-standard and does not match my conventions, and it places all the slides in one directory with names like "slide0003.html" regardless of their organization. But when there is a will, there is a way. The worse-case scenario is that I'll fork the code, or update the new version in CPAN.

I should also check other presentation tools (there are dozens of them around) and rob good ideas out of them to integrate into Quad-Pres. But first, I'd better release Quad-Pres 0.8.0 and then make other changes I have in mind.

Other Hacktivity

I started worked on a summary of a lecture about Vim. It's not just as much as the summary as is the full lecture without the fancy HTML formatting.

Reading

I read Programming Perl and finished the chapter about Perl Culture. This brings me to chapter V (which is the final one) which only contains reference to many elements of perl: special variables, functions, pragmatic modules, modules in the standard distro, etc. The perl meeting is quite close, so maybe I'll just browse through looking for interesting parts. After all, it is present in the man pages, and in Perl what you don't know, can't hurt you much.

One interesting thing I discovered about the book is that it is written in Perl POD. POD is nice, but I never expected one can write serious books with it. (that's what DocBook is for). Apparently it is possible, but I think I'll stick to DocBook for these things because it is more flexible. I'm still going to use POD for man-pages and such small-scope documents.

I also saw that there is a module in CPAN to convert POD to DocBook (and the other way around). This is very cool, and should prove useful.

Life

Our united-states friend Ron and Carol Sekura sent us their new years greeting along with their usual summary of what they did in the past year. I discovered this yearly summary is a common convention among Americans. We usually don't do it in Israel, but I wonder what I would write in mine:

<<<
At January 1, I was hard at work finishing the winter semester, and also tying the lose end-points with Roy Glasberg's and mine IP-Noise Simulator project. We eventually were able to finish on time, and our project got a perfect 100 score, and it was considered to represent the Com-Net lab in the Technion-wide project excellence contest. (eventually another project was chosen and it won)

The spring semester came with many interesting computer-related subjects, that I constructed especially. They all turned out to be very interesting. Also, nother project of creating a web-interface for managing seminars Technion-wide. Roy and I did not have a lot of time to work on the project during the semester. After my tests were finished (which I did pretty well in them), we set out to work on the project together, thus "ruining" the summer vacation once again.

The project was finished, and we eventually were graded 94. Now started the winter semester, with many courses. My problem was that I kept changing my schedule, and eventually decided that I'd better take a year off because I've been studying consecutively for too long. After spending some time without scholastic responsibilites, I felt freshened up again to resume my studies, and so notified that I will return next semester.
>>>

Hah! and their cards are filled with trips and family visits, and other entirely recreational stuff. But this is the life of a Technion student, who is a computer nerd and does not have a dime for himself besides what his parents give him. Not that I think my life aren't exciting: by all means what I do in the Internet, and with my computer is very enlightening to me. I don't think you have to travel a lot in order to accomplish a lot.

Besides, I did not mention the numerous Haifux meetings, the Welcome-to-Linux series, my hacks and endeavours, etc. I don't know how many people who are not computer geeks would find them interesting.

Biking

There were a few good days which I took to bike in the afternoon and possible take a walk in the morning. It rained very heavily yesterday, though. Still, in the early afternoon it stopped and there was some sunshine, so I biked to the end of the University road and back.

6-Jav-2003

SCMs for Linux

I was recently contacted by Rick Moen regarding the configuration management :: tools category of dmoz. We discussed whether we should use the word proprietary and commercial and he also mentioned he had constructed a list of SCMs which I may link to. Since the list was in plaintext, I volunteered to convert it to HTML. I did and I sent it to him.

I did not hear from him since until I E-mailed him yesterday. He immediately replied that he had received my page, and modified it a bit since. He gave me the URL and I placed it in Dmoz. Moen used quite a lot of Hebrew phrases in his messages, and I found out from him that he's been studying in the Hebrew university campus and also volunteered in a kibuttz. :-) From his homepage and a Google search I understood he was quite a Linux hot-shot. Man, I'm honoured.

Freecell Solver

Someone contacted me regarding Freecell Solver. He said he wrote his own solver and asked if I want to take a look. His solver was a rather crude C program, which stored the current position in global variables, used a stack of moves. When it recursed into a new position it applied the current move on the state, and when it back-tracked, it undo the move.

This could have been quite smart, but there is one problem. To be solved effectively Freecell and most game AI programs in general, need to keep track of the previously encountered state, to determine (preferably with a good complexity) if a state has been visited or not. His architecture did not have a state collection, and so did not work properly.

I gave him this advice, and referred him to some Freecell Solver documentation where he can learn about it, which is a fairly complete Freecell solving package. As much as I support re-inventing your own wheel for fun, it is usually faster to improve an existing wheel. He said he'll have some reading to do, and maybe will have the mood to contribute to Freecell Solver.

On a slightly different note, I should say that I had a chat with rms about making Freecell Solver a GNU package. He dispelled some myths I acquired regarding it, but eventually concluded that it may not be of wide-spread usefulness enough to justify GNUing it. Hopefully, I'll be able to talk to him some more on the event on Wednesday.

Syscalltrack Homepage

Wow! A lot of talk and a lot of decisions passed either between Muli, Orna and I or on the Syscalltrack-hackers mailing list. So much, that Muli and I decided to start a separate mailing list - syscalltrack-website.

After everything, there was finally some hacking. I changed the stylesheet a bit to agree more with other browsers beside Mozilla. It seems that Konq 3.1.x and MSIE 6.0 have buggy CSS 2 support. The new stylesheet is still valid CSS 2, but is simple enough to be processed correctly there. Maybe I should install Opera to have yet another browser to check on.

I had lesser luck with the screenshot of the console. Since it was compressed as jpeg it now has some compression noise in it, and I had a bad time compressing it as a 256-bit png. Reducing the jpeg quality made it look much worse in natural size. I hope the original loss-less image exists somewhere or that Muli can quickly produce another one. I suggested taking the text, putting it in a <pre> block and using some CSS styles to make it resemeble a console Window. I'm still not sure it's a good idea.

Reading

I decided I did not like "Emily of New Moon" so far, and began to read Daniel Handler's "The Basic Eight" instead. It's a very funny book, which tells about a gang of teenagers in San-Fransisco, and one girl who decides to write a book out of her diary. (or so I understood). Very amusing, so far.

Daniel Handler also uses the pseudonym "Lemoney Snicket" when writing the "Series of Unfortunate Events". I read the first one which was quite OK, but a bit depressing. I decided I won't go on, because the rest of the book are pretty much of the same vain, (sad ending, and this Count Olaf character terrorizing the protagonists).

Women in Linux

I have already replied to kilmo's response to my comment on the HOWTO in private. Maybe he misunderstood what I meant to say, or maybe takes a completely different opinion. I still, however, take the stand that the HOWTO's proposed strategy was deficient despite the fact that some parts of it were good and enlightening.

10-Jan-2002

Biking

After a long of time of not seeing here I encountered the girl^H^H^H^Hyoung woman jogger whom I encountered for many times. As usual she was listening using some ear-phones to a CD or mp3 player, and as usual she crossed at red lights. When we reached the standard friday Flower-stand on the pavement, she began walking and did not resume running. She is a very fast runner.

"HOWTO Encourage Women in Linux - Conclusion"

First of all regarding my status in the Linux club: it is safe and sound, and no-one is going to outcast me as I gathered. People just find my opinions unusual which is true. As someone whose philosophy consists of Neo-Tech, Objectivism, what ESR said in the Catherdral and the Bazaar series, and many extensions of my own and others, I hold quite unorthodox opinions. I try not to preach them intensively (that's entirely contradictory to general conventions), but I often expresses them. Then, people complain: "what the hell are you talking about? This does not make sense at all!" And then I can show that they are logically deducible from more basic premises.

I don't see conformism as something which is necessarily beneficial. Everybody around me use Windows, while I use Linux almost exclusively. This is just an example. So, to quote what I said, and is now in mulix 's new signature: "My opinions may seem crazy. But they all make sense. Insane sense, but sense nontheless".

But back to the HOWTO. After a nice online correspondence with the LinuxChix issues mailing list, the following conclusions were reached:

  1. The HOWTO was mainly directed at men who wanted to know how they can better attract and accept women to take part in their Linux User-Groups. It was not intended for women. As such it is OK.
  2. A first draft of a similar guide for women, on how to cope with abuse from their male peers, is now being written by a distinguished LinuxChix member by the name of Poppy (it is her first name and please don't misspell it).
  3. I still have some problems with the HOWTO, but they are relatively minor. Namely, I think it was not made clear enough that a similar document for Women on how to cope with abuse would be written, and that it is intended for men. Furthermore, it gives too many guidelines, and you can easily not see the forest for the trees. Finally, the claim that a minority of "abusive" members can reject members from an otherwise perfectly enlightened LUG was not something I liked very much. And the only real solution is for Women themselves to stay away, ignore, penetrate or otherwise cope with the abuse of such minority. After all, despite telling blond jokes, a Linux hacker can be a fully capable and sexually enlightened person. One member of Haifux externalizes a lot of obsession with sex, but I don't think he is chauvinistic. And he is a very old, knowledgable and capable hacker.

I am sorry if I criticized the HOWTO too harshly, but it was just an opinion I expressed here. Things I say in my diary are subject to change, as everything as I say. (I change my opinions sometimes). I hope no-one was too offended by it, and I hope the conclusions I reached now are even more enlightening.

Some other anecdotes from the "encouragin women" fiasco

What happened was that I wasn't subscribed to the mailing list, and the moderator had to acknowledge each of my reply. Eventually she got tired of it altogether, and asked to subscribe without actually receiving messages (which was possible using the Mailman interface), I did just that. (from now on I'll know to do it in the future). I'll stay being able to post because this may come in useful

One woman kept insisting that she dislikes men trying to hit on her, because it happens way too often, and has become annoying. She later said that she hated her body, and wish she were not attractive at all and that many women felt the same. This is opposed to me who like my body very much (even though I need to lose some weight), and feel an ego-boost whenever a woman makes a pass on me, or flirts with me. (which does not happen much)

I claimed that women should be more sexually liberated, be proud of their attractiveness, try to be as attractive to the MOTOS (or the MOTSS, for PC-ness sake), as possible. While they cannot change the fact that men hit on every female that moves, they can at least treat it like criticism: you receive a lot of criticism daily, but most of it is quite useless. However, sometimes it is enlightening and causes a shift in opinions or behaviour. If an exceptionally attractive (not necessarily only physically) man hit on them, they should still be proud. But this is all speculation.

(she did confessed that her beloved grandmother passed away recently and so may not be in a perfectly reasonable status psychologically)

One thing we could not agreed on was this: I said that hitting on a woman on the first time she appears at a club meeting was not a nice thing to do. However, I believed that after 5-10 meetings when she gets to know everybody, it is perfectly OK for a fellow LUG member to ask her on a date. (not making a pass on by any means. A simply suggestion). She claimed this too was illegitimate. I responded like this:

<<<
Can I not ask a fellow university student on a date? Can I not ask my neighbour on a date? If I meet a woman at a Wedding/Bar Mitzva/etc. can I not ask her on date? Can I not ask a woman I'm meeting at the bar on the date? (reductio ad absordum, if you did not notice)
>>>

I think she was taking it too far. I hope that there will soon be a roughly equal number of men and women on LUG meetings and they will become a good an event to ask somebody out as any. But as she noted, there were appropriate places and appopriate times.

Another issue was the etymology of the word "girl". I referred to Chen Shapira as a girl, and was immidiately flamed for using this word, which they claimed was derogatory. I went on by analyzing every posssible alternative (damsel, maiden, chick, lass, lassie, and even consulted M-W for maid, quail and wench) and found none of them to be as good. And "young woman" and "young lady" are two words. Ironically, in Hebrew there is a perfectly good word for it - "Bahura", which is the feminine version of "Bahur" (= a guy) with no derogatory cronations at all.

Ironically, Chen snapped it me when I told her that I referred to her as girl. "Do I call you Boy by any chance?" (which was what the LinuxChix girl told me). Then I said, there wasn't really any appropriate word and we started discussing derogatory origins of words in Hebrew and English. I finally asked her if I can call her "Hatikha" (a word for female babe in Hebrew, which was not very derogatory). And she said, "if you really think so - fine.". ;-)

I asked my sister Michal (who is 23 years old) if she is willing that someone refer to her as "girl" and she said that it would be perectly OK. Maybe it's because Chen used to be a feminist (or some other women-lib activist) and so was still a bit edgy. Michal, OTOH, was never obsessed with women discrimination, but is still very intelligent and competent.

One should note that the word "guy" or "guys" can sometimes be a substitute for "girl". "Rachel, you're a nice guy". "Hey guys - listen". But the following sentence would make little sense "I met a guy at the bar, talked to her and she gave me her phone number." Etymology is fascinating. Seriously.

There was one point where I noted I'll just listen and not contribute much because it was spending too much of my time and I had plenty of other things to do. I noted that it was nice of my original post in the first place and to respond to their comments. But I was not responsible to do it in any way. (it was their privilege, not their right).

The IBM Event and the RMS Dinner

Hmmm. So much to tell, but I already spent too much time on this dictionary. I'll tell it some other time. Just a quick note to mulix: I deliberately introduced myself to Ted Ts'O as "Hi! My name is Shlomi Fish. I'm a Linux user and developer who developed Freecell Solver, a program that attempts to solve games of Freecell and occasionaly makes a good job at it" (and that's it). The reason I preferred it over "Hi! Shlomi Fish! <shaking hands />" is because I knew Shlomi Fish would be just another random name for him which he probably would not remember (I know I wouldn't), and with this introduction he can at least associate me with a relatively successful open-source project. A purely strategical choice. I'm sure you could have introduced yourself as "Hi! I'm Muli Ben-Yehuda! I work in IBM as well here in Haifa. You may know me as the Syscalltrack Guy" Nothing wrong with that.

Later on, I met Mr. Ts'o outside and we discussed the possible adoption of my "IP-Noise Project" (which is specifically Linux-based), The Ken Thompson "Reflections on Trusting Trust" effect, and GNU/Linux on PDAs, home computes and stuff. You can ask him for what he thought of me, but he did not seem one bit annoyed by me.

Syscalltrack Homesite

I decided to convert it to XHTML 1.0 Transitional so it will have a more strict syntax. I indeed found some errors in the validation, but it went very quickly.

You can see what I did here. At least I managed to get some hacking done. *sigh*

12-Jan-2003

CLAN - The Comprehensive Linux Archive Network

I pondered an idea for this for some time. Yesterday I went to irc.kernelnewbies.org there, found riel and some other people and discussed it with it. He liked it so I wrote whitepaper and posted it to the Linux Kernel Mailing List. Tzafrir Cohen gave me some useful commentary. What it does basically is allow to download, compile and install kernel modules incrementally while resolving dependencies. Something like Perl's CPAN or Debian Apt meets the Linux Kernel.

Right now, I'm pondering how to implement it in a robust enough way, and maybe should start hacking on a SPEC. riel said hosting should not be a problem, but that I'll need to make sure I'm serious about it. If anyone wishes to do it instead of me, (or bring out ideas, SPEC portions, etc.) feel free to.

On the IRC, riel and some other guys also discussed Perl modules and objects and what you should use them, and also a system they wrote at Connective (where Rik-van-riel) works that is something like dmoz meets Slashdot, and he claims makes the support guys job much easier. He said something about the code being in Portugese (variables, function names, comments and all) and that they wish to clean it up before they releas it. I've seen a Freecell implementation (with its own solver) code written in French, and it was not something I could begin to understand. use English;!

IBM Event and RMS Dinner

The lectures in the IBM Event where cum-si cum-sa. The Israeli Organization of Information Engineers guy told a nice joke, and made a useful comment about open-source in the government. Basically, the government should not be forced to use OSS because it can stand on its own merits technically and philosophically. However, I do think the government should make sure its users will not be forced to use proprietary software which they'll have to pay for.

An IIS and Oracle site that outputs valid HTML and looks fine in Mozilla, Konq , Opera, etc. is acceptable. MS Word documents for download (without PDFs or HTML) are not.

Next came Moshe Bar's lecture which confused the hell out of the terms "free software" and "open source software". Generally Moshe Bar's lecture are pretty good, but this time I was very disappointed. I tried to correct him sometimes, and he dismissed me and there's a discussion of it in the Linux-IL archives.

Next came Theodor Ts'o lecture. He is not head of the IBM Linux Development Center (or something like that) and talked about everything IBM is doing with Linux and Open-Source. I hope Mr. Ts'o won't take it the wrong way but the lecture was too long and there were too many names and numbers and not enough meat. I left it a couple of times. (but note my impression from Ted below)

Next was a brief but to the point lecture about PHP and Zend Inc. which was very interesting. I did not learn anything too new but it was interesting.

Next came a lecture about the Eclipse IDE project. The project has an interesting design and goals and is widely deployed, but since I'm not an avid IDE user (give me konsole, gvim, gcc, make, gdb, perl, perl -d, Subversion, etc.everyday) and found Eclipse exteremely unconventional to what I was used to, I went away. I think the lecture was interesting, though.

I met Ts'o outside, and we had a few chats. In one he explained to me that ext2 uses the standard direct, indirect, indirect->indirect, etc. convention that is common on the UFS, which I learned at at the course Structure of OS in the Technion. We also talked about my IP-Noise project and if he can recommend anyone who knows where I can forward a "call for adoption" notice. He instructed me to E-mail him which I did. Another chat (between him, me and several other people) was on Linux for the masses, Linux on PDAs, Life, the Universe and Everything.

He calls Linux "liynex" but otherwise is one hell of a nice guy from my first impression, and a good speaker. Ted, next time, please include concrete examples in your lecture. All those graphs, facts, figures, etc. bored the hell out of me.

Right afterwards was a Linux dinner which we decided to do with RMS or without it. (he did eventually came straight from the airport). I was disappointed from the RMS-part of the dinner, because I did not get to talk to him too much, and was pre-empted. Other people were disappointed from me because I did not behave very well. What was interesting was the company.

I met two Hebrew University students who work on the MOSIX team. I talked with one of them about open-source and then mentioned the Cathedral and the Bazaar. He said he printed it the same day, and intended to read it. I hope "Amnon Barak" reads it as well, and MOSIX will become a true open-source project and not just one of those projects with a free software license. Taking Freecell Solver - I did more than 95% of the work on the code. But it would have advanced nowhere, if it were not for the users' feedback, motivation, encouragement, ideas, compliments and even the occasional contribution. I'm not sure it was 100% Bazaar-style, but it was quite close. And even in most Bazaar style projects the core group is very small - usually one or two people.

openMOSIX was supposed to be a MOSIX fork that was done bazaar-style. Now Prof. Barak is a bit possessive about the source, and so shined away from it. I do hope these projects merge in a certain point into one Bazaar-style project headed by Barak (or an anarchy-style project like KDE). But at the time being Prof. Barak won't accept patches to the code even if they are perfectly fine.

I then met Mark Veltzer and few people I did not know, and started talking. We began discusssing the "Microsoft - Good or Evil" endless-discussion. I maintain that Microsoft should be left alone and suffer from their own mistakes and dogma. I also believe Microsoft is smarter than many think it is, and eventually port stuff to Linux, and adopt a more bazaar-like development style of its software. I don't think they will ever go entirely open-source, but I think they can survive to one extent or the other in an open-source dominated world.

Making free software is not about getting rid of Microsoft. It's about changing the rules of the game and making people more free to choose their software, and better be aware of their freedom. As was noted in the conference IBM is the god-mother of proprietary software, distributed such a long time before Microsoft, and still does. It is now one of the largest open-source developers. I think Microsoft can adapt as well as IBM can. It dumped DOS in favour of Windows and MacOS, and can dump both in favour of Linux and MacOS X. This will give them all other UNIXes for free. (just re-compile) And Windows has become so over-engineered, over-complicated, over-x86-specific, over backwards-compatible, over-bloated, and over-un-understood, that they have more profitable pathes to do with the elite group that is supposed to maintain the Windows XP code. (which is the Linux equivalent of the kernel, glibc, X, gtk+, half of GNOME, bash and a lot of the GNU fileutils etc., Mozilla (IE within),atd, CORBA, and maybe other things I forgot).

Granted, some things are nicer in Windows. Multi-threading for instance. But it would take less time to tweak gdb to better support threads, than it would be to fix all the Windows brain-damage around. I once preferred using Win98 over Linux for doing non-development stuff. Now I simply can't stand Windows, not even Windows XP. My Mandrake system with KDE 3.x and everything on it gives me so much more opportunities and is so much more comfortable. I can easily show that there are things that are trivial in Linux which are not possible in the Windows XP as it ships from Redmond. Many things.

If Microsoft wants to beat Linux they would have to seriously hack on the already bloated code. But sometimes, if you can't beat them - join them, and I think that's what they'll eventually do.

24-Feb-2003

"Open Source, Free Software and Other Beasts"

I wrote an essay aims to introduce open source, and free software to beginners. It covers the history, the meaning of the terms and some issues and myths. It's a bit longish (14 A4 pages), but otherwise aims to be encompassing enough.

Chen Shapira has reviewed the early versions of the document, and gave some very essential commentary (including how to trim them - they were even longer than now). nyh summarized the history of early UNIX and the BSDs for me, so I'm grateful for him as well as I was able to use it and link to it.

Hope you enjoy it and let me know what you think. At the moment, I've started working on another document titled "Free the Mouse!". It is a critique of current copyright law, a proposal for modification, and an explanation why it would benefit both consumers and content owners (large and small).

IRC Chatting

I spend quite a lot of time recently chatting on the IRC. I use the irc.kernelnewbies.org network, and usually hang on on the #offtopic channel. It's a cozy little channel with a good SNR, and some very enlightened and interesting people. It's a way to procrastinate I suppose, but then again, I don't have anything critical to do until I start studying.

wli and I have actually fought about our keyboard preferences (Sun vs. PC). wli seems to be very knowledgable and interesting. It turned out that as opposed to me he started working on computers from UNIX workstations, and later switched to Linux on PCs. I, OTOH, actually worked with DOS, Windows 3.1, and various Win32 variants. I think that you appreciate UNIX much more after you work on some really sucky OSes like that. I kept knowing they were bad, but not knowing why, until I started working on UNIX, where I saw a sensible system for the first time in my life. :-)

Life

It's still raining on and off. Yesterday, I was able to bike twice, but today's its raining. I'm going to start studying a week from now on Monday. I eventually decided to take a semester off instead of a year off. At one point I believed I had enough recreation, but now it seems that I'll miss having all this free time. Oh well, the Summer vacation is not far away, and there are some holidays and weekends as well.

I do wish to be able to hike sometime in the springtime. It's been a long time since I've been outdoors.

27-Feb-2003

Life

Still raining on and off, so not much biking for me. I'm spending a lot of time on the IRC lately, but still can get some useful work. Besides, when I start studying again this Monday, IRC would not be as accessible and much less recommended. So I'd better make the best use of it now. And even wasting time is good if you're enjoying it. ;-)

My father and I went to buy a new desk lamp for my Haifa apartment, right before he went to England. The light bulb holder there is broken, and so the room would be completely dark without it. Mom and I are going to set things up in the Haifa Apartment this weekend. At the time being, I don't spend too much time thinking about studying, but I suppose it will occupy quite a lot of my time, soon. Hopefully, this semester, should not be too hard.

Hacktivity

Worked a bit on my version of the Perl beginners portal, a bit on revamping the perl 5 perl*.pod man pages, and some on DocBookifying the OSS/FS document. I ran into a few problems with the PDF generation of DocBook (namely that Hyperlinks and footnotes are not functional), and I hope the good people of the DocBook-apps mailing list would help me soon.

Some IRC, E-mail, etc. Musings

riel is moving out to New Hampshire, while being in Brazil at the moment. The link is quite informative, so I suggest you read it if you are wondering about this issue. He also confirmed the fact that the core Connectiva distribution was open-source, much like RedHat, Mandrake or Debian. According to LWN, some non-free distributions proved to be a bit risky after they become defunct. Suse and Caldera are doing fine, but I still would not trust them.

I noticed a certain pattern with the #perl channels on the IRC. In EF-Net, #perl is reserved for expert talk and no CGI/Web/Net::IRC/newbie questions are allowed. That is reserved for #perlhelp. Of course, a lot of newbies log on to the IRC seeking perl help, and go to #perl, and without reading the subject-line (Rule #2 of GUI design: people don't read!), ask one of those common questions there. And I instinctively try to help them, only that both of us get flamed later on.

I think it would have been a better idea to create a #perlguru channel and designate #perl as a channel for everything including newbie questions. In Undernet, there's this permanent profile with a few scripts, that bans anybody who mentions the word CGI... I was eventually banned after using "c g i" and "c**" and posting a perfectly innocent URL. Again, something that could be remedied by designating #perl as a channel that accepts Newbie questions.

This all reminds me of Linux-IL and how newbie questions used to cause a lot of flamatory reactions. I think the situation is much better now there in this regard.

I visited #iglu at EF-net as well, which is the channel of the Israeli Group of Linux Users. I had a pleasant chat there. Someone asked me about Perl's XML writing capabilites, and I asked him what was wrong with print. Eventually it turned out he was used to a Visual Basic API that made sure the written file was a valid XML at each point. I.e: by appending all the closed tags to the end of the file. This requires an extra overhead, and I'm not sure is a good idea. (in a worst case scenario, it can increase writing from O(n) to O(n^2) for a UNIX file-system) Even so, implementing such an object should not be too hard.

I managed to help someone, I met on the IRC with a Perl CGI script he needed to write, and ended up writing the entire script and a form to power it for him. Which wasn't hard because all he needed to do was append a line to a file. It eventually turned out he was an Israeli, and we ended up chatting some more.

Finally, a flame-war broke out in Linux-IL regarding whether we as Linux developers should be considerate of the needs of Windows users as well. (e.g: use PDF instead of PostScript, maintain a port of the software to Windows). I'll let you be the judge.

5-Apr-2003

Studies

Technion studies have began. I'm taking four courses this semester. Three of them were taken out of understanding that they would probably be easy to me and the other one (Micro-computers) interested me, and was also taken by a fellow Haifuxer. So far, I have quite a lot of homework assignments, but I still have a lot of free time. (maybe too much for my own good). I no longer have the Com-Net workstation due to the fact I no longer study there, and could not get a work there. This leaves me with the Technion facilities, which are inadequate for my needs at best. :-(

Perl Golf

I've been playing quite a lot of Perl Mini Golf lately. Perl Golf is a contest in which the participants try to write the shortest (character-wise) Perl program to achieve a certain end. This creates highly compressed and obfuscated programs, with some very unorthodox tricks, and lack of attention to conventions.

Perl Golfing is an addiction in which I routinely use gvim to edit two lines, trying to make the second one shorter than the original. I also tend to scan the core perl man pages a lot looking for clues on how to make it shorter. So far, I've been doing relatively well, but there always seem to be some people who can find better (or slightly better) solutions, and it's a bit frustrating. Oh well.

IRCing

I spent most of yesterday hanging on the IRC. (despite the fact that I have a Micro-Computers exercise that I'd like to prepare by myself this weekend). I was able to help an Apache newbie (who actually uses Slackware and knows his way around Linux), with the Alias and ScriptAlias directives. I also discussed E-mail MTAs with a couple of people on the Perl channel. Then there was naturally, #offtopic on irc.kernelnewbies.org, in which topics ranged from the latest TPC-C results for 32-way Itanium 2 machines running Windows 2003, to SMP machines in general, to the history of ancient Europe, to Linguistics. In short: Life, the Universe and Everything. Off-topic indeed.

Certification

I certified wli as Journeyer, because of his work on the Linux kernel, and his vast knowledge. (I also taken into account the fact he writes his scripts in Haskell). He is already certified as a Master, but I'll have to know him better than my superficial familiarity with him to do so.

Hacktivity

Not much to show for, unfortunately, but quite a lot of small, relatively useless stuff. Been working on my Haifux Lectures Manager a bit. And then I wrote google.pl, a CGI (or mod_perl and friends) Perl script that acts as a mirror for Google. (I did not release it yet). I also made a coverage of the bugzilla bugs I reported, and found out most of them could be overcome or have been resolved. Kudos to the Mozilla team for the great work.

Per request of my Debian package maintainer, I updated the Freecell Solver config.guess and config.sub files to the latest avaialable from the GNU site. It took me quite some time to find out how to get them properly, and someone on the Autoconf mailing list helped with that. It is strange that libtool 1.4.3 which is quite recent does not contain them, but rather very old ones. Who can tell the ways of the GNU?

Some Thoughts about UNIX TCO

A recent Slashdot feature pointed to an Enlightening article about the TCO of a system with one central server and several X terminals. I've seen this X terminals, which can only be used to connect to a server over the network, and realize they require almost zero maintenance in comparison to full-fledged workstations. As far as a university is concerned, by using a server, one can install things in only one computer and allow everyone else to enjoy it, while a corresponding client-server architecture, would require installing packages on several different workstations somehow.

Now in a workplace where everybody administers his own workstation, the second option may actually make sense. But a university has farms with unpriviliged access. In the Technion we have many farms with such client-server configurations, and the software installed on it, is inadequate for the needs of many (if not all) students. And naturally, it is impossible to install new one, because it requires a system-wide installation. Strangely enough, there are also UNIX farms with a multiple workstation configuration, that suffer from similar symptoms as well. This X-terminals configuration sounds like a solution with a TCO from paradise, and it's interesting that the Technion did not deploy it widely.

17-Apr-2003

The Go-Linux Conference

A conference for promoting Linux in Israel took place in the Hilton Hotel some days ago. There had been a lot of buzz about it beforehand, and a lot of prepartions. I believed I was going to study throughout the entire today, so I did not took a very active part. I eventually attended the event from about midday, after attending a class in the morning. I must say it went extremely well and everybody seemed to think so as well. Hackers and Suits integrated nicely to give an exciting yet accurate depiction of the Linux world and potential. The conference was financed by People and Computers and many industrial companies.

I came mostly to talk to people I know, but also attended a presentation, the free software developers panel and the Perl-IL meeting. I bought a Perl in Israel T-shirt for 50 NIS, but forgot it there when I exchanged some books. (the Israeli Perl Master have taken it, so I'll get it eventually).

Refer to the Linux-IL mailing list archive for April and my record of it.

Perl Beginners Site

My Perl beginners site moved to a more Permanent Location. As for the standard rant+suggestions regarding the suitability of the Perl online world for newcomers: I was not happy from most of the comments I received in the Advogato post. Most of them beat around the bust in one way or another.

I am going to do my best to improve the situation and hope others would take notice of it as well. At the moment, too many resources of the Perl world are claimed by too few entities. I'd like the situation to improve.

24-Apr-2003

Perl Beginners

I eventually posted a link to the essay to the perl advocacy mailing list. There I finally received a useful discussion of it. I'm not sure if I was able to convince anyone who was not previously convinced, but the discussion was to the point and of high quality.

I also added quite a lot of new things to the Perl Beginners site. I posted a link to it on a web-design mailng list I am a member of, and received a useful comment with a lot of suggestions for modifying the style and content. I applied most of them, and planning to apply another one in a different variation. (dedicating parts of the site for the various common uses of Perl like CGI, QA, Bio-info, Sys Admin).

Homework

My Software Systems partner drove to my Tel-Aviv home to sit on the home exercise. We had to write a rudimentary spell checker in VAX-11 assembler. It took us all day, but OTOH we ended up talking a lot about various things, and also took a long lunch break, to grab a byte in the commercial center, and to recreate. At the end of the day, it worked and we were very happy.

The simulator we work with is written in Turbo-Pascal with the old Borland style look, only a much worse behaviour and some exotic bugs and misbehaviours. I was told that a pair of students was assigned to rewrite it for Win32 using MFC, but they are not finished yet. What I could really use is a UNIX-style gdb-like application, with a basic scriptability and an ability to automate everything. As it is, over-GUIing it really decreases from its functionality.

Since the vacation involved a lot of Jewish holidays, my partner for Intro to Software Systems (a different course with a similar name, mind you) and I decided that we solve the exercise independently and then compare them. So in the recent days, I say on implementing the implementation of a linked list, as well as a stupid dating service management that uses it. The various operations, all have sub-optimal complexity if you ask me, but we were not requested to do otherwise. "Oh ANSI C, ANSI C! If only you were Perl..."

Now I still have the written part of it, which should not be too hard, and then the exercise in Financial Management. Financial Management is a relatively technical and dry course, but one that explains many important financial concepts such as interest rate, inflataion, loans, etc. and how they work behind the scenes. So far, I can wholeheartedly recommend it.

Impressions from the Mozilla Culture

It turns out Mozilla has spawned a great deal of culture and add-ons. I installed the Mozilla Google Bar, which is the Mozilla equivalent of the same offering from Google Inc. to MSIE. It's really nice and handy. I also downloaded a web-developers toolbar from somewhere, which is also very good.

Finally, I took a look at Cascades, a CSS editor for Mozilla. As it turned out, the page was an old leftover and its functionality was already integrated into the core Mozilla. The CSS editor is handy and gives a nice dynamic functionality. My only problems with it is are that it: (1) bloats the CSS stylesheet, (2) does not preserve its indendation, (3) has no decent HSV colour picker. Still, I could rip the styles I edited and apply them manually to my stylesheet, so it's better than nothing.

I am very glad that Mozilla spawned such rich culture, and I think what I discovered is just the tip of the iceberg. Is there a similar case with Konqueror/KHTML? Is it possible to program plug-ins and extensions for it in Python or in Perl or will C++ have to do? With Mozilla, many of the things were programmed in XUL and JavaScript, which is a much better idea as far as the programmer is concerned than messing with C++.

08-May-2003

Studies

I sat on the "Financial Management" exercise this weekend, and met with my partner on Monday and was able to finalize it then. I also worked on the Micro-computers exercise. I solved Questions 1,3,4 but I don't know how to solve question 2. Maybe my partner will have a better luck.

This Tuesday my partner for Software Systems and I sat on the project and the third home exercise. We finished an implementation for one part of the project, and also part of the home exercise. We should meet tomorrow as well.

There is now a vacation that started on Tuesday and will end at the Weekend, due to the Israeli Independence Day and so on.

Hebrew Glossary for Perl

I started writing a Hebrew Glossary for Perl. I wrote it in XML format and it took me some time to learn the Perl XML::LibXML module to get it to render it into HTML. Then, I also wrote a DTD for it, and prepared an XSLT stylesheet.

When I tried to view the XML in Mozilla, I got a blank page. I spent the better part of yesterday trying to get it to work. The problem turned out to be in the "Content-Type" HTTP header that the browser sent for the .xsl file, which wasn't "text/xml" as it should have been. After I fixed it using a short .htaccess file, it worked perfectly. <sigh />

So I filed a bug report for it in the Mozilla Bugzilla but it was closed, because that's what should happen. <sigh /> again.

06-Jun-2003

Studies

I handed out the "Intro to Soft. Systems" exercise, a Micro-computers exercise about MMX, and a Financial Management exercise. Now I am working on another Financial Management exercise, and will meet with my "Intro to Soft. Systems" partner on Monday to work on the next exercise in that subject.

On Sunday, I'll meet Ran to work on the "Software Systems" exercise and project. Last time, we ran into problems and after I talked with the T.A. it turned out that we did not enable the interrupts functionality in the simulator. After it was enabled everything worked fine. <sigh />

Hacktivity

I was able to get several things done. First I created a QuadPres Bundle on CPAN to install the modules it requires. It turns out the dependencies of the bundle, are specified in the CONTENTS POD section in the module, and it took me some time to figure it out.

I also worked on "use strict"ing the main script of the Chiq-Chaq Wiki Implementation. I finished doing this and now I'm going to fix the HTML to make it validate.

Perl

I discovered that the <> directive does not do the same thing as <STDIN>. While the second reads from standard input, the first one tries to open files on the command line one by one.

There's also a new Perl Golf - Boggle. I'm doing pretty well at it - I'm in 5th place. But there's still room for improvement and I'm stumped.

Life

My sister Noa has gone abroad the night before yesterday. She will be there for three monthes on a trip to South America.

21-Jun-2003

Studies

In the "Software Systems" front, my partner and I showed our presentation to the lecturer, and he had some issues with it. To resolve it we sat on it on Thursday, and revamped it greatly. We sent him the modified version, but did not hear from him since.

Right now I have homework pending in Financial Management, and in Micro-computers. The latter I only have 20% of the score left to do as I alredy did the wet part.

I attended the various lectures and tutorials given this week. In the Software Systems lecture, a student gave a presentation on a device he wrote using Blue-tooth and a TI DSP, and the lecturer told us about what the company he founded deals with. (connecting variable data sources together to integrate information)

Hacktivity

I gave some touches to the list of mailing lists manager. I had to fix the build, and integrated building an RPM Spec. I also worked on Quad-Pres a little. Since I needed to render the presentations into HTML that is viewable on the hard-disk, I created a script that does just that. All it does is append index.html to links to directories. At home , I extracted it into a module, and placed it on CPAN.

I called it HTML::Hard::Disk. However, I received a reply to the namespace request that was sent to the CPAN module maintainers list, in which someone claimed it was not a good name. He suggested HTML::LocalizeLinks, and I think I'll go with HTML::Links::Localize.

In any case, I integrated its functionality into Quad-Pres, and will probably release a new development version, and announce it on Freshmeat.

30-Jun-2003

Studies

I had the test of Financial Management yesterday. I did not understand the first part at first so I decided to move to the second part, which was easier. Then I returned to the first part and this time understood it and was able to solve most of it. Now I have some vacation until the next test on July 14.

The registration for the Winter semester is today, and I hope I can make a convenient schedule with Thermodynamics and another subject. I'd like not to have an apartment near the Technion next semester, so I need good times.

Knoppix

Someone testified on GNUbies-IL that he could not run a Knoppix CD he burned. To see if it happens for me, I downloaded and burned the Knoppix CD. I ran it on my computer, and it ran perfectly fine. I was impressed from it a great deal. I was able to use KDE, surf the Internet, see Java applets, and listen to mp3s. Very impressive.

Now it seems either his CD was not burned correctly, or there's something wrong with his computer. I'll check that out in the coming days.

Hacktivity

I fixed the style on my Dmoz categories. When I had tried to apply to a new category, I was notified that the style on some of the entries did not correspond to the dmoz guidelines. So I tried to remedy it.

Other than that, I worked a bit on Quad-Pres, and added multiple themes functionality to it.

Reading

I finished the chapter about SVG animations in "SVG Programming" and am now in the beginning of "Integrating SVG with HTML".

02-Jul-2003

Subversion

The day before yesterday I wrestled with two Subversion problems. The first one was that whenever I tried to check a file out of an https:// mounted directory, I got a strange OpenSSL-error report. An old version of Subversion worked perfectly fine. It turned out to be a problem that the WebDAV library was not compiled against the most recent version of OpenSSL. A re-compilation of the WebDAV library solved the problem.

The problem I encountered afterwards was that Subversion kept rejecting my repository's certificate. In order to solve it I had to add a pointer to the server's .pem file to the Subversion configuration file. I mistakengly used the wrong configuration file, but eventaully Ben Collins-Sussman corrected me on the IRC. Then I discovered my certificate got expired, so I created a new one that will be good for the next 30 years, and re-tried.

This whole business took a few good hours, but now everything is working and I'm happy.

The IGLU Server

What kept me busy yesterday was an entirely different problem. It turned out that the Israeli Group of Linux Users's web-server version of Squishdot had a cross-server scripting problem. Upgrading it requires a lot of manual steps, and we got sick of Zope anyhow. So I had to install a new content management system. I first tried phpBB, but could not get it to look more or less like the original Slashdot-like way. So I switched to PostNuke, and managed to configure most of it yesterday and today.

Studies

I finished the last "Intro to Software Systems" exercise today (yay!). I'm enjoying the vacation before the next test.

Biking

I kept thinking my bike had a flat wheel. Yesterday, I went to take them to the bike fixer and it turned out there was still a lot of air in the wheels. So, I tried to fill the rest of it. However, in the front wheel, the filling caused all the air to come out. Aaarrggh!

Failed Linux Install

The one who contacted me about Knoppix, called again, and he gave me a life to his apartment. I brought my Knoppix CD and the Mandrake CDs with me. It turned out his computer was constructed out of "components he found in the garbage". Thus, we could not get either Knoppix or the Mandrake installation CD to load, no matter what we tried.

I invited him home to see my Linux system in action. When he left he was quite impressed from it. I'm still disappointed that we could not get Linux to install there.

05-Jul-2003

mod_php using Qmail

I encountered some problems on iglu.org.il with PostNuke. Apparently, I could not send mail. After I upgraded php to the latest version, I discovered that I could send mail from the command line, but not from mod_php. By "tail -f"-ing the web-server's log, I found out an error: "qmail-inject: fatal: read error". I searched for it and eventually found a post that says how to resolve it.

Worked like a charm.

Biking

I tried to fill air in my bicycle's wheel, and it worked. Hallelujah! Now, I've already went biking twice, and it's good to be back in the habit. I hope that's the end of the phantom problems with it.

Hacktivity

This and that. I've been trying to find some Subversion bugs to resolve, and so far have been only bugging with it the Subversion development list. I also wrote a Perl script to submit a site to dmoz, seeing how my browser gets stuck doing that. The script seems to submit everything, but the site does not arrive at dmoz (checked it with my own category). Then I discovered there is a better way for me as an editor to submit sites.

10-Jul-2003

Studies

I got 93 as the final score of Financial Management. (yay!). OTOH, I did not do too well in the last exercise of Micro-computers. I'll have to see the T.A. about it. I also solved some exams for the "Intro to Software Systems" test and prepared part of the next Micro-computers exercise.

Hacktivity

I provided fixes for two Subversion bite-sized tasks. I also worked on the latest Perl Golf contest - Mathematical Forest - what a delightful waste of time.

GnuPG

I needed to get a password from someone, who refused to talk on the phone for some reason. So I eventually opted to generate a PGP public key and transfer it to him, so he can send me the password encrypted. This is the first time, I'm seriously using PGP/GnuPG for a long time now.

Forums, Forums, Forums

I don't like the fact that PostNuke requires registartion and logging in to post an article, so I was looking for an alternative forum. While I was, I discovered Phorum, which seems to behave very much like the Joel on Software web forum. I'll try to install it on my home server and see how it behaves.

If I like it, I'll install it on the Perl Beginners' site.

14-Jul-2003

Kernel 2.5.75

Persuaded by an IRC conversation with mulix, I set out to install the Linux kernel 2.5.75 on my system. The first problem I encountered was that the some of the kernel's modules would not compile. To solve it, I removed them from the configuration, but they were still enabled by default, so it wasn't my fault.

Then, after I had the kernel compiled, I tried to boot it only to find a blank screen, and some hard-disk activity. It turned out I had to enable some configuration options that enable the console and stuff. (check Dave Jones' Post Halloween Document for details). Then, the keyboard did not work, and some guy on #kernelnewbie helped me with some extra options to enable it as well.

Afterwards, I was able to boot it, and use the network and the sound card. But, then when invoking the full boot process, I encountered a problem that the system won't start. I traced the problem to /etc/rc.sysinit, and by adding a lot of echo messages, fixed it for the kernel. Then my system was operational, albeit some of the startup modules did not load and had to be loaded explicitly by me.

So, X worked, the sound card worked, and the network worked, but I could not get the Nvidia kernel drivers to compile with the new kernel. So I switched back to kernel 2.4.x. I can still boot 2.5.75 if I like, but I don't see much reason to.

Subversion Hosting

I discovered that I could save more space on stalker.iguide.co.il by deleting the subversion .a libraries, and stripping the .so ones.

I plan to link to my online subversion homepage repository there, from my homepage soon. That way people would be able to check out the source code of it.

Studies

I took the exam of "Intro to Software Systems" today. It went pretty well and wasn't very hard. I also handed in the assignment for this subject. Other than that, I only have the Micro-computers exam, and the last exercise in it to hand.

20-Jul-2003

Hacktivity

My Fix for Subversion Issue #1311 turned out to be faulty, and I discussed the best to really resolve it with one of the Subversion developers. Next, I provided a fix for Issue #1267 (have to say "no" several times to reject SSL certificate), which I had to update after a modification in the Subversion code.

Next I talked, yesterday, with Ben Collins-Sussman on the IRC about an issue I found in the bugtracker, and he suggested a way to resolve it. So I implemented it and added a new feature.

Nothing of what I did was applied yet, which is a bit frustrating, but I hope a core Subversion developer will find the time to review and accept my patches.

Studies

I met with my Micro-computers partner on Thursday, and we compared the two versions of the exercise that we solved. We shortly came to a combined version. Then there was the issue of handing it out which was resolved by me doing so on Saturday, when my parents and I travelled to move things out of the apartment (see below).

Since I only study on two days in the next semester, and it should be my last , we decided to stop keeping the apartment lease in Haifa. So we went there, and took our things, and moved them back to Tel Aviv. We took quite a lot of things and needed a few hours and several transactions to move everything.

At one time, I climbed up the stairs (7 floors) and when I arrived I was all sweaty, so I was told to take off my T-shirt, and after a while replace it.

Subversion Hosting

I encountered another problem with Subversion that took me some time to resolve. Subversion kept rejecting my SSL certificate and asking for confirmation. By talking on the IRC with some people, I was finally able to resolve this. Apparently, the problem was that I rsynced the SSL certificates from my localhost back to the server, and so ran it over, and invalidated what I had in the Subversion configuration.

I resolved the problem by generating a new certificate and syncing the Svn configuration with it, and then making sure the SSL overriding won't happen again.

Another problem solved!

21-Jul-2003

Perl Mongers Meeting

This Thursday the Israeli Perl Mongers had a meeting where Stas Bekman gave a several hours talk about mod_perl 2.0. Many people attended the meeting (about 20-25), and we had a lot of fun. The lecture was very instructive, and taught a lot about what can be done with mod_perl besides writing simple CGI scripts.

After the meeting was over, I explained to someone about Subversion as he said he had problems with CVS and was looking for a good alternative. (I eventually wrote an E-mail to the mailing list about it). Oron Peled gave me and Kfir Lavy a ride home as he was returning home to Haifa. We asked him about his past experience with UNIX and what he does now, and we had a very interesting conversation on the way home.

Project Introductions at the TAU OSS Course

Yesterday, I went to a lecture of the Tel-Aviv University Open Source development course. There was a lecture there about CVS, which I interrupted with some corrections and additions. After the lecture several people and I introduced our projects to the students.

I gave a 10 minute introduction about Freecell Solver (that was accompanied by a demonstration of kpat solving Freecell). One of the Xparam developers gave an overview of his Xparam project. Shachar Shemesh said some words about Hamakor NPO, and then introduced the WINE project to the students.

The students in the course are expected to choose a project to work on and to perform about 300 hours of work each on it. The Xparam guy got three students who were interested in the project and gave him their details. When I returned home, and checked my E-mail, I found out from the course initiator that two students expressed interest in Freecell Solver as well, and would probably contact me. I did not hear from them yet, but I'm looking forward to it.

Subversion and Perl Makefile.PL - problem and solution

I now started to maintain LM-Solve using Subversion. However, after importing the project into Subversion, I encountered a problem that I remembered from Linux::Kernel::Module::Builder: the Makefile.PL also did something with all the files under the .svn/ files. (and in my case even corrupted the working copy).

A quick Googling made me realize that the solution was to install the development snapshot of ExtUtils::MakeMaker and use it instead. This has worked, and the Subversion resident Perl guru told me the same thing on the IRC.

Subversion Neon Usage

Subversion has a problem of asking confirmation of a certificate for as many times as the https:// path has path components, as it keeps trying upward components. I wrote a fix for this issue, and posted it to the Subversion development list. Ben Collins-Sussman criticized it saying it was a workaround and maybe we are using Neon (the WebDAV client library) wrong.

I inspected the code of Neon and found it does indeed return a plain NE_ERROR error if the certificate's authenticity failed. This makes it impossible to tell if we failed due to that or due to something else altogether. We decided to wait for the Neon project head to tell us what he makes of it, and what we should do.

Dmoz.org Perl Tutorials Category Blues

My application for editing the Dmoz.org Perl "FAQs, Help and Tutorials" category was rejected for the third time. This time, there were problems in the grammar of my submission (which I'll make sure won't happen next time) and some vague critique of what is present in my existing categories. I should probably go over them and fix it, and then try to apply again.

Studies

I got 86 as the final score in Introduction to Software Systems after I got 83 in the test. My final exam for this semester is two days from now, and I hope it will go as well as the others.

There was a project brewing on writing a Freecell solver. I contacted its supervisor today asking if I can take it next semester, but he said he already filled the quota of projects he can give, and so I cannot. :-(.

25-Jul-2003

Subversion and Neon Verdict

At the end, the Subversion maintainer told us we can use the HTTP error code to distinguish between the different kind of errors Neon is returning. So I wrote an updated patch and Ben Collins-Sussman commited it. (thanks, Ben!). Now, there's a part of me in the Subversion core.

LM-Solve Re-work

I spent part of the last couple of days reworking LM-Solve. I started out a Subversion repository for it, changed its namespace to "Games::LMSolve", added a lot of documentation, etc. It's also in CPAN now.

Studies

I took the test of Micro-computers on Wednesday. It went pretty well. I was first worried that I won't have enough time to finish it, but then it turned out I did have, even without the time extension. I still don't know what my score is. This is my last test for this semester, so now I'm free!.

Subversion

I submitted a patch to add a --config-dir option to the subversion command line clients to specify an alternate directory for the configuration files. The first incarnation became out of date after a change in the code. The second one was also more encompassing, and modified more configuration commands. I still have a small queue of patches that did not get accepted yet.

2-Aug-2003

August Penguin II

I attended the August Penguin II event yesterday. It was very nice and I met many people I knew there. At first Shachar Shemesh gave an instructive presentation about the Linux activities in Israel the past year. Then, there was a lecture about MOSIX by one of its Hebrew University workers. It was very nice as well. Afterwards, moshez gave a lecture about PyPy, instead of the Python internals lecture that appeared in the agenda. Moshe is a very entertaining lecturer and the lecture went very well.

Then came the geek trivia, which pitted two groups of three "geeks" and "nerds" against each other. It was very fun. And finally, came the key signing party , which I took part in and signed the keys of 20 people or so.

There were a few glitches there, as far as I was concerned. First of all, I discovered the building did not have any coolers and I had to drink water from the taps of the restroom. Then, it was too cold in the lecture hall, and I had to leave once or twice to regain my senses. Finally, my ride back to home, disappeared during the key-signing party, which caused me to have to take the bus again. But all in all, they did not spoil the fun.

After the event was over, I went back home, ate, and went to sign everybody's key. It turned out some of the key could not be checked out of the servers I tried. (read the thread for more information). However, it turned out mulix who organized the key signing party, prepared a keyring with all the keys, and was about to send it to everyone for signing. Thus, I was able to sign the rest of the keys.

Freecell Solver

I discovered a game of Simple Simon that could be solved by hand, but not by Freecell Solver (which gave up after checking only the initial state). So I set out to discover why. Apparently there was a function there which was responsible for performing the initial move, only it had a bug. I only had to remove one = from an <= operator and the bug was fixed and the game was solvable. Hah!

Reading

I finished a large part (most?) of "Games, Diversions and Perl Culture : Best of the Perl Journal". I also read the Freshmeat GUI Toolkits feature and started reading ESR's "The Art of Unix Programming" which is very interesting so far.

Subversion

I wrote a couple of tests for my Issue #1297 patch, and indeed the unpatched Subversion failed them both. However, I was told the patch is not correct because it does not handle some working copy parameters correctly.

LM-Solve

After releasing version 0.8.0 I discovered a bug and released version 0.8.1. Now I think I did not document the Hexagonal Planks ID in the man page of the executable so I'll need to release 0.8.2... :-). In any case, I also revamped the LM-Solve homepage and now maintain it separately from my homepage.

Finally, I announced LM-Solve on Freshmeat.

Dmoz.org

I finally got permission to edit the Perl "FAQs, Help and Tutorials" category on dmoz.org. I created a tutorials sub-category and will move all the tutorials there. I might create other sub-categories there if I feel the main one becomes too crowded. Let me know if there's anything you'd like to see there.

Lectures

I prepared a lecture about my solution to the Graham Function Perl Quiz of the Week. This time I used PerlPoint, which enabled me to quickly translate the summary into the lecture itself. Here's a discussion of it on Hackers-IL.

I also prepared a summary (but not the slides themselves) for a lecture about LM-Solve. Both are intended for the next Israeli Perl Mongers meeting.

7-Aug-2003

Hacktivity

I finished preparing a lecture about LM-Solve. Then I worked on Subversion, and formed an updated patch to Issue #1297. This took a really long time (almost an entire day), but I'm really happy that it's complete now. The fix had a small bug-let which was easy to fix by adding a few lines.

Reading

I sort of finished reading "Games, Diversions and Perl Culture", and reached to the middle of "The Art of Unix Programming"'s chapter about Mini-languages. TAOUP is a very interesting and entertaining book as is the usual tradition with esr's writings.

Perl Meetings

Gabor Szabo, who is the Israeli Perl Mongers leader is abroad, and as it turned out Shlomo Yona, who was appointed to organize the meeting instead is busy moving to a new apartment. Thus, I took the lead and decided on how to resolve the date, place, etc. issues for the next meeting.

Translucent Cursor

I wanted a Knoppix-like translucent cursor for my X-Windows. So, I asked around the IRC. Someone told me a similar effect exists in the cursor_themes package found in the Mandrake Cooker. Looking there, I found it. The cursor is darker than the Knoppix one, but still is nice in a way. The package has other interesting themes, which I may try out.

10-Aug-2003

Subversion

It turned out my updated patch was not acting according to the Subversion conventions. What I did wrong was not create temporary files, and not use the run log mechanism to perform the operations that could be performed with it. So, I sat on it on Friday, and wrote an updated patch (revision 5). This was applied, and so I'm happy.

Today I took some time to prune my patches archive from patches that were already applied.

Haifa Apartment

I met with the Apartment owners and one of my apartment-mates on Friday to settle the payments for the apartment. There was a bit of a fuss between my dad and the owner, about a payment for replacing a lock that was done a year earlier. But other than that it went fine.

On the way back, I ate lunch at the MacDonald in the Yoqne'am Mall.

Other Hacktivity

I worked and reviewed the lectures I wrote a bit. I've started adding missing slides to the Gimp lecture I prepared, and hopefully, I'll put the full lecture online soon. Other than that - not much.

Hard-Disk Problems Revisited

A few days ago, I got the same faulty noises when booting the hard disk. A reboot did not help, but after I started Knoppix and mounted it, everything was fine. Today, the same noises also happened, but this time the system could load. Hmmm... I think I'll try to buy a new hard disk as soon as I can.

14-Aug-2003

Hacktivity

This and that. I've organized my Subversion patches directory to exclude patches that were already applied. That way, the other maintainers can best know what needs to be applied. I've been looking for other Subversion issues to work on, and found some candidates, but so far did not find the time to work on it.

I also made progress in translating "Homesteading the Noosphere". A couple of people contacted me with corrections to it, and I'm grateful for them. Then, I made the data for my version of the Haifux lectures manager up-to-date with recent lectures.

Finally I edited the Wikipedia entry of Freecell to make it less lame and more accurate than it was. I actually woke up in the morning thinking about Wikipedia and whether it mentions Freecell, checked it a bit afterwards, and in the evening changed it. ;-)

Reading

I read part of the book about Statistical Physics and Thermodynamics I have (I'm studying Thermo next semester). I also read the first two chapters of "The House of Arden", after being reluctant to read it for a while.

Free Software "Monopolies"

jlouis, I don't really see free software "monopolies" as a bad thing. It takes a lot of time and effort to create quality software, and so it make sense one or a few packages will rise above the rest, and concentrate most of the effort around them. If we take gcc, for example, then everybody use it because it's a great and trustworthy compiler.

I don't see much point in switching to using anything else, just to make an anti-monopolistic point. If gcc works, I am sticking with it. If something better ever comes along, I might switch, but there isn't anything better now. If you ask me, you'd better hack on gcc and make it an even better compiler than it is now, then try to make a half-decent competition.

Certification

Certified jlouis as Apprentice because of the above and other stuff I found on his homepage.

17-Aug-2003

Perl Meeting

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

Python Bindings

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

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

Subversion Issue #1473

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

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

Reading

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

Biking

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

Hello there Yahoo! my name is Shlomi Fish and I'd

21-Aug-2003

Haifux Meeting and Birthday Party

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

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

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

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

Warcraft III

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

Movie: Pirates of the Carribean

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

Hacktivity

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

Upcoming Open Source Events

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

Reading

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

27-Aug-2003

Linux Events

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

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

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

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

Hacktivity

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

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

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

Vipe is Disconnected

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

Reading

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

02-Sep-2003

Vipe is back online

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

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

Getting MikMod to Play using Artsd

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

artsdsp /usr/bin/mikmod -d 2

Smile! You're on camera!

Hacktivity

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

Reading

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

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

05-Sep-2003

Bug in uniq on my system

shlomi:~# cat uniq-test.txt
uses/bio-info
uses
uses/qa
shlomi:~# /usr/bin/uniq < uniq-test.txt
uses/bio-info
uses/qa

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

Objectivism and Open Source Essay

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

Subversion Issue #854 Revisited

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

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

Larry McVoy Interview

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

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

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

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

08-Sep-2003

Windows Bound

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

Version Control Comparison

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

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

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

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

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

"Objectivism and Open Source" Essay

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

Biking

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

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

22-Sep-2003

New Computer

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

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

Linux Meeting at the Cafe

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

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

Yesterday's Lecture

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

Biking

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

ALSA sound

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

Hacktivity

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

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

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

Kmail

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

DVD Playing

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

27-Sep-2003

Rosh Hashana

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

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

DVD Playing (cont.)

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

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

Hacktivity

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

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

HTML Blues

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

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

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

MSIE Die Die Die!!!!

1-Oct-2003

BitKeeper

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

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

Hacktivity

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

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

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

Haifux Lecture

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

10-Oct-2003

Hacktivity

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

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

Subversion Woos

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

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

New Cellphone

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

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

Orange Site

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

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

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

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

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

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

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

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

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

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

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

1. It is possible.

2. I'm not talking about a separate version for other browsers. I'm
talking about one version for _all_ browsers.

> orange, and many other content providers, are investing
> in the most common browser, it is currently not cost efficient to
> develop versions for other browsers.
>

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

http://t2.technion.ac.il/~shlomif/

(which links to other sites I made).

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

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

Regards,

	Shlomi Fish

12-Oct-2003

Movie

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

Reading

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

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

Backup

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

Hacktivity

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

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

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

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

17-Oct-2003

Quad-Pres

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

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

Version Control Systems

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

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

Translation

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

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

21-Oct-2003

GIMP Lecture at Telux

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

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

Quad-Pres Hacking

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

Rub-a-dub-dub Translation

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

Setting up ViewCVS for Subversion

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

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

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

Haifux Welcome-to-Linux Preparation Meeting

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

Studies

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

26-Dec-2003

Studies

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

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

DVD Playing Trouble

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

Am I lame or what?

Translation

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

Subversion and Win32 Guide

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

grip woos

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

Welcome to Linux

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

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

Perl Golf

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

3-Nov-2003

The Neo-Tech FAQ

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

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

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

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

5-Nov-2003

Subversion

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

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

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

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

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

Transcribing Thermodynamics into LaTeX

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

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

\newcommand{\parens}[1]{\left(#1\right)}
\newcommand{\halfN}{\frac{N}{2}}
\newcommand{\hNpm}{\halfN+m}
\newcommand{\hNmm}{\halfN-m}
\newcommand{\tmN}{\frac{2m}{N}}
\newcommand{\osomething}[2]{\parens{1 #1 #2}}
\newcommand{\otmN}[1]{\osomething{#1}{\tmN}}
\newcommand{\ox}[1]{\osomething{#1}{x}}
\newcommand{\exprone}[1]{\parens{\halfN}\otmN{#1}\ln\left[\parens{\halfN}\otmN{#1}\right]}
\newcommand{\exprtwo}[1]{\parens{\halfN}\ox{#1}\ln\left[\parens{\halfN}\ox{#1}\right]}
\newcommand{\exprthree}[1]{\halfN\ox{#1}\ln\ox{#1}}

Telux Meeting

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

But it was a lot of fun.

Israeli Perl Mongers Meeting

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

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

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

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

Reading

I read through Eric Raymond's Libertarianism FAQ. It was a good read as most of the things by Raymond. I also read a few pages out of "Ender's Game", and some more out of my re-read of "Programming Perl". Other than that, I started reading the CPAN book, which did not renew too much so far, but it's just the start.

Orange Site Continued

I decided to post my correspondce with the Orange webmaster to Linux-IL. I wanted people who were Orange customers to voice their support of making the site compatible with Mozilla. The reaction overwhelmed me. The story was posted on Whatsup and on other people, and many people voiced their opinion that the Orange customer customer service is lacking in other respects. The response of the webmaster was analyzed as condesending and bold. (which was not what I thought of it originally).

However, many people sent various messages to the webmasters with their support of my agenda. Most of them received some generic (copy and paste) response that Orange has prepared in advance. A pretty good response, but not such that can solve the problem at hand.

15-Nov-2003

Linux Day of Haifux

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

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

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

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

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

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

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

Studies

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

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

kilmo is blogging again

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

TeX Problems (and their Solutions)

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

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

The error message I got was:

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

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

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

Mandrake 9.2

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

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

18-Nov-2003

Article at Perl.com

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

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

22-Nov-2003

Job Tracker Revamp

I've decided to take some time and revamp the iglu.org.il Job Tracker. I first decided that since practically everything I had in mind was going to be different, I'd be better off starting from scratch. But, then I thought better of it, and started from the code I already have, and don't regret it. I already accomplished quite a bit and only been working on it for a couple of hours net.

Yesterday, I went to sleep at 23:00 because I tried to track a couple of bugs. One of them ended being an Apache mis-configuration. Apparently, when you use ScriptAlias the plaintext non-executable .css files are not served from some reason. Trying to solve it, required writing an ugly configuration code, with a regular alias, and then association of *.pl files with the cgi-script handler. But it works! ( I wish I would remember more of "Apache: The Definitive Guide", but I don't)

In any case, here are a few insights from the process:

Reading

I read Paul Graham's Why Nerds are Unpopular article. It was quite a good read, but I got the central message right at the start, and then it continued chewing it. I also continued reading "Extending and Embedding Perl". It now covers the Perl 5 API, which has a lot of functions, and it is getting quite tedious. Nevertheless, it is probably a better reference and introduction than the Perl man pages on the subject.

Studies

In Statistics, we have to submit each three consecutive exercises in the following lesson. Since I joined late, I had to prepare all of them in one week. It was quite a lot of concentrated work, but I did it.

Other than that - it's fine. Thermodynamics seems quite easy so far and I understand almost everything. I hope this situation will last.

LM-Solve Article

I received a few comments for the LM-Solve article. Ran Eilam (my former boss at Cortext) commented that it was very well-written and that he understood everything. He did say that it raised many questions that will be addressed at the next meeting.

A certain correspondant also responded, that a pattern found in the code was discussed in the perl6-language mailing list, but also that there's a more efficient algorithm (which he sent to me). I acknowledged this was the case, but said that I didn't want to invest time thinking how to do it right when I wrote the code, and also that the original code was conceptually simpler.

Yapcom

My comments regarding Yapcom (the Perl Conference mangement software that Israel.PM is writing) sparked an interesting discussion between Gabor Szabo and I in its mailing list. I commented a bit about the Subversion repository organization. I also had trouble getting all the tests to succeed, and was able to solve it with some consulting. Eventually, a patch of mine was accepted there.

Bill Joy Interview

haruspex: I agree with what you say about the Bill Joy interview. He seems incredibly cynical and pessimstic. His comments about Linux are also strange:

Re-implementing what I designed in 1979 is not interesting to me personally. For kids who are 20 years younger than me, Linux is a great way to cut your teeth. It's a cultural phenomenon and a business phenomenon. Mac OS X is a rock-solid system that's beautifully designed. I much prefer it to Linux.

First of all, there has been much progress in Linux since what was the state of the art at 1979. Secondly, in a way Mac OS X benefits from the progress done by the Linux community. Most Linux programs can run on Mac OS X as well, just as much as they can run on other UNIXes. Hell, some UNIX programs were also made to run on Windows, so in a way Windows people benefit from them, too.

Thirdly, Linux still has some clear advantages over Mac OS X, and many features that are present in Linux are not present there. (and naturally, vice versa). Finally, if you want to compete with Microsoft and Windows, Mac OS X is not enough. You can't tell people that they need to buy a non-i386 computer just to run the alternative Operating System that they want. Linux can co-exist on the same x86 computer as Windows, which is not the case for Mac OS X.

I'm not the kind of guy who would immediately denounce Mac OS X, just because some of the GUI and the desktop there is not open source. Also, while being a big fan of the GNU extensions, I still accept other more minimalistic UNIXes. But saying "Mac OS X Rocks while Linux Sucks" is kind of like saying that "Windows XP Rocks while Windows 2000 Sucks". (or vice versa).

dmoz.org

I finally became editor of the dmoz.org Linux User Groups category. I've been cleaning it up by accepting pending links, and handling errors. When I finish with all my current pending links, I'll probably post an editorial on Advogato, asking for people who are members of LUGs that do not appear them to submit them there. As it is, it is still very lacking.

Thoughs about XML

movement: I agree with you that Linus Torvalds does not understand too much what XML is all about. I don't think it's good for anything. I also, many times invented my own configuration syntaxes instead of using XML, because they were more human readable and maintainable or suitable for what I had to do.

Nonetheless, XML nested nature and the fact that you can apply arbitrary transformations to selected pieces of text, and that you also have attributes are sometimes priceless. Linus' indented example can only get you so far, before you start re-inventing a lot of XML and poorly.

Usually, XML is not very suitable for configuration files which need to be human editable. I don't know if the LM-Bench configuration syntax requires XML or not (I never used LM-Bench), but there are times people should use it. I defined my own XML syntax in two occasions already, create a lot of XHTML and DocBook documents and uses it indirectly in some programs (like OpenOffice).

Women in Linux

I hope I don't get flamed for this, because I really don't mean it, but here goes. After my discussion in the LinuxChix issues mailing list, I spent some time corresponding with one of them. One of the conclusions I reached was that until there were more women in prominent positions in the open source world, then female Linux enthusiasts will always suffer from being viewed as second class citizens by their male peers. (I'm not saying people should view them this way, but they will).

In a sense, in the open source world, as in other worlds, there is the iceberg effect, in which there is always a close to the spotlight elite. For example, in Holywood we hardly ever hear about someone who is not an Actor or a Director (or sometimes screenplay writer), even though the other people involved in producing movies are much more numerous.

If someone told me "Women can't write Novels", I could point him at a great deal of excellent Women Novelists out there. But if someone told me that "Women can't hack open source software", I'll have a harder time, because the examples are more isolated and few.

So my question is: why? The "Encouraging Women in Linux HOWTO" goes a great deal to dispel some of the common myths about why Women are and are not deterred from computers. But all these reasons can only go so far to explain why we see so few of them as project heads or first-class programmers.

Even if we assume that there are fewer Women Linux users than men, then we still have to accept the fact that the number of first class hackers who are female is even lower.

One thing I believe is true, is that less women believe that programming is fun. Many male software professionals share this view as well, but among women it is more severe. Even the correponsdant I talked to emphasized that she much prefers system administration to programming, because the former was more "social".

So, what can we do to convince people (men and women) that programming is fun?

Hacktivity

Worked a bit on the IGLU Jobs Tracker. It is almost ready for replacing the original one. There are still a lot of things on my to-do, but they are not as critical.

I also contributed some feedback and a few small patches to Yapcom, but have yet to do a substantial contribution for it. (partly because it does not work on my system for some reason).

Finally, I wrote an essay titled "The Joy of Perl", which explains why I like Perl so much. It is available upon request. (send me an E-mail)

Reading

Made some progress with "Extending and Embedding Perl". Also, read many things on the Net, among them Paul Graham's Java's Cover. The latter is an excellent article, as most of the things by Paul Graham. He was right that there was something very fishy about Java at the time. And I still think it is over-hyped and much less capable as a language than other languages I know.

Talks with Laymen

I went to the Barber on Sunday (finally - my hear was way too long). During the hair-cut, I had a conversation with him, told him about my degree and my projects, and started explaining about Open Source and what it was good for. ( he naturally could not understand why anyone would embark on a software project which he did not intend to sell) I could not explain anything I wanted within my time frame - maybe next time or I could stop by. At the end, another patron came in, who tried to help him with a computer problem he had. Turned out he worked in 012 support and knew Jess.

Yesterday, on the way back home, I talked with a woman on the ride back home. The conversation started from politics (a flat income tax, the settlements in the west bank, the poverty-reduction paradox), and I ended up telling about Neo-Tech, Julian Jaynes' Bicameral mind theory, "Feeling Good" and cognitive psychology, and finally open source software in a nutshell (for completeness sake). She actually knew about Mozilla and heard about Linux, and I explained her the four Freedoms of Free Software, etc. She agreed that most of what I told her indeed made sense, but naturally could not convince her of the my entire philosophy within the time frame.

She told me her son was now studying Math, Physics and CS in the Hebrew University as part of the IDF "Talpioth" project. (a famous project aimed to create very knowledgable and intelligent army researchers). The problem was that each year, several people whose grades are low are removed from the program, and so there's a lot of pressure to suceeed. I'm sure glad as hell that I don't have such constraints in my studies.

29-Nov-2003

Computer Science vs. Software Engineering (cont.)

kilmo: in regards to your comments regarding the usefulness (or lack thereof) of the output of the Computer Science department. First of all, it does not invalidate my point that most students come to the Technion's CS department to learn how to program or at least to get a certificate that will show their competence as programmers. (whether it indeed does is a different question).

Secondly, in regard to the post itself: my condolences. ;-). It is highly possible that 20% of the faculty cater to 80% of the students as far as their research is concerned, while 20% of the faculty cater to 80% of the students. From what I know of the Electrical Engineering department, a larger part of their research is more down to earth and useful. Maybe that what happens when you have a department dedicated to a theoretical science.

I know that in M.I.T., for example, there's one department for both Computer Science and Electrical Engineering. This removes the duplicacy of the courses between the two faculties that we see so much in the Technion, and also possibly injects a lot of practicality to them CS researchers.

Linux in Action revisited

Well, my suggestion to turn the Haifux' Welcome to Linux series into a shorter "Linux in Action" series was rejected (possibly for a good reason), but Linux in Action could still be a good idea as a complement to it. For instance, we could have a day full of Linux demonstrations, in a similar manner to the Linux Circus that took place a couple of years ago.

A Good Reference for Perl

Eran has recently installed RedHat Linux 9.0 in order to learn how to program better. He wanted to learn Perl, having heard so many good things about it, and so started out with my "Perl for Perl Newbies" series, which he claimed was very well written. Then he wanted to look something in the perl man pages, and said he could not make heads nor tails of them.

As he wasn't the first one I heard to express this amount of unhappiness from them, it got me thinking about writing a better reference for Perl, in a similar fashion to what Python and PHP have. So I brought this on perl5-porters and received many heated responses. Apparently, many people believed that the man pages should be left in their current not-so-idiot-proof state, or that it was rightful to expect people to pay to get a better reference.

From my experience getting my patches to the documentation into bleadperl, it was a relatively painful experience. While there were many people who actually had meaningful comments, there were always those few who complained that it's making them too wordy, or loses character out of the document. Eventually, most of my patches were accepted, but it was still a painful procedure, as it seems there isn't a consensus in the perl5-porters mailing list on the exact purpose of the perl*.pod documents.

Add this to the fact that I'm not sure that the Perl POD documents can ever be made very suitable for beginners, and that their organization is a bit lacking, and I think it may be a good idea to simply start a documentation project ("Doclanx" or "Reflanx" both named after the Phalanx project) from scratch that will produce a comprehensive reference that is more suitable for beginners. Our own codebase, our own rules, our own progress.

What I would like to do first or as I start is collect user stories about the existing documentation. That way we can tell how to best organize the new one.

ISP/Phone Company Support Incident

A couple of days ago I sank into an all-time low: I called the ISP support line and he actually guided me in something. It all started when my Internet connection got hanged out and nothing I tried to do to resolve it (restarting the modem, restarting the router) helped. So I called the ISP line. A support person answered and when I told him I had a NAT, he said I should connect the computer to the modem straight or else he can't help me. So I did (I have two Internet cards). Here he guided me through the procedure (my Windows networking configuration skills got a bit rusty lately), and then it still did not work. Then he heard that the modem was configured to use PPPoE, so he said that we either need to set it back to PPTP or he can't help me. (as usual, these support people are more clueless than us hackers or power-users). I knew that my father would not like it so I gave him my father.

My father got angry, and eventually disconnected and tried to contact the Phone company support team. They eventually said that the line was probably OK, and possibly the modem mis-configured itself. So we reset the modem (with a tooth-pick), and it went back to PPTP, but we were able to connect to the Internet again. Pheewww! Now we need to set it back to PPPoE sometime, but still it wasted a couple of good hours.

Browser Wars

I read the beginning of the Browser Wars II: The Saga Continues article. It was quite entertaining, but short of useful information. But it got me thinking: as Mozilla (and browsers based on its engine, like Firebird) is mature and usable and MSIE is buggy as hell, and will only ship with new versions of the operating system, we can expect the user-base of Mozilla and similar alternative browsers to actually grow, at least not if it weren't for all those MSIE-only sites. But I thought of a way to accelerate it: start creating clean, standards' compliant web-sites that may or may not look well in Internet Explorer. I'm not saying that we should break them on purpose. Just not test them on it, and if people complain that they break tell people to switch to Mozilla or whatever. (as it will be good for them).

The question naturally rises why it is not equally as worse as web-sites that are MSIE-only. There are several reasons:

  1. MSIE 5.5 and above are specific to a certain operating system and architecture. Mozilla and similar browsers are truly cross-platform. - as such MSIE may not be available on the development platform of the web designer. I design all my sites and have tested them on MSIE by using the laptop. Now, I'm not going to bother.
  2. MSIE is not open source. Mozilla is - I cannot fix the bugs there even if I wanted to. If bugs exist in an open source project I can either fix them myself, hire someone else to do it, or blame myself for not doing either. With MSIE, I have every right to blame Microsoft for their incompetence. And I can have them eat their own arrogance.
  3. Users can always switch to Mozilla or whatever - I can always tell them to do so. On the other hand, I cannot switch to Internet Explorer if I'd like to use Linux (which I do).
  4. MSIE is not standards compliant while other browsers are - in fact, a prominent Microsoft engineer said standards-compliance is not a high priority for the MSIE team. Since I design according to web standards, I don't want the new Netscape Navigator 4 to be in my way.
  5. MSIE is not going to be maintained independently - the only prospect of getting a browser upgrade for MSIE is to buy a new OS. Buy a new OS just to get a new version of the browser? That's the joke of the month. Other browsers come with periodic upgrades with many improvements - all for free.

So that's it. I'm going to use such cool stuff such as CSS child selectors (html > body), max-width, Alpha-transparency PNGs, and :hover on elements besides links, as well as the full XSLT specification. I'm not going to break compatibility on purpose, but I certainly won't prevent a cool standards-complaint feature from inhibiting my pages. And I can't run MSIE on my choice of system, so Microsoft have themselves to blame if it doesn't work.

Finally, I may put the no-MSIE icon on each and everyone of my sites. With a link to a page explaining this new WWW order. No more Mister Nice Guy! Microsoft: adapt or perish!

(this scheme may not be an option for your organization's sites, but I'll apply it to mine)

2-Dec-2003

Computer Science and Software Engineering (cont.)

kilmo: I agree with most of what you said in your entry. I agree that the CS department should teach theoretical computer science, because these are the foundations that a good programmer eventually needs to know or at least understand. I don't agree that the definition of Computer Science is "the science that deals with the study, implementation and creation of algorithms". This is more like the definition of Algorithmics which is a subset of Computer Science. CS is more inclusive and also talks about writing modular code, computer language design, OS design, and everything else that has to do with writing software for a computer. (hence the name).

Between the time the algorithm is written in paper in pseudo-code, to the time it runs inside the computer, many choices can be made that will affect its performance and ease of integration. I remember one time where two optimizations I implemented in Freecell Solver made the program run about 50 times as fast (in brute, with the overhead of executing a separate process for each of the inputs), while not decreasing the overall complexity at all.

And naturally, there is the art of designing a software right: choosing the right tools and APIs, creating good interfaces, writing modular code, etc. Then, of course, there is software management: working as a team, building a schedule, writing tests for the software, using version control, bug tracking procedures, and so on. All of these fall under Computer Science. Unless, of course you want to claim that they (and CS) are included under Software Engineering, and then we can continue the argument over the meaning of terms ad infinitum. :-)

Doclanx

I wrote a Mission Statement for Doclanx. I don't intend to publish it until I have some serious content to show for, but at least it's there to organize my thought. Next, I wrote a small section about how to learn Perl in the first place, so people can understand the reference.

Meanwhile, there was a lot of messages posted to perl5-porters on the original thread. Most of them were bashing me, but some came with bizarre albeit perhaps useful suggestions.

IGLU Jobs Tracker

Worked a bit on the IGLU Jobs tracker. I converted it to use CGI::Application and fixed some bugs and made the interaction a bit nicer (added colours to the table rows, etc).

Someone reported a bug in which transmitting an illegal parameter in the area, caused the server to display an "Internal Error" error. He initially thought it was an SQL injection bug, but I realized it was a non-harmful Perl bug, that could have been caused with any area that's not on the list.

Next on my agenda is a small redirect bug that someone else has discovered (relatively by mistake), and converting the code to use Tangram. And then ton of other stuff. :-). So many things to do, so little time.

Wrong Predictions

In Java's Cover Paul Graham says: "Sun's business model is being undermined on two fronts. Cheap Intel processors, of the same type used in desktop machines, are now more than fast enough for servers. And FreeBSD seems to be at least as good an OS for servers as Solaris. ". Of course, what he said was true, only that Linux became the most common operating system for Intel servers.

This reminded me of a similar prediction in the C++ Programming HOWTO: "As memory (RAM) prices are dropping and CPU speeds are increasing, scripting language like PIKE will EXPLODE in popularity. PIKE will become most the widely used scripting language as it is object oriented and it's syntax is very identical to that of C++ language. " Obviously, Perl, Python, PHP, Ruby and Tcl are more popular than Pike is, and there isn't a visible trend of Pike becoming more popular. Guess that similarity to C++ is not the top priority when choosing a scripting language.

9-Dec-2003

Wine Lecture at Telux

The Sunday before the last, Shachar Shemesh gave a re-run of his lecture about Wine to the Tel Aviv Linux Club. This time, the lecture was more polished than the time he gave it on Haifux. He threw a lot of funny jokes throughout the lecture and it was very entertaining. Shachar is a great lecturer.

Next I have a Perl-IL meeting, with presentations by three people including me. In the Haifux front, there was a meeting yesterday of a post-mortem to the Welcome-to-Linux series. I could not attend it because of an exam I had (see below). In any case, next week, Aviram Jenik will give a lecture about Spam, which I look forward to.

Studies

I had to hand out three statistics homework sheets yesterday. Two exercises gave me some trouble. One of them was tackled, but the other - a very similar one yielded a solution that was similar to the correct one but not identical. I ended up handing it as is because I could not find what the trouble was, despite the long hours of staring.

Otherwise, I had an exam in Thermodynamics yesterday at 18:30. It came out quite convenient to me because I study that day and plus my father had a conference at the Technion, so he could give me a ride there and back. I woke up early so I was quite sleepy throughout the day, but during the exam I was OK. The exam was not too hard, but I'm not sure I did all the exercises correctly. I'll see what my score is.

Yapcom

I finally got Yapcom to work. As expected it turned out to be a problem in which the E-mail could not be sent. After that was fixed everything worked. Still it is a bug.

Meanwhile, I bugged the other developers with comments about the PATH_INFO environment variable and other such things.

IGLU Jobs Tracker

I implemented an ad-hoc administration screen that so far only displays the records with some inactive links. Now I have to restrict it to a a certain logon, which would take some work. Having done it, I was glad I used Template::Toolkit because I was able to extend the template of the job to display the links.

I talked with Eran on the ICQ about it and he gave some useful commentary which I may choose to implement.

Reading

Read some more of "Extending and Embedding Perl". The book is not too interesting so far, but I suppose it can prove useful if I need to write a Perl extension.

I also read another chapter of Mary Poppins. Maybe I should get myself to read more fiction.

Dmoz

Another day - more pending links. Only this time, I was able to clean the pending links out of the User Groups category. Now, all I have to do is add all the remaining groups there. Guess, it's time for the editorial about it.

fc-solve-discuss

There was quite a lot of action recently in fc-solve-discuss. It started when Danny A. Jones posted some questions that were raised after he wrote a Breadth-First-Search Freecell Solver to find optimal or near-optimal solutions for Freecell. Then it took on a more active tangent when Eric Helser posted some question on how to actually write a solver, as he had problem doing so. So, the guys and I helped him.

I hope this trend go on.

17-Dec-2003

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.

20-Dec-2003

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.

23-Dec-2003

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.

2003-Dec-26

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

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.

2003-Dec-30

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 he did? 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 statistic, 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.

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.

2004-Jan-09

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 to my complaints, 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 was 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)

15-Jan-2003

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.

24-Jan-2004

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.

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.

PCLinusOS 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.

07-Feb-2004

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. Firepeguin. 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 logicall and reasonably, instead of one leaderhip who cares more about his public image than about being a honest person.

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 />

22-Feb-2004

Israel.PM Meeting

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

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

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

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

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

Hamakor Meeting

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

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

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

New Homepage URL

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

Hacktivity

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

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

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

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

Vocabulary Builder

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

Advogato

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

05-March-2004

Telux Meeting

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

YAPC::Israel::2004

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

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

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

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

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

Disk on Key

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

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

Sodipodi's Font Problem

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

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

Gobliiins on Dosbox

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

New Wiki for Perl-Begin

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

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

17-March-2004

Solving the smb mount problem

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

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

Installing dbxml

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

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

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

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

Upgrading to Mandrake 10.0

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

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

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

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

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

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

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

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

Just another typical upgrade, only this time more eventful.

Perl Meeting

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

Telux Meeting

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

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

GIMP Bug

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

Reading

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

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

Studies

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

30-March-2004

Gilbo'a March

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

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

Random Computer Problems

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

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

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

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

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

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

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

Studies

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

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

MLDonkey

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

11-Apr-2004

Passover Seder

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

Hike with Dad

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

Perl Meeting

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

Registering to Yahoo Messenger

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

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

Now allow me to faint...

RMS-Lint

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

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

Reading

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

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

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

iglu.org.il

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

Hacktivity

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

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

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

Google and the Google Directory

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

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

01-May-2004

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

Social Gatherings

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

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

Helping my sister with UNIX

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

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

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

Studies

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

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

Subversion Hacking

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

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

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

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

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

Now I'm going to faint...

Reading

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

stalker

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

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

Powerout and its effects on KDE

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

Quad-Pres

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

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

Finale

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

27-May-2004

Studies

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

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

Clock Skew

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

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

Nvidia Driver

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

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

Subversion: BDB 4.0 vs. BDB 4.2

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

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

Israel.PM Meeting

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

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

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

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

Telux Meeting

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

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

iglu.org.il Upgrade

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

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

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

stalker

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

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

Subversion Hacktivity

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

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

Perl Quiz of the Week

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

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

8-Jul-2004

Installing GIMP 2.1.x

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

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

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

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

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

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

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

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

Gradient-Fu Patch

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

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

My sister and UNIX

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

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

Job Interviews

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

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

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

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

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

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

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

Bike Incident

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

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

Ahh! Kids these days...

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

Installing Maypole

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

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

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

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

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

Perl Zen

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

Hebrew Common Errors List

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

Gimp Gimpressionist Work

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

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

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

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

Technion Graduation Ceremony

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

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

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

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

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

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

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

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

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

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

Subversion's get_locations() Patch

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

Telux Lecture

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

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

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

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

C++ quirks

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

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

Perl Zen (2)

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

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

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

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

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

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

Review of the Gtk+ 2.4.x File Chooser

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

Advogato

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

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

10-Aug-2004

Newborn Second Nephew

My cousin and his wife had a baby a couple of weeks ago. They called him Matan, and the celebration of the Brith was after a while. The food there was good. At first the songs were quite cheesy and the volume was very loud, but afterwards, they both improved. As usual in such occasions, the mother of the newborn, recited a cheesy poem she wrote. (I really would have preferred a a simple, non-verse, speech). I met there many of my relatives, and also met the daugter-in-law of my aunt (a different one) for the first time. I wanted to talk to her, but couldn't because of the loud music.

Tau-Sec Meetings

I attended the first two meetings of the TAU Security Forum. The first meeting feature Noam Ratheos (of Beyond Security) in a presentation about Port Knocking. I met some familiar faces there, including Xantia. This was the first event I saw her attending for a long time. The presentation was very interesting, and introduced me to this new security technique. After the presentation, Chen, Adi Stav, another guy called Michael "Talash" Perelmutter and I went to a local Cafe to eat supper and talk. We discussed many topics. It turned out Michael lived right next to my house, so we walked together, and he gave me his contact information on the way.

The second meeting took place this Sunday. It started out with a general 1 hour discussion about Spam, conducted by sun. The discussion was interesting, but it did not touch the surface of this complicated subject. Then he gave a presentation about Cross-Site Scripting exploits and SQL injections. It had a somewhat slow start, but got better after the break. I did not learn anything new, but it was still fun seeing the exploitable code written and the exploits done in real-time.

Chen wasn't there, but Michael was and we walked all the way home, and this time ate Falafel at a restaurant close to my house. Michael and I exchanged a few E-mails since we met, and it's always nice become aquainted with someone new.

Too Little Time

When it rains - it pours. When it shines - it is blazing hot. I was quite bored some time ago because I did not want to do anything. Now, however, I don't have enough time to do everything. There are so many things I'd like to do, and projects I'm involved in, and it seems that I don't have enough time. What I do is work a bit on one thing, and then switch to another. I seem to be multi-tasking very nicely like that.

More GIMP Work

I've done more gimpressionist cleanups and bug-fixing. Take a look at the GIMP's ChangeLog for more verbose information. Now perhaps the only thing left to do, before making some overhaul changes, is to rename more variables into more meaningful names. (most of them are already renamed), and fix the rest of the bugs in the bugzilla.

I also helped David Odin (aka dindinx) with converting plug-ins code from the depracated GtkPreview to the newer GimpPreviewArea widget. I discovered a bug in gflare while I was doing the conversion.

Finally, I wrote a fix to a minor but annoying bug, and it was applied yesterday. The fix was quite complicated though.

Telux Lecture: Bugzilla for End-Users

Shoshannah Forbes gave a presentation about using Bugzilla for the Tel Aviv Linux Club a week ago. The lecture was entertaining and also taught me some new things. Nothing more to say - sorry.

Wikipeders Meeting

The Hebrew Wikipedia maintainers held a meeting some time ago, to celebrate its one year anniversary. Out of the people who attended it, I was only familiar with Shoshannah Forbes and with Ofer Weisglass. Another thing that alienated me was that I barely touched the Hebrew version and just contributed some stuff to the English resources.

Still, the people there were friendly and many discussions embarked. One of the things that was said there, that although the Hebrew Wikipedia is quite limited in size, it is statistically among the first, in the average length of the articles, and the number of times each one was edited. This is still a good accomplishment.

August Penguin 3

The yearly meeting of Israeli Linux Enthusiasts this year, known as August Penguin, took place last Friday. I got up early and was given a lift there to help with the reception. There I met some of the organizers (many of whom I personally know), and was assigned as one of the three reception people. Many people have arrived and there was a long line. But eventually, Arik Baratz, ladypine and I handled all the early comers, and we were free. Among the people who attended the conference, I saw for the first time, two people whom I knew from online but never met face-to-face: Yotam Rubin (who created and maintained the Freecell Solver Debian packages in their beginning), and Diego Iastrubni (who translated Mandrake Linux to Hebrew, and is now translating KDE).

I started attending the first presentation about Co-Linux, did not find it very interesting, so I went out and instead hanged around in the lobby. I met some familiar people with, and had some short conversations with them. Then came the time for the second presentation, (about Embedded Linux) so I sat on the floor, and listened to it. It was quite interesting, but shortly afterwards I was volunteered to man the Hamakor stand, and sell CDs to people (and give away one free to those who were already Hamakor members). This consumed most of the day until the key-signing party, and I missed the geek trivia, the prizes giveaway, and the second presentation.

Despite the fact that I missed most of the attractions, I had a very good time, and enjoyed the conference a lot. It was also very successful as 240 people attended it, more than twice than last year.

Here are some English reports of the conference: by RRX, by Haggai E.. And some Hebrew ones: by Orna Agmon, by HeyYal, by yehuda, by an anonymous penguin, in the press.

GPG Script

The August Penguin key-signing party was conducted in a way that the a file containing the fingerprints was distributed to everybody, and was verified to be correct by its SHA1 hash. Then, mulix, who organized it made the keyring available to the public. Now the question is whether the signatures in the keyring are the same as those in the file.

To resolve it, I wrote a script that checks the signatures in the file and verifies that they are the same as those reported by GPG in the key-ring. You can freely use it under the terms of the MIT X11 license.

Using it I signed the keys, by first running it, and then using kgpg (part of kdeutils) to sign all the keys at once. Truly an improvement over last time, where I signed each key individually, using my password like a zillion times.

Better-SCM Work

I went over the E-mails that were sent to me regarding the Better-SCM site, answered them, etc. I lost interest in it for quite a while and now I have a renewed interest. Another thing I did was revamp the code that renders the comparison. At first I had two very similar scripts, one that converts the custom XML grammar to HTML, and the other one that does the same for DocBook. So, the duplicate code was eliminated by using some common Perl classes. Then, I wrote an XSLT transformation for transforming it to HTML. For help I referred to Norman Walsh' tutorial, and to someone very knowledgable on FreeNode's #xml channel. The resultant transformation was pretty nice, and I found the experience to be quite enlightening. I'm looking forward to working with XSLT more in the future.

Advogato

I certified bolsh as Journeyer for his work on the GIMP.

FILL_IN

Advogato

Certified bagder as Master for his work on curl and other things he has been involved in.

I also wrote two new articles: an interview with Ben Collins-Sussman and Bazaar-style Movies Revisited.

Slashdot Commenting

It happened! I posted a few comments to Slashdot. Here's one that is a joke reply to another joke that was posted. It was too late for it to be rated highly. Another is a question to ask Sam Greenblatt about Ingres. The latter was rated 5 and marked as Interesting.

kilmo, I think I'll join your support group. "Hello, my name is Shlomi and I posted a comment to Slashdot that was rated 5 and marked as Interesting."; "Hello Shlomi! We all love you!".

RSS Aggregator

I installed akregator for KDE. The installation went very well, and I installed from source and could not find an RPM. I now got used to it, and can no longer imagine living without it. (periodically visiting web-sites - how barbaric!)

Karma Games at FreeNode's #perl

This is a log of FreeNode's #perl channel with some heavy karma games. Namely I asked Chris62vw (perlbot's maintainer) for a feature which displays the top (or bottom) karmas, and he decided to implement it on the spot. And there was a lot of other silly discussion.

Hackers-IL MediaWiki

I set up a MediaWiki for Hackers-IL. It was surprisingly easy to set up, and worked very nicely so far. Then, I created an Emblem for Hackers-IL based on the Hackers Emblem by ESR, and the Israeli Flag.

I filled the wiki with a lot of content, and other people have created pages there of their own. It now also proves useful for coordination of W2L.

I wanted to use the Creative Commons Attribution-Only License for it. But it seems more people would like to use the ShareAlike one which is good too.

Events

There was a Telux meeting about bootloaders by Ori Idan. He used PerlPoint for the first time for this lecture and prepared it in a haste, so he had a few glitches which I took record of some of them in my notebook. (and sent it to him after the lecture). The lecture was under-advertised and so we were only five people there. I think it would be a good idea for Ori to give it at a later date.

Still, the lecture was very interesting, and some things raised some discussions. Ori is a good lecturer.

There was also an Israeli Perl Mongers meeting which was very nice. There's a report about it in the link.

Books' Exchange with Talash

Michael Perelmutter ("Talash") is a really nice guy, which attended the TAU-Sec lectures and escorted me on the way back home as he lives nearby. While talking on IM, we decided to exchange books. So he dropped by my house and gave me two Discworld books. He and I went over the house looking for good books he did not read already. (He already read Sherlock Holmes, the writings of Lewis Carroll, Jules Verne, and lots of other things I had to offer.) He eventually took the following books:

All in all, it's nice to meet such new people.

New Story

Ssssshhh! Don't tell anyone, but I'm writing a new story. Surprisingly, I got the idea for the entire plot almost at once, and lately have been cutting some lose edges in my idea. (extraneous characters, etc.) The story is written in English, and focuses on high-school teenagers at present Los Angeles, California.

It talks about one female open-source hacker who is a full guru, but a self-made social outcast, and a punk, who tutors a female hacker wannabe, (who is also the narrator of the story) who is a pop-culture and very solid girl, who's at first only interested in open-source so she can get to a good college. There are then other twists to the plot.

Hopefully, I'll finish the story in time for the Free Software Day, but I cannot promise anything. If you'd like to receive drafts of this story by E-mail, let me know and I'll put you in my distribution list.

10-Sep-2004

New Story Update

The new story is progressing nicely. I already received one relatively positive review of it from my cousin, and a laconic remark from someone else who I referred it to him, and just said he did not like it too much. But still, it isn't finished, so I'm unwilling to show it to the world at large.

State of the Onion

I read Larry Wall's recent State of the Onion. It was very amusing as most of the things that Larry has written. I liked it a lot. In any case, he says there that he has been hospitalized for a large part of the passing year (but now he is more or less OK). I hope Larry will stay in a good physical condition.

Story for the Software Freedom Day

I wrote a story about my interaction with Adrian Ettlinger (in Hebrew) for the Israeli story contest of the Software Freedom Day. As for activities in this day, we wanted to have several stands in various shopping centers, but we did not have time to organize anything, because it was on such a short notice. I hope we'll have a better luck next year.

The Olympic Games

The Olympic Games are over. Israel has won its first Gold Medal by Gal Friedman. One thing that impressed me was the speed in which some of the gymnasts moved. They did it very quickly. In any case, I did not watch too much of it, and spent most of the time working on the computer.

HTML Navigation Menu

After a long time of neglect - I started working on the unified HTML navigation menu interface. I am basing my work on HTML::Widget::sideBar. However, it seems that the added benefit of it was very little. It is possible writing the relevant logic from scratch would have taken me less time, than trying to find out how to work around its idiosyncrasies. At the moment, I have patched H::W::sB, sub-classed it and wrote a lot of logic on my own.

Still, what I have now functions pretty nicely, and I'm making more progress. So I'm a dumb-ass but optimistic.

Welcome to Linux

I started preparing the Blitz lecture for the upcoming Welcome to Linux series. This year, we aim for it to be conducted (at least partially) by three clubs (in Haifa, Tel Aviv, and Jerusalem), and so it requires quite a lot of organization. Aside from the lecture, I was also placed in charge of the site.

Movies

I went with my dad to see Shrek 2 in the cinema. It was very entertaining, with a very high-quality animation, and very funny. There are many parodies of other films embedded in it. I also finished watching Spiderman 1 in the DVD. It was very entertaining. It seems that I liked most of the Comics-based films I have seen.

Mozilla Firefox - A War Story

I decided to give Mozilla Firefox a try. So far so good. However, after downloading the latest 0.9.x release, I encountered a case where installing a certain plug-in did not work. This has caused me to try the trunk release (where some things could not be installed because install.rdf was not supported.) and one of the branches release (where some things also did not work). Eventually, I returned to 0.9.x and managed to install everything I needed.

Firefox is a better browser than Mozilla Core. It is faster, and gives one better control over the extensions and themes. (you can easily update or uninstall them). Very nice. Other than that, I discovered the Web Developers Extension for Firefox and Mozilla. So far I used the PNH Toolbar, and I must say that the Web Developers Extension gives everything PNH gives and more. It also eliminated one thing I used Opera for - validating a web page by uploading its content.

Talash' Mandrake Woes

Michael Perelmutter (aka Talash) has recently bought a new computer and wanted to install Linux on it. He tried Mandrake for a while, then SUSE which he decided he liked better. However, SUSE had some problems, so he tried Debian, which did not work either. So, he returned to Mandrake. Now, when talking to him on the ICQ, I learned that the network card did not work (despite having worked perfectly the previous time he installed Mandrake) , and so I dropped by.

The first thing I tried was to see if I can configure the card manually using /sbin/ifconfig and /sbin/route. This worked perfectly. Then, after a lot of tweaking, we realized the problem was that Mandrake was using an "ifplugd" thingy to control the card, which was not compatible with it. Quickly setting the rather obscure MII_NOT_SUPPORTED flag in /etc/sysconfig/network-scripts/ifcfg-eth0 (not in /etc/sysconfig/networking as I previously thought) did the trick. We then had a problem that /etc/resolv.conf was filled with the address of the router. This was solved after the correct DNS servers were inputted manually, and a reboot.

After that, I just showed him to use Easy URPMI to set the sources of the packages, and as he was about to leave, we started updating everything using MandrakeUpdate. The GUI tools turned out to be incredibly unhelpful in getting the network up and running, but they were reported to buggy in this release of Mandrake.

O'Reilly-Net Article

I finished writing another article for O'Reilly-Net. It has good prospects of being published, but I did not get any reviews for it yet despite having sent it to some of my friends, and the OnLAMP.com editor. If you have some spare time and wish to review it, drop me an E-mail and I'll send it to you.

Events

I've been to two Tel Aviv Linux Club meetings. In the first one, gby gave a nice presentation about Asterisk - an open-source solution for managing phone networks. I enjoyed it very much. In the second one, mulix and ladypine gave an entertaining and enlightening presentation about the latest developments in the world of the Linux kernel, as seen through attendees of the Ottawa Linux Symposium.

I just returned from an Israeli Perl Mongers meeting. Uri Bruck gave a presentation about using Perl to automatically fill OpenOffice forms. It was very nice. He chose to use XML::Simple, and it reminded me of how much I generally hate it. Then Gabor, first explained about the status of the Perl community in Hungary, and then about how can one contribute to Perl. I did not attend the last presentation to its end because the person giving me a ride had to go to catch a movie. Hopefully, I can read the rest of the presentation online.

05-Oct-2004

RTFM vs. JATFM

I recently had to figure out how to do something with wget: get everything below a directory on the web-server, without following links to outside it. So I logged in to FreeNode's #debian channel, where there are many knowledgable people to ask it. The first answer I got was "RTFM". So, I read the wget man page, but could not find it there. Eventually, after telling people that it would be faster to give an answer, I got a reply ( add the -np -r flags). But this has been the last straw.

I composed my own acronym. Just like RTFM is "Read the Fabulous Manual" and STFW is "Search the Fabulous Web", then JATFM is "Just Answer the Fabulous Man". It means that it's usually faster to answer someone's question than to ask him to RTFM, which is just going to annoy him. I think the RTFM mantra has done a lot of damage in the UNIX/Linux world, and I hope JATFMing would prove to be a more healthy ideology.

Linux T-Shirt Giveaway

One day when I was just returning from my walk, a guy approached me and asked me about my Linux T-shirt, in English. It turned out he was using Linux and FreeBSD, and was interested in such T-Shirts. He was working as a Journalist in an Israeli newspaper, and was using Windows in his workplace.

I invited him to come to my house, and when he did gave him one of my shirts. At first, I thought he was a Medium, but it turned out the Large T-shirt was OK for him. He took off his shirt, and wore the Linux one instead. He gave me his old shirt for me to throw away.

We then went to the computer and exchanged contact information. He called me some hours later, but I was busy, but I think I'll call him back on my own.

Jewish Holidays

Now is the Jewish Holiday Season. First of all - Shana Tova (= Happy New Year) to all Jews and non-Jews. Yom Kippur also came along, so "Gmar Hatima Tova" ("A Good Signing") to all. And finally, Happy Sukoth.

In Israel, many secular Jewish families hold a family dinner on Rosh Hashana. In the States, it seems Jews just go to the synagogue.

Open Letter to the California Governor

I wrote an open-letter to the California Governor regarding the recent report about cutting the California State spending.. It is a bit redundant and the comments there are even more so. Still, I hope the appropriate forces in the California Government will take it to heart. An anecdote about it is that I originally wrote it on paper.

Links of Interest

Read this entry in Omer Zak's Journal (to which I have responded) for something that Omer said about being unwilling to help people who aren't using Debian, and why I proved it was a bad attitude. (it all leads to the ancient and mind-destroying "I'm not getting paid to do open-source work, so my users need to play by my rules" mantra).

There's a very interesting interview with Real Networks' CEO on Slashdot. A highly recommended read. Trying the Real Player 10 for Linux I was very disappointed, though: it's not a drag and drop target, had a very crappy file opening dialog and it could not play mp3's.

There's also a very interesting interview with the U.S. Libertarian Party Candidate. I sure do hope Libertarians take the next elections, and will also add a button to my homepage about it.

Freenode's beth is engaged!

Beth Skwarecki (a.k.a. "beth" on Freenode) has become engaged to her long-time boyfriend now. Congratulations!

It's funny that many people I know my age are already married. Plus, my cousin who's my age already has a baby now. Roy Glasberg, too. And Ben Schmaus already managed to become separated from his wife. And I did not have a girlfriend, yet. Oh well.

Yom Kippur Activity

In Yom Kippur the Jews believe that God measures a person's balance of good and bad deeds and thus determines if he is worthy of living for another year. I am pretty sure, that the values I produced in the recent year (i.e: my good deeds), exceed the values I consumed (i.e: my bad deeds). Nevertheless, I have decided to go over the blog entries I wrote in the past year and see what I did well, what I did wrong, and what I can improve.

First of all, I'd like to say that I was dazzled by all the productive things I did. I certainly can congratulate myself on that. A trend in the past year was for me to also contribute to large-scale, non-individualistic projects like Subversion or GIMP, and I hope to continue in it. My biggest mistake in the past year was the post to the Joel on Software forum about my Technion Grades. I'll know better than that next time.

Article Writing

I wrote a new version of an old article, and sent it to a few selected reviewers. As a result, I received three (!) messages saying they are no longer interested in receiving such articles. I was a bit distressed, but then I understood that I should send the articles to people who volunteered to do so, at first. That's what I did. I posted a notice about it in Whatsup and received several E-mails from people who were interested. (some of the comments simply attacked me, but that is besides the point).

So now I'm sending them messages. So far, I did not receive any reply, but at least I'm not walking on people's toes.

Events

There was a Telux meeting where I gave a lecture about Freecell Solver. There were only two people who attended it besides me, but it was still a lot of fun, and people said it was very interesting.

There was also a TAU-Sec meeting. This time they also bought drinks and refreshments. The first presentation about Intrusion Detection tools was very interesting. In the second one, the speaker was heavily non-fluent, probably because of excitement, so I left early. But there was heavy attendance.

Work on the Home-Site

I've done a lot of work on my home-site lately. Reading from the news I posted about it:

  1. I added the "Stop Software Patents!" nag image to all my pages and a top frame to the front page.
  2. There's a new code for the navigation menu. The old code was an unholy mess, and the new code is a pure Perl one, which makes the nav-menu much easier to maintain.
  3. Thanks to the new navigation menu code, there are now Mozilla/Firefox navigation links, that allow traversing the site page by page. For those who are unfortunate enough not to use these browsers, some rudimentary arrows were added above the navigation menu.
  4. I now have an Uber-kitchy leading path of the page sections and sub-sections at the top.
  5. I'm now giving private lessons in high-school subjects and computer-related topics.

Later on, I added more pages. Things I still need to do are:

  1. Add Alt+P, Alt+N, Alt+U key-bindings to traverse the site.
  2. Add a nice news items summary news box at the top with the site news. Also create an RSS feed for them.
  3. Create a site-map page.

Enjoy!

Upgrade to Mandrake 10.1 Community Edition

I downloaded the Mandrake 10.1 CE CDs, and placed all the RPMs in one directory. That's because I did not know where I can find a network repository. Then, I created a urpmi media for them. Afterwards I ran the command urpmi --auto-select --auto overnight. This eventually caused the computer to become unresponsive. (I still blame the Britney Spears wallpaper I placed on IceWM, when I did the installation for that.)

After a reboot, I initiated the command again, this time with a different girl on the desktop. This time it's worked. I rebooted again to use the new kernel, and everything was OK. 10.1 CE is more polished than 10.0 and has fewer bugs. (albeit there are a few new minor ones). I'm very happy with it.

For the occasion of the upgrade, I changed all the wallpapers of the virtual workspaces. Desktop 1 now has a picture of Jaime Pressly. Desktop 2 now has a photograph of a squirrel that ladypine took in her last OLS trip. Desktop 3 has a picture of Beth (see above). Desktop 4 has a 3-D model of a tree with a reflection in the lake, out of the Book of Beginnings. Desktop 5 still carries the picture of Melissa Joan Hart with the background of automn leaves. Desktop 6 has a picture of a Chinese girl from a computer game (found in the Unforgotten Realms Wallpapers). Desktop 7 has a photo of Kate Beckinsale. And Desktop 8 has a picture of Charisma Carpenter covered in the American Flag.

22-Oct-2004

Work on W2L

I did a lot of Work on the Israeli "Welcome to Linux" online resources. I set up site for it, tweaked the registration form. I also had to set up an E-mail domain using the eskimo.iglu.org.il qmail. I also helped a bit with revising the TeX documents from last year. Working on the sites was a lot of work, but I hope it was worth it.

Getting CPANPLUS to Send Mail

Following Gabor Szabo's presentation in the last Israel.PM meeting, I decided to become a CPAN Smoke Tester. So I set up a non-privileged account for this, and installed perl and the CPANPLUS module there. Then I had to set it up to send mail. Reading the docs of the modules, I found it that they could either send mail by using SMTP (which was more limited) or by using the sendmail or equivalent program. So I had to set up the sendmail replacement to work on my system.

This involved setting up Postfix on my system. I enabled it and started reading the docs to see how to configure it. It was able to send several messages to various places eventually. However, while it actually sent a message via SMTP to the cpan-testers mailing list, none of them have arrived there.

The Ethereal dump said something like this:

MAIL FROM:<cpan@localhost.localdomain> SIZE=2444
RCPT TO:<cpan-testers@perl.org>
DATA

Which contained cpan@localhost.localdomain in the MAIL FROM: instead of my real mail address. I tried to configure postfix to use the correct MAIL FROM, but to no avail. Then a simple Google search for "mandrake postfix" yielded this document about configuring Postfix as the first result. This explained everything I needed to do, and afterwards it worked.

Meanwhile I wasted several hours in what could have been resolved with a simple Google search.

Bug Reporting Spree

I took two days to go on a bug reporting spree. There were a few bugs I collected in a bug list, and I reported them. There are still some bugs I haven't reported yet.

Blisters

I used to have blisters on my feet. It was quite unpleasant. Most of them are gone now, after my mom and I took care of them.

Perl 6 Critique Article

I published a Perl 6 Critique Article in Freshmeat. You can also find disucssions of it in the perl-advocacy mailing list, in linmagazine (in Hebrew), and in Perlmonks.

JLC Site

I did some work and created a new and improved site for the Jerusalem Linux Club. It still lacks information about the Welcome to Linux series, and also Hebrew content.

There's also another site that someone created, but I'm quite unhappy with it.

Mandrake

There weren't any updates for the Mandrake 10.1 Community Edition from 15-September to more than a month later. When the updates did come out, the hdlist.cz file (that concentrates the information about the packages) was faulty. Eventually, the official edition came out, but they were delays in getting it.

Now, I'm on Official Edition, and everything is OK, but there was a long time when my system was out-of-date.

The Digital Camera and Linux

My family has a digital camera. I tried to get it to work with Linux. It uses some memory cards and we have a memory card reader for this that connects to the computer via USB. So I connected it to the computer when it ran Linux and tried to read it.

The USB device was detected in /proc/bus/usb/devices and appeared in the output of cdrecord -scanbus, but I was not able to mount it no matter what I tried. Eventually, I found out that I had to mount /dev/sdc1 instead of /dev/sdc. Afterwards it worked perfectly.

First W2L Meeting in Telux

The first W2L Meeting in Telux took place yesterday. Many people arrived and the room was packed. Eddie gave a nice "Blitz" lecture, and many questions were asked and answered. The main problem was that it lasted for a long time - over 2 hours.

22-Nov-2004

Meta

This diary entry is now cross-posted to Live Journal. At the moment, manually, but I plan to write an automated cross-poster.

OpenOffice.org bug

I sent my C.V. to someone and he told me the parenthesis were reversed there. Turns out the OpenOffice.org export to PDF is faulty again, and it reversed the parenthesis. I filed a bug report of it. Meanwhile, I wrote my Hebrew C.V. in HTML format, which worked very well, without any bugs.

CPANPLUS

While smoking CPAN, I had problems installing the Test-URI module. The developer claimed it was a bug in the CPANPLUS module. I tried to investigate, and hopefully correct it. Then, however it turned out the module was marked as a developer release (where no regular module was available). This is what prevented it from being indexed by CPANPLUS, as it was not in the module list.

Wiki Overview Article

O'ReillyNet published my article comparing various Wiki implementations..

Perl Empty Regex Catch

Check this post I made to Israel.PM for a Perl catch regarding matching the empty regex. I encountered it while working on my navigation menu module.

Helping someone with his Linux System

I helped someone called Amir who approached me on the Telux meetings, and said he had some problems with his Linux system. (X won't start). So I went to help him bringing with me a Knoppix disc. His problem was that X couldn't start. It was Mandrakelinux 10.0, and the startx program reported a missing symbolic link. After I fixed the link, it still wasn't good enough, and I had to play a bit with XFdrake, which is the Mandrake X configuration tool.

After that, we were able to start X, and we needed to connect to the Internet. He had a modem dial-up connection, and so, I played a bit with the Mandrake Control Center, and we were able to start it. Then, I explained to him a bit about Mozilla firefox, urpmi, etc. All in all, the mission was accomplished, and his system worked.

SVN::RaWeb::Light

Berlios.de only gives Subversion access via the svn:// protocol. So I wanted a web-interface to visualize things like is present in the http:// hosting. I looked for things like this, only there were either only for a local repository or presented too much information and so took a long time to process a page.

So I wrote my own module, SVN-RaWeb-Light. It behaves much like the one for the Subversion hosting, but has a useful improvement, of being able to display different revisions of the repository using the rev CGI parameter.

I was able to use it on my computer to view the Berlios repository. It's a bit slow, but still much better than anything else I've tried. I plan to implement caching of the data next.

Mail on Vipe

Strangely enough, the mail directory I had on vipe was gone. I had to restore it from a backup on my computer by transferring the compressed directory there. Afterwards, I discovered that not too much was lost.

libtool/autoconf problem

Someone reported a problem with one of the header files of Freecell Solver. To resolve it, I had to modify it and rebuild it. Only the rebuild failed. Autoconf complained that some of the macros were deprecated. It turned out support for Autoconf 2.1x was removed from the libtool m4 macros some time ago. So, I had to upgrade to Autoconf 2.5x, just to build the distribution. I spent an entire evening on this, on what should have been a simple change. Autoconf must die!

HTML::Strip::Whitespace

When I was working on the Israeli Perl Mongers site I noticed that the HTML had a lot of extraneous whitespace. I've looked in CPAN for a module that will do the job, but the only module I found (HTML-Clean) could damage whitespace inside <pre> blocks. So I wrote one of my own - HTML::Strip::Whitespace.

As it turned out, htmltidy can strip whitespace out of HTML. The webmaster of perl.org.il, however, insisted that the HTML on the site should be carefully indented, instead of whitespace-stripped and smaller, so I don't have an immediate use for this module.

Music Downloading

I tried to download the song "Tears on My Pillow" performed by Kylie Minogue. (which I have on cassette). However, almost all of the mp3 files I downloaded had a completely different song, only with the title I requested. What the hell?

Eventually, however, I was able to find one good version of it.

Disabling "Unsubscribe" in ezmlm

I wanted to form a mailing list for my beta reviewers, so I and the other members can send E-mail to one address and it will arrive to everybody. The problem is that I did not want anyone to be able to subscribe to there.

I searched and searched for it and eventually found this post to a mailing list about ezmlm that explained how to do it.

Job Hunting News

It turns out several people contacted my cell-phone and left messages, and I had no idea about it because I did not check it. So I called them back.

In any case, I had two job interviews for a company called "10 Levels" and they eventually decided to hire me. So I worked for them yesterday and today. What I had to do was write some Perl scripts to automate an application written using PowerBuilder. I was able to do some of the tasks, but not the last one. I have a Win32 form with several fields, and I have to fill in the required fields. However, I cannot find a way to switch the focus to the second field. SetFocus() doesn't work. SetActiveWindow() doesn't work and neither does a simulated mouse click.

I also installed Windows XP and RHEL 3 on a computer today. Configuring the networking involved doing a few physical pluggings. Then I wanted to install packages of Red Hat Enterprise Linux from the command line. I tried installing apt and everything, but it could not install packages from the RedHat CDs. After talking with people on the IRC, I found out that with RHEL, I need to pay for a subscription for up2date to get the packages. (and cannot use apt or yum). What the hell?

I asked one of my superiors what to do, and it turns out he did not realize you could resolve the dependencies of a package from the command line (he told me to look for the package in rpmfind.net, download it and install it using the rpm command). He also thought one did not need to pay for RHEL.

09-Dec-2004

Postfix - #2

After the Postfix configuration according to the Postfix on Mandrake page was done, I still had a problem that mail to root got sent to root@localhost.iglu.org.il, instead of delivered to the local mailbox of a certain user. Asking the people on the IRC did not help, and neither did reading the documentation.

Eventually, I temporarily subscribed to the Postfix Users mailing list and asked the question there giving all the configuration files as input. Magnus Back answeredme that I should have added teh appropriate host to the mydestination directive in the configuration file. That solved the problem, and now all the messages arrive at the hard-disk.

New Hardware Blues: PowerMust UPS

My father bought a UPS so power jumps won't affect the computer. It's a PowerMust 600 UPS. He hooked it to the computer via the USB cable, and got it talking with Windows. With Linux there's more problems. What the vendor supplies is an application written in Java for which the installation hanged right at the end. It's a several megabyte monolith and I'd rather not keep it running on the computer.

For the progress I made in the time being in getting the UPS to talk to Linux, see this thread in Linux-IL and the thread "Getting a PowerMust 600 UPS to work with Linux using the USB Connection" in the nut mailing list. It's not working yet, but there's progress.

Submitting an ed2k URL through Mozilla

My sisters recently switched to using MLDonkey on Linux to download files. Noa said that in Windows she could click on an ed2k:// URL and it would queue the file for download in eMule. So she wanted someting similar in Linux.

So I looked for a way to allow Mozilla to submit such "ed2k" URL's through kmldonkey_submit to MLDonkey. I had to register a new protocol handler. So I searched google, and did not find anything usable. The closest thing I found was this page that explains how to add a protocol handler for the mailto: protocol. Based on its instructions I was able to add a protocol handler for ed2k like this:

Put the following into the file user.js in your profile directory:

user_pref("network.protocol-handler.app.ed2k", "/usr/bin/kmldonkey_submit");

That's it!

KMLDonkey Crashing

I had a problem that KMLDonkey crashed upon connection. I worked my way through the code to see what happened. It was pretty hard because it seemed that it forked itself, and then got hanged up (needing to be resumed with kill -CONT.) Eventually, I was able to do so (by debugging kmldonket_submit which is less idiosyncratic) and found that it read a message length prefix and allocated space for the message, only it was too large, and it failed to allocate this space (and thus crashed).

I fired up Ethereal and tried to see what was the problem, it turned out KMLDonkey was communicating with the server in the text protocol. This made me recall that I changed the port of the core in the KMLDonkey configuration. Reverting it to one port below solved the crashes.

Technion Grades Listing

My Technion grades were given in a printout with a fancy colourful background. I ended up scanning it and converting it to PDF, but the PDF is quite large. (90,428 bytes). To resolve it, I ended up inputting the grades data to a text file, and wrote a Perl script to generate an HTML out of it. The generated HTML is 7,441 bytes-long (less than 10% of the original PDF size). And I'm still using UTF-8 encoding. If I convert it to ISO-8859-8 (= extended 8-bit character set with Hebrew characters), I can reduce its size even more. It's also 1,972 bytes when compressed with gzip and 1,733 when compressed with bz2.

Work on Shlomif::NavMenu

I did a lot of work on Shlomif::NavMenu (my HTML navigation menu Perl module) recently. While at first being stuck on how to write a good tree traversing class, I eventually decided to simply take the function I had now for generating the site map and gradually refactor it. This turned out to be very straightfoward and enjoying, and I was able to get what I want. Then I ported the regular navigation menu generation to the tree traversing class.

Eventually, I was able to eliminate the use of Yosef Meller's modules which I used it first. This caused the module to have 1,097 lines-of-codes instead of 1,510 (as reported by SLOCCount).

This was all done while adding tests, and now I have 117 individual tests there. I have totalled 79 subversion commits since I started working on November 30 or November 31. And I still have a lot of work ahead.

Bash Filename Completion

While working on the navigation menu class, I wanted to tweak the shell completion so that pressing tab after the gvim command will not display or complete to files whose filanems begin with "." or end with "~". It took me a long time of experiencing to figure out how to do that, but I was eventually able to. Here's how I did it eventually. Add this to the appropriate bash configuration file:

__gvim_completion()
{
    local cur
    cur="${COMP_WORDS[COMP_CWORD]}"
    COMPREPLY=( $(compgen -f -X '*~' -- "$cur" |
        grep -v '/\.' | grep -v '^\.') )
}

complete -o filenames -F __gvim_completion gvim

Job News

I ended up being fired from the job I reported here. They weren't happy from me, and I wasn't happy from this job either. Trying to automate buggy Windows software is not my idea of self-fullfillment. Now I'm looking for a job, again. So far I was rejected from a job posted at Linux-IL, and from one posted at Perl-IL. I still have a few leads, though.

Reading

I finished reading two Discworld books: "The Colour of Magic" which is the first Discworld Book, and "Lords and Ladies" which is a rather late book. I liked them both.

I took them both from Michael Perelmutter, and a few days ago, I returned him "Lords and Ladies", he returned "Surely you're joking Mr. Feynman" to me, and I took "The Complete Hitchhiker's Guide to the Galaxy" and "Godel, Escher Bach - An Eternal Golden Braid".. So far I started reading what I did not read from The Hitchhiker's Guide to the Galaxy. I read there the short story titled "Young Zaphod Plays it Safe". It was quite funny, but I did not understand the ending.

I also read the book Managing Weblogs with Slash and wrote a review of it. The technical book that I'm reading now is "Practical mod_perl". So far it was quite interesting at times, and contains a lot of useful information about the various fine details of running scripts using mod_perl.

Calculating the ssh fingerprint of Host Keys

In one of the hosts I have an ssh account on, I was instructed to verify that the new ssh fingerprint matches. I had no idea how to do it, and so tried to look for it and asked for the IRC. It took me some time, but I eventually found this message to the Debian list on how to just that. So what I did was run ssh-keygen -l -f ~/.ssh/known_hosts on the file and I got the fingerprints of all the host keys including the one I was looking for.

Tip: use.perl.org RSS feeds.

I had no idea how to get the RSS feed for the journal of Gabor Szabo. A link to it was nowhere to be found on the page. I contacted the webmaster and he told me to look at the head of the page. Which "head"??? Eventually, I understood that one needs to view the source of the HTML and use the <link rel> links from the <head> tag. And indeed you can find the RSS feed for the journal there.

So now you know. It's a pity the page has no visual cue that there's an RSS feed for it, or where to find it.

Events

I attended a few events recently. Shachar Shemesh gave a presentation about development tools in Linux for in a Welcome to Linux Telux meeting. He got lost in trying to explain about kdevelop and especially about CVS (which beginners should not use, anyhow). Next year, I hope we'll give the lecture in a better format.

Then came the Telux installation party. Few people attended, and most of them were installers. I was responsible for selling the Hamakor merchandise. I also tried to install Linux on a machine which had both a SATA hard-disk and an IDE one. This involved a lot of trickery, and eventually did not work, so we removed the FC 3 installation, which was the only thing that we could get to install.

I missed the Israeli Perl Mongers meeting because I forgot it took place in that particular day. I did attend the Hamakor General Assembly the day before yesterday. Omer Zak drove me there, and drove Eddie Aronovich and I back. The assembly was quite entertaining - the attendees voted several times for various things. I was happy with the decisions, at the end of the day.

14-Jan-2005

Some Recent Version Control-related Links

There seems to be another BitKeeper-related fight, this time at Linux Weekly News. As far as I remember, it's been a while since the last serious one. It was pointed by one of the LWN letters to the editors.

LWN also published in their Development page, an editorial titled "Looking Past CVS: The Future is Distributed". This is a really bad essay. It is the second low-quality LWN feature I recall, after the "Programming Languages - Standard-Based vs. Non-standard-based" one (which I cannot find now using either Google or the LWN Search or its Archives). And both of them were contributed.

There is also a Slashdot piece on the OpenBSD project working on OpenCVS.. I initially thought it was funny and pointless, but it may actually be beneficial.

David Font Bug on Mandrake

On Mandrake, I had a problem that OpenOffice.org 1.1.x did not display the David font (a Hebrew font) correctly. Eventually, I was able to solve this problem, by removing duplicate entries with "David" in them from the fonts.dir and fonts.scale files. Apparently, the font uninstallation procedure did not do a good enough job of removing the font.

Now I have a problem that with OpenOffice.org 2.0.x the fonts all look like crap, and it also takes much longer to start. I'll see what can be done about it.

Upgrading to Kernel 2.6.9-ac14

I upgraded to kernel 2.6.9-ac14. This time the installation of the Nvidia driver went pretty flawlessly. One thing I checked before the Nvidia driver was installed, was the xwd and OpenOffice bug. It indeed does not occur without the Nvidia accelerated bugs installed. So now this bug occurs only on Mandrake, only with OpenOffice opened in the current virtual workspace, and only with the Nvidia drivers. How obscure!

Fixing the Subversion install-swig-pl bug

I filed this bug-report into the Subversion issue tracker.. Apparently, the "make install-swig-pl" has a dependency on instaling some of the core libs, and as a result, when being run as root (which is required for installing Perl extensions), some of the Subversion libraries are installed as root, which is very annoying. I wrote a patch to fix this problem, but it was not integrated yet.

Daniel J. Bernstein's UNIX Security Vulnerabilities Course

Here's a Slashdot post about it that I found amusing. There's also some discussion of it in Linux Weekly News. It says that Bernstein did not alert the developers beforehand, but rather publicized the disclosures immediately. This again demonstrates how socially-challenged (and opinionated with socially-challenged opinions) he is.

Hackers-IL Discussions

There's an interesting discussion about Perl, Java and C on Hackers-IL. While it can be classified as a language war, it has reached some interesting conclusions. The discussion took an ugly turn when I was attacked several times. (including one time when someone publicly spread a vicious rumour about my body odour). As a result, I and the other active participant have decided to take the discussion off-list, and just place the messages online afterwards.

Right now there's an active discussion about strncpy(), strlcpy(), sizeof, security in C, etc. as a response to a post in Raymond Chen's blog. I learned from it that sizeof could be used without the parenthesis when it is used upon a variable.

My Mom and E-mail

My mom now has an account on my father's domain, and started receiving E-mails from people. She tried using the web-mail interface, but we could not get it to display some Hebrew E-mails, especially if the server encoded the characters using SGML entities. So I decided to install a Windows client.

I tried installing Eudora which I really liked at the time. I installed the ad-ware version, and it fetched the E-mails easily. But then we tried changing the language encoding of a message. Perfectly Impossible! I went over all the menu items and could not find anything that will allow me to do it. Google was no help. I wonder how such a feature was omitted.

So I installed Thunderbird. It was able to read the settings and the messages from Eudora. It works very nicely up to now, except that some Hebrew letters are displayed as strange black circles with white question marks characters. But this might be a font problem, or a temporary bug, and the message is still readable.

Mom has learned how to check and read E-mail messages, and now she wants me to teach her how to write E-mails. She might become computer-literate (in anything besides playing Solitaire card games), after all.

GIMP Work

The Frosty Logo was reported to produce incorrect results on recent versions of GIMP. Since I'm very fond of this logo, I decided to take it upon myself to fix it. The problem was in the Sparkle Plug-in. I did not know how it worked exactly, but at least I knew that its code in GIMP 1.2 was OK. So I started going over the diff, and eliminating portions of the code that were semantically equivalent. I found 4 bugs this way.

As I was going to add dumps to the code, I found other bugs. You can find my patches in the bug report. These patches were applied, and I was jokingly labeled the GIMP expert regarding the plug-in.

Eventually I found a bug that was present even in GIMP 1.2, and one problem in the Frosty Logo script itelf, that was present since its introduction, which I also corrected. Some more information can be found in my report to the GIMP Development mailing list.

It was quite a lot of work for such an obscure feature, but it personally bothered me, so I was motivated to do it.

Mandrake, Vim and the Vim Security Bug

I filed a bug report about the recent Vim vulnerability in the Mandrake bug tracker. You can also find there a testcase I wrote to determine if you're vulnerable. (which is written in Perl and should work on all UNIX platforms).

It took me quite some time to write this testcase. The original Gentoo bug report gives general guidelines on how to reproduce the bug, but not a prepared test-case. So I had to understand what's going on there, and implement a Perl script that does it. And the people on #vim on the IRC were not very helpful in this regard.

OpenOffice.org's Export to PDF

I discovered that on my system, with a certain mixed Hebrew-English document, the PDF exported by OpenOffice is not viewed correctly in ghostscript. I reported a bug report about it to the OOo bug tracker. Eventually it was closed, claiming it was a bug in ghostscript and not in OOo. I filed a bug report to the ghost-script bugs mailing list, and it may have reached my inbox (cannot remember), but it's not in the mailing list archive.

Frustration!

HTML::Widgets::NavMenu

HTML::Widget::NavMenu is the new name of my navigation menu module. After more work on it, I was happy enough with the feature-set and the quality of the code to release a stable version (0.2.0) on CPAN. After the release, I continued working on it. I added a useful feature that I before 0.2.0 replaced with a new one (also potentially useful). And I also did a lot of refactoring which I delayed until 0.2.0 was out the door.

I think now the code is quite ready for 0.4.0. Meanwhile, some of the services on berlios.de are now having some problems, which slows down my progress.

Israel.PM Meeting

We met at Dapey Zahav, as usual. Several people arrived and gathered outside , but we could not enter the hall because none of our contacts in Dapey Zahav have arrived and the receptionists refused to let us enter. I collected money from people to buy drinks and snacks, and went with someone to buy drinks. I set them out at the table inside, and then opened some of them to drink, because I was really thirsty.

Seeing that we could not enter, we decided to cancel the meeting, and so I and Sagiv Barhoom carried the bottles of drinks to his car, and he gave me a ride home. On the way, we talked about Perl, GIMP, and other stuff like that.

We are now looking for a different place to hold the meetings, seeing that the Dapey Zahav conference basement may no longer be available.

Jimmy Wales Visit

Jimmy Wales, one of the founders of the Wikipedia, and director of the Wikimedia foundation, had been visiting Israel, and gave a lecture in Tel Aviv University. My problem was that I mixed up the dates, and arrived there a day early. I could not find any notice about his lecture anywhere, and did not know what to do. I also was able to find up an Internet connection in one of the computer farms, but it wasn't any help in finding the lecture room.

Eventually, I found someone who lent me her phone and I called Ofer Weisglass. He, after checking on the computer, told me that it took place the next day, and also told me the room number.

I arrived there the next day, and indeed the lecture took place then and there. I was able to introduce myself to Mr. Wales, before the lecture. I recognized a few people there. One of them was Ofer. Another one was Michael Perelmutter, which I told him about the lecture on my way back from the university the day before. Another one was someone from the TAU-Sec meetings, and the rest were people I remembered from the Wikipedia meeting in Azrieli Center some months ago.

Now for the lecture itself: Jimmy Wales gave a very interesting and entertaining lecture. He spoke about the Wikpedia and the related services (Wiktionary, Wikiquotes, etc.) the translations, etc. He gave a lot of statistics, some of them very interesting. One of them, was that the size of the database dump compressed will reach 1 TB some time from now. Another was that 10% of the visitors have performed 80% of the changes, and 50% of the changes were performed by only 2.5%.

He was able to throw a few jokes during the lecture. In one of them, he talked about benevolent dictators, and said "Like Gweedo von-Rossum is for Python". So I said "It's Kheedo von-Rossum", and he said, "Well, you can't expect me to pronounce that..." and everybody laughed.

After the presentation, Wales stayed for the beginning of the Wikipeders meeting, and we discussed various topics, like an Israeli squid server for the Hebrew wikipedia. Wales then went to have several interviews with the local media, and the rest stayed for the rest of the Wikipeders meeting.

Ofer wanted to go then, and offered me a ride. I talked to Michael who lives close to me, but he ended up wanting to stay for the rest of the meeting. So Ofer and I went then. On the way to his car and during the ride home, we talked about Linux, Mandrake, and how to find your way around a Mandrake system.

To celebrate his visit, I added a new page to the Wikipedia about the "Simple Simon" Solitaire Game.

11-February-2005

Perl Quizes-of-the-Week

I posted a mail to the Perl Quiz-of-the-week mailing list asking why there hasn't been a lot of activity lately. As a result, we decided to revive it by posting challenges ourselves to the discussions mailing list. So far, I posted two challenges, one which I labelled "Medium" about scheduling Tournaments, and one easy one which I encountered on IRC once. There were also two other challenges by two other people.

Activities

I've attended a TAU-Sec meeting. In the first part, there was a presentation about DNS-Sec, the security extension to DNS (which actually, due to input from the audience, mostly concentrated on DNS itself.) Nevertheless, it was very interesting. Then came a cryptograpgy-related presentation about breaking session IDs that are generated using pseudo-random number generators. It was interesting, but I did not understand parts of it.

There also was a presentation by Schachar Shemesh about the Bourne Shell with some Bash extensions. He gave a very useful introduction, and I even learned some new things. It was heavily raining after it was finished and I had to walk home, and when I reached home I and all my clothes were soaking wet. But still, it was fun.

Next came a presentation about Linux accessibility for people with disabilities. The link points to a referenced report and some completions by Herouth Maoz and I.

Perl on Debian Woody

It seems that Perl's File-Spec and Cwd modules got updated recently and now their build breaks on Debian Woody (= latest Stable as of now), somewhere at the test stage. I already heard from two people who had problems with this on the IRC, or elsewhere. This may cause CPAN to be unusable there.

HTML-Widgets-NavMenu

I released HTML-Widgets-NavMenu-0.4.0 a short time after the release of 0.2.0. It includes a url_is_abs() option that enables to specify an absolute URL for an item in the navigation menu - I missed it in version 0.2.0, where I replaced it with a different feature. It also includes a greater test coverage and many cleanups.

I created a web site for these Perl modules and also announced them on Freshmeat.

Interview by Einat Ya'akobovitz

I was contacted by Einat Ya'akobovitz, who is a Sociology Masterant, who does her thesis on the Israeli Open Source Community, with a focus on "Freedom, Value and Community". She said she encountered my name in several contexts, and wanted to interview me. So we set up a time for the interview to take place on I.C.Q.

The Interview went very well, and I enjoyed answering the questions, some of which required some thought on my part. Einat noticed I am an Objectivist, and so asked me some questions about apparent contradictions between the Objectivist philosophy and my open-source activity. Now I have some ideas for things I'd like to add to my "Objectivism and Open Source" essay.

The Interview ended after a few hours, and Einat told me that she cannot publish what she has now just yet, because of academic constraints. I guess we'll have to wait for the final thesis to read it.

irc.perl.org incident

I've tried to contact Mark Fowler in regard to his Perl Advent Calendar. I sent him some E-mails which he did not respond to, so I decided to contact him on the IRC. He is only present on irc.perl.org, so I logged in there. I joined the #perl channel and shortly afterwards someone named sungo said "rindolf: [that's my nick] are you who i think you are.", and shortly afterwards banned me from the channel. I tried to talk with him, (using a dedicated /msg talk channel), and this is how it went:

<sungo>	dont msg me.
<rindolf>	I'm looking for Mark Fowler.
<sungo>	i dont particularly care.
<rindolf>	I did not misbehave.
<sungo>	let me put it to you this way. i don't have to explain my actions or
my thoughts to you. if you thought you were logging on to some sort of safe
and happy place, then you are very wrong.
<sungo>	stop msging me and carry on with your existence
<rindolf>	Please remove my ban.
<sungo>	no.
<sungo>	would you like it to be extended to something more server-related and
permanent? if so, then continue harassing me.

So I had no choice, but to let it be. Apparently, Fowler was inactive then, but I was able to reach him a few days later when he told me he was sick. I guess I'll have to try to reach him again.

I guess this sungo character banned me because of either the "Attitude of the Perl world towards Newcomers", or the "Perl 6 Critique". In any case, I was not going to discuss this, and was just trying to do something important. I also wasn't misbehaving nor was going to. He is just full of bad attitude, and I wonder who he is.

Gringotts Patch

Gringotts is a program that allows one to write notes (like Passwords, etc.) in a secure form. Some things about it bothered me, and the author did not respond, so I wrote a patch for resolving them.. I also announced it on Freshmeat.

I was contacted by the maintainer of the Debian package, who said he may want to integrate my patch into his package. He also said a patch he sent to the author got integrated immediately, and so the author is probably very busy now. I recently revised the patch to eliminate the use of the deprecated Gtk+ APIs, and to use more strict gcc flags.

xpdf and Upgrades

Recently I had to update half of my Mandrake system (kde, tetex, cups, etc.) twice because vulnerabilities were discovered in xpdf. What I cannot understand is why the code is embedded as is, an it isn't turned into a shared library, or at least a standalone program, so one will need to update only one package.

gimp-ace

Check this post to the GIMP Development list for information. I did it because I met someone on the IRC who needed it, and has still been using GIMP 1.2 because gimp-ace was not available for GIMP 2.x. I also placed it in the plug-ins registry.

Since then I was contacted by two other developers who have also performed a port of a version of the program with more embellishments. (but did not release their modifications to the public, yet). I'll see what I can make of it.

Gimp Bugs

I fixed an issue involving saving an image as .xcf when no extension was given. The patch was commited, but then Michael Natterer was unhappy from the code there, and started a revamp of it. Other than that I also worked on the Alpha channel visibility issue. This turned out to involve dealing with the internals of the GIMP, and it took me quite a lot of time (and two patch iterations) to find out what to do. The final patch was not applied yet.

Vim Range-Search

I asked people how to do a range search in vim (from a certain line to another certain line). There's the information which I once found in :help search-range which involves doing a 'a,'es/ command that runs a search-and-replace command on the range (with a quirky interface). On the IRC, someone told me about /\%<${LINE_NUM}l and /\%>${LINE_NUM}l that can be used to restrict the search to certain lines. The problem is that they require actual line numbers, and not marks or whatever.

So I decided to write a function and a command to perform the range search for me from mark a to mark e. I wrote a function, but then it turned out that invoking it did not cause the search pattern to be affected at all. I thought it was a bug in vim and so checked it with several other vim versions - they all failed to do it. This was while executing the internal command on the vim command-line worked perfectly.

After some head-banging, I found the following expert in the Vim help: "The last used search pattern and the redo command will not be changed by the function". After searching the same help file, I found out that I can set it by assigning to the @/ variable. This enabled me to write the function properly, after spending the entire afternoon on it.

The full code at your disposal is:

" Author: Shlomi Fish
" Date: 10 February 2005
" License: MIT X11
"

function! Range_Search(mypat)
    let full_pat = '\%>' . line("'a") . "l" . '\%<' . line("'e") . "l" . a:mypat
    exe '/' . full_pat
    let @/ = full_pat
    norm n
endfunction

command -nargs=1 Rs call Range_Search(<f-args>)
command -nargs=1 RS call Range_Search(<f-args>)

I hope to perhaps enhance it by enabling custom ranges, etc.

Job Hunting

I had a job Interview at Artnet which was arranged through my Father's co-worker. It was in Hod-Hasharon and my Mom drove me there and back. It was over pretty quickly, so I think I was not accepted.

I also had two job interviews at IBM Haifa (probably due to the successful pre-interview at the Technion's job fair). The technical questions I was asked were pretty interesting, (including some on search engine implementation) and I highly enjoyed them. I feel I did pretty well, but they said they only had a limited amount of openings, and I also had to pass the more upper management. I haven't heard from them since, so I don't know what's my status there.

I had an interview at Zend (the Israeli PHP company), which also ended up very quickly. Finally, Ran Eilam (my former boss at Cortext and an Israeli Perl Monger) arranged an interview for me at his company. After the interview was over, they said they did not found me suitable.

It's good that I have some interviews, but I would prefer to finally get accepted into a good workplace.

Low Bandwidth Conundrum

One day when I was using the computer, it occured to me that I had a very low bandwidth (30 KB/sec or so). I tried cancelling services, and stuff, but it did not help. Then I checked the bandwidth from the other laptop running Windows XP - it was perfectly fine. I tried rebooting into Knoppix (ruined my 31 days uptime) and then into Windows 98 - the problem existed there as well.

Then it occured to me - maybe the Ethernet card was faulty? Switching to the other Ethernet card, indeed solved the problem. %-)

Windows Media Player

It seems that using Windows Media Player to play mp3's, causes their last-modified timestamps to change. This is disturbing because we're using the sort-by-modification view to sort them according to the order in which they were added, and WMP ruins the order. This does not happen with WinAmp or Linux-based players. Another thing that Microsoft does wrong...

21-March-2005

Gimp Testing Framework

I began the work on an automated testing framework for GIMP. One part of it involved making sure the pseduo-random number seeds that a seed-less call to g_rand_new() are predicatable. That was done using an LD_PRELOAD trick, and writing a TCP server for assigning them.

What I have so far works pretty well, but there's a relatively small number of tests. This helped me in a revamp I did to the gimp-ace codebase.

YAPC::Israel::2005

YAPC::Israel::2005, the Israeli annual Perl conference took place at February. There are summaries of it are available in the Israel.PM mailing list archive, including one of mine.

MikMod for Java

I re-incarnated the MikMod for Java homepage, this time in Berlios. A problem I encountered was that I originally designed the site using Web Meta Language, but this got lost in the hard disk crash, and I was left only with the final HTML pages, which I was able to fetch from the site. So, I had to re-WMLize them. That proved to be not very hard.

Then I went to work on the code a bit. So far what I did was made the code compile cleanly on JDK 1.4.x (the hardest part was figuring out I had to provide the -sourcepath . options to javac to eliminate the "cannot resolve symbol" errors).

Another thing I did was add a driver to write a WAV file to the disk. In the process, I discovered that the WAV file that MikMod generated was not identical to that generated by a sox conversion from the raw file. I discovered one of the outputted numbers was wrong, wrote a fix for libmikmod and sent a patch to its maintainer.

Now what I'd like to do is write a driver for the Java Sound API, so people can use it as a normal player. I had received a few E-mails from people who did just that, but I'm not sure if the packages they wrote were not misplaced. I'll have to check.

Job Hunting

I had a very good interview in Tel Aviv University for a position in their System team. I also had several interviews in a company in Hertzliya. I don't know the status of these two positions.

Upgrading Mandrake to 10.2 RC

I wanted to upgrade Mandrake to 10.2. Only problem was that when I wanted to do that, the bandwidth limit per connection I had on my Internet link was very low. Trying to complain about it to my ISP help-desk yielded no result.

Eventually, I decided to upgrade KDE to KDE 4.0 instead. I was able to download the packages fast enough using prozilla, and then went to install them using urpmi. This has failed and generated a lot of dependency problems, errors and stuff. Clearly, the packages were not prepared well.

Then I found a Mandrake 10.2 RC mirror with which the Internet bandwidth was OK. So I set up the sources and upgraded. I encountered many problems in between, and had to restart urpmi several times. It was possible that the KDE 4.0 packages messed up my system. Eventually, I opted to downgrade them all, which involved some text processing of the packages' list. (don't ask).

But all's well that ends well. I now have a Mandrake 10.2 RC system, which works very nicely and all. I found out a bug in which one could not invoke Konqueror. I found it in the Mandrakelinux bugzilla, and it can be resolved by upgrading to the latest kdebase packages from cooker.

Problems with the Ovid CPAN-to-RPM Converter

When invoking X-Chat, it barfed on me because the Perl extension I wrote could not find the Xmms::Remote module. Due to the Mandrake upgrade, the Perl @INC paths have changed and the module could no longer be found. I had to re-install it.

This time I decided to make each module into an RPM package using Ovid. However, I encountered some problems using it. Its own RPM refused to compile. It turned out it couldn't two problems with the new ExtUtils::MakeMaker conventions and with Mandrake. But I was able to fix them.

After I got it to work, I was able to build Xmms-Perl and all of its dependencies as RPMs, and to install them. Then X-Chat worked beautifully using my extension. "Hacker sees bug. Hacker fixes bug."

Telux Meeting: GIMP 2.2

I updated my GIMP lecture slides to GIMP 2.2. Herouth Maoz was the one who volunteered to give the presentation at Telux, and she translated my slides to Hebrew and somewhat revised them.

The presentation she gave (yesterday) was very nicely executed, and I enjoyed it very much.

New web-site for Telux

The Tel Aviv Linux Club now has a New web-site. I converted the pages to Web Meta Language, to HTML::Widgets::NavMenu and to my lectures manager (originally create for Haifux). Now, the site is up, with no frames or any other resident Evil.

PySol Problems

If my mother wouldn't be able to play Simple Simon on PySol, she'll go mad. The PySol in Mandrake 10.2 was broken due to the fact that it placed the code at the same directory of the games, which caused them to be loaded as plug-ins. After trying to solve it in several ways, and eventually being victorious, I posted a fix in the Mandrake bugzilla bug-report for it. Now Mom can sleep well at nights. "Hacker sees bug. Hacker Fixes bug."

2-April-2005

Favicon

I went over the errors logs of www.shlomifish.org and noticed that most of them were requests of browsers looking for the favicon. So I decided to create one and put it on my site to eliminate it. It took me some time to get the transperency right, and stuff, but now it's there. It's a sketch of a fish.

I also added a section of my links collection with links to archives of pictures and wallpapers.

WWW::Form

I finally took the time to integrate the changes between WWW::Form 2.13 and 2.14 into the repository, and released WWW::Form 2.15 as a result. What happened was that Ben Schmaus branched his own version of WWW::Form which he worked on, on his own, and was not based on the one present in the repository, and then released it as 2.14. Right now, the CPAN release is again based on the Subversion repository.

Greasemonkey

I installed the Greasemonkey extension to Firefox just so I could use the script that turned Paul Graham's footnotes into hyperlinks. Until now I haven't found any other script that is useful for me. Oh well.

Networking Problems

As I was intensively updating the Tel Aviv Linux Club homepage I noticed a problem. Apparently, I could not access the site properly. All other sites I tried worked fine, just not this one. Eventually I called my ISP tech-support and after a short talk with the support person he suggested that I restart my router. That solved the problem, and then I was able to connect there comfortably. Sometimes the technical support can be helpful.

New Telux Lectures

Upcoming lectures are "Embedded Linux Bring-Up" by Ori Idan, and Condor by Eddie Aronovich. I think we'll do another Lightning Talks session sometime afterwards.

MikMod for Java

I took the Java Sound API driver which was provided to me by Tobias Braun, and after some modifications got it to work properly. Now, MikMod for Java can play sound interactively. I also prepared an Apache Ant build file.

Finally, I discovered a bug in which one of my MOD files is not played properly. I'll try to investigate.

Telux RSS

I finally took the time to add an RSS feed to the Tel Aviv Linux Club events. I decided to base it on the Haifux mechanism. I tried to find it in the Haifux code page, but could not. A quick E-mail to the webmasters yielded the right file. (turns out the code page was out of date). Based on that I was able to add RSS feed generation to my lectures publishing system in one day.

Right now, what I have to do is to finish the script that will reside on iglu.org.il and will collect the events from the various places and display them in a nice web-box. This would have been finished by now, if it weren't for the Haifux site being unavailable. (as is usual on weekends).

Lightning Article about Devel::LineTrace

A lightning article I wrote about Devel::LineTrace was published in a batch of Lightning Articles on Perl.com. Devel-LineTrace is a Perl module that can be used to assign callbacks to lines of a Perl program, to facilitate debugging.

Kubuntu

I decided to install Kubuntu on a different partition, so I can see if bugs that occur in Mandrake also occur elsewhere. I invoked SysRescueCd to partition everything, but found out I already had some free space at the end of drive so I decided I'll install Kubuntu there. I installed it this morning, and spent some time configuring it.

The first problem I encountered was that several kernel modules could not be found. To remedy this I booted from Mandrake and copied the kernel and initrd.img file found on the Kubuntu partition to the loadlin one, and set up a script. Then, I could not find out how to switch to the root user. A quick google search yielded that Ubuntu did not activate root by default, and instead made the first user priviliged to run root applications by using sudo. So I assigned a password to root (using "sudo passwd root"), and removed that sudo assignment.

Then I wanted to get rid of X starting automatically. Someone on IRC told me that I should delete the xdm (or kdm in my case) symlinks from the appropriate run-levels. So I did and it worked. (after some trial and error). Then I went on to install software, configure the universe package source (where I found the joe editor, and the aRts binding for xmms.), and configure KDE, the shell , Vim, etc. to my liking.

Now I have a system that is quite usable. One thing I discovered was that a bug I have with Cedega-CVS in installing Warcraft 3 was present there as well. Running it through WineHQ wine was successful up to the point of entering the information for the installation in the dialog box. This instead turned out to output the keys to the console. The latter problem exists in Mandrake as well.

18-April-2005

Advogato

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.

SVN::RaWeb::Light

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!

XML::CompareML

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.

06-May-2005

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.

Birthday

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.

thewml.org

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.

OpenSVN.csie.org

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.

2005-05-11

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.

2005-05-10

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:

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.

2005-05-23

Pod::Xhtml

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 />

Latemp

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.

BitTorrent

My Media-Mongering sisters have discovered BitTorrent. So far so good, only the reference BitTorrent implementation insists on dedicating at least 1 Kbps upload, for every file it downloads. Which is unacceptable for downloading multiple files from an ADSL connection with only 10 KBps upstream.

Luckily, MLDonkey supports it. But I could not find a way to enqueue a torrent using MLDonkey - one has to use the telnet interface. Thus, I set out to automate it. A little Perl and Net::Telnet wizardry, and I was done. The script can either download the torrent from the site into a designated directory and then enqueue it, or it can enqueue a given file.

I think Noa, who had her introduction to the UNIX command line in the Technion (she studies Computer Science), got the hang of it, but I'm not sure, because my sisters usually request me to do everything for them.

Events

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.

2005-06-03

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.

Puppy!

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?

2005-06-18

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.

MediaWikis

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. ;-)

Catalyst

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.

thewml.org

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.

2005-07-03

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.

SVN::RaWeb::Light

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.

2005-07-31

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
                interview=http://developers.slashdot.org/article.pl?sid=05/07/27/1555228&from=rss
       <ayita>  rindolf: I don't understand what you are telling me.
     <rindolf>  ayita: kfogel interview is
                http://developers.slashdot.org/article.pl?sid=05/07/27/1555228&from=rss
       <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.

2005-08-25

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.

www.perl.org.il

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.

IO::Scalar

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.

2005-09-27

File-Sharing in Israel

Talash has written an excellent blog entry about activity for protecting File-Sharing in Israel. He gives links, information and points to where money can be sent and help can be offered. I should note that I also wrote about it back in June (search for "Countering").

I already sent them an E-mail offering my help. Please help spread the word.

New Job and W2L

I blogged about my new job and about the Israeli Welcome-to-Linux series in Linmagazine. (in Hebrew). In English, I can say that I finally found a work: I'm working from home for an hourly pay for a small consulting/contracting firm. It's Perl/Web/SQL. I'm happy that I now have some steady income, and the work is quite interesting, and I'm learning new concepts and Perl/Apache/SQL/Linux technologies.

I also cover the beginning of the Israeli Welcome-to-Linux series, what I did so far and what should be done. We need a lot of help so if you're Israeli, and have some spare time, feel free to volunteer.

The comments there are pretty useless. In one sub-thread a few anonymous people told me that the Jerusalem Linux Club, should be called "JLC" for short, instead of "Jerux". And a few people were somewhat sarcastic about the fact I will now have less time to spend on open-source activities and have less free time.

Epilogue

I have plenty of issues to blog about besides those, but these are the most important topics. So until next time: have fun, hack on and stay cool!

Paul Graham's "Inequality and Risk"

Paul Graham recently wrote an article titled "Inequality and Risk". This article was covered in the "Joel on Software" forum.

The original poster said that: "I've usually found value in Paul Graham's essays, even when I don't agree with him. However, his latest simply parrots the standard right-wing economic arguments. ".

Here is my response:

I found two problems with this statement. The first one is called "labeling". You've labeled Paul Graham as parroting right-wing economic arguments, and expected us to agree with you that it was thus wrong. Yet, you gave no arguments for why the article was wrong. A person who tries to convince others of something needs to reason his arguments from more basic, commonly agreed facts. Saying it is wrong because it's "Socialiastic", "Fascistic", or whatever is not enough.

The other and more serious problem is that you believe what Graham says is right-winged. While right-wing people often make such arguments, they are not the only ones. Libertarians, Objectivists, etc. also believe in Economic freedom, and yet they are by no means right-winged.

In fact, there are two axis to the political map: individual freedom and economical freedom. The Left seems to uphold individual freedom while supporting economical restrictions. The Right supports economical freedom while believing that individual freedom is not that important. Libertarians believe that both economical and individual freedom are important. There are also authoritarians who think that none are important.

Refer to this site for more information.

It is true that once upon a time there was a single dimensional political map until the Liberals diverged into Libertarians and the current Left which believes in economical restrictions. But now we have a two-dimensional political map.

You are not the only person who makes this mistake. Richard M. Stallman says in a Eurohacker interview with him that Eric S. Raymond "is a right-wing anarchist", despite the fact Raymond is a self-proclaimed libertarian who rejects both the Left and the Right. In an IRC conversation I had on Freenode someone said that Objectivists are ultra-right-wing, despite the fact they are fanatical about individual rights.

I read that article by Paul Graham you linked to, and agreed with it completely. Graham has a point. One point I think he missed mentioning was the fact that societies can become prosperous enough so even the poor will be relatively rich. For example, in some countries many poor people starve or used to starve to death. On the other hand, in First-world countries, there is an abundant food supply and as a result even the poor are well-fed. In the States and other countries, many middle class people can afford to frequently travel by airplanes. Once computers were extremely costy and could only be afforded by large organizations. Nowadays much more powerful, compact and otherwise superior computers are common in almost every household.

These are all examples that while the economical imbalance is preserved, the economical well-being of everybody - poor and rich - grows.

Alan Kay's Interview

This interview with Alan Kay was published a while back, hit Slashdot, etc. Due to the prominence of the interviewee, I decided to read it and indeed read it front to back. Here is my opinion of it.

To keep it short: I did not understand about half of it. I don't think I had problem understanding the individual words, but the general theme of entire paragraphs was beyond me. There have been some signs of me becoming senile recently (like the fact that I could not understand Perl 6), but I have no problem understanding Paul Graham, Joel on Software, most of the things by Eric S. Raymond, etc. If Alan Kay is different, then I believe he is simply not accessible enough. (as opposed to the others).

From what I did understand it seemed most of it was like endless (and pretty much useless) rants about Java. One thing I did not understand was why many people (like this poster on Slashot or Tal Rotbart in a Hackers-IL message) got psyched from him saying "Perl is another example of filling a tiny, short-term need, and then being a real problem in the longer term." This is the only time Perl is mentioned in the entire Interview, and Kay does not explain why or how it is a problem.

So Alan Kay briefly mentions that Perl is a problem, without giving any explanation. Why am I supposed to right away buy that? When someone makes a claim a reason should be given.

2005-10-13

Summary of the Past Year

Continuing with last year's tradition, I went over my past year's weblogs' entries, in order to try and summarize the year as a gesture for Yom Kippur. Here's what I can say about them.

The biggest personal trouble happened due to this rumour spreading about my body odour in Hackers-IL. It wasn't really my fault, but I still got too anxious from it. Hackers-IL is a nice forum, which I'd really like to take an active part in , in the future. The person who did this and other insults left, so I won't have to worry about him in the future. He otherwise seemed like an intelligent and knowledgable guy, but he was still trying to irrationally and ignorantly attack me.

The biggest trouble I've been involved in, was the flamefest on the Hamakor mailing lists and blogosphere caused by Elad Efrat. This year, I got to know Elad better and found out he was actually both nice and productive, but simply could be incredibly tactless and insulting. I learned to not take what he says too seriously, and not to argue with him on the points that make him edgy, and I hope other people would learn the lesson.

There were bigger calamities on the global scale: the Tsunami, Hurricane Katrina, and many acts of terrorism, to name those that I recall. One of the good things that happened this year was the disengagement from the Gaza strip. It's not enough to ensure the resolution of the Israeli-Palestinian Conflict, but it's a step in the right direction.

This year, my involvement in large scale FOSS projects diminished a bit. While I still contributed some patches to the GIMP, I instead either:

  1. Worked on CPAN modules or other smaller scale projects that I found useful (and often personally needed)
  2. Did a lot of work for the local community.
  3. Worked on Web-sites, articles for O'Reilly-Net and other online publications, essays, stories, etc.

Except for two "third-party" CPAN modules, I stopped contributing a lot to Subversion. Thing is, they have plenty of very active contributors (some of them are code animals), and they seem to be doing very fine without me. Besides, Subversion just works for me.

On the literary front, I finished writing the "Human Hacking Field Guide". Today, when I was going to revise a part which I wasn't happy it, I also read it till the end, and discovered it was much better than I originally thought of it. (partly due to people's criticism of it). I also made some progress with The Pope Died on Sunday (whose writing began a long time before the death of Pope John Paul II this year), and on the new draft of "The Enemy and how I Helped to Fight it". But it's still wasn't a whole lot.

And finally: I finnally found a job! Positive income is good, I'm writing in Perl which is my favourite language, and I'm learning many new technologies.

Homepage Direction

Finally, a note about my homepage. I decided to take GoingWare's advice about "How to Crush Joel Spolsky Like a Bug" (which was also given to me in some form by a friend), and put almost everything I write on my homepage, and turn it into an even more attractive site for visitors. Lately, I moved it to a fast hosting service (which most people from abroad I asked, said works very well for them), instead of the rather slow hosting on eskimo.iglu.org.il. Plus, content was revamped , section-specific navigation menus were added; also added was more content as well placeholder pages for interesting resources with the site look, feel and flow.

Hopefully, this will cause the site to really take off, and bring me fame, fortune, and the respect and admiration of lots of foxy women. Seriously now, while in 25 May, 2005, the Google query for "shlomi fish" (with quotes) returned close to 38,000 hits, the number grew to almost 100,000 on the 1st of July. Now it's over 200,000. I hope that the new work on the site will cause me to have an even bigger net presence.

(I wanted to show how my homepage looked like at the beginning of my Technion studies, but seems like web.archive.org was blocked by robots.txt by the undergraduate students' server admin. :-()

2005-10-18

Joke - #svn in Search of the Holy Grail

The following took place at #svn (the Freenode Subversion channel), the other day:

   <rindolf>  sussman: don't say the BK-word...
     <clkao>  dude, no one mentioned bk until you did
   <rindolf>  clkao: <sussman> just like most of the decentralized SCMs, like
              arch, bitkeeper, etc.
   <rindolf>  "We are the knights who say "BitKeeper"."
 <danderson>  "We are NO LONGER the knights who say "BitKeeper". We are the
              knights who say "git git git cogito Linus!".
   <rindolf>  danderson: "Subversion!". "Bleh, that's one word that the knights
              who say "git git git cogito Linus!" cannot hear."
   <rindolf>  "What is your name?" "What is your quest?" "What is the
              asymptotic complexity of the Subversion delta algorithm."
   <rindolf>  "Which one? vdelta or xdelta?"
 <danderson>  what do you mean, xdelta or vdelta?
   <rindolf>  "I don't know!"
           *  rindolf falls into the chasm
 <danderson>  "How come you know so much about delta algorithms? - Well, you
              have to know these things when you're a commiter."

Joke #2 - Everybody's Free (to Ping Timeout)

Darien has written an insanely funny cross of "Everybody's Free (to Wear Sunscreen)" and the IRC world..

Essay - "When C is the Best? (Tool for the Job)"

I wrote an essay titled "When C is the Best? (Tool for the Job)". Eugenia Loli-Quero was kind enough to publicize it on OSNews.com where it sparked an active discussion. I also submitted it to Slashdot, but I didn't see it there yet. (maybe it was rejected). Two people sent me E-mails about the essay, and I replied back. :-)

There are some things that I'm still unhappy about this essay, but I decided to release it earlier than later.

Books Recommendations

I now have a list of my recommended non-fiction books on my homepage. They contain links to the book page on Amazon.com, with the associates program activated. Activating the Amazon associates program was not too hard, but registering a link to a product is a bit tedious and involves a lot of clicks. I wish there was a web service I could use to write a script that will do it for me. (If you know of such a thing, please enlighten me.)

For the record, I also placed a link to the online book, if such a version exists.

In the future, I'd like to complement this list with similar lists of recommended fiction books, movies and musical albums.

Perlmeme.org

Perlmeme.org is a new site for Perl beginners. See the use.perl.org announcement for more information. It also sparked an active discussion in perl-advocacy@perl.org. The site is primarily maintained by Simon Taylor and Becky Alcorn. I became involved with the site, as a proof-reader, back-end helper, and also some of my "Perl for Perl Newbies" material was incorporated there.

Please help spread the word, and if you are knowledgable about Perl, please join the developers' mailing list to monitor the discussions, give comments, and perhaps eventually even contribute something of your own.

2005-10-19

New Music CDs

Today I decided to buy two Music CDs: "Elephunk" by the Black Eyed Peas, and "Obscured by Clouds" of Pink Floyd. I wanted to buy "Elephunk" because I liked many of the tracks from it and wanted to get the rest, and I wantd to buy "Obscured by Clouds" because someone on IRC let me download the song "Childhood's End" from it, which I liked and because I also listened to it during the Perl hackathon at gaal's apartment, and liked what I heard.

So I took some money and went to the local shopping center. Try as I find, I could not find a music store there. I ended up asking my barber about it, and he said that there isn't one anymore. So I decided to go to Dyonon at Tel Aviv University instead. I bought a bottle of mineral water at McDonalds, and walked all the way there. When I got there I looked for the CDs, but none of them was available.

The Ramat Aviv Mall is close to Dyonon, so I walked there by foot, and looked for the Music CD. I went upstairs, and then asked directions from people at a café, which pointed me at the records store. There, with the help of a salesperson, I was able to find both CDs. Each one costed 60 NIS (about 12 USD) , which was much less than I expected to spend on them. I bought them both, and then walked all the way back home.

At home, I ripped Elephunk into 96 Kbps oggs using grip. It required some experimentation, but I was finally able to. I prefixed the filenames with the track number, so I can listen to them in order. Many of the songs there, which were previously unfamiliar to me are very nice, and I also found some new arrangements of the mp3's I do have. Highly recommended.

I didn't get to rip and listen to Pink Floyd's album yet, but I'm going to.

New BitKeeper Essay

I wrote a New BitKeeper Essay titled "The BitKeeper Ghost" over at the Better-SCM Site. It discusses the side-effects of BitKeeper and BitMover concerning the recent departure of Bryan O'Sullivan from the Mercurial development team.

Another New Essay

I translated to English the essay titled "The GPL, The BSD License and Being a Sucker". It aims to dispel the common belief, especially prevalent among Israelis, that people who write code under BSD license are "suckers" (or "Frayerim" in Hebrew) because they permit incorporating their work into proprietary software.

New Community for my Home-Site

Instead of manually including my home-site news on the HTML of my sites' front page, and later on the old news page, I decided to create community for it on LiveJournal, and just place the feed as new entries on my site. This will also allow people to comment on it, and for me to receive more feedback. At the moment, anyone can post there, but I need to approve the posts. Comments are unmoderated.

2005-10-22

New Essay: The Case for File Swapping

There's a new essay on my web-site titled "The Case for File Swapping". It explains why file swapping is ethical and moral, and why it should be legal, and also discusses some related arguments and refutes some common arguments against making file swapping legal. Comments and corrections are welcome.

Language Wars

publius_ovidius has written a great entry about Language Wars.

Diet

I've lost some weight lately. Right now, a pair of pants that used to barely fit me, now fits much more easily. What's my secret? First of all, I exercise quite a lot. I bike for over one hour everyday, and I also take one or more walks during the day. Aside from that, I'm taking Maimonides' advice and I'm eating according to the stomach and not according to the eyes. I.e: I stop eating once I feel that I'm full.

So far I've been waking up quite early and go to bed late, and yet feel very energetic and focused during the day. I feel great. Hopefully, this situation will last, but I wouldn't mind returning to my stay-in-bed-until-late-in-the-morning situation again.

Aside from that I'm still naturally refraining from consuming overly-sugary-foods, Caffeine and Alcohol, and of course don't smoke or do drugs. I'm talking to other people who claim they cannot function without their morning coffee or who drink a lot, and I must say that I don't have these problems, and yet am very productive. I recommend that anyone will quit doing all these aphrodites, as they have negative short-term and long-term effects.

Subversion News

Ben Collins-Sussman now has a blog and is starting to work for Google. He will be the third Subversion Developer to work there after Greg Stein, and Brian Fitzpatrick.

That put aside, I always knew Ben Collins-Sussman was Jewish, but now it turns out Karl Fogel, who used to work in the same office as he is, is also Jewish. I felt a bit embarrassed when I leared that.

Shell Readline Goodies

Check this post in Linux-IL about various shell tips and tricks that I collected by going over the Bash man page.

2005-10-31

Joke - GNU Visual Basic

The following joke about GNU Visual Basic was once published on Freshmeat.net, but has since been misplaced. A Freshmeat editor I contacted sent me the text of it (without the comments) and I've placed it on my site. Enjoy!

Movie Recommendation: "Eight Days a Week"

I don't watch Television regularly, but sometimes I see something that makes me watch it till the end. This time it was Eight Days a Week which I saw on the cables' "Hot Fun" channel, which is dedicated to comedy movies. This is a teen comedy sort of, about sex and love and stuff. It's very funny and entertaining. It stars Keri Russel and Joshua Schaefer, which strangely enough hasn't acted since, and there's little information about him on IMDB.

Updates to Perl for Perl Newbies

I went over the Perl for Perl Newbies series and updated it. What I've done so far is made the entire slides validate as XHTML 1.0 Strict, fixed many problems in the text (typos, spelling, grammatical or syntactical), and also fixed the wrong or misleading content. My understanding of Perl was not as good when I wrote the slides as it is today, and so I had to fix quite a lot of inaccuracies.

There are still some things that I want to change there, but as a general rule, everything is much better now.

New Release of Freecell Solver

When I went over the entire comments in the OSNews coverage of "When C is the Best", I read this comment. It mentioned two bugs in Freecell Solver, which I fixed by releasing Freecell Solver 2.8.11. I would have missed them if I didn't go over all the comments.

Apparently Mac OS X does not have a malloc.h header file. OS X never ceases to surprise me.

Joel's Back!

After a small lull, Joel Spolsky is back with a very nice article and some very insightful and amusing weblog entries. I hope this trend goes on.

Testing a Two-Domain Website

See this post I made to PerlMonks about how to test the local copy of my two domains' (www.shlomifish.org and vipe.technion.ac.il/~shlomif/) web-site on my local machine.

Configuring Xkb to have a Compose Key and Hebrew Keyboard

I wanted to have a compose key so I can have them Über-cool accénts. But naturally, I still needed the Hebrew keyboard. After playing a bit with Xkb, I got to the following configuration:

    Option "XkbModel" "pc105"
    Option "XkbLayout" "us,il"
    Option "XkbCompat" ""
    Option "XkbOptions" "compose:rwin,grp:switch,grp:alt_shift_toggle,grp_led:scroll"
    Option "XkbVariant" "lyx"

Énjoy!

2005-11-11

Music

Back when I bought my two recent CDs, I remembered seeing this collection of Shania Twain at Dyonon. Now, I've downloaded several songs of Shania from P2P networks, and listen to them a lot, so I eventually decided to give this collection a try too.

So a few days ago, after lunch, I walked to Dyonon, and looked for the CD. It took me some time to find it, but I was able to find it there. I bought it for 67.90 NIS (about 15 USD), and went home, where I ripped the CD. The CD did not disappoint me at all - it's very good. I found some really great new songs there.

An interesting anecdote is that I used to hate the song "Man! I Feel like a Woman." when it was featured on MTV, but now I love it. On the IRC, someone said it's impossible to like both Pink Floyd and Shania Twain, but I happen to like both.

On a different note, I also started listening to the mp3's we have of Sarah McLachlan, and like them a lot.

Test::Run

See this announcement in my use.perl.org journal about Test::Shlomif::Harness, my fork of Test::Harness, with many refactorings, revamps and improvements. I now renamed it Test::Run and placed it on CPAN.

Case for File Swapping

The Case for File Swapping was expanded with several new sections. Attempts to publicize it on Slashdot and Kuro5hin caused it to be rejected. There are still some things I can fix in the copy I send to Kuro5hin, and I can try submitting it to Slashdot again. And naturally there are many other places I can publicize it.

q[ender]'s First CPAN Module

q[ender] from CPAN has a CPAN account and has uploaded his first module. Congratulations and I hope more will follow.

Getting Money from my Web-site

Working on my web-site and other content that I make available online is quite time consuming and so I investigated ways to make money of it. At first I thought of adding a PayPal donate button. Eventually, my dad agreed to letting me use his international credit card for this and now I have a PayPal donate button on my site and plan to put it in the sites of some of my projects.

While I consulted some friends about PayPal, TDDPirate suggested that I add Google AdSense there. Since the Google AdSense ads are text and non-intrusive, I decided it would be a good idea, and so I registered at Google, received a reply and added them to all the pages of my site. So far I earned 63 cents, but it was only up for 2 days.

Homesite News

see this entry in the shlomif_hsite community for what's new on my site.

Firefox and the Location Bar

Since I'm using a Firefox theme with large buttons, there's hardly any space left for the location bar. Eventually, I decided to move it to a toolbar of its own. A little Toolbar Right Click -> Cutsomize... magic and that's it: lots and lots of space for the location.

svn status

I used to be relatively unconscious about not making sure "svn status" does not output anything when used on the top-most directory of the Subversion working copy. What "svn status" does is report the status of the various files and whether they are modified, were added to the working copy (but not the repository), or are unknown files. I had a lot of files that were marked unknown, and yesterday I went over them and added them or deleted them. Right now svn status prints nothing on $HOME/Svn. :-).

Xkb Lyx Correction

The Xkb configuration had a problem and should be:

Section "InputDevice"
    Identifier "Keyboard1"
    Driver "keyboard"
    Option "XkbModel" "pc105"
    Option "XkbLayout" "us,il"
    Option "XkbCompat" ""
    Option "XkbOptions" "compose:rwin,grp:switch,grp:alt_shift_toggle,grp_led:scroll"
    Option "XkbVariant" ",lyx"
EndSection

One comma in XkbVariant - a world of difference.

HTML::Widgets::NavMenu on CPAN

Someone reported he had problems installing HTML::Widgets::NavMenu from CPAN. I went to install it and failed as well. Turned out that the CPAN indexing thought that H-W-NM-0.8.0 was higher than H-W-NM-0.10.0 because the first digit after the 0 was higher. I removed it, but it still indexed it that way. After talking with the CPAN admins, I concluded that the best option would be to release HTML-Widgets-NavMenu 1.0000. This time, I have two digits for the feature-upgrade and two versions for bug-fixing releases.

Another person afterwards reported failure in installing it, but it turns out he was using a CPAN mirror that's out-of-date.

2006-01-06

Certification

Certified petdance (Andy Lester) as a Journeyer for his work on various Perl modules. (including Test::Harness, whose codebase is the basis for Test::Run).

Fixing the Mixer Restoration on Boot in Mandriva

For a very long time now, my Mandriva system did not restore the mixer settings on boot and instead kept it entirely muted. I did not know why and resorted to setting it manually times and again. Today, I decided to finally fix it.

With the help of some people on the IRC (Freenode's #mandriva channel), I found out that the script that is responsible for doing that is /usr/sbin/alsa.agent, which is called by udev. It contained the following code:

if [[ $ACTION == "add" ]]; then
    [[ $DEVPATH != /class/sound/controlC* ]] && exit
    count=$[ $(egrep '^alias sound-slot-' /etc/modprobe.conf|wc -l) -1 ]
    if [[ "$DEVPATH" = "/class/sound/controlC$count" ]]; then
        /usr/sbin/alsactl restore >/dev/null 2>&1 || /usr/bin/reset_sound &/dev/
null 2>&1
    fi

After inserting a few prints, I found out the problem was that count was 1 where $DEVPATH reaches only 0. The command egrep '^alias sound-slot-' /etc/modprobe.conf|wc -l returned 2, which meant there were two lines like that. Editing /etc/modprobe.conf made me realise that it had two almost identical sections one after the other. (don't know why). This broke the script and after removing the second section, it seemed to have fixed the script. All's well, that ends well.

New XMMS Skin

After a long time that I used the CordStalk WinAmp/XMMS skin, I switched to the Ocean Amp skin. I like it a lot.

WDG Validator

It was pretty straightforward to install the WDG validator packages on my Mandriva system. I only had to slightly tweak the Source RPM and then it compiled fine. Now I can validate entire sites using my localhost version of the validator, which I tweaked to be able to validate more than 100 files at once. I also want to write a bookmarklet to validate a page from Mozilla or Konqueror using it.

The Median Blog

It might be instructive to look at the latest blog posts page of LiveJournal to gain some insight on the median blog. I used to think some of the blogs I read were not particularly interesting, but I just read them because I knew and cared about these people. But most of the blogs in the LiveJournal latest posts page are much worse than any of them.

HTML Slidy

Beni Cherniavsky gave a presentation to the Israeli Pythoneers, which he rendered as S5. The presentation did not work well on Mozilla, and he ended up having to cancel the stylesheet. Times and times again. I don't think I recall an S5 presentation that worked correctly - they always cause problems.

Luckily there's an alternative - HTML Slidy. It's much less hyped or known than S5, but at least its demo presenetation works well. I'm looking forward to create presentations using it. I recently wrote several presentations using Spork which has an S5 backend, so it might be easy to convert it to generate HTML-Slidy instead.

OpenWengo

I decided to try Voice-over-IP with OpenWengo. After I downladed and installed the RPM, I ran it. It then asked me to register, and a link to click for the registration. The link did not work, no matter how many times I clicked it. I opted to build it from source instead, but the instructions said to checkout the root of the Subversion repository (which is considered a bad idea). This took a long time and as I discovered there were also many branches and tags withing there, and so I interrupted it. I could not find a source package on the site.

So I gave up. I realise it will take OpenWengo time to mature and stuff, and it's not ready for prime time yet, but I was still disappointed. They really should get their act together.

Lack of Makefile.PL and CPAN.pm

It seems that if a Makefile.PL is absent, then CPAN.pm will refuse to install the module. I discovered it when someone tried to install some of the Latemp CPAN modules using CPAN.pm and failed. I ended up copying a wrapper around Build.PL that I found in some other modules and re-releasing the modules.

Old Computer Experiences

I met someone in the Telux Welcome-to-Linux series. He said he had a problem getting Linux to run on an old computer which had a non-bootable CD drive, and his newer computer did not have a floppy drive. So he brought the computer to my house and together we set out to have it.

The first problem was that we discovered that I was out of blank floppy disks. So we went to the commercial centre near my house and bought some. Then we burned the CDs of three distributions he wanted to try (Puppy Linux, Damn Small Linux and another one) and tried them one by one. We were able to boot using some of them or from the hard disk, but they all got stuck sooner or later and could not install the Linux system. So we eventually gave up.

He wanted to install Linux there for the challenge, and was not out of money to buy a more modern computer.

First Donation to my PayPal Account

I received a donation to my PayPal account. It was under 1.00 USD, but it's a start.

Jason and the Argonauts in English and in Hebrew

ראיתי שבמספר מקומות שבהם יש כתוביות בסדרות באנגלית שמדובר בהם על יאסון והארגונאוטים, נכתב "ג'ייסון" במקום יאסון. השם היווני יאסון הוא "יאסון" ביוונית ובעברית. רק באנגלית מבטאים אותו ג'ייסון (בשל התעתיק שלו מלטינית). לכן, בעוד שמבטאים את השם "ג'ייסון" בקול של הסרט, יש לתרגם אותו ל-"יאסון" בכתוביות.

Google

I used to have the first hit on a Google search for "next presentation" up to a couple days ago. Now, it's only the second and third hits. Whatever.

Perl NEXT bug

I discovered and fixed a bug in the NEXT module, that is part of the core Perl distribution. It was not applied yet.

2006-01-11

Refactoring of the Telux' Lectures Manager

There was a feature I wanted to add to the Tel Aviv Linux Club lectures' manager. This made me remember that the code was a bit monolithic and non-modular and could use some refactoring, so I decided to refactor it.

The Telux lectures manager originally started as the lectures manager I intended to use in Haifux and which was then utilised for Telux. It was originally one monolithic script which reads its data from a Perl module. It was a relational database implemente using Perl data structures.

For refactoring it, I created a class out of the script, gradually converted everything to use the object instance instead, and extracted many methods. In the end, the code was in a much better shape.

Then I added the feature and did some data updates. This was relatively easy, not because of the refactoring but because I knew where to find the code. But the refactoring made the code much easier to modify into the future.

Firefox 1.5 RPM for Mandriva

A Firefox 1.5 RPM/SRPM was finally released for Mandriva. Eager to finally convert to the new Firefox version, I compiled the Firefox 1.5 SRPM. The compilation took an hour or two, and then I could install it.

I discovered a few problems with it:

  1. SVG Did not work. I consulted people on Moznet about it, and it turns out that in the source tarball, SVG is disabled by default and has to be enabled by specifying --enable-svg to ./configure.
  2. The Bookmarks were unavailable at the Firefox start.
  3. The Find in the Page Feature did not work

The two last problems were reported before me, and all of these problems were fixed in firefox-1.5-2mdk. I now have 2mdk installed, and running very nicely and could not detect any further problems with it. So I'm happy. Thanks to Frederic Crozat (the Mandriva Firefox maintainer) for his hard work of creating the SRPM.

2006-02-08

Mail::Webmail::Gmail

I've been using the CPAN Mail::Webmail::Gmail to clear up some of my gmail folders automatically. However, the module became broken at least since September. For a long time, I just let messages accumulate in gmail, but then decided that I should. I inspected libgmail but could not find a way to perform an operation on more than one message at once using it. It did work, though.

I decided to fix Mail::Webmail::Gmail. By using libgmail as a reference, I was able to to fix M::W::G, and submitted a patch to it. The patch involved over-riding a method of libwww-perl.

The author seems to be unresponsive as he hasn't fixed his module for a long time. As a result, I decided to request to be appointed a co-maintainer of this module so I can update it. I have yet to receive a reply on this.

LinkVisitor

Having upgraded to Firefox 1.5.x, many extensions stopped working. One of them was LinkVisitor. As a result, I bumped its maxVersion number to "1.5" and released a new version, which could be installed on Firefox 1.5. This was not enough for 1.5.0.1, as this required "1.5+" and so I updated it again.

Hebraic Proverbs in Wikiquote

I took a day or two adding some Hebraic Phrases to the (English) Wikiquote Hebraic Phrases page. I still have several quotes to add on my to do list.

Mandriva Bug and its Resolution

Mandriva 2006 had a long standing bug in which MandrivaUpdate did not display the package's "Reason for Update" after a while. A bug was filed for it in its bugzilla. Some time ago, I searched for it and confirmed it. Then, I decided to investigate it. I was succesful in my investigation, and also submitted a fix. Rafael Garcia-Suarez applied this fix, and said he uploaded an update for 2006.0. The update did not appear yet for some reason, as MandrivaUpdate did not upgrade urpmi.

Eskimo De-ezmlmisation

After installing Sympa on eskimo.iglu.org.il (The Israeli Group of Linux Users community server that I manage), I wanted to convert all mailing lists there from ezmlm to Sympa as a first step towards the conversion from qmail to postfix. I started by converting shlomif-beta-reviewers, and then the python mailing list. Afterwards, in a few concentrated days, I converted the rest of the mailing lists. Right now, eskimo is officially ezmlm-less.

KDE 3.5.x's akregator on KDE 3.4.x

Due to the fact that akregator (a feed reader for KDE) consumed a lot of memory on my computer, I consulted its mailing list about how to reduce it. I was told that the akregator that ships with KDE 3.5.x heavily improves in that.

Now the problem is that akregator now ships with KDE, and is no longer available seperately. So I compiled kdepim-3.5.1 and installed it under a prefix under my home directory. This went flawlessly except for a directory that wasn't set right due to ./configure's funkiness, and was fixed using the following scriptlet:

find . -name Makefile |
    xargs perl -pli -e \
    '$_="kde_widgetdir = \${libdir}/kde3/plugins/designer"
        if /^kde_widgetdir = /'

Then I tried to run akregator and failed. The mailing list again was of help, and I eventually was able to run it. The next day, I tried to run it again, and again failed. But then I realised I should have run "kbuildsycoca". To sum up, the following script runs akregator for me:

#!/bin/bash
export KDEDIRS=$HOME/apps/gui/KDE/3.5.1/
kbuildsycoca
exec $HOME/apps/gui/KDE/3.5.1/bin/akregator

The new akregator indeed consumes much less memory, and so I'm happy.

Eskimo's Jobs Database

eskimo.iglu.org.il also has a jobs database that can be used to show wanted jobs records as well as submit ones. Recently, I spent some time refactoring it. Things I did were:

  1. Converted all the generated web pages to generate using Template Toolkit.
  2. Extracted many methods.
  3. Converted the add form handling to a utility class, that handles all the logic.
  4. Other cleanups that I felt are needed.

Now the code is in better shape. I received some feedback about it with some suggestions, and still have a some older feedback about it.

You can see the results in the Subversion repository.

2006-03-01

The Muhhammad Cartoons

James Carr has an insightful entry about the recent Muhhammad Cartoons contreversy on his weblog. It's not too long and well worth a read.

Gringotts

After I wrote and released the initial versions of my gringotts-shlomif patch, the original author released version 1.2.9pre1 of gringotts that incorporated my patch and other fixes. However, it then disappeared from the original location where he put it. A few weeks ago, I sent a message to the author and the Debian maintainer about where I can find it, and the Debian maintainer responded that it's available on the Debian servers, which I downloaded it from.

I discovered and fixed two other bugs there (including a nasty UI data corruption bug), and released a new version of the patch that should be applied to 1.2.9pre1.

Other Hacktivity

I've been working on and off on an SCons build file for Quad-Pres, my presentations generator. I've made some progress, but I still have quite a lot to do. SCons would be replacing the GNU Autotools, which are considerably worse.

I've added some missing flags to Test::Run's runprove utility, which is the equivalent of Test::Harness' prove. Now I came to a conclusion that I'd like to encapsulate the functionality of the script into a module so I can better test it, and possibly re-use the code.

Finally, I fixed a segfault bug in Freecell Solver, caused due to a premature end of input. It's fixed in version 2.8.12, which was released today.

Reading

After a long time of reading it, I finally finished Higher Order Perl by Mark Jason Dominus. It's a nice and enlightening book, but it took me a lot of time to read. I wrote a review of it on the Israeli Perl Mongers site.

I also finished reading two Discworld novels: The Light Fantastic which is the second book in the series and a sequel to the first, and "Hogfather". They are both very recommended, especially Hogfather which kept me very captivated.

Three O'Reilly books which we ordered from Amazon.com arrived in the mail. Thus, I started reading "Postfix - The Definitive Guide". It's not bad, I suppose, but I guess I'll have to refer to it again, once I have to set up a new Postfix installation. (which I intend to do for eskimo.iglu.org.il).

OSDC::Israel::2006

I attended OSDC::Israel::2006 during its three days (Sunday to Tuesday). It was very nice and all, but since it's getting rather late, I'll have to postpone telling more about it to a future entry. Stay tuned!

2006-03-03

OSDC::Israel::2006

As promised here is my report and feedback from the OSDC::Israel::2006 conference, as posted to the osdc-discuss mailing list.

2006-04-05

Default Shell Editor

When I started working on UNIX, I worked with the joe editor on consoles almost consistently, because I could not get used to vi and found Emacs too frustrating. My X editor was initially NEdit, but then I switched to FTE, and later on to gvim, which I started using on the Technion's Windows NT computer farm. (ironically).

For a long time I used gvim on X-Windows, but was still using joe on terminals. However, lately, I started getting used to using the console "vim", and found it quite convenient. A few days ago, I decided to finally jump into the cold water, and set the default shell editor to "vim" instead of "joe". (by setting the EDITOR and VISUAL environment variables in the .bashrc file).

So far, It's working fine. I already got used to typing "i" right after a Subversion commit command (when the editor is invoked), and writing "<ESC>:w<ENTER>" ; "<ESC>:q<ENTER>" is practically second nature to me.

There are still some quirks like the pasting that often indents stuff, but I'm still pretty happy without joe as my default editor. I still type "joe foo.txt" instinicively, but hopefully this will pass as well.

Gringotts

Gringotts-shlomif has accumulated some new fixes since the last release: a fix for all the compiler warnings I could find, a patch from wwp that does a few things, and fixed a minor data corruption problem caused by a previous fix.

I noticed that I cannot run the system's global gringotts program which is SUID root on my Mandriva system. So I took the sources, and reduced them to the bare minimum that still exhibits the problem and then reported it as a bug in the Mandriva bug tracker. As it turns out it is caused by a low setting of "ulimit -l".

Homepage work

I did some work on my homesite. More information can be found in this entry in my homesite's blog.

New Essay

I have written and published a new essay titled "Create a Great Personal Home Site". Feel free to read it and comment.

Wikipeding

I added many Hebrew phrases to the Hebraic Proverbs page on Wikiquote. Right now, it has 38 proverbs, and it had 2 when I started working on it. Since I started working on it, I was the sole contributor, so we really could use some other contributors. So if you know Hebrew, please consider contributing to it. It's free, it's fun, and it's self-fullfilling!

I also added an entry to the English Wikipedia about the Bourekas dish, which is popular in Israel, along with a photo we took of some Bourekases we bought.

Entries from use.perl.org

New entries in my use.perl.org journal:

  1. Three New Short Presentations
  2. Mail-Webmail-Gmail
  3. Maintenance of Error.pm and Error.pm - the conclusion.
  4. And finally "Perl for Newbies" Series in the Tel Aviv Linux Club which was also posted on the front page.

I have a few more topics for entries in mind, so stay tuned.

2006-04-26

U.S. Hyper-DMCA Act

There's an Hyper-DMCA Law brewing up in the U.S.. Also see coverage in opendotdot, in Linux Weekly News, and more in Slashdot. U.S. citizens should better contact their representatives about this and let them know how badly they object to it.

opendotdotdot also reports on a new proposed expansion to Trademarks' Law that will illegalise many of their fair use rights. Also something worth an immediate action.

List of Israeli Open Source Projects

A while ago, I posted a call for suggestions for projects to put in the list of Israeli Open-Source projects, which is maintained on the Hackers-IL wiki. Many people responded and either mentioned projects as comments to the posts, or added them to the wiki themselves. As a result, the list is now more encompassing and better reflects the past and present projects of Israelis.

Randal L. Schwartz' Podcast Interview about his Legal Entanglement

Randal L. Schwartz reports on a Security Catalyst interview with him about his legal entanglement with the State of Oregon, in regards to the time he ran a password cracker when he worked in Intel. This interview makes an enjoyable, informative and insightful hearing and is highly recommended.

IRC

I now have channel operator status (chanops) on FreeNode's #perl channel. Wheee!. So if I'm logged in and there's trouble there don't hesitate to contact me for all your chanops needs. (My nick is "rindolf").

2006-06-01

It's been slightly over a month since I blogged here. Part of the reason was that I did not feel I had much to blog about. Well, I hope this entry will compensate for it.

New Job

First for some good personal news: I have a new job. I'm working for Oleh Inc. doing PHP 5 work. The people there are friendly and supportive (and I know one from the Israeli Perl Mongers meetings), it's a 40-hours/week job, and the pay is good. The only problem is that I live in Tel Aviv and the office is in Jerusalem. Thus, I'm working from home most days, and telecommute to Jerusalem two days a week or so. The telecommuting is very time consuming, but I seem to manage it.

So far I was able to complete my first assigned task, after overcoming some technical difficulties I encountered in the process. Now I was given a new task with brand new problems.

Firefox in IceWM

I had a strange problem when trying to run Firefox on top of IceWM which I'm using occasionally instead of KDE which is my usual desktop. What happened was that Firefox de-registered all of its extensions, and otherwise caused a lot of havoc.

So one day I decided to investigate it. I tried running Firefox from the command line and it ran fine. Then I checked what the Firefox in the IceWM toolbar is. Turns out it was an old version that it pointed to a very old version that I installed back at the time, and it kept running it instead of the RPM-based (and more up-to-date) version. So I fixed the toolbar, and now Firefox runs fine. Problem Existed Between Keyboard And Chair.

Fedora Core 5

At work I've had to install and use the Linux distribution Fedora Core 5. It's been a while since I seriously used and adminned a Red Hat→Fedora distro, as I've been using Mandriva at home.

I must say that using Fedora has turned out to be a pleasant experience. The system is stable, fast (at least on an Opteron with 2 GB of RAM that is running in 32-bit mode, which is (granted) a pretty fast computer), and functional. I had to configure and install a few things manually, like mp3-support or the kernel module for reading the NTFS partition. But these were easily doable. (The Unofficial Fedora FAQ was a lot of help, but Google points most of the relevant queries to it anyway). yum seems like a very useful utility, and I grew to like it a lot.

SELinux did not allow Apache to listen to a different port, which I wanted to, and so I set it to Permissive mode. Right now, my main annoyance is that XMMS does not display the length of the mp3's in its queue until they are played, as it does in Mandriva for example.

While I heard some very bad horror stories from early versions of Fedora, but now things seem to have matured, and the distribution to become much more usable.

PHP Propel's fromArray() gotcha

At work, I'm working with Symfony and Propel. Propel is a PHP-based Object-Relational Mapping. One problem that I encountered was the fact its fromArray() function that initialises a record from a PHP dictionary, accepts an optional second argument, that determines how the keys in the dictionary are interpreted. If you want the normal SQL field names (which I did) you need to set it to TYPE_FIELDNAME.

Wikipeding

I helped giving the final touches to the Hebrew Translation of the Wikimania Registration Form, which a friend translated. What I did was apply proper formatting, and fix some grammar and phrasing problems. I originally had problems finding the MediaWiki markup for the page, but someone instructed me how to do it, which was very helpful.

In Search of a Better Media Player

I've been using XMMS as my media player since forever. It was the first player I used on Linux, and I've still been using it up to a few weeks ago. But having heard all the buzz of the development of other newer players, I decided that maybe there was something better.

The first player I tried was Beep Media Player X. In order to get the most recent version up and running, I had to upgrade gstreamer, gtk+ and some GNOME-support libraries, and their C++ versions. But I got it running. It looks much like XMMS, but with the playlist having larger fonts (which is a bit annoying). Looking for some help with some problems I encountered with it, I headed to FreeNode's #bmpx channel, and asked some questions, and received some help. ( I helped with fixing a drag-and-drop bug there.). I should note that the equaliser and balance controls of BMPx were disabled due to gstreamer limitations.

I was using it for some time, when I heard of the amaroK 1.4.0 release. Since I thought there may be more to life than what BMPx could offer, I decided to try it out. Version 1.3.1 which shipped with my system crashed a lot so I decided to install 1.4.0 from Source RPM. I took the Mandriva 1.4.0-rc Source RPM and adapted it to 1.4.0. It took some trial and error, but I got it working.

I set amaroK to use the xine plugin, which allows playing MOD files as well as most other common formats. amaroK 1.4.0 is an excellent program. It is very convenient, and has a lot of functions for navigating your music collection, keeping statistics. It can also fetch album covers from Amazon.com, or display the artists' pages from Wikipedia, which makes one's experience much richer. I'm lovin' it.

If you're using Linux and haven't tried amaroK yet, you should. It truly is an exceptionally good program.

A Usable Open Source BCD Implementation

Someone on FreeNode's #perl came and ask a variant of a very shopworn problem. He said he tried to sum up decimal numbers from a database, and got a number close to 100.0 but not quite. I started explaining about the fact that the computer represents floating-point numbers as binary, and thus the conversion to decimal is not exact. Then, I suggested he'd look for a BCD (Binary Coded Decimal) numbers module on CPAN. But guess what? There isn't any.

A search.cpan.org query for BCD returns junk. Furthermore, IBM has a list of implementations on its BCD page. There are a few impelementations for Java, one for Python, one for Eiffel, and decNumber which is IBM's proprietary reference implementation, which has some GPLed port in the works as part of gcc. Still, even the GPL is not very usable.

What I'd like to see is an open-source (at least LGPL; BSD-style license preferable) implementation of BCD numbers, both in ANSI C and in Pure Perl. So if you're looking for an interesting project to take upon yourself, this would be a good choice.

2006-06-09

PHP's "? :" Operator

After staring at a bug at work for a while, and not understanding what I did wrong, I discovered the following: as opposed to Perl or C, PHP's condition operator "?:" is left-associative instead of right associative.

This means that the following expression:

$a ? $b : $c ? $d : $e

is equivalent in PHP to:

($a ? $b : $c) ? $d : $e

instead of the Perl/C (and more useful) version:

$a ? $b : ($c ? $d : $e)

If you want the latter semantics, you need to add parenthesis. Here's some more information about it.

In Search of the Best PHP Development Environment

After I started working on PHP for work, I wondered if there's a better development environment for it than Vim which I'm using for almost anything.

The first thing I looked at was Quanta Plus. Its HTML mode is pretty nifty, with ability to auto-complete tags, and to automatically put ending tags. Its PHP mode is also quite nice. However, it seems that a split view of the window is unavailable. (Which is strange, because the so-called Kate - KDE's Advanced Text Editor, does.) Since I often want to look at old code in the file or in a different one when writing new code, this has ruled it out for me.

Next I looked at PHPEclipse. This time I was able to find out how to have a split view there (in Eclipse). One problem I had with it was that it felt sluggish - the scrolling was slow, and typing characters into the edit window was slow. I was using the Fedora Core 5 Eclipse packages, on an Athlon 64 machine with 2 GB of RAM (in 32-bit mode), which is a high-end machine, but it still felt sluggish.

Another problem I had was that it messed my tabs/spaces indentation (but I suppose that's configurable somewhere), and that it kept asking to save one of the files under a different name when I switched to its tab. It also had something else that disturbed me but I can't quite recall what.

So it seems that gvim, even though not ideal is the best of what I tried, and so I'm sticking with it. If you know of another alternative, please let me know and I'll try it.

2006-06-18

Australian DMCA-like Law

There's a Digital Millenium Copyright Act (DMCA)-like law brewing in Australia. Follow the links for the details. Australian citizens and residents should consult the link for what they can do to prevent it from being enacted.

Web Meta Language on Cygwin

After some amount of work on my Windows XP machine, I was able to get Web Meta Language to build on cygwin. I incorporated the changes into the Subversion version. There isn't an official release with the changes yet, but I hope to make one soon.

I did an application test of it by building my home site from its source code. The results were identical to the one generated by the Linux version. Another note is that WML on cygwin seems to be roughly as fast as on Linux, but it's possible that is because of the faster specs of our XP machine. Still, running ./configure on cygwin is much slower than on my Linux box.

Refactoring the CSS Files

Being on the web-desing swing, I decided to try to refactor the CSS files of some of my sites. To do that I used the Template Toolkit-based TTML which is integrated into the Subversion trunk version of Latemp, which is my CMS. I refactored the CSS files of my home site, the Better SCM site, and the Freecell Solver home site. (I have more sites, but I can't do everything at once.)

Preprocessing the CSSes with a powerful preprocessor works great. I was able to eliminate a lot of duplicate code, and discovered some redundant CSS definitions which I removed.

Now my CSS files are in much better shape.

CSS Zen Garden-based Latemp Theme

Yet more Latemp-related news is the fact that I splitted a branch to create a theme for it based on the CSS Zen Garden HTML. This enables using a vanilla CSS Zen Garden CSS stylesheet to style an entire Latemp-based website.

Currently, it works relatively well for some of the CSS Zen Garden stylesheets, and looks strange on others. Perhaps to truly look well, one will have to tweak the CSS files.

In the future, I also want to have a way to use WordPress themes as well, and perhaps the themes of other CMSes. But I guess that with the TTML, CSS Zen Garden and other features added, (and the availability of Web Meta Language on cygwin), I'd like to release a new version of Latemp before that will happen.

Other Blog Entries

Mashoor Al Dubayan blogs about 10 Reasons for Companies to Consider Web Standards. He mentions the poor state (standards-and-compatibility-wise) of most Saudi Arabian sites. This situation is also prevalent in Israel. (See my comment.

On my use.perl.org journal you can find an entry about setting up bugzilla for work. It contains some computer technicalities.

2006-07-13

Discussions of Interest

This thread in Linux-IL discusses tcsh vs. bash vs. sh (various Unix shells) for learning how to program in shell. We discuss why tcsh is bad, why Bourne shell or Bash should be taught instead, and why pure Bourne shell may be less suitable than Bash/ksh/zsh. We also touch on the login shell ergo scripting shell issue.

This thread on discussions@hamakor.org.il (in Hebrew) touches on what is the suitable introducory language. I've been meaning to write an essay (in English) about it for some time, and given what I and other people said in the thread, I guess I'll have less work now.

A thread I started in advocacy@perl.org about a Central Wiki for Perl. Eventually we settled on using the perl.net.au MediaWiki for that, at least until a Socialtext-based wiki will be set up. I should note that merlyn told me on IRC that he suggested the idea back in August 2005. Oh well.

Finally, if you want to read an entirely pointless discussion about software licenses for Perl code on perl-qa, be my guest. It was started by a message that I posted there, gained a lot of (negative) momentum by the criticism of a few people, and I daresay I didn't handle the criticism properly. Memo to self: when this happens next time - don't respond and let the discussion fade away.

The other threads on perl-qa (as of today) are a much more civil and interesting.

That's all folks! For now, that is. I have a lot of other stuff to blog about, but I also have many other things I'd like to do.

2006-07-16

It's always the easiest thing to blame's one problems on someone else. Politicians and other people are notorious for repeatedly doing that. And as usual, Israelis tend to blame "the Arabs" for the problems that they encounter today. But is it true?

This entry is going to be very flamebait, but I have to say it. I admit that I also said to myself "Damn, Stupid Hizbullah" when the situation in Southern Lebanon and Northern Israel started, but as any good Neo-Tech person, I quickly returned to my sense, and started looking at my own backyard.

So here are the points to consider:

  1. Nasarallah and friends are Doing What they're doing because they are Evil. The source of Evil is generally referred to as "Mysticism" in Neo-Tech literature. A Mystic has a shrinking self-esteem and keeps wanting to hurt others to temporarily relieve his self-esteem. See the Neo-Tech orientation for more details.

    A benevolent person generally does what he does in order to increase his or her healthy self-esteem. This self-esteem can be cognitively manifested in "fame", "money", "love", "getting work done", "peer repute" etc. All of these are generally positive values, that help a person later on in life, and just makes him feel good about himself, others and the worlds.

    Nasarallah and friends (but also many known and unknown Israelis) are causing more harm, because they need to reach new "heights" of negative achievements. The Neo-Tech link explains it better, but this was an executive summary. Just take it for granted.

    Evil does exist, and evil people too, as any person who has rudimentaly studied 20th century history knows. Evil people are capable of doing anything as bad as any evil that Tolkien could come with. However, as opposed to the formidable and often awe-inspiring Tolkienian evil, real-world evil people are generally dishounorable, lack most self-control, blame other people's for their problems, are incompetent, and generally invoke a lot of disgust.

    Note: a benevolent person can become a mystic and a mystic, given enough time and determination can return to be a good, non-harmful person.

  2. The Israeli-Arab Conflict will not be Resolved Until Israel stops having Constitutional Racism - Israel has discrimination against non-Jews directly in its constitution. From uneven immigration and citizenship laws, to lack of civil marriages, divorces and adoptions, to uneven investment between Arabic and Jewish settlements. While this does not justify irrational hatred from the Arabs, it certainly is a very good cause for it. And it is very bad.

    Despite popular belief, a private person is allowed to be racist or even (peacefully) discriminatory. This is because discrimination does not involve force, threat of force, or fraud, which are the only unethical actions. However, a government being a public monopoly must not be discriminatory to groups according to some of their properties.

    We can often hear people saying that if Israel did not have consitutional racism, it would not remain a Jewish state for much longer, or that the Palestinians will take over. This is wrong. There are already a lot of Jews in Israel, and they aren't going to magically disappear. Furthermore, I'd rather have a liberal, free-as-in-freedom, prosperous country than a discriminatory Jewish country. Moreover, if anyone causes any trouble (whether Jewish or non-Jewish) he can be exiled or otherwise ostracised.

    Finally, in Israel today there are many immigrants who are neither Jewish nor Arabs: Romanian, Philippinos, Chinese, Thais. They are hard working and passionate. Surely most of them have a precedence for getting a citizenship over the random trouble-causing Arab nationalist.

    Israeli does not belong to the Jews. No country can prevent a lawful person from immigrating to it, living there and working there. Otherwise it's exercising force in trying to get the person to leave. It's high time Israel officially becomes the Land of the Israeli and Israeli-wannabes (which it is in practice) instead of "the Land of the Jews".

This is the ultimate cause of most of the troubles Israel been having, and a lot of the criticism applied to it from the outside. I don't expect anti-Israeli terror activities to immediately stop after such a reform will be made, but after it, there won't be any real-life basis for feelings of hatred towards Israelis, and thus they won't survive for long.

For more information refer to my "A Solution to the Israeli-Palestinian Conflict", as well as my story "The Enemy and How I Helped to Fight it". The latter was written with a lot of inspiration from the situation at the Israeli-Lebanese border (back in 1996), but has a universal message, and it is very possible many Israelis who read it will feel uncomfortable about the ideas behind it. (I've started heavily revamping it recently, but am still in the process, and don't have something final).

If you're reading it and is a Lebanese, be aware that my advice about not blaming other people for your own problems applies to you too. The best way to prevent the continuation of the fighting is to give an ultimatum to any Hizbullah activist you know to either leave it or otherwise be outcasted by you an other. Something like "Either you leave this wretched organisation or don't talk to me again." If the Hizbullah people will lose all their friends this way, they'll quickly stop this insanity.

Like I said, I know this post was flamebait, but I had to say it because I'm tired of people or countries blaming other entities for their own problems. Feel free to reply to this post, but please be civil, and avoid Logical Fallacies.

Cheers!

2006-07-25

Patronage and Self-Patronage

I hope you did not feel too bad about my previous post to this journal, which was of somewhat political nature. So here's a more technical-philosophical post which is in essence an essay.

Continuing with the thread in Perl-IL that I started, about the shortage of P-Languages (and FOSS in general) programmers in Israel, and the fact that employers have become more picky in hiring them, and my "Thoughts about Whether to Become Independant" threads in Perl-IL and in Hackers-IL, I'd like to go one step further. (Read the entire threads - they contain many important insights).

During the Reneissance (and possibly previously in the middle ages or before) it was customary for nobles and royals to become patrons of artists and scholars - sponsor their food and housing and in exchange become better known for the creations of their sponsors. Now here I propose that this idea may now, well into the information age, such a paradigm may resurface, or already resurfaced in a way.

What I'm talking about is giving patronage to open source hackers: programmers, essayists/article writers/bloggers, artists, translators, QA people - all falling under the umbrella of people who hack. This patronage can be given by "rich people": companies, wealthy entrepreneurs, a collective donation of sponsorship, or other sources like that. In turn, the developer can do what he normally does, while possibly crediting his benefactors. (Depending on the terms of benefactors).

Now let's take me as an example. Being a 21st-century Homo Sapiens, I require some basic things such as food, housing, clothing, electricity and good hardware, software and Internet resources. Without these things I won't be able to produce anything of value. Now, what I like to do the most, and what I feel like I'm the best at is hacking on various digital creations on my free time. Here's a tentative list of what I've done so far:

  1. Initiate and work on some Free and Open Source Projects. While often my creations ended up as nothing more than vapourware and plannignware, and many are just curiosities, some of them turned out to be among the leading projects in their niche. A lot of these are Perl CPAN Modules.

  2. Contributed to some open-source projects that I did not initiate. These include some substantial contributions to large-scale FOSS projects, but also some medium or small-scale projects that I adopted, and sometimes even became the leading force behind their further development.

  3. Articles, Essays and Presentations - who can have enough of those? I've got lots of ideas for these things, and too little time to write everything. A lot of such writings ended up as entries on my weblogs.

  4. Web-sites. Can't have enough of these either. From my personal site to others such as the Better SCM Site or the Perl Beginners' Site. Some of these are in the form of contributions to wikis.

  5. Last, but not least humorous stories, bits and aphorisms. Creative writing was perhaps my first serious non-work-related creative outlet, and I'm still proud of the stuff I've been creating over the years.

The licenses for all of them are very liberal. Original software is under a BSD-style licence, articles and presentations are usually under the Public Domain or CC-Attribution (CC-by), and the large-scale stories are under the Creative Commons Attribution-ShareAlike licence.

I have a long weekend ahead of me due to Tish'ah Be'Av and one thing I'm planning to do is blogging. The first thing I'd like to blog about is my hardware wishlist.

First is memory. At the moment I have 512 MB, but with KDE, two Apache's, SpamAssassin, akregator, Amarok, and Firefox, it is no longer enough. So I'd like to upgrade it to 2 GB (or 2.something GB, witht the old memory units). A friend of mine is going to drive me to a hardware store in downtown Tel Aviv, and we're going to buy them there then. My board supports up to 4 GB of memory.

Next on my list is a flat screen. My screen at the moment is a 17"" MAG screen, that occupies too much space and plus has a large frame, which makes the image smaller. I'd like a nice 19" flat screen. This things don't cost too much, and at least I could put more stuff on my desktop without straining my eyes.

Another thing I'd like is a new hard disk. At the moment, I have two 80 GB hard disks, both of them quite full. With the new disk we can put all the largish video and audio files we have. I still don't know whether I'm going to get a SATA disk or an external USB disk.

Finally - the video card. At the moment, I have an Hang-vidia card, which I run without the 3-D drivers (so at least my computer will be stable). I'd like a card with some free-as-in-GPL 3-D drivers. I know that Intel cards have just that, but I'd like to see what will happen with the AMD and ATI merger, and whether it will cause the ATI proprietary drivers to be open-sourced too. In the meantime - no 3-D games for me on my Linux machine, but I still mostly only play PySol and some random puzzle games.

Oh and if you're going to tell me that the Nvidia drivers version 6666 or whatever works for you, and that I should use it - forget it. I have better things to do than to play with different versions of a huge and quirky binary blob. I want it free-as-in-speech and problem-free!

(For the record, I am making use of some high-quality binary-only software on my Linux machine (much less on my family's Windows' machine). But I think that binary kernel drivers are Evil, and do not wish to use them. Plus, I never depend on such software.)

Due to the fact I ran into this Mandriva bug, X-Windows stopped working. Thus, I first tried working on the virtual consoles, which was very little fun, and then decided to work on my Kubuntu partition. I did not enjoy the exile too much: Kubuntu is not bad, but I like Mandriva better and all my life is on the Mandriva hard disk.

While on Kubuntu I chatted on the IRC, and also worked on a DocBook/XML-based file. Eventually, I found a workaround on the bug report, and after I applied it everything worked on my Mandriva. Now I'm back to Mandriva and am happy again.

A few weeks ago, I've been to Freenode's #perl, talking to merlyn and other guys, when we got to discuss the Biblical "Tower of Babel Myth". As it turned out, the commonly perceived interpretation was not the one most scholars find as more sensible, which is the one we ended up being taught at Junior High School.

What most people think is something like that:

The people spoke to each other in the same language, concentrated in one place, and decided to build a tower high enough so they can reach God. God, a small dwarf who lived in the sky, was afraid of the efforts of these people, because he feared they'll reach him. So he casted an 8th level Spell of Language Fragmentation, caused these people to speak in different tongues, and without being able to understand each other, they ended up spreading across the Earth. God was relieved and returned to his dwarfish deeds, as dwarfs do.

Doesn't seem too sensible does it? Well, most scholars believe that the saying "one language and one speech." was actually a methaphor for all these people having exactly the same opinion. And when everyone have the same opinion, the Bible contemplated that people end up doing non-productive things, such as building tall buildings.

What God ended up doing was cause them to have a difference of opinions and also have various arguments (while still speaking the same language). This caused them to spread across the land.

Obviously, the original story with the different language, is still a possible valid interpretation of the Hebrew text, but it still seems very silly to me. Some parts of the Bible use picturesque tongue to describe various high-cognition concepts, whereas in modern speech we would use a lot of advanced philosophical and cognitive concepts.

So I went with Ofer to buy more memory on Monday. As it turned out I was a bit distracted and for the first time he had to park his car and wait for me a little. We drove to the store, and bought the memory units there - 2 of 1 GB. I asked for a receipt and got it. Then when I said my name, someone overheard me, and it turned out he knew me from the Israeli FOSS Internet, and from Haifux. We chatted a bit and then parted.

During the evening, I tried to install the memory modules myself, but it didn't work at first, so my father helped me and we were successful. 2.5 GB RAM in total, excluding the 1 GB swap, out of 4 GB, which is the board's maximal amount of RAM. Now, everything feels more snappy - it takes less than a minute to start a new konsole window or a gvim window, and I can probably run some Java applications without making my system completely unresponsive.

On a slightly different note, I went to the records' store in the Ramat Aviv Mall, and bought the CD "Explosive - the best of bond". It's pretty good.

As I noted in a comment to a comment by an Anonymous poster:

Dear Mr. Anonymous,

I don't know who you are, but let me inform you that following mulix' lead I will delete such anonymous comments posted to my blog, that were not posted by a valid LiveJournal username or signed with a real name, email, homepage, weblog, or email that I can recognise.

From my experience with linmagazine.co.il the so-called anonymous posters tend to make comments that are annoying, defamatory, and redundant. On Slashdot, they call such people as you "Anonymous Cowards", and for a good reason.

So next time, either identify yourself, or don't comment at all.

You have been warned.

So people from now on, either identify yourself by logging in in or by signing your name at the bottom of the message, or else I may delete such comments based on my discretion.

So, I was trying to find out why my X11 compose key (which allows one to enter them über-cool accénts and ümlauts) was working as normal in Gtk+-based, and not in KDE or normal X ones. I spent a few hours on that including consulting with some people on the IRC.

As it turns out some compose-key variations work only in Gtk+. For example, <Compose>-e-' gives an "é" in gtk, and does nothing in KDE. Whereas, <Compose>-'-e generates the same character in both Gtk+ and non-Gtk+ apps.

Since I've only tried to use the first form, I could not generate anything. I spent a few hours on this mis-behaviour today. I've become frustrated, but now I'm kind of relieved.

BTW, I returned from a very successful August Penguin 5 conference, so watch this space for some reviews and impressions.

Well, I've been talking with a certain Canadian friend on the IRC. He said he's been pro-Israeli until the tension in the North started. After Lebanon was devastated he concluded that "Israel was bad" and that the Hizbullah were therefore noble freedom-fighters.

I realise it's human nature to assume that if someone is doing something bad, then the one who opposes him is noble. But reality is often more complicated than that. The purpose of this entry is not to protect Israel, but rather to bring some facts about Hizbullah that will prove they are anything but noble, and certainly not freedom fighters.

  1. The Hizbullah operate out of civilian residences. Thus, they realise the Israeli retaliation will harm civilians. If they cared about the well-being of the Lebanese civilians, they would have isolated themselves from them as much as possible.
  2. The Hizbullah started the war.
  3. The Hizbullah shoot misslies at Haifa, and at other cities and towns well within the territorial Israel. Many of these missilies contain small metal balls that are meant to spread around and harm people.
  4. They identify themselves as Muslims. Islam is a religion, and everything that is a religion or identifies itself as such is harmful and destructive.
  5. The Hizbullah do not fight against the Syrian occupation of Lebanon. If they are indeed freedom fighters, why aren't they doing exactly that?
  6. The Hizbullah are controlled by Iran (which have been supporting a lot of terrorist activities against Israeli and Western targets), and are acting under the supervision of Syria (which has been hosting many terrorists).
  7. The Hizbullah are one of the most popular charities in the Isalmic world. Many Muslims suffer from hunger, mal-nutrition or sub-standard conditions, and yet the Hizbullah still receives a lot of donations.
  8. The Hizbullah kidnapped several Israeli soldiers. They did not let the Red Cross visit them, the whereabouts of some of them are unknown, and three of them were returned dead..

I'll let you draw your own conclusions. For more insights about the Hizbullah and similar issues consult my story "The Enemy and How I Helped to Fight it".

With all the fuss about the recent proposal for a DMCA-like anti-file-sharing pro-DRM law (most of the links in Hebrew, see This blog entry in English about it), I have given some time to update my essay "The Case for File Swapping".

It now has a second revision, with many improvements.

And this time whoever catches an error, gets two virtual cookies. (And a credit). Cheers!

Yesterday (Saturday, 19-August-2006) was a very productive day for me.

During the morning, I was able to fix the "Website Meta Language" (WML) site. This gave me enough time to package wml-2.0.11 and announce it on Freshmeat and on my use.perl.org weblog.

A little after midday, Sagiv dropped by my house, and we both downloaded Joomla! and played with it. Despite a few glitches that were easily resolved, we were able to achieve everything we've tried and we were very impressed. The only fly in the ointment was the fact that the stable version does not support UTF-8 yet, and as such all the Hebrew characters we entered were automagically converted to Unicode SGML entities. Sagiv also ate lunch at our house, and while they were eating he and my mother exchanged some cooking tips.

I also started working on Test::Count and was able to get release 0.01 on CPAN. Test::Count is a module to extract meta-comments like # TEST:$num_iters=5 and # TEST*$num_iters*3 out of a test script and update the test counter, so one can always make sure he has an accurate count of the tests.

After all that, I became a bit hungover (which implied I wasn't very productive), but eventually found something good to do with my time: learn XSLT (from the tutorials at w3schools and zvon.org), and start working on an XML grammar for home-site syndication of various products (such as books, CDs, movies, etc.). At the moment, I only have a work-in-progress DTD as well as several XML files as test cases for it. So I'm in a lame but hopeful condition.

Well, enough blogging for now. Either gvim or my bed (or both) await me…

So I tried to validate the entire presentations section of my homesite. The validator, which I've installed on my home computer and tweaked to accept a very large number of pages, was not happy: many of the pages did not validate.

So I decided to waste a day and a half validating everything. I encountered some of my old HTML and some of it was not a happy sight. Now, however, everything under /lecture/ validates. I learned a few things in the process:

  1. I had to override a method in Spork so it will validate. Afterwards the output was not perfect either, but HTML tidy fixed it.
  2. PerlPoint required a patch to emit perfect HTML 4.0.
  3. It is much faster in the long run, to rsync the homepage from the remote machine back to the local workstation, set up an alias for it their, and validate that. The reason this is the only thing that works is because various resources that are found on the site are uploaded from other places on the hard disk.

In the process, I made sure Quad-Pres can accept configuration options that are pre-processed by Template Toolkit. Among else, it allowed me to embed an environment variable for my remote SSH target. Now I feel like working on Quad-Pres more.

As promised, there's a new stable version of Quad-Pres - 0.12.0 with many improvements. This is the first new release since 2003. Otherwise, I also released Latemp 0.4.0 (also see the announcement on the site). Now it seems like I'm on a roll.

Next on my agenda is trying to find a good Look&Feel for the Welcome-to-Linux site and ,with a lower priority, for Perl-Begin.

Some people complained about the Hebrew display in the IGLU wiki. I was told this was caused by a buggy CSS. Looking at the Hebrew wikipedia <head> element, I saw that it contained a link to a certain "rtl.css" file. But this link wasn't present in the <head> element of my installation of MediaWiki. Such a file was present in the directory of the skin we were using.

So the problem was how to enable the linking to the secondary stylesheet using MediaWiki. It took some hours of research but here's the solution. In LocalSettings.php, put the following:

$wgHooks['SkinTemplateSetupPageCss'][] = 'myRtlCss';

function myRtlCss(&$css)
{
   global $wgScriptPath;
   $url = "$wgScriptPath/skins/monobook/rtl.css";
   $css = <<<EOF
/*<![CDATA[*/@import "$url";/*]]>*/
EOF
    ;
   return true;
}

Enjoy!

Well, I didn't announce it here, or in any official place, but starting from August, I resigned from my workplace in order to become a freelancer. Here's my resignation email with my reasoning:

Hi $CTO!

Cutting to the chase, I'd like to say that I've decided to resign from Oleh. It's not a rash decision - I've been thinking about it for a while. I am willing to work an extra month and other such commitments, as part of my contract, depending on your call. I'm sorry if I disappointed you, but when I was looking for a job 4 months ago, I still though I'd like to work in a permanent, but now I realise that it's not my cup of tea.

Note that my working conditions at Oleh had nothing to do with my decision. Oleh is a wonderful place to work in: the pay is good, the hours are reasonable, the people are nice and intelligent, and the atmopshere is very good. I'd recommend anyone to work there. However, right now I'd like to become a consultant, a contractor, a trainer, a sponsored FOSS developer, a professional blogger and writer and a web site owner - probably a mixture of all of them to some extent.

For my reasoning see the following links, and discussions:

  1. "Perceived Shortage of P-Languages Programmers":
    http://perl.org.il/pipermail/perl/2006-June/thread.html#7942
  2. "Thoughts about Whether to become a Freelancer":
    http://perl.org.il/pipermail/perl/2006-July/thread.html#8007
    http://groups.yahoo.com/group/hackers-il/message/4694
  3. "Patronge and Self-Patronage" - http://shlomif.livejournal.com/11004.html.

If you wish, Oleh can still employ me as a contractor or consultant, but I'd prefer to do either:

  1. Refactoring of existing code.
  2. Writing automated tests.
  3. Dealing with the infrastructure (Linux, CVS, Subversion, Bugzilla, etc.)

Not really web programming. (Except for very small tasks). My hourly rate is negotiable, assuming you would like to hire me.

Best regards,

Shlomi Fish

In the past week, I started giving private lessons in Perl. More about it will soon be posted to my use.perl.org Journal.

A long time ago I decided that in order to make the Math-Ventures part of my homesite more attractive, I'd like to convert all the mathematical formulae that had been written using ASCII Art (%-)) into MathML - an XML grammar for writing mathematics. Knowing that MathML was extremely verbose, I decided to try converting to HTML+MathML from LaTeX using TeX4ht. However, when viewed using Firefox (which has a built-in MathML support), the test page rendered all the formulae as plain text, which made me believe it was a bug in TeX4ht.

I left it at that for a long time, but a few days ago decided to give it another try. Again displaying it did not render it nicely. However, copy and pasting the notation into the MathML Tester on the Mozilla homepage, yielded perfect results. After a little thought, my woman (OK - programmer) intuition told me that maybe Mozilla displayed it badly due to the fact the file ended in the .html extension and as thus was treated with the content-type of text/html.

Changing the extension to .xhtml (with a content type of application/xhtml+xml), solved the problem and the formulae were redisplayed. So I finished converting the page from its ASCII-art mess into TeX and rendered it into XHTML+MathML. I needed to change the <!DOCTYPE to XHTML+MathML which involved some Latemp voodoo. (As it turned out, I didn't do it properly the first time, and as a result the page did not validate).

I also had to install and configure the MathML fonts, or otherwise got weird artifacts and missing symbols in the formulas.

Then I discovered that when served as .xhtml, the Google AdSense ads don't get displayed. I found a workaround here, and after a lot of experimenting got it to work. Then I needed to modify the <object> tag CSS to the following:

.ads_side, .ads_top_wide
{
    overflow: hidden;
}
.ads_side
{
    width:120px;
    height:600px;
}
.ads_top_wide
{
    width:500px;
    height:70px;
}

Otherwise, I got annoying scrollbars and clipped content at all the same reason. Many thanks to someone I talked with on the IRC who helped a lot.

So then the Google Ads worked. Afterwards, I decided to convert a diagram to SVG to make it l33ter. I had to write a Perl script and experiment a bit with affine transformations. The SVG works in Opera and Firefox 1.5.0.x, but doesn't work in Konqueror from some reason. The MathML works only in Firefox, because Opera and Konqueror don't support it. Here's the final result.

The way I see it, when more and more sites like mine will integrate cutting-edge technologies, then more people will have them on their browsers, and web designers will have an easier life. Similarly my Music Recommendations Page now uses display: table and display: table-cell which works well in Firefox, Konqueror and Opera but is broken in MSIE 6. This will provide further motivation for people to stop using MSIE.

Together, we can make the revolution happen! Well, in any case, cheers.

Carnal Reason reports in his blog that the Pakistani-Candian blogger Isaac Schrödinger faces a threat of being deported back to Pakistan. He is an ex-Muslim who voiced some anti-Islamic opinions, and there's a death penalty to blasphemers in Pakistan.

He now accepts donations to support his legal battle and can be further helped by linking to his blog entry and making him more well-known. Per Carnal Reason's request, I also include the links to the other blogs linking there:

Here's a wget tip - if you want to ignore the robots.txt file, you can add the option --execute="robots=0". This will ignore the robots.txt file. I found it by reading the code after finding a site which very smartly bans all robots except for the Googlebot.

That put aside the recent Mandriva upgrade put me in a state where the packages of rpm, urpmi, newest glibc and others were not installed. Also the DSA key of "mandriva devel" got disabled. I fixed all that.

Afterwards, when I was using KDE, with kernel 2.6.18-rc6, my machine got hanged up completely. Without even being able to answer pings, and without reporting anything meaningful to the syslog. Right now, I'm compiling kernel 2.6.18-rc7-git1 in order to investigate whether this will work better. But still this thing shouldn't happen and is probably a kernel problem. (And for the record - I'm not using any proprietary drivers.)

Turned out my problems were only getting started. After I upgraded the kernel, I got more of the problems and eventually had to reboot and could not boot it again. With a combination of booting into a very old Knoppix, a relatively new Games Knoppix DVD, and my Kubuntu partition - I was able to investigate.

To keep a long story short, I probably have a hard disk problem on my Mandriva partition. rpm does not work properly and several of my core binary utilities (like ip, ifconfig, and even init got corrupt.).

At the moment I'm using Kubuntu to backup the Mandriva's partition important things to one of our WinXP machine which has a lot of free hard disk space. It didn't help that my sister shut down that computer before she went to sleep and interrupted my "tar -cjvf" operation, but a few quick command line scripts now allow me to backup just what is remaining to be backed up.

Writing from his Kubntu exile - Shlomi Fish.

Well, I stayed up all night during the night before last to backup. In the morning afterwards and during the rest of the day, I still really wasn't tired. One good thing that came out of it was that I covered several full chapters of "Perl Best Practices" (which I can now highly recommend).

During the day, I tried to get my Kubuntu system to work with my existing data which seems to be completely OK. I eventually upgraded to Ubuntu Dapper which is the most recent release. Even that is still missing recent software that exists in my Mandriva 2007 system, like Vim 7.0, or Apache 2.2.x, but it's still better.

At first I tried creating an account on my Kubuntu partition with the same UID as "shlomi" on Mandriva, but a different home directory location (/mnt/mandrake/home/shlomi). This worked well for some things, but eventually I opted for a better solution: create a symbolic link for /home/shlomi to point to the same directory in the Mandriva partition, and have the same username. This seems to work very well.

I had to install a lot of software to start hacking again, and as a result my 5.2GB Kubuntu partition is 90% full. I can install software using ./configure --prefix="", but I'd really like to enlarge the partition. Fortunately, due to backups and backup induced cleanups my mandriva partition now has 32 GB free space and I can comfortably reduce it. (Assuming the XFS tools can handle the bad blocks properly.).

I already updated my home site with two new ideas, and fixed some bugs I discovered there. I also discovered a very obscure Apache 2.0.x bug, which only Konqueror was affected from, and unsuccesfully tried to compile my homesite using perl-5.9.4. I'll try again later, but this may involve squashing some CPAN bugs.

Meanwhile, we bought a new hard disk (a 160 GB SATA one) to use as a replacement for the Linux one. This time I'll have one partition for home, and one or more partitions for the roots of the different distributions. I already burned a CD of Ehad 2006, where Ehad is the Israeli-oriented remastering of Mandriva, and am going to install it.

In case, I'm not going to write in this blog until Rosh Hashanah (which takes place this Friday) then Shanah Tovah. I expect that I'll again spend part of Yom Kippur summarising the previous year as reflected from my blogs.

Finally, today when I went to a walk, I took our good camera with me, and took some pictures. Expect them at a Flickr near you soonishly.

So, to continue the story, I got around to installing the SATA disk yesterday. At first I disconnected the IDE hard disks to prevent damage. Then I connected the SATA disk using the instructions I found on the wikipedia - it's much easier than an IDE disk. Then I tried to boot the Mandriva Ehad 2006 installation CD, which I prepared in advance.

What happened? Nothing. The computer did not recognise the CD (but it recognised the SATA disk - yay!). However, a poweroff and poweron solved this and the installation proceeded. I selected all the usual options. There were a few glitches during the installation. At one point, it complained about a bad file or something like that. Then, the bootloader installation completely confused it. To resolve this, I rebooted the CD and selected the restore bootloader option. It refused to install LILO, but installing GRUB was successful, and I was able to boot the system.

This time I made sure to put /home under a separate partition, to later facilitate re-installation, or dual-booting. The Internet worked out of the box, and I was able to get Samba working. What I did afterwards was (in a rough chronological order):

  1. Re-enabled the IDE disks. This just involved connecting them again.
  2. Recreated my home directory from my backup archives, which I backed up on a Windows machine.
  3. Upgraded to Mandriva 2007.
  4. Configured /etc to my liking.
  5. Installed and configured Apache 2.2.x, rsync, slocate, SpamAssassin, several Perl modules, and other packages that were absent in the default Ehad installation.
  6. Tried to build kernel 2.6.18. However, booting it using grub caused a blank screen to appear, and before that make install complained about a missing module, which I couldn't find. I resorted to installing kernel "2.6.17.13-mm-desktop-1mdvsmp", which is the Mandriva Multimedia kernel (up to 4 GB) with SMP support.
  7. Moved some files from the old hard disk to their rightful place.

Now, I'm on the SATA disk. df reads:

Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1              40G  2.7G   37G   7% /
/dev/sda2              83G   38G   46G  46% /home
/dev/hdb3             5.2G  4.4G  815M  85% /mnt/kubuntu
/dev/hdb1              69G   38G   31G  56% /mnt/old-mandriva
/dev/hda1              26G   23G  3.7G  86% /mnt/win_c
/dev/hda5              49G   49G  377M 100% /mnt/win_d

The SATA disk seems very fast. It took me under a minute to unpack the latest Linux kernel. So now I'm now hopefully back on track. In the meantime I was able to do some Test-Run hacking, as well as catching up with my email and RSS feeds.

Finally, here's a joke I told to my dad: "The bad thing hardware is that it sometimes work and sometimes doesn't. The good thing about software is that it's consistent: it alwaays does not work, and always does not work in exactly the same way".

A Happy New Jewish Year to everyone who's reading this entry. See the date for Rosh Hashanah, and read more about it.

A certain Jewish American friend had told me that on Rosh Hashanah they did not have a feast like Israelis do, but rather just went to the synagogue to pray. However, an Observant American Jew told me that they do have a feast, because a feast is an inseparable part of any Jewish "Yom Tov" (I.e: "good day"). So even if you're not observant, make sure to eat to your heart's content.

Shanah Tovah! שנה טובה.

So yesterday's evening and today, I went over the past year entries (since last Yom Kippur) of my blogs and trying to present some conclusions.

Well this year, I wrote one relatively large patch for the GIMP but it wasn't accepted yet because of some issues the developers had with its philosophy. I also made many releases to CPAN, contributed several patches to other people's CPAN modules, and worked on Latemp, Website Meta Language itself, and other projects of mine. Except for all that, there was the usual slew of bugs I found and reported (sometimes with a testcase or fix). All in all, a productive year.

This year, I worked on several new essays and articles, which are placed or linked on my homesite.

I bought several music CDs and liked most tracks out of all of them. I've also spent a lot of time (too much) talking on the IRC, and some of the conversation excerpts were funny enough to end up as fortune cookies.

On the Wiki-front, I spent some time populating the English wikiquote's "Hebraic Proverbs" page and also helped translate the English Wikipedia entries about Perl and BASIC to Hebrew. I also contributed to other smaller wikis.

On the negative side, I did get involve in several flamatory discussions. One of them involved the licensing of Test::Run, which some people claimed was "incompatible" with Perl. However, I believe their effect was considerably not as bad as the ones in the previous years.

On the employment front, I quit a job this year, and joined another one only to quit later because I'm trying to become a freelancer. I already gave several private lessons in Perl and I hope there will be other employment prospects.

This year, I finally almost completely abandoned the joe editor. Now it's vim all the way down for me, even in console.

This year, I finally learned XSLT, and started learning Smalltalk (which I kind-of gave up on), J (which I didn't get very far with, either) and Common Lisp.

Finally, I helped organise several open-source activities in Israel this year: the Welcome to Linux series, OSDC::Israel::2006 (albeit with this I played a minor part), and August Penguin. I started the August Penguin organisations, but eventually quit as the hear organiser because I did not want to be responsible for monetary matters. In my partaway message, I said I'm willing to take care of anything except that, but the guy who took the baton, did not keep me and other people involved too much in that, and instead took it all on himself.

There were the usual slew of good and bad global news this year, the most important for us was probably the 2006 Israel-Lebanon Crisis, but I won't cover it here.

All in all, a productive year for me. I hope I'll continue this trend the next year, and I hope my attempt to become a freelancer will be successful. And I hope there won't be anything like the 2006 Lebanon Crisis.

First of all, let me inform that you can email me again at my home address, as it was fixed after I reported it to my hostmaster.

Lately, I've been learning some new languages. I've been reading Practical Common Lisp in order to better learn Common Lisp from the grounds' up. So far, the book taught me some new stuff, but not too much.

I eventually decided to test my knowledge and experiment a bit and so wrote a simple text analyser using Common Lisp. It was the most serious CL program I wrote, and I wrote it in gvim, with a lot of help from Google and from the good people at Freenode's #lisp.

Aside from that, following the discussion on merlyn's blog, I decided to give Squeak Smalltalk another chance. So far I followed the O'Reilly Tutorial (which has a few bugs), and found Squeak an interesting, if unorthodox experience.

On the more Hacktive side, I've been uploading several modules to CPAN, including some new versions of the Test::Run modules, and kwalitee improvements for my CPAN distributions.

All in a week's work!