Older blog entries for shlomif (starting at number 79)

Solving - Linux meets Neo-Tech (well at least its teaser that says enough to figure out what to do next)

Let's face it, the organizational model of the Linux world (which includes the BSDs, Solaris, and many other things not entirely related to the Linux operating system), eats democracy without leaving leftovers. I'm not going to wait for something better to come along, because I'm sure Linux is fail-proof.

I support Laissez-Faire Capitalism as much as the next guy (which may not be you), but without applying CatB principles and trying to work bottom-up as well as top-down, we'll only amount to whining. And if there's something good about me is that I despise solutions that are not pro-active. (no! we should not start a separate mailing list. All these messages about the foyodyodine hack of ours are on topic.)

Solving is Neo-Tech Linux style. With SUGs and clubs and lectures, and material being prepared, posted, organized and sorted. Why Neo-Tech? If you can find me something that even comes close to being as perfect as Neo-Tech, I'll be in debted to you.

Those that don't know Neo-Tech are bound to re-think its most elementary concepts. And while making a rational logical connection is good, borrowing it from somewhere else, where you are given so many of them for free, is a much better idea. It's less time consuming, and you can later have a better foundation for developing cutting-edge ideas. ESR said so specifically in CatB. Enough said?

9 Sep 2002 (updated 12 Sep 2002 at 04:49 UTC) »


Larry McVoy scares me. Seriously. Usually I don't have anything against using non-free software. I use pine, I use Windows, I use other things. It's OK. But Larry McVoy more and more becomes a Linux-oriented Microsoft-replacement. A fully proprietary tool that can only be used to maintain free software. That's the joke of the month!

Let's face it: if you want to appeal to free software developers - you must release your software as free software or at least something very close. Many open-source fanatics I know use pine. Many of them use Solaris, or Windows, or whatever, even regularily. But BitKeeper is two-faced in a way that is never going to work. If I were a kernel developer, I would invest some time working on Aegis or Arch or whatever, to bring it up to par with BitKeeper. A stitch in time saves nine. If I were someone who could use a better tool and had some money to afford to hire good developers on it, I would have also do just that.

I'm quite reluctant to suggest people to open-source their software. For instance, I don't think Joel Spolsky should open-source FogBugz or CityDesk. But this time, I don't think Larry McVoy has anything to lose. Maybe he will sell less licenses if BitKeeper was GPLed. I'm not entirely sure that will be true, but maybe. But even if it was close to open-source but not quite (and open-sourced a few versions back) it wouldn't be bad.

McVoy recently told bitkeeper-users why he hid the source. He was afraid of those hackers who downloaded the source, modified it and used it without the openlogging feature. Seriously, could he expect to get any money from them in the first place? Customers who pay usually respect the license, even if the source code is revealed.

I think I'm going to pull LM-Solve and I-Bex out of BitKeeper. I'll get a CVS repository at BerliOS and try to convince them to install something more decent and free as in speech. I enjoyed using BitKeeper and bkbits while it was lasted, but I don't want to face the implications of the totally free regime it dictates. This is one of the reasons I did not like GNU Savannah. (for the record, I remember how I argued with them about if I can put E-mails people sent me with suggestions in the CVS without asking for them for permission to liberate their contents)

I vividly remember Larry McVoy's description of all those dead or semi-dead SourceForge projects. Indeed, most projects in SourceForge are in this state. In BerliOS, too probably. However, Freecell Solver is alive and kicking. And it's Public Domain, not just GPL. (The reason I chose the Public Domain was the lack of paranoia. So people cannot possibly violate the license. So, I won't sleep badly at night thinking how people can violate the license, and please don't start to lecture me about how the GPL/LGPL protects developers) I am always excited by new things that I can add to it, and by new ways I can improve it. But the last thing I need is to start adapting it to the whims of trigger-happy fanatics who think with their lawyers instead of their reason. I have enough from Microsoft to worry about.

If I can get a remote, backupable hosting service (the Technion with its insane firewall is no option) with anything better than CVS, I'm sure I can get used to it, sooner or later. I can still work with the CVS, despite knowing that BitKeeper is so much superior.

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.

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