Older blog entries for shlomif (starting at number 186)

7 Nov 2003 (updated 25 Sep 2004 at 11:28 UTC) »

Subversion

I tried to resolve Subversion issue #1093. My uneducated attempt at it received a complete depracation from C. Michael Pilato which followed with a discussion on how to best resolve it. The problem is that we need to efficiently trace the history of a file backwards, which can only be done in the repository level.

So, the final question is whether to perform each such lookup for every remote operation that need to do it (which would require changing the protocol in many places), or assigning a separate command to perform the lookup. The second option is simpler and would require fewer modifications, so we'll probably go with it.

Talk with Ya'El (Orr's ex-Roommate)

On the way to the Technion on a Thursday a week and a day ago, I met Ya'El, who is Orr's former roommate and someone who studied Game Theory with me. We talked when we were waiting for the Haifa local bus, and on the bus about various stuff. (details are in my private diary). But it was a fun talk and I enjoyed it a great deal. One thing she told me was that she did not take any programming courses except the required ones, because they were too much work. One would thing one would study Computer Science to become a programmer, but she was more interested in the theory.

I discovered something interesting about the buses that day. Even though, there's a previous inter-city bus that comes 45 minutes earlier, the bus from there to the Technion just leaves, and so I don't get to the Technion earlier. And using the other bus I get to the Technion at 10:20, which is in the nick of time. Oh well.

Transcribing Thermodynamics into LaTeX

My mom suggested that I transcribe the Thermodynamics material into the computer, so it will be more organized and that I'll review it further. So, I fired my favourite Hebrew LaTeX editor (he2) and started transcribing it. So far, I did two lectures out of three. In any case, it's progressing quite slowly because all the formulas slow me down considerably.

For your enjoyment, I give you a group of macros I wrote for one body of equations. Note that my code could still use a lot of modularization.

