Older blog entries for shlomif (starting at number 59)

30 Jul 2002 (updated 30 Jul 2002 at 18:17 UTC) »

The Freecell Solver Win32 Build Script Fiasco

My Win32 Build Script sparked quite a fuss in Hackers-IL, as people started criticizing it, saying downloading files from the Internet and then executing them was not a nice thing to do, does not check for out of disk space, not secure etc. etc. What they should realize is that it is an internally used software, and one that I do not intend to comply with any standards of robustness.

I had to write it that way to comply with the fact that I cannot assume that the systems I have access to carry anything useful besides cmd.exe and MSVC.

There are other interesting bits in that discussion, but it seems to have diverged into an NT vs. Linux war.

Some of the commentary was useful and highlighted defincies which I was aware or partially aware of. But most of it was irrelevant (how can you assume cURL is around? - I specifically am going to download it)

Technion Project

Roy and I managed to write more of the clubs management script, and we showed what we had so far to Yoram. He seemed quite happy with what we told him. It also seems we have some clear advantages over the sister project's philosophy. We also showed him a bug fix in run-time.

To avoid the Freshmeat Effect, Roy and I decided to call the project "Zavitan" after the stream in the Golan Heights. This is in accordance with the current "Locations of Palestine" theme of Gamla/Arad. I was toying with the idea, that I would be able to revive Gamla this way.

I discussed Joel Spolsky's Five Worlds with Roy and told him about Shrinkwrap software with Open-Source vs. Commercialware vs. Consultingware. I noted that the IP-Noise Simulator was on the virge of being consultingware due to its not so straightforward installation procedure and incompatibility with Andrea Archangeli's VM. Roy and I completely lost interest in maintaining it further, and I really hope someone would volunteer to, because it sounds like a very useful tool.

Regarding Zavitan - I'll make sure it has a straightforward installation procedure, and be well documented with POD files. I don't want it to be become semi-consultingware.

Roy and I decided to take a break from the Perl code and start working on the static HTML WML-based site. We did not get too far because I was tired, and eventually let Roy type on the computer. Then we started discussing the proficiency of software consultants, Microsoft's Support Strategy, MSCEs, RHCEs, and stuff like that.

Vim Automake Problems

I emailed the maintainer of the automake indent mode. He E-mailed me back saying it was nice of me to notice. Then I was CCed on a discussion between him and Bram Moolenaar. It was not the first time I received an E-mail from Bram. I'm glad to know Vim has such user-friendly developers.

28 Jul 2002 (updated 28 Jul 2002 at 03:16 UTC) »

RPM Spec for LM-Solve

I started writing an RPM Spec tempalte for it based on the SPECs of a few Perl packages from Mandrake Cooker. I got a few building errors, and eventually contemplated that they were incompatible with older versions of Mandrake. By using a stable version from RPM-Find, I was able to complete it, and it worked beutifully, at least on my system.

LM-Solve 0.5.4 is now RPM-enabled. I posted an announcement on Linux-IL for people to test that it works well on their RPM-based systems. So far I received one reply.

Freecell Solver

Adrian encountered a different behaviour of presets with the --prelude feature. Eventually, it turned out that the quotes in the preset string confused the command line chopper, as it does not support them. Once removed, it worked the same as for me.

Now, we agreed to add support for these quotes into the chopper, to avoid such further annoyances. Now that I think of it, I think I'll prototype it in Perl, first.

As a side note, I should add that I asked Adrian whether he would wish to receive intermediate versions of the book, and he said he would. I think I should ask more people privately like this.

A diagram

My mother needed me to prepare a block diagram for her. I used Dia for the job. It took us some time to get it just right. Then, when I printed it, it came out very blocky. But then I opened the EPS, converted it to a PNG with a resolution of 600 DPI, and so got a much larger and accurate image. Then, it printed fine.

Dia is a nice program, but has some quirks. I would have used Visio if I could, but we don't have a copy of it on our Windows system. I have it at the Technion, though, but now I'm in Tel-Aviv.

Freecell Solver Site

I discovered that the XHTML 1.0 validation image had a border, so I removed it. Now what I would like to do is create some macros to encapsulate some of the common patterns there.


The project is progressing. Not very quickly, but there's progress nonetheless. I set up to meet Roy on Monday, and hopefully pair programming would let me have some more discipline. I talked with my apartment owner, and he said that Yaron is not going to renew his contract next year. That means I'll have to hang some ads looking for an apartment partner.

