Older blog entries for shlomif (starting at number 70)

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.

Welcome to Linux

If you take N Haifa Linux Club activists and ask them what we should do for "Welcome to Linux" this year, you'll receive N+1 opinions. The discussion that erupted on the mailing list (which I purposely caused) does not seem to have entered into mail-archive yet (possibly because of the DNS problems).

What I think should be done is simply demonstrate some of the capabilities of Linux. (sort of like Linux in action) I think it is useless to try and teach the basics of Linux in 6 or 7 2-hour sessions, and that we will only lose people that way.

Other distiniguished members of the club disagree from various reasons. I still recall the previous "Welcome to Linux" attempts as things we put a lot of work into, were relatively unrewarding as far as the organizers were concerned, and caused us to lose a lot of time which could have been invested in lectures.

I don't think it is our "obligation" as Linux experts to evangelize Linux into the non-informant public. (the situation is worse in Israel, as many people don't know what Linux or Open-Source are.) As known from Cognitive Psychology the words "must" and "should" are extremely demotivating. My suggestion would put a much lesser strain on our resources. Other than that, I believe that we will again put too much effort with far too less reward.

6 Aug 2002 (updated 6 Aug 2002 at 11:39 UTC) »

The non-virtue of being tact-less

While I can try to avoid it as much as I can, I sometimes make non-tactful comments, phrase critiques as accusations, etc. I recall that people behaved tactlessly towards me, but I don't hold it against them, because I'm trying to be rational and "look on the good side" as possible. There is one exceptional person who seems to criticize everything I do, and I don't like him at all, but usually I'm OK with other people.

Even this diary was criticized several times as a place where I behaved tactlessly. I already tried to make sure I don't criticize people for things that they told me in private. I went over the previous posts and some of them could have offended those who read them. But if I had a penny for each time I was offended I would have been a rich man by now.

It is possible that I'm too much like this other person. I suppose I can try to rethink what I say on public from now on. This might be the best solution in the long run for being around people who are not entirely fat-skinned. Of course, some of the greatest people in history were known as completely tactless, and they survived. (and some of the vilest men were very pleasant and friendly and seemed to make everyone happy).

The Lecture Yesterday

Went pretty well, even very well. Before the lecture I noticed that there were two twelve-years old kids out there waiting for the room to be opened. Me and another guy started telling them why MS ASP was a bad idea to begin with, and why Perl/PHP/Python and friends were much more powerful and less money-oriented. We then told them that after they learn one of these languages, they should also learn ANSI C, because it gives a good grasp of machine language and how computers work.

Then the lecture began. There were a few jokes (some of which on my expense) and Nadav helped a lot. Someone kept asking a lot of questions, which at least gave me confidence that the audience was following the lecture. All in all we were about 20-30 people.

After the lecture, he noted that this lecture may have thrown the kids into the hands of "the Microsoft devil" as the first lecture they attended dealt with such a complex subject as Autoconf, Automake and Libtool.

One thing to note is that using the GNU Autotools is not a panacea as far as portability is concerned. The only way to make sure it builds everywhere is to try to build it everywhere.

Just a small joke from the lecture, which I hope won't offend anyone: I showed them the Makefile.am file of the FCFS RWLock. Then someone asked why did I have to show my most complex Automake file todate. So I said: if you think this is complex, just wait till you see the automake file of Freecell Solver... ;-)


My feature about it was rejected on Slashdot, too. I'm a bit disappointed because it isn't vapour, and while it may be denounced as "bad", is still readable.

I asked the Linart guys where can I publicize it and got one reply enumerating the usual suspects: LinuxToday, LinuxPR, LWN, etc. None of them have quite the effect of Freshmeat. I really think I should go in the direction of opening a Freshmeat-like directory and releases board for Net-available content.

There a few alternatives to Freshmeat on the Net, but I don't know how much their database scheme is adapted to non-software stuff. But it's better to give it a try.

August Penguins Event

The first lecture about Embedded Linux was very good and interesting. The second lecture about TCP spoofing was good, but had a boring (IMO) topic so I drifted away. The first lecture took a bit too long so Orna told us to stay for the second one, but people voted with their feet. (later on I told her that cancelling recesses is usually a bad idea, and she agreed)

The movie "Revolution OS" was good. I did not learn anything new, but there were a lot of funny bits, and it was interesting to see the faces behind the names.


Spent some time preparing a decent site, and you can check it out. I'm still not sure that I want to Slashdot it, but it seems that I'll have to.

Autoconf Lecture

It's tomorrow so I took some time to review the slides. I also uploaded the updated ones to Vipe, and used rsync this time. I love rsync.

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