\newcommand{\parens}[1]{\left(#1\right)} 
\newcommand{\halfN}{\frac{N}{2}} 
\newcommand{\hNpm}{\halfN+m} 
\newcommand{\hNmm}{\halfN-m} 
\newcommand{\tmN}{\frac{2m}{N}} 
\newcommand{\osomething}[2]{\parens{1 #1 #2}} 
\newcommand{\otmN}[1]{\osomething{#1}{\tmN}} 
\newcommand{\ox}[1]{\osomething{#1}{x}} 
\newcommand{\exprone}[1]{\parens{\halfN}\otmN{#1}\ln\left[\parens{\halfN}\otmN{#1}\right]} 
\newcommand{\exprtwo}[1]{\parens{\halfN}\ox{#1}\ln\left[\parens{\halfN}\ox{#1}\right]} 
\newcommand{\exprthree}[1]{\halfN\ox{#1}\ln\ox{#1}} 

Telux Meeting

On Sunday we had a Telux meeting. Eddie Aronovich gave a nice intro to the advancements in RPC technology from RPC through CORBA to Web Services. One highlight from the lecture was that he prepared it on his laptop in Linux, and then discovered the screen had a problem there, so he had to switch it to Windows. So he converted the presentation from OpenOffice to PowerPoint. Then we told him OpenOffice was available for Windows... ;-).

But it was a lot of fun.

Israeli Perl Mongers Meeting

We met yesterday for the monthly meeting of the Israeli Perl Mongers. Before the meeting there was some food and a lot of interesting conversations with many people. There was someone there named Jason who came to Israel from Australia. When people asked him why he came to Israel, when all Israelis would prefer to be in Australia, he said it was more interesting here. ("May you live in interesting times"). We also discussed many of the books and other stuff.

Then came the lectures. Abraham Bernstein gave an overview of the things Tcl excel in. The lecture waThe lecture was very interesting. There was something there I did not understand about how to write an interpreter with Tcl. Then Gabor Szabo gave a brief overview of the Phalanx project which aimed to provide good test coverage for 100 of the most popular Perl modules. Afterwards, Ran Eilam gave a very entertaining and funny lecture about "Extreme Programming". He compared the common way that software houses manage themselves, which yield the "Big Ball of Mud" syndrome, and how Extreme Programming solves it.

A funny story that he told was that a manager once told the programmer to create a prototype of a software for a deadline in which he needed to demonstrate the software. So the programmer wrote something whose internals were lacking and gave it to the manager on schedule. After the manager returned from the meeting, the programmer asked him how did the software perform. "Great!" said the manager, "we need three more features by Monday".

During the break, I also talked with some people like Oded Resnik, and Eli Marmor. I took with me two books from the library: "Writing Perl Modules for CPAN" and "Extending and Embedding Perl".

The Neo-Tech FAQ

tk suggested to me that I read the Neo-Tech FAQ to gain a better perspective on Neo-Tech and understand why it is an "evil cult". Well, I was reluctant from reading it for a long time, but today decided to take Baz Luhrman's advice and "do one thing everyday that scares you". So I read the most recent version of the FAQ, which was pretty old (1996) that I found on Google Groups.

The FAQ is so ridiculous that it made me laugh a couple of times. I anticipated (from previous impressions of it) that it will try to attack mainly the Neo-Tech staff, while having little to say about the Neo-Tech wisdom, and I was right. Furthermore, most of the attacks on the Neo-Tech people were based on information or reports which I cannot easily assert, and most of the attacks on its wisdom quoted out-of-context snippets out of the Neo-Tech material, which can easily be refuted by someone with a better grasp of the Neo-Tech material. (and sometimes directly contradict other quotes, which state the opposite, plain and simple)

What killed me was the fact that it claimed Frank R. Wallace (the founder of Neo-Tech) advocated dishonesty because he said that in poker it was OK to cheat. (!) Seriously, Poker is very much about cheating as everybody know. Plus, the Neo-Tech Advantages state countless of times that dishonesty and lies are plain wrong and destructive. (except in Poker :-))

tk, if you think this poor excuse for criticism is good enough to invalidate the Neo-Tech Philosophy, then think again. If only, it made me more convinced that Neo-Tech is "The One True Way<tm>". And it certainly did not convince me that Neo-Tech is a cult or is Evil. Granted, Neo-Tech is huge in scope and takes some time to fully understand and integrate. But it is just an idea system, and a pretty darn good one.

In any case, I'm happy, because a huge stone was cast off my chest.

28 Oct 2003 (updated 28 Oct 2003 at 12:32 UTC) »

Studies

My first week started quite eventfully. After the day in which I had Thermodynamics, which went OK and in which I learned little new things, I went expectedly to the "Automata and Formal Languages" lecture. There, I discovered that "Set Theory and Logic" is a hard pre-requisite for the course. I talked with the lecturer during the break and he told me that he won't allow me to take the course. I asked him why the requisite was so important and he said that "You see, we have set theory all over the place". But I did not have a problem to understand what I saw in the first half of the lesson!

In any case, I cancelled the registration for this course and registered to a different course from the Electrical Engineering Department on the same day. ("Design of High-Speed Digital Systems") For it I'm sure I have the pre-requisites.

DVD Playing Trouble

I had a trouble playing DVDs. Ogle and mplayer have emitted the error ""Can't open file VIDEO_TS.IFO" and Google could not help me. I then tried playing a music CD, and mounting a filesystem, and neither of them worked. Then it hit me: the ide-scsi emulation! After I switched the device to /dev/scd0 (the SCSI device) everything worked fine again.

Am I lame or what?

Translation

I done a little translation of Homesteading the Noosphere, up to and including the end-note about the Fijian Village Chiefs. I also received some corrections about "Rub a dub-dub" which I happily applied.

Subversion and Win32 Guide

I received an E-mail from the guy from whom the guide was intended, telling me he failed to install Subversion once again. This time, he did do a step he did not do before, but he did not follow the guide exactly (and named a URL differently), so this may be a problem. He said he'll try again later, but meanwhile will use CVSNT for the current project.

grip woos

grip ripped at 4x speed, while my CD-ROM drive is 52x max. I posted a message to Linux-IL about it and Matan Ziv-Av replied with a good advice, that increased the speed to 10x. Still not maximum but better.

Welcome to Linux

I ended up preparing the slides for 3 out of 6 of the lectures that would be given in the Welcome to Linux series. Recently I was asked to prepare a version of them that would be viewable from the hard-disk. A quick script did the job, but it took me some time to debug it.

The first lecture was given yesterday by Ori Idan. The lecturing hall was full, many questions were asked, and Ori gave a good presentation. There were a few glitches in the lecture that KDE there got stuck, and so the lecture came out longer than agreed on. I came to the lecture with Ori, and went back with a guy who had to drive to Northern Tel Aviv, which was very convenient for me. He was a Linux newbie, and I told him a lot about what I'm doing right now, about CVS, about software patents and other things.

Perl Golf

The last three days I was heavily occupied with the PERT/Gantt chart conversion Perl Golf. The day before yesterday, I ended up with a 65-characters long solution, and yesterday I was able to optimize it twice, each time by one character. Right now, I'm stuck 6 characters before the currently best solutions, with no ideas on how to further optimize it. But I'm still not giving up.

GIMP Lecture at Telux

I gave a lecture about the GIMP on Sunday to the Tel Aviv Linux club. It went pretty well, but there were few people there (less than the previous lecture). Some things sparked a bit of discussion, like whether Graphic Artists can learn the GIMP Scripting or do they need something more foolproof.

After the lecture I talked to two guys. One of them was a system administrator in a high school who converted some of the server infrastructure there to Linux, and wanted to conduct an experiment to see if development could be taught there.

Quad-Pres Hacking

I released a new stable version of Quad-Pres, with some critical bug-fixes. The problem was that upload did not work, because of a leftover file which was revamped without proper modifications to the rest of the code. So, I added some tests and now have some items on my pressing to-do list.

Rub-a-dub-dub Translation

It's finished! Did not take too long at all, but maybe the article was just short. I have applied some corrections by going over the translated text. Now I'm looking for someone to go over the translation and copy-edit it.

Setting up ViewCVS for Subversion

I wanted to set up ViewCVS for the Subversion repository. So I read the install file of ViewCVS from the CVS, and followed it. The first problem I encountered was that the Python SWIG bindings of Subversion refused to install. I received a hint in response, which led me to a solution. (an explicit make install-swig-py-lib command)

Then I installed and configured the ViewCVS config files and they refused to work due to an unfound module error. Turns out the problem was that Apache did not pass the PYTHONPATH environment variable to the CGI scripts. After RTFMing, I found a solution: a simple "PassEnv" directive.

Then it worked, but I'm not sure that it traced files across copies. I may try Chia-Ling Kao's SVN::Web script later on.

Haifux Welcome-to-Linux Preparation Meeting

We held a meeting in preparation for the "Welcome to Linux" series. kilmo was there as he returned from abroad, and I was surprised to see him there. Here is the summary of the meeting which I took down.

Studies

Studies are beginning tomorrow. I have to get up early to catch the bus, which should arrive a while before the first lecture.

17 Oct 2003 (updated 25 Sep 2004 at 11:20 UTC) »

Quad-Pres

More Hacking. More tests, and finally a new stable version release. I branched and tagged version 0.10.0 only to discover I did not update the file list of the tests directory, so I released version 0.10.1 as well.

It seems Quad-Pres has disappeared from Freshmeat, possibly because vipe was down for a while. (I did not receive an E-mail about it, though). Eventually, I registered a project at BerliOS, and now it has a new homepage. So, now Freshmeat points at it and hopefully it would be safer there.

Version Control Systems

Added a few items and corrected some typos in the version control comparison. Also, I recommended Subversion in a recent discussion in webdesign-l, and someone posted a message that when he tried to install Subversion on Win32, it did not work for him.

To help him and others in the future, I installed Subversion myself on my Windows XP laptop, and documented the process. Et voila: a Subversion Win32 Installation Walkthrough. Share and enjoy!

Translation

I'm taking a break from translating "Homesteading the Noosphere" by translating the Joel on Software "Rub a Dub Dub" article (to Hebrew, of course. Like I know any other language besides that and English well enough.) Here's the site where I'll put intermediate copies of the translation.

Finally, I went over the slides of the GIMP Lecture in preparation for my lecture on Sunday. And on Monday there's a Haifux Welcome to Linux coordination meeting.

Movie

I went to see "Finding Nemo" the other day along with my father. The movie was nice, albeit not quite as much as "Monsters Inc.". At the end of the movie there was a very long list of credits, and my father joked that it would have taken less time to draw the movie pixel by pixel. In any case, the Graphics was great.

Reading

I finished reading "The House of Arden", which had a rather disappointing end. I also read Joel on Software's Unicode article. Not too much I did not know, but it was still a very amusing read.

Finally, I started reading "Ender's Game", and read two or three chapters. It's a bit strange so far.

Backup

I decided to backup my Linux system. Due to the fact I have an IDE CD Writer, I had to install ide-scsi. So I followed the instructions in the "Installing your ATAPI CDRW Drive in Linux" tutorial, which involved rebooting the computer (gasp! I thought in Linux we were never supposed to do that). Eventually, after the reboot and setting a parameter in loadlin, it worked on the first try, and I have a burned CD with some backups.

Hacktivity

I worked on Quad-Pres the past two days. At first I added an option to set the encoding and language, on a per-presentation level and a per-page level. To make sure it works correctly, I wrote a test script for it. Eventually, I ended up with more lines of test code, than lines of added code, and the code worked at the first try my test suite had no bugs in it. The test suite involves a bash script that calls two Perl scripts. (%-) - it was the easiest way to do it).

Then when I fixed a bug (that the rendering process did not stop on the first WML error), I added a test for this as well.

Finally, I added a module to channel Getopt::Long and make sure it can use an array besides @ARGV. (a kludge, if you ask me, but that's life). And I added a unit test for this as well. After I got the test to work, I found out I had a bug in my code (!) because of it.

I'm quite happy with this "write tests as you write code" scheme. So far, it slowed me down a bit, but in the long run it gives way for more robust code.

10 Oct 2003 (updated 10 Oct 2003 at 18:43 UTC) »

Hacktivity

I wrote some patches to the perlop and perlsyn Perl Man Pages, which I sumbitted to perl5-porters and there Michael Schwern and others have revised them. The two patches were applied to the bleadperl version.

I also copy-editted the translation of Open Source Software - A History that was done by Oren Maurer. Finally, I made some modifications to the Haifa Linux Club "Welcome to Linux" lectures that I'm responsible for. There may have been some other things, but I don't quite recall them.

Subversion Woos

I upgraded the Subversion at the stalker host, without first dumping the repository. That has put me into trouble, as nothing I tried to resotore the old homepage repository (which was changed since the last backup) worked. Eventually, I settled on using the few-days-old backup, checking out a working copy, and syncing the new working copy in, using a Perl script I wrote for the job. Now everything is up again.

Next time, I'll know to be more careful.

New Cellphone

My father decided that the entire family will switch their cellphones to Orange (GSM cellphones) to enjoy their intra-family calls discount. So, I now have a new cellphone. I still have to get used to it, and so far using it is a bit annoying.

One thing I noticed was that I could not enter Hebrew contact names longer than 5 or so characters. After calling the support, it turned out that we could only have it longer if the interface (and the names) were in English. So much for human engineering.

Orange Site

I had wanted to view the new cell-phone in the catalog so I tried to use the Orange site. With Konqueror it was dead on arrival, so I tried Mozilla. This worked better, but when I accessed the catalog page, I could not see anything displayed there.

I wrote an E-mail to the webmaster telling them that Mozilla was not supported. In reply, I got a message saying that the site is guaranteed to work only with Microsoft Internet Explorer 5.5 and above. I asked them if they plan to support Mozilla any time soon, and got a reply that they don't for reasons I found very interesting. Here's my reply:

> Dear Mr. Fish,
> I thank you again for your mail.
>
> I regret being so blunt but, no, we are not going to change our website in
> the near future. We have developed an amazing website,

"amazing"? By this do you mean full of non-portable bells and whistles, and other idiosyncracies? Sorry, but that's not an amazing web-site according to my book.

A good web-site is either simple and clean, or includes standard-compliant, portable embelishments. (which are usually not necessary).

Usability, low bandwidth, etc. is much more important than "amazingness" and I bet it's not very usable in MSIE either.

> that costs us a > lot of money to develop and maintain,

Why does it? Why should it? I maintain a few web-sites in my free time and I'm not getting paid to do so. If you keep your web-site clean and simple, it will cost less money to maintain and will also attract more visitors.

> and it is currently built exactly > according to our business needs.

I seriously doubt it is built according to anyone's business needs. Why do you need JavaScript to display the catalog of images? Why not simply include them in the HTML? If you look at popular international sites, you'll see that most of them are built with simple and clean HTML (sometimes without any trace of JavaScript).

> I can also say that although > technologically it might be possible to develop a version for Mozilla or > other browsers,

1. It is possible.

2. I'm not talking about a separate version for other browsers. I'm talking about one version > orange, and many other content providers, are investing > in the most common browser, it is currently not cost efficient to > develop versions for other browsers. >

It is cost efficient if you hire clueful developers. Look at my site:

http://t2.technion.ac.il/~shlomif/

(which links to other sites I made).

They all look perfectly fine in all modern browsers, including lynx (a minimalistic text browser). Why? Because I know what I'm doing and I know how to write good HTML.

First you tell me your site costs a lot of money to maintain, and then you tell me it is not cost efficient to support other browsers. Now, let me tell you this: if you keep your site clean and standards compliant, you can have it support all browsers and it will cost you much less money to maintain.

Regards,

Shlomi Fish

1 Oct 2003 (updated 25 Sep 2004 at 11:15 UTC) »

BitKeeper

IBM has recently bought Rational, the producers of Rational ClearCase, which is an SCM system competing with BitKeeper. Does it mean all IBM employees (including many Linux kernel hackers) are forbidden from using BitKeeper? ;-)

I suppose only Larry McVoy can tell. I talked about it on the IRC with some people and they said IBM is so large, that it can hardly be considered as one entity. Still, I'm not sure it is a separate entity as far as copyright law is concerned.

Hacktivity

Various bits and pieces. I worked a bit on perl-begin, compiling it again after the move to the new computer. Then, I added some links to web-forums there. I also worked a bit on the Haskell for Perl Programmers lecture, adding stuff on arrays.

I worked on the Homesteading the Noosphere translation. I finished the chapter "Ownership Rights and Reputation Incentives", replaced my own translation with a corrected first chapter I received from someone else, and also went over the existing translation and corrected various stuff.

I also modified my homepage to include the interviews section, and placed Adrian Ettlinger's interview online. You probably know of it from the front-page article.

Haifux Lecture

Been to the latest Haifux lecture on Monday. Ron Artstein talked about Multi-lingual Typesetting. It was basically a coverage of the constraints that written languages imply on getting them typesetted. It was loads of fun and amusing.

Google Mirroring Script

I wrote a Perl Script that mirrors the www.google.com domain. (and with some customization, other domains as well). The incenetive is to set up as many mirrors of Google worldwide as possible in order to battle's the Great Firewall of China's blocking of this useful resource, and to give the people (of the People's Republic of China) what they want.

There's a demonstration of it but it's a slow link and works only with lynx, because of Google's user-agent idiosyncracies.

Rosh Hashana

Today is Rosh Hashana - the Jewish beginning of the new year. So, yesterday's evening we had a family dinner with the extended family. Unfortunately, many people were abroad, and another sub-family were visiting their in-laws. Still , it was very fun.

I also greeted several people in the IRC and in the Linux-IL mailing list. I truly hope it would be a good new year with few harms and disappointments for everybody benevolent out there.

DVD Playing (cont.)

I downloaded and installed the new version of Ogle from the RPMs/SRPMs I found at its site. Now it plays the DVD I tried very nicely, with a much better interface than mplayer (or kmplayer for that matter) and with DVD menus and all. Very nice.

That put aside it seems that mplayer has a bug in relocating the position within the film. (it also happens for MPEG films).

Hacktivity

I did some work on Subversion: placed svn-push inside the Subversion repository, created a branch for it for future developments, and clarified some things in the mailing list and the IRC.

Then I took a break and started writing the Haskell for Perl Programmers presentation. wli helped a little after I queried him on the IRC. There are still things I'd like to add there, but it's quite OK as it is.

HTML Blues

While working on the presentation, I decided that I want to emulate the <table border="1"> look with CSS. I asked it on the web-design list and someone answere me with a recipe. I was able to customize it to emulate Konqueror's look and feel. But then when I tried it on the slides, it did not work.

After a long investigation, I finallly found that if I remove the DOCTYPE everything works again. Then I found out that the problem was that my selector was table.border1 > tr > td instead of table.border1 > tbody > tr > td. After that was applied it was solved in both Konqueror and Mozilla.

Then someone I consulted with on the IRC reported that it does not work in Internet Explorer. After some investigation, it was discovered that MSIE does not support the child selector (parent_tag > child_tag) at all. Aaaarrggghhhh! So, now either I make a non-IE compatible site, or switch to table.border1 td (which may cause problems in the future), or apply class elements to all the <td> tags inside. I can also kidnap Bill Gates and threaten to kill him unless Microsoft makes MSIE more standards compliant and makes newer versions of it available for free download, but that would be too sadistic for my reputation.

MSIE Die Die Die!!!!

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