Older blog entries for shlomif (starting at number 74)

31 Aug 2002 (updated 31 Aug 2002 at 07:09 UTC) »

Univ Project

After I returned home, I set out to make sure the HTML, Zavitan (that's the name of the seminars management system) generates validates against XHTML Strict. In order to access all the pages, I had to tweak the permissions system to accept anonymous users into the admin pages. I found many deviations from the standard, and fixed them in the Perl code.

Yesterday, marks the first time I used the "continue" construct in Perl. I needed because I had a foreach loop and I still wanted a next call to do something at the end.

One problem I encountered was to align several separate forms, which according to the standard could not be nested inside a table (only inside its cells). Eventually, I did it with several tables and cells, each with strict width specifications. (partially thanks to what Eliran G. suggested)

Freecell Solver

I did some work on the range solver. It can now resume an interrupted session, and also has a saner command line handling and is more user-friendly. Now I have to write a man page for it.


Yesterday, I rode my bicycle for the first time in a long time. It turned out the back tire was not flat, and was just missing air. I left at about 17:45 and was back by 19:00. This there were not too many people at the climb to the "Aretz" Museum gate and I was able to ride the whole thing.

It feels so good to exercise again.


I was on a roll yesterday and was able to finish translating the chapter "When is a Rose not a Rose" from CatB. That makes four chapters that have been translated so far. I also translated the first two paragraphs of another chapter, but then stopped.

I announced this milestone to the CatB translation effort "mailing list" I set up, and to Linux-IL and Hackers-IL. So far, it did not end up at much more material being translated, but since I have enough which I have not already allocated, I don't complain.

29 Aug 2002 (updated 29 Aug 2002 at 13:02 UTC) »

Univ Project

Roy and I worked on the project yesterday and today. Now the search is functional and the daily and weekly views are working. Now, the only major component that is not implemented is the monthly view. (and we still have to work on the mailing list logic)

We'll work on it more next week, but I did not set up a time with Roy yet.

Freecell Solver

I fixed the bug in --read-from-file, and also made sure that the game constraints (freecells number, stacks number, rules, etc) are applied to all the instances in the sequence. I also fixed another bug or two. Now I'm working on the parallel solver to make it a bit nicer and well documented.

I made a post to the mailing list about how to implement the command line presets. As usual, I did not receive any reply, so I'll just go with the scheme I have in mind. Using the computers in the lab, I timed some 2 Freecell Scans, and then built a meta-search based on them. It's still does not run very well. Possibly because I don't have enough scans yet, and possibly because FCS does not handle 2 freecell games well.

More Vim Action

Vim for me used to have an annoying bug. Whenever I pressed Ctrl+V to paste some text, it pasted it starting at the beginning of the line instead of at the position of the cursor. It took me some time to discover, but I eventually realized that :help bugs displays where to send bug reports, and I sent a bug report there.

Bram Moolenaar replied to me, and after a few E-mails, he was able to pinpoint it. He sent me a patch and told me he incorporated it into the 6.1.x development branch. So, now thanks to him, I'm happy.

Welcome-to-Linux Basic Use Lecture

I worked a bit on the Basic Use lecture for the "Welcome to Linux" series. I added icons, and fixed or enhanced some things after some feedback from the list. Someone suggested to translate it into Hebrew, so I told him he can translate it on his own, if that is what he desires, and sent him the sources.

Konqueror Service Menus

As I sat next to the computer today, I realized that I can set up a Konqueror service menu, so there will be an "Enqueue in XMMS" action for MP3s. I set it up and it works like a charm. (context menu button + E works too). For more information read this.

Univ Project

Roy and I made good progress yesterday too. Today, however, Roy cannot sit with me because his co-worker has a wedding. That is after he had a funeral and an obituary, and will also have a wedding next week. Sounds like the movie "Four Weddings and a Funeral" to me. ;-)

In any case, I'll probably sit on it today myself and continue the work. I hope Roy can sit on it tomorrow, but I cannot remember what he said about tomorrow. Hmppf.

Freecell Solver

I implemented the --reset flag (which sets the API and the command line utility to its initial state) and a --read-from-file flag, which enables reading a configuration form a file. --read-from-flag works with nesting files (i.e: one --read-from-flag inside another) but at the moment has a nasty bug when the board is specified in the input file. I'll have to work on it a bit today.

Haifux Meeting

