Older blog entries for shlomif (starting at number 77)

Freecell Solver

Freecell Solver 2.7.19 is now the release candidate for 2.8.0, and the only major thing left to do is get the Debian and the Win32 building right. I worked on the help screens (--help-options, --help-summary, etc) and documented the new flags.


Yesterday I was able to finish my ride in 53 minutes. Usually it takes an hour and 15 minutes or so. Of course, I put a lot of effort into making the ride as quick as possible.


It all started out when I realized I can no longer compile the Perl SRPMS of Mandrake Cooker. This placed me into an upgrade frenzy of trying to remedy the situation. Eventually, it turned out that I upgrading Perl to 5.8.0 solved the problem, but with it I was left with a lot of broken dependencies.

I eventually compiled from the SRPM rpm itself, perl, many perl modules (and I still have to compile others), urpmi and friends, curl, harddrake and related HW-tools, Vim, Perl/Gtk, openldap, Apache and friends, OpenSSL and mod_ssl and SDL. SDL involved hugely tempering with ALSA, which refused to be built out of the box.

Now I have a mostly functional system, whose only visible problem is the fact that I cannot seem to run DrakConf. And now I can install Perl SRPMS from Cooker. But, so far I spent two days on this mess. Geeze...

Univ Project

Roy could not sit with me Sunday to Tuesday, and believing that Wednesday alone is not worth the trip to Haifa, we agreed that we will not sit down this week. Then I remembered that we also sit part of Thursday, and tried to schedule for Wednesday. But Roy already informed his workplace that he will work there.

I worked on it a bit alone, and I was able to add a navigation bar to the week view, and to start coding the month view.

Freecell Solver

Presets, ahoy! Freecell Solver can now be "themed" using pre-defined configurations. And now instead of this brain-damage you can simply say fc-solve -l cool-jives.

I added a few presets to the default installation of the program, so I can refer to them in the help pages, and to make it nice on the users.


I eventually received the translation of "How Many Eyeballs Tame Complexity" and am in the midst of integrating it. But even more surprisngly, I have received a complete translation of CatB to Hebrew which its author did not publish (or inform too many people about its existence). Hmmpf... after all the work I did.


My sister, my father and I went to see "The Importance of Being Ernest" on Sunday and it was very nice. I was able to bike yesterday and today, so I'm happy. I registered to another course ("Tools for Analysis of Computer Systems" or something like this). Life is good.

Univ Project

I was finally able to make sure that all the pages of Zavitan are validated. Then, I restricted the admin pages for certified users, again. (oops! forgot to put it on SSL-only site - I am fixing it as I speak)


The second registration for the winter semester starts today at 17:45. A quick calculation showed that I need one extra course if I wish to graduate after the next semester, so I'll guess I'll have to add one.

I could not understand how to operate the delayed registration feature, so I'll have to be present at home at that time.

Freecell Solver

I wrote a man page for the range solver, and also made sure the man pages are rendered with the title "fc-solve" instead of "<standard input>". (which made the generation from pod a bit uglier).

Automake caused me a few troubles when I tried to build the Makefile.in in a sub-directory. But now it works fine, and I don't know what I did to improve the situation. Oh well, who is John Galt?


I finished translating the "Fetchmail Grows Up" chapter of CatB, which gives a total of five finished chapters. Someone notified me he (or she - I can't determine it by his or her name) finished translating "How Many Eyeballs Tame Complexity" but I did not receive the text yet.


Lately, with the air conditioning, I wake up at around 3-4 AM and then goes back to sleep, only to wake up at 9 AM. I really wish I could wake up earlier, so I would have time to bike in the morning.

I was able to bike yesterday's afternoon. Today, I have the courses registration and my father, my sister Michal, and I are going to a movie in the evening. Thus, I'm not going to have time to bike.

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.

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