Eran and I got 94 in EE Lab 3, and I'm really glad for it.

LWN Closing

It's a pity that Linux Weekly News is closing. I think it is one of the best Linux resources around, and I would really miss it. I still wonder why they did not try requiring subscriptions to read their articles. I'm sure many people would have paid and they could have released old editions for everybody to link to after a fixed amount of time.

Oh well: who is John Galt?

New Site for Freecell Solver

I spent the better time of yesterday's afternoon working on a new site for Freecell Solver. I opened a new branch for it on the CVS, but I finished so quickly that I quickly merged it with HEAD, without modifying HEAD at all.

You are welcome to Check it out and let me know what you think.

I also played with rsync and got it to work quite quickly. I used scp before and rsync is much better. BerliOS does not seem to carry it on their server, so I had to install it under my home directory. Afterwards, I tweaked the makefile to extract several files out of the latest stable Freecell Solver archive and put them on the site.

As a side note, I should add that a Google search for Freecell Solver now turns the 2.4.3 Freshmeat release as the first hit, the Freshmeat record as the second, the BerliOS mirror as the third, and the real homepage as No. 4. Google seems to have such anomalies sometimes, and I hope it won't persist in its next update.


Here is what I'm planning to do next:

  1. Work on the university project
  2. Review the Autotools lecture in preparation for giving it
  3. Prepare a lecture about WebMetaLanguage
  4. RPM-Spec enable LM-Solve

Open Source Projects

I have just released LM-Solve 0.3.5. It is the result of a lot of time invested in getting it to support Plank Puzzles, and it seems to be working very nicely. I also released Freecell Solver 2.6.2 which can now be built as a Debian package out of the box.

HTML Musings

I sent a bug report to the Mozilla folks about the fact that an <h2>'ed link does not display correctly. It turned out that the standard specifies that an <h2> tag cannot be placed inside a <a> tag, which was the case for the page I produced. Once I fixed it, it worked fine in Mozilla as well as Konq.

They still designated it as a bug because it is possible that such faulty HTML would be encountered.

University Project

It takes a lot of time to tweak Apache to do just what I want it to do. Still, I'm making progress: I already implemented a login/logout feature and started writing the users management script.


The grades for Lab 3 are on the grades board, but since I'm home right now, I can't check them out. Better ask Eran to do so, as he took the lab with me.

I checked out the mail at the Haifa apartment and found a few bills. Dad paid them yesterday, but he refused to pay the telephone bill. I should contact Yaron and ask him if he is going to leave the apartment the next year, because I think he finished his studies.


I got 100 as the final grade for "Structure and Interpretation of Computer Programs 2". The Computer Graphics test is going to be the day after tomorrow. I photocopied the previous tests in the library and I'm going to solve them today and tomorrow.

I don't know when Roy would be available to work on the project. I spent some time working on it myself, but still has a lot of ground to cover.

Open-Source Projects

Adrian reported a bug in Freecell Solver, and Valgrind was able to trace it. I fixed it and released Freecell Solver 2.6.1. Valgrind kicks ass!

I think I'll work on adding support for Plank Puzzles into LM-Solve next - I'm in the mood for it. I also did some work on the Perl parser for the SysCallTrack grammar.

lindsey: if you are looking for a better replacement for CVS, check out BitKeeper, Subversion, Arch, and Aegis. One of them should do the trick.

Open-Source Projects

I released Freecell Solver 2.6.0. I already heard from Adrian about his attempt to integrate it into Freecell Pro. I sent a patch to the developer of valgrind to fix the RPM Spec generation and it was integrated into the package in its latest release.

I have several open tasks for my pet projects. One of them is to add support for plank puzzles to LM-Solve; the other is to thread-enable Freecell Solver. I think I'll take a break and work on the books, the lectures and the university project a bit before I proceed with them.


I'm at home, and at rest. I am taking some time to go over the material of "Computer Graphics". I got 86 as a final grade for "Design and Analysis of Algorithms". Finally, I started working on the project and wrote a layout class, and several scripts that display the basic read-only site functionality. It took me some time to get mod_perl to behave the way I expect it to, and then some more to verify that the URLs are correct. But I'm making some progress.

Freecell Solver Book

I finished the chapter about the architecture of FCS 0.2 and I'm now in the middle of the next chpater which covers the evolution of the states collection. With some help from the docbook-apps mailing list I was able to fix the table which was too wide (turned out I did correctly specify the number of columns).