In the meeting the Haifuxers decided on pulling a Welcome-to-Linux session not unlike a year ago, with a small variation on the first lecture, and a "zeroth" lecture dedicated to Matam students.

I am personally disappointed because what I wanted was a a few lectures dedicated to demonstrating cool stuff in Linux and that's it, and I'm pretty sure we'll lose audience the decided way, too. At least the sessions would be twice a week, so we won't lose too much time for the regular club meetings.

I volunteered to work on the lecture of the Basic Shell and KDE use, again. The first thing on the agenda is to add Icons and Screenshots. I hope that this time we would have the option of demonstrating it on KDE 2.x/3.x instead of on KDE 1.x as in last year, which made it quite a joke, because the two versions are so different.


Not too much progress since I integrated the third chapter of CatB. Maybe today I'll have some time to work on it.


I finished translating the first two chapters of CatB. Then, someone sent me the translation of the third chapter. It was not of the highest quality, but copying it manually and fixing it as I go was still much faster than translating it on my own. Good thing I have a 19" display here at the Technion.

Univ Project

Roy and I made good progress yesterday. We have most of the seminars logic working as we want it, except for associating and disassociating seminars, which we only barely started. (right now I think that what we started doing was not a very good UI design and should be done otherwise).

I scheduled with Roy today at 12:30. We'll have to finish close to 18:30, because there's a club meeting today about the "Welcome to Linux" series.

Freecell Solver

Freecell Solver now cleans up an instance in a sequence before moving to the next. I also added support for extended freecell numbers in the standard notation. I wanted to add some implied flags, but it turned out not too many of them made much sense, so I think I ended up adding one. Oh well.

24 Aug 2002 (updated 26 Aug 2002 at 06:11 UTC) »

Freeecll Solver

Adrian told me the new command line chopper worked for him, but he did not thoroughly test it yet, and will be too busy to do so for a while. A bit afterwards, I started working on the 2.7.x branch. The first thing I did was fix some of the documentation which was a bit out of date. Then I made sure the lists of *.c modules and *.h headers could be maintainted across all makefiles from one central place.

Then I took on something a bit more difficult - trying to run one scan after the other has finished in case the other one said the board could not be solved. At first I became a little frustrated because I did not know how to implement so I'll maintain backwards-compatibility and it will integrate with the other features. I left it alone, slept on it and today I was able to get it to work. I still have one thing to do left (make sure I clean up the scan's resources after it finishes), but it is working nicely.

Another thing I did was tag the latest semi-stable development release with the CVS tag "LATEST_DEVEL" and have the web-site construction routine read it from the CVS and upload it to vipe and the mirror site automatically. Now all I have to do is "cvs tag -F LATEST_DEVEL" periodically to put another release.

Update: - Apparently the more correct command line is "cvs tag -F -R LATEST_DEVEL". It could be the same without the -R if -l is not the default.

Univ Project

Roy and I managed to get the subjects editing to work and some of the seminars addition and editing. Not too bad a progress, either. I called Roy today and we scheduled to meet tomorrow at 14:00.


I'm making slow progress on translating CatB. I posted an announcement on Linux-IL and Hackers-IL and three people voluntereed to translate part of it. I gave them a chapter each, but did not hear from them since. I'll see what comes out of it.

Freecell Solver

Adrian returned from his vacation and reported that the command line chopper did not work for him. After a few tests I discovered it could not handle a situation where a \\\n combination was followed by whitespace. I fixed it, and sent it to him, but have yet to hear from him.

I posted a message on Linux-IL, asking how I should render nested navigation bar menus in HTML, in a correct way. I received an answer that it should be done using <ul> and <li> combinations. By playing around with CSS a bit, I was able to build such functionality into the Freecell Solver site, instead of the &nbsp; hack that existed there until now. What I did see trying to look for the answer was that many sites still used  's, whitespaces or images that contained them. That's not good.

I also took some time to write the TODO list for the next version. It's in the CVS in case you want to take a look.

Haifux Meeting

Was very nice. Orr gave an entertaining lecture and we ate and drank a lot. After the lecture we placed the leftovers (quite a lot of them) in Orr's room, and took the Balloons. I was tired of carrying them, so I stopped in the Com-Net Lab and blew them using a tack.

Univ Project

I managed to get the E-mail verification to work yesterday, and today Roy and I set for some hours in the early afternoon, and implemented editing the permissions as well as a trigger to add relevant rows to them when a user is added.

