Older blog entries for shlomif (starting at number 72)

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.

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... ;-)

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