If I can say one thing about Jade, then it would be that it is very slow. Luckily, the XSL stylesheets work so much faster for the HTML rendering and I don't have to convert it to PDF too often.


Roy phoned me today and told me he has some commitments to his work place, and won't be able to sit down for doing the project until the 25th. We agreed that I can work on the project alone until he become available again.

I reviewed the "Computer Graphics" material a bit, but I don't see too much point in studying too hard at the point. Spent most of my time hacking on stuff. ;-).

Freecell Solver Book

I discovered a way to render the book into PDF. Just run the "db2pdf" command, which uses the DSSSL stylesheets. I wonder what is the problem with the XSL ones. Now the problem is that a table I drawn is too wide and slips out of the page.

I now have four subscribers to the book mailing list, and I see some people responded to my post here. In any case, the book is progressing slowly but surely, and I already wrote part of the second chapter.

Freecell Solver

By looking at its code, I discovered that the priority queue module could use a lot of optimizations. So I optimized it to death. Later on, I did a lot of clean-ups, and also released version 2.5.36 which aims to be the Release Candidate for 2.6.0. Then I did some more cleanups.

I'm getting a bit restless, and I think I'll release 2.6.0 after I check that it agrees with valgrind, Electric Fence, and dmalloc. I could delay the other cleanups, and code commenting to the 2.7.x branch.

I timed a few more atomic scans and just got below the 260 million iterations mark. I had a talk with Adrian in the mailing list about solving games with less than four freecells, and reached a conclusion that I may have to construct specialized presets for them too.

9 Jul 2002 (updated 9 Jul 2002 at 06:47 UTC) »

Freecell Solver

Adrian Ettlinger, the main developer of Freecell Pro managed to cause the Freecell Solver engine to crash in some reproducible conditions. It took me a lot of time to figure out where the problem was, but valgrind finally came to the rescue. It turned out I did not initialize one of the variables in a place I should have initialized it. But now it fixed and I released a new stable version.

Right now, Freecell Pro has been released with a "Solver Evalutation Edition" that contains my solver, the original Woods-Callan-Ettlinger solver, and Tom Holroyd's Patsolve. Adrian claims that Freecell Solver is the fastest one, but it naturally has problems of reporting false negatives.

Other than I am now working on getting the optimization scan to work for atomic moves, and to build a good meta-scan for them. Measuring the performance of all the scans for all the boards takes a very long time, especially for atomic moves. I can parallelize it by timing each scan on a different computer, but I only have one computer accessible at home.


I handed out my SICP test. The lecturer came to the Technion quite late and I had become quite worried because I could not find him, but I was finally able to find him and hand him my exam.

I had the "Design and Analysis of Algorithms" test on Sunday. It went well enough, but I have yet to find out what my grade is. The things that remain on the agenda are my "Computer Graphics" test on the 23rd, and the project. Roy has a test this Friday, so we will only be able to sit next week.

Freecell Solver Book

So far, I have two subscribers on my book mailing list, and there is potentially another one. I have made quite a lot of progress writing down the book in DocBook/XML. However, I am now being slightly suspended because there seem to be some bugs in the PDF rendering.

I'm sure I'll be able to resolve them eventually, but it is still annoying.

5 Jul 2002 (updated 5 Jul 2002 at 05:12 UTC) »


The SICP lecturer decided to give us a take home exam, and I prepared it during the last three days. It was not too hard. In any case, I missed a complementary precept in "Design and Analysis of Algorithms", because I was so immersed in doing the test.

My algo exam is on Sunday morning, so I have to stay in Haifa for the weekend. My father said he and my mother would visit me on Saturday, which has become a tradition for weekends in which I do not return home.

I hope Liat can study with me during the weekend, because studying alone is not as fun and not as effective.

Open-Source Projects

Not much to brag about, I'm afraid. This and that. Freecell Pro with the three solvers integration is almost ready to roll, but Adrian said he discovered a critical bug. I spent most of my time working on the GNU Autoconf Lecture, and I'm almost done with it, but would like to go over it a couple of times, and add more comments and clarifications as I go.

I also did some more work on the WMLized syscalltrack site. Freecell Solver had some kind of bug when running the Microsoft 32,000 with an atomic moves based scan. I'll have to look it up.

KDE 3.0.1

I installed KDE 3.0.1 on both my home Linux system and my Technion computer. And now in the Technion X started hanging, too. In any case, I found several bugs in KDE which I reported, and have yet to see what comes up with them. My Alice Mazes bug has been there for ages.

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