We made good progress, and Roy said something about meeting me tomorrow at 11:00 or so. I'll call him and ask, just in case.


I managed to get User-Mode-Linux to behave nicely with some help from mulix who answered a post I made to the User-Mode-Linux mailing list. Tom's Boot-Root is very nice and boots really fast. My only problem with it is that it uses old version of libc and the ld-linux libraries, and so I had to compile them into my test program statically.

In any case, it turns out my previous approach to making the lock FCFS was wrong. Matthew Wilcox, the current maintainer of the lock gave me instructions on how to do it. I had to fix the code a bit, but eventually it worked beautifully and it's a very small patch.

I set up a page for it and it seems like it is the end of this exploit. (except for trying to post it on lkml and seeing if it improves the performance of programs).

Freecell Solver

I spent some time doing some work on the site. I changed the active page in the navigation bar to be bolded and not hyperlinked. I also changed the text in the main page a bit. Do you think I should keep only the most or two most recent news items on the front page? Currently it scrolls down quite a bit.

I did some work on the command line chopper. Now it handles backslashes at the end of the line correctly and groks pound-sign comments. I sent it to Adrian, who replied and informed me that he is out for a family vacation, and will only take a look at it later. So I'll have to wait a little before I see if it works for him.


I released version 0.6.0 an hour ago or so. Not much changes since the 0.5.x tree (except for documenting the plank puzzles), but still a new major version number.

WML Lecture

I finished most of what I wanted to demonstrate and am now looking for interesting APIs to demonstrate. So far I found the Table of Contents one and the grid one which is a more convenient <table> abstractor.

I'll probably post an announcement for it on the Haifux mailing list, and see what other things people would like me to show.

"Joel on Software" Translation

I finished UI Design 2. A recent thread in Linux-IL asked if someone translated "The Cathedral and the Bazaar" yet to Hebrew. I might translate it next instead of one of Joel's articles.

Mozilla 1.1 Beta for Linux

It's much better than Mozilla 1.0.0 - that's for sure. At least as far as the Hebrew composer is concerned. I did discover a bug which I reported to the developers and received a lot of replies to. Whenever I type some text in underline and then end the underline and type a comma, it crashes. Still, I'm very pleased with it.

FCFS R/W Lock for the Linux Kernel

Shhh! Don't tell anyone, but I'm working on making sure flock and fcntl are first-come first-served. With the help of the current maintainer I looked at the code, and from what I understood, the problem was not that the lock prefers readers over writers, but rather that it was last-come first-served.

I.e: it uses a stack instead of a queue to keep track of the pending processes. Thus, if a reader takes hold of the queue after all the pending writers, than most probably the lock would be dominated by readers.

A previous attempt at fixing it failed. And now I am trying to do it more gradually, while using User-mode-linux (of course!) and the Tom's Boot Root image.

Joel on Software Translation

Fixed some bugs in "Five Worlds" and "Things you must never do, part I" (thanks to the time spent by the gracious Hackers-IL people to review it). Now I'm in the middle of translating "UI Design for Programmers - 2" and hopefully learned some things from the feedback I received from the two previous installments.

One good thing about this translation is that I am able to replenish my Hebrew skills, which have become a bit rusty lately.

Translating "Joel on Software" Articles

I received a translation of one article of Joel to Hebrew to copy edit, which I did. Encouraged by this, I set out to translate Things you should never do, part I, a famous (possibly in-famous) article in which he claims that it is not a good idea to completely re-write from scratch an entire codebase. I placed it on my site and posted an announcement on Hackers-IL, and received some feedback. I had problems reading some of the feedback due to Hebrew issues, but now I have at least two useful commentaries.

I then set out to translate Five World, posted an announcement on Hackers-IL and this time was more specific with the format in which the review should be sent. I received one commentary so far, but did not look at it yet.

I noticed that the Mozilla Composer of Mozilla 1.1 Beta for Windows was much more stable than the Mozilla 1.0.0 for Linux. Maybe they fixed some bugs in the process.

List of Israeli Projects

I started composing a list of Israeli-Oriented Projects. I received some useful comments (and in the case of one distinguished member of the list whom I very much respect - flames :-(). It's in version 0.0.3 now, and I'll probably have to convert it to some database format.

Note: Installed Mozilla 1.1 Beta for Linux now: I'll see how it is on par with the Windows version as far as editing Hebrew documents is concerned.

65 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!