Older blog entries for shlomif (starting at number 197)

26 Dec 2003 (updated 26 Dec 2003 at 20:17 UTC) »

Life after Gradient-Fu

Now that I finished the gradient-fu patch, I don't know what to do with myself. Well, let's not exagerate: I have plenty of things to do, but still need to get on the hacktivity schwong.

I have some pending Perl-related tasks to do. For once, I want to find a good Perl module that will enable me to maintain all the navigation menus I created in my sites. I found two of them on CPAN - one of them is not maintained and its author did not respond to me; for the other one I got a response from its author with a CGI script he wrote for me that demonstrates one of the menus in question. However, the CGI script uses a CGI parameter to distinguish between the pages, and is not spread across two servers as is the case with what I need. Thus, it, and perhaps the module as well, may justify some more work.

Now, after I received this, I also received an answer from an Israeli correspondant, who tweaked his code to do what I need. I suppose I have to check it as well. In any case, this probably can wait for later on, because my ad-hoc code for navigation bar is still functional and extensible. (even though it sucks)

Next is the work on WWW::Form, which I have still to hear from its author after the last E-mail I sent him a couple of days ago. (I'm beginning to think, I should just fork it off for the time being, and continue to work on it on my own).

And finally there's Quad-Pres. Here it's quite pressing, because I need some new features for the Template Toolkit presentation I'm going to give on YAPC. Maybe I should just throw the glove, and prepare it using Open Office.

Next, there are some lectures I want to prepare: the TT one naturally, and "Freecell Solver: The Next Presentation", and the "Web Publishing with LAMP" (Linux, Apache, MySQL and Perl/PHP/Python) one.

Then there's Doclanx. I have great plans for taking the Perl man pages, and revamping the hell out of them, but haven't really started to do so, yet. I suppose it can wait as well.

Finally, there are some political/philosophical essays I'd like to write. I'll probably go with the one about drug legalization first.

So I have plenty of things to do, and not enough time to do them. At least that would mean I'm going find time to do some of them. If it weren't for all these E-mails I keep wanting to send...

Advogato Diary Interest Ratings

I'm not entirely sure the Diary Interest Ratings are a good idea. For a very simple reason: people don't rate other people diaries! I don't think I ever rated the diaries of fellow Advogatoers. Some of the blogs, I read because I personally know these people and I'd like to keep up-to-date with their whereabouts and thoughts. (so I don't rate because I cannot objectively testify for their interest, as they are surely interesting to me). The others I read on occasion, when I go over the recent entries list, when I post one. I usually don't recognize all the nicknames, so I can't tell if their diaries are intersting or not. (and I don't consider myself a blog lurker, so there you go).

Even the blog I write is mostly for myself and my friends, and only secondly for other people to read. (albeit I did receive some interesting comments in response to things I wrote here from people I did not know).

Reading

I started reading the "Perl & XML" book that I borrowed from the Perl Mongers Libary. It's a very good read, funny and interesting. And naturally, I learn some new things. So far, I highly recommend it to any Perl programmer. (but can only give a final verdict when I finish it) As for "Extending and Embedding Perl", I finally arrived at the chapter covering the Perl Internals, after skipping some less interesting material. I don't read it at bedtime, because I feel that I'm too tired to concentrate on this highly complicated topic, so I'm not making too much progress.

I don't know which reading book I'll pick up now. I can continue reading "Ender's Game", I suppose. Meanwhile, my sisters have given away one of the copies of "Harry Potter 5" and lent another, so I'm stuck without any copy to read. :-)

I also just read the article The Hundred-Year Language in which Paul Graham speculates about which language we will use a hundred years from now. It's a good read, as most of the other things by Graham are. However, I disagree with him on some points.

Especially annoying is his claim that languages will introduce various paradigms as others that can map to it but are less efficient. He even goes as far as saying that numbers can be represented as lists whose length is the length of the number. I personally would hate to see that happen. Order of complexity un-optimizations like that can make your program completely unscalable with anything beyond a very limited input. (many times even if you have a very capable hardware to run it on). As such they should not be introduced into the core language if you can help it.

At the moment, I can write programs in Perl, and they would finish almost instantenously. This probably could not have been the case on a 386 computer. (which is still more than capable of running Perl). Still, if the Perl interpreter had implemented numbers as lists, it would not have run efficiently, even on today's hardware.

Another thing, that I found intriguing was his claim that in Arc he was able to write recursive functions on strings implemented as linked list that were better than many regular expressions. I actually did it when I converted Quad-Pres to Haskell (just for the experience). And it came out hideous. An experienced Haskell programmer who inspected the code, told me I should have used a regular expressions library and said he could not make heads nor tails of the code. Oh well, who is John Galt?

One thing I did not like about it is that he said there that it's not true that those who can't do - teach. I personally have always felt this way, and now I know of someone else who supports me.

Hacktivity

Well, bits of pieces of many things that do not amount to too much. One thing big I did was write a review of TAOUP. (you can also refer to the letter I sent to Raymond about the Review and some things he may find interesting in Freecell Solver</a>). This review became the latest one in the "Good" reviews in the book's site which are not the same as the raves. Apparently, raves are such that claim the book is perfect (or at least almost so), while good are those that are somewhat critical of it. I don't know which one ESR considers better. ;-)

I also added various bits and pieces for my homepage and related sites. I don't recall all of them.

Politics #1: Normalizing Thorahic Education vs. Antiochus' Decrees

Recently a suggestion was put forth to make sure the pupils who receive Thorahic education (among the Orthodox Jews in Israel), also receive general studies like the more secular Jews do. So one MP said it was unacceptable and in the wonderful spirit of Hanukkah compared it to Antiochus' Decrees during the time of the Macabees.

The problem here is that the Thorahic education are financed by the Government out of Tax Payer's money. If this was not the case and these Religious Jews were self-staining, I wouldn't have cared less if they received general education or not, but this is far from being the case. As the financers of this education, we have a right to pose conditions for them, and if they don't like it they can stop receiving funds and try to finance it on their own. If you ask me, an even better idea would be to stop financing education at all, and simply lower the taxation considerably. It is getting more and more sub-standard anyhow, and privatized education is usually the only good long-term way to handle state-wide education.

Politics #2: A solution to the Palestinian Problem

And on a more serious note: I'd like to bring forth here, something I thought about (and conveyed to an American correspondant of mine) as a solution to the Palestinian problem. So far, the general belief among the Israelis is that the Palestinians are primarily responsible for the situation. Likewise, the general belief among Palestinians is that the Israelis are responsible. So we have a deadlock.

Here I propose a way for the Israeli leaders to solve the problem once and for all for the mutual happiness of both sides. Furthermore, this way is very easy and simple. Here goes:

  1. Give Israeli Soldiers a choice of whether they wish to protect the Israeli Settlements inside the West Bank or not. Soldiers may choose to stop protecting the settlements at any time, and will be relocated to inner-Israeli squads.

    Forcing someone to protect someone else is wrong, as any mandatory draft is in essence.

  2. The settlements can either remain using only their self-protection, or its settlers can choose to relocate to Israel, where they will be given an alternate home.
  3. Israel will stop giving food relief to the occupied territories. If this implies that a Palestinian State must be established, so be it. (I don't care if there's a Palestinian State or just a very hostile governing body)

The Geneva Accord has three serious flaws:

  1. It advocates disarming the terror organizations. I don't see how it can be done efficiently and the right to bear arms also come to mind. I would adovcate the opposite: give arms to each and every palestinian. That way, they will be less afraid of the terror organizations, who in turn would be much more afraid of them. (you could allow all Israelis to carry arms as well, for good measure.)
  2. It adovcates forcibly evacuating the Israeli settlements. By all means the Israeli Settlers have a right to live there as every lawful person has a right to live anywhere. The entire concept of immigration regulation and "fathers' land" is wrong.

    What is wrong is forcing other people to protect them living there. (as force is always wrong) This distinction must be understood and followed.

  3. Last, but probably most important is that it requires the mutual cooperation of both sides. One cannot expect the other side to follow his part of the deal, while my suggestion does not require the cooperation of the Palestinians.

If all of this seems to be absurd to you, just remember that I'm just an everyday libertarian. (well Neo-Tech Objectivist to be exact, but the political agenda is the same). As such I am doing my best to be loyal to Justice, Freedom, Individual Rights and lack of Government Control. This suggestion is perfectly in accordance to it.

I'm not trying to classify myself as the (Nationalistic/Religious) Israeli Right-wings, or the (Pragmatic and Regulation-enacting) Israeli Left. Instead, I'm trying to be Just, Noble and Free. It's a bit hard in Israel, where most people do not know what Objectivism or Libertarianism are, or sometimes even that this political option exists. But I'm handling it, as this is what my ideals dictate.

23 Dec 2003 (updated 23 Dec 2003 at 19:43 UTC) »

Studies

I now have an extended vacation as I don't have to study tomorrow as part of the Hanukkah vacation, which is nice. Meanwhile, in Statistics I had a difficulty with one of the home exercises. The problem was that we were given several distributions for the case in which there are two populations. And it was not clear from the page when to use which. But I think I can overcome it now.

Private Lesson in Perl

Someone who once drived me away from a Linux event and I later met in others, wanted to learn Perl or other Linux things that I can teach him. Today, we finally held our first session. I first asked him for what his experience was with Linux and programming. It turned out he worked as a sys admin in a company with several Linux installations, and had very little experience in programming (not even from school). Then he told me that he asked people what should he learn first: some said "shells", others "Perl" and others "C". This is without taking Python, Ruby and Tcl into account. :-).

I said I think we will start with Perl. The reasons for it are that it is easier to write shell scripts in Perl, than it is to write many Perl programs in shell, so there will be a faster path to results. Retrospectively, I think there are other reasons: I would not recommend C as a first language, because it's two low-level and as such newbie-unfriendly. Also, learning shell first may have a relatively crippling, because shell programming has a different philosophy than either Perl (and friends) or C.

So I began teaching him Perl by following my Perl for Newbies series. I found out he was quite proficient in vi, and a fast typist, so it was not frustrating to watch him code. During one hour (which was the sesssion length) we covered most of the first lecture (which is originally intended for two hours). I realized that there were many things he did not understand at first, which I had to explain to him verbally. This may indicate a deficiency of the material I prepared as far as people who are complete beginners to Perl are concerned.

During the lecture I made a couple of small comparisons with Python. For instance, I showed that "+=" and friends did not exist in earlier versions of python and "++" still does not.

I ended up receiving 50 NIS for the lecture, but it was fun any way you look at it.

Site about Giving Presentations

Someone read in this weblog that I'm going to give a presentation, so he pointed me to his site which is dedicated on how to give effective presentations. I checked this site and it is very good, so I'm mentioning it here.

Gimp Gradient-Fu Patch

I finished writing the patch, and it even has one more function that was not present in the previous incarnations of it. You can check it out on Gradient-Fu for GIMP 1.3.x page. Now I have to wait until the development of GIMP 2.1.x to start for it to be integrated. Or I can accelerate its accpetance by resolving standing issues with GIMP 1.3.x myself... ;-)

WWW::Form

If you remember, I started using WWW::Form in the past for the IGLU Jobs tracker and had to modify it to suit my needs. I haven't heard from its developer for quite some time, after sending a couple of messages, so today I decided to try and reach him again. I emailed him asking if he received my last modifications, and if he'd like us to cooperate somehow on its development more closely. He answered me saying he would gladly accept me as co-developer, and we agreed that we will use a Wiki, and a version control system, and modify the module extensively together.

Hopefully something good will come out, because it's preferable not to fork it and the developer seems very much alive and kicking.

Some Threads of Possible Interest

Check this thread on Linux-IL about the Hurd for some discussion on how good Hurd is, and some speculations if it'll ever be ready for prime time. (taking into account the fact that Linux has been for years) It's quite amusing.

Here is a Hackers-IL post I wrote about the "Great Divide" between Windows and UNIX.

Finally, here are my answers to the recent Microsoft Poll as I posted on the appropriate Newsforge article about it.

Advogato Replies

movement: congratulations for your new job. I know it took you a long time to find it, and I hope you'll enjoy it and make a good living out of it. Solaris should be a very interesting thing to work on.

lindsey: I recall the time I had to convert MikMod (which was originally written in C) to Java. During that time, my code generated a bootload of exceptions because I did not trap some file I/O related exceptions. At first I tried to throw them to oblivion, but then realized it only made the situation worse, so I ended up catching them at the function that did the I/O and returning an error code instead. Doing exceptions logic properly is very hard, and the code already had error handling in the function return values.

I really like the fact that in Perl I don't have to explictly catch any exceptions, because it is very suitable for Perl. I'm not sure it's appropriate for C#/.NET, though, which is much more Java-like.

21 Dec 2003 (updated 23 Dec 2003 at 18:45 UTC) »

YAPC::Israel::2004

The presentations list for the "Yet Another Perl Conference" in Israel, 2004. So, it's final that I'm going to give a lightning talk about the Template Toolkit and a 60-minutes long presentation about LM-Solve.

Now I need to prepare the presentation about the Template Toolkit, but first I'm waiting for the notice about which formats are acceptable for submission ,so I won't work twice. Meanwhile, I'm planning it...

KDE Problem and its Resolution

The "Konqueror" and "Home Directory" buttons of the KDE panel stopped working. I found out the very command line kfmclient openProfile webbrowsing did not work at all, not even from the konsole. (got a "KDEInit could not execute kfmexec" or something like that message). After some investigation, I realized that it worked for different users.

At first I was able to resolve it by creating a $HOME/.kde/share/kfmclientrc file with some settings there. (this is after some investigation of its source code). But then yesterday, it broke again. Renaming .kde to .kde-bak resolved the problem, but made me lose all the settings. So I started renaming directories inside it, and seeing if they change anything. After a long time I found out that renaming applnk-mdk resolved the problem. Then I tried just deleting the konqueror.desktop file there which also made the problem disappear.

All in all, I wasted a lot of good hours on this problem which could have been invested in something more productive. Whatever, now I'll know what do when it happens again.

Gimp Patch

Now I can tell that I updated my Gradient-Fu patch to the latest development version of the GIMP. I received some helpful comments from the core developers on the mailing list and on the GimpNet #gimp IRC channel.

What this patch does is create Procedural Database functions for manipulating gradients, thus allowing them to be manipulated from withing scripts. Here is the Gimp Bugzilla Issue for it, where one can follow its development.

The patch is not complete yet, as there are some gradient manipulation routines that can still only be done in the gradient editor. But I'm getting there. The patch was scheduled for inclusing in Gimp 2.2, because the developers are anxious to get Gimp 2.0 out soon.

What is "Computer Science"

kilmo: I think that defining "Computer Science" solely as "The science that deals with the study, implementation and creation of algorithms" is incorrect and tries to convey some political agenda. By all means, "Computer Science" deals with the entire whole of programming for a computer, not just theoretical algorithms. What you describe is better defined as "Algorithmics".

Let's look some definitions. The Wikipedia entry say: "In its most general sense, computer science (CS) is the study of computation and information processing, both in hardware and in software. In practice, computer science includes a variety of topics relating to computers, which range from the abstract analysis of algorithms to more concrete subjects like programming languages, software, and computer hardware. As a scientific discipline, it is a very different activity from computer programming and computer engineering, although the three are often confused. ".

The Free Dictionary says: "computer science - the branch of engineering science that studies (with the aid of computers) computable processes and structures". And you can find more in Google.

So limiting the definition of Computer Science to pure theoretical Algorithmics is probably not a rational thing to do. By all means, it includes many areas that are more practical and applied.

A Productive Day

Yesterday was a productive day. I prepared several questions from the pending Statistics homework, and also worked on the GIMP patch, managing to do a lot of work. Eventually, I was interrupted for a while by the KDE problem, but I was still very productive. Today is a bit slower with all the E-mail reading/web-surfing/arrangement stuff, but I hope to get on the swing soon.

Haifux Site

Haifux has a new site courtesy of ladypine. It is based on her and mine original design of the syscalltrack site. I also contributed some comments in the discussion about it in the mailing list.

An anatomy of Wikis

Recently I had to work with several Wikis, and I can testify that the syntax or implementation of several of them could made using them a bit frustrating at times. For instance, Chiq-Chaq's heavy reliance on JavaScript made it unusable on Konqueror. Also, Kwiki seems to have a relatively poor syntax, and some things are simply not possible in it. It is however, supposed to be very easy to set up.

The Wikipedia seems nice for what I dealt with so far. It has a very powerful syntax and also allows uploading of images and stuff like that.

17 Dec 2003 (updated 21 Dec 2003 at 08:54 UTC) »

Studies

I had two tests one in each subject I'm taking this semester. The Thermodynamics test went pretty well, but I'm not entirely sure I did it perfectly. I'll see what my grade will be.

Yesterday, I had a test in Statistics. It went so-so, and I had difficulties with some sections. Nonetheless, both tests just protect the main score from the main test, so they are not critical.

I had a relatively hectic few couple of days. On Monday, I had to get up early to attend the Statistics lessons (as usual), and in the evening I had a Haifux meeting, which meant I arrived home late. On Tuesday, I had the test in Statistics from 17:30 to 19:30, and I returned home again, and went to sleep at about 10:30 PM. And today (Wednesday) I had to get up early and go to the Thermodynamics lessons. But I'm glad it's over and now I have an extended weekend in front of me.

Perl Meeting

I had a Perl Meeting last Thursday. I went there by bus and had to walk. When I came there, there were few people there and not too many joined us. But it was fun. Before the meeting, Ran collected money from everybody and we went together to buy the snacks. Then the presentations started.

Shlomo Yona gave a presentation about the Perl Garbage Collector. I could not say he renewed too much to me. (except in telling that the Java garbage collector supported distributed GC). Still, it was a very good and fun lecture. It was followed by a small demo by Ran Eilam. He demonstrated how he started from the Java test in Eclipse, and gradually wrote the rest of the code with the help of the IDE that did a lot of code writing for him. We concluded that it would be very difficult to do it with Perl, because it's a more complex langauge and such that is much less easy to manipulate.

Then, some people had to leave and could not hear me give the presentation on Haskell. The audience asked many questions during the lecture, and I had to explain some of the simpler examples in detail. Eventually, I ran out of time and skipped some of the more complex ones. But it went quite well, albeit I'm not sure how many understood it.

During the meeting, I returned the "Writing Perl Modules for CPAN" book and took the "Perl and XML" book (by O'Reilly) which was something that someone returned.

Afterwards, the guys decided to go to the bar, including the one who was supposed to give me a ride. I decided to skip it as I was tired and found a ride with Thomas Maier. On the road, we talked about his job and my educational/employment status.

Ran Eilam wrote a meeting report on the new Israeli Perl Mongers Wiki.

Haifux Meeting

On Monday, Aviram Jenik gave a presentation about Spam to the Haifa Linux Club. The presentation was very entertaining and fun, with many interruptions from the audience to discuss the dynamics of Spam and how to deal with it. I was especially amused by the "Time Traveller stuck in 2003" junk-mail he received.

After the Meeting, Aviram gave a ride to Tzafrir Cohen and me until the Netanya Junction. I called Dad on the way, and he drove us from there to Tel-Aviv.

Reading

I finished reading Mary Poppins. It's a very nice book, and I might order the sequels if I feel like it. I also read more of "Extending and Embedding Perl". I also read things I found on the web like myths open source developers tell ourselves.

Hacktivity

I added some idioms to the page in progress of Idiomatic Perl. The Wiki implementation gave me some trouble and sometimes reported the page has changed during its editing, which it didn't.

I also added some things to the newly set up Israeli Perl Mongers Kwiki: a page for Israeli Perl Projects which is now more up to date than the one at the regular site. (I imported all the existing content there); and I also started a book reviews section, where I place my book reviews without having to wait for the webmaster.

I also downloaded and installed the latest GIMP 1.3.x and played with it a bit. It's very impressive and polished, but so far it seems that the Script-Fu logos scripts got broken. This may have been fixed according to a message I saw in its developers list.

9 Dec 2003 (updated 25 Sep 2004 at 11:51 UTC) »

Wine Lecture at Telux

The Sunday before the last, Shachar Shemesh gave a re-run of his lecture about Wine to the Tel Aviv Linux Club. This time, the lecture was more polished than the time he gave it on Haifux. He threw a lot of funny jokes throughout the lecture and it was very entertaining. Shachar is a great lecturer.

Next I have a Perl-IL meeting, with presentations by three people including me. In the Haifux front, there was a meeting yesterday of a post-mortem to the Welcome-to-Linux series. I could not attend it because of an exam I had (see below). In any case, next week, Aviram Jenik will give a lecture about Spam, which I look forward to.

Studies

I had to hand out three statistics homework sheets yesterday. Two exercises gave me some trouble. One of them was tackled, but the other - a very similar one yielded a solution that was similar to the correct one but not identical. I ended up handing it as is because I could not find what the trouble was, despite the long hours of staring.

Otherwise, I had an exam in Thermodynamics yesterday at 18:30. It came out quite convenient to me because I study that day and plus my father had a conference at the Technion, so he could give me a ride there and back. I woke up early so I was quite sleepy throughout the day, but during the exam I was OK. The exam was not too hard, but I'm not sure I did all the exercises correctly. I'll see what my score is.

Yapcom

I finally got Yapcom to work. As expected it turned out to be a problem in which the E-mail could not be sent. After that was fixed everything worked. Still it is a bug.

Meanwhile, I bugged the other developers with comments about the PATH_INFO environment variable and other such things.

IGLU Jobs Tracker

I implemented an ad-hoc administration screen that so far only displays the records with some inactive links. Now I have to restrict it to a a certain logon, which would take some work. Having done it, I was glad I used Template::Toolkit because I was able to extend the template of the job to display the links.

I talked with Eran on the ICQ about it and he gave some useful commentary which I may choose to implement.

Reading

Read some more of "Extending and Embedding Perl". The book is not too interesting so far, but I suppose it can prove useful if I need to write a Perl extension.

I also read another chapter of Mary Poppins. Maybe I should get myself to read more fiction.

Dmoz

Another day - more pending links. Only this time, I was able to clean the pending links out of the User Groups category. Now, all I have to do is add all the remaining groups there. Guess, it's time for the editorial about it.

fc-solve-discuss

There was quite a lot of action recently in fc-solve-discuss. It started when Danny A. Jones posted some questions that were raised after he wrote a Breadth-First-Search Freecell Solver to find optimal or near-optimal solutions for Freecell. Then it took on a more active tangent when Eric Helser posted some question on how to actually write a solver, as he had problem doing so. So, the guys and I helped him.

I hope this trend goes on.

2 Dec 2003 (updated 25 Sep 2004 at 11:48 UTC) »

Computer Science and Software Engineering (cont.)

kilmo: I agree with most of what you said in your entry. I agree that the CS department should teach theoretical computer science, because these are the foundations that a good programmer eventually needs to know or at least understand. I don't agree that the definition of Computer Science is "the science that deals with the study, implementation and creation of algorithms". This is more like the definition of Algorithmics which is a subset of Computer Science. CS is more inclusive and also talks about writing modular code, computer language design, OS design, and everything else that has to do with writing software for a computer. (hence the name).

Between the time the algorithm is written in paper in pseudo-code, to the time it runs inside the computer, many choices can be made that will affect its performance and ease of integration. I remember one time where two optimizations I implemented in Freecell Solver made the program run about 50 times as fast (in brute, with the overhead of executing a separate process for each of the inputs), while not decreasing the overall complexity at all.

And naturally, there is the art of designing a software right: choosing the right tools and APIs, creating good interfaces, writing modular code, etc. Then, of course, there is software management: working as a team, building a schedule, writing tests for the software, using version control, bug tracking procedures, and so on. All of these fall under Computer Science. Unless, of course you want to claim that they (and CS) are included under Software Engineering, and then we can continue the argument over the meaning of terms ad infinitum. :-)

Doclanx

I wrote a Mission Statement for Doclanx. I don't intend to publish it until I have some serious content to show for, but at least it's there to organize my thoughts. Next, I wrote a small section about how to learn Perl in the first place, so people can understand the reference.

Meanwhile, there was a lot of messages posted to perl5-porters on the original thread. Most of them were bashing me, but some came with bizarre albeit perhaps useful suggestions.

IGLU Jobs Tracker

Worked a bit on the IGLU Jobs tracker. I converted it to use CGI::Application and fixed some bugs and made the interaction a bit nicer (added colours to the table rows, etc).

Someone reported a bug in which transmitting an illegal parameter in the area, caused the server to display an "Internal Error" error. He initially thought it was an SQL injection bug, but I realized it was a non-harmful Perl bug, that could have been caused with any area that's not on the list.

Next on my agenda is a small redirect bug that someone else has discovered (relatively by mistake), and converting the code to use Tangram. And then ton of other stuff. :-). So many things to do, so little time.

Wrong Predictions

In Java's Cover Paul Graham says: "Sun's business model is being undermined on two fronts. Cheap Intel processors, of the same type used in desktop machines, are now more than fast enough for servers. And FreeBSD seems to be at least as good an OS for servers as Solaris. ". Of course, what he said was true, only that Linux became the most common operating system for Intel servers.

This reminded me of a similar prediction in the C++ Programming HOWTO: "As memory (RAM) prices are dropping and CPU speeds are increasing, scripting language like PIKE will EXPLODE in popularity. PIKE will become most the widely used scripting language as it is object oriented and it's syntax is very identical to that of C++ language. " Obviously, Perl, Python, PHP, Ruby and Tcl are more popular than Pike is, and there isn't a visible trend of Pike becoming more popular. Guess that similarity to C++ is not the top priority when choosing a scripting language.

29 Nov 2003 (updated 29 Nov 2003 at 12:05 UTC) »

Computer Science vs. Software Engineering (cont.)

kilmo: in regards to your comments regarding the usefulness (or lack thereof) of the output of the Computer Science department. First of all, it does not invalidate my point that most students come to the Technion's CS department to learn how to program or at least to get a certificate that will show their competence as programmers. (whether it indeed does is a different question).

Secondly, in regard to the post itself: my condolences. ;-). It is highly possible that 20% of the faculty cater to 80% of the students as far as their research is concerned, while 20% of the faculty cater to 80% of the students. From what I know of the Electrical Engineering department, a larger part of their research is more down to earth and useful. Maybe that what happens when you have a department dedicated to a theoretical science.

I know that in M.I.T., for example, there's one department for both Computer Science and Electrical Engineering. This removes the duplicacy of the courses between the two faculties that we see so much in the Technion, and also possibly injects a lot of practicality to them CS researchers.

Linux in Action revisited

Well, my suggestion to turn the Haifux' Welcome to Linux series into a shorter "Linux in Action" series was rejected (possibly for a good reason), but Linux in Action could still be a good idea as a complement to it. For instance, we could have a day full of Linux demonstrations, in a similar manner to the Linux Circus that took place a couple of years ago.

A Good Reference for Perl

Eran has recently installed RedHat Linux 9.0 in order to learn how to program better. He wanted to learn Perl, having heard so many good things about it, and so started out with my "Perl for Perl Newbies" series, which he claimed was very well written. Then he wanted to look something in the perl man pages, and said he could not make heads nor tails of them.

As he wasn't the first one I heard to express this amount of unhappiness from them, it got me thinking about writing a better reference for Perl, in a similar fashion to what Python and PHP have. So I brought this on perl5-porters and received many heated responses. Apparently, many people believed that the man pages should be left in their current not-so-idiot-proof state, or that it was rightful to expect people to pay to get a better reference.

From my experience getting my patches to the documentation into bleadperl, it was a relatively painful experience. While there were many people who actually had meaningful comments, there were always those few who complained that it's making them too wordy, or loses character out of the document. Eventually, most of my patches were accepted, but it was still a painful procedure, as it seems there isn't a consensus in the perl5-porters mailing list on the exact purpose of the perl*.pod documents.

Add this to the fact that I'm not sure that the Perl POD documents can ever be made very suitable for beginners, and that their organization is a bit lacking, and I think it may be a good idea to simply start a documentation project ("Doclanx" or "Reflanx" both named after the Phalanx project) from scratch that will produce a comprehensive reference that is more suitable for beginners. Our own codebase, our own rules, our own progress.

What I would like to do first or as I start is collect user stories about the existing documentation. That way we can tell how to best organize the new one.

ISP/Phone Company Support Incident

A couple of days ago I sank into an all-time low: I called the ISP support line and he actually guided me in something. It all started when my Internet connection got hanged out and nothing I tried to do to resolve it (restarting the modem, restarting the router) helped. So I called the ISP line. A support person answered and when I told him I had a NAT, he said I should connect the computer to the modem straight or else he can't help me. So I did (I have two Internet cards). Here he guided me through the procedure (my Windows networking configuration skills got a bit rusty lately), and then it still did not work. Then he heard that the modem was configured to use PPPoE, so he said that we either need to set it back to PPTP or he can't help me. (as usual, these support people are more clueless than us hackers or power-users). I knew that my father would not like it so I gave him my father.

My father got angry, and eventually disconnected and tried to contact the Phone company support team. They eventually said that the line was probably OK, and possibly the modem mis-configured itself. So we reset the modem (with a tooth-pick), and it went back to PPTP, but we were able to connect to the Internet again. Pheewww! Now we need to set it back to PPPoE sometime, but still it wasted a couple of good hours.

Browser Wars

I read the beginning of the Browser Wars II: The Saga Continues article. It was quite entertaining, but short of useful information. But it got me thinking: as Mozilla (and browsers based on its engine, like Firebird) is mature and usable and MSIE is buggy as hell, and will only ship with new versions of the operating system, we can expect the user-base of Mozilla and similar alternative browsers to actually grow, at least not if it weren't for all those MSIE-only sites. But I thought of a way to accelerate it: start creating clean, standards' compliant web-sites that may or may not look well in Internet Explorer. I'm not saying that we should break them on purpose. Just not test them on it, and if people complain that they break tell people to switch to Mozilla or whatever. (as it will be good for them).

The question naturally rises why it is not equally as worse as web-sites that are MSIE-only. There are several reasons:

  1. MSIE 5.5 and above are specific to a certain operating system and architecture. Mozilla and similar browsers are truly cross-platform. - as such MSIE may not be available on the development platform of the web designer. I design all my sites and have tested them on MSIE by using the laptop. Now, I'm not going to bother.
  2. MSIE is not open source. Mozilla is - I cannot fix the bugs there even if I wanted to. If bugs exist in an open source project I can either fix them myself, hire someone else to do it, or blame myself for not doing either. With MSIE, I have every right to blame Microsoft for their incompetence. And I can have them eat their own arrogance.
  3. Users can always switch to Mozilla or whatever - I can always tell them to do so. On the other hand, I cannot switch to Internet Explorer if I'd like to use Linux (which I do).
  4. MSIE is not standards compliant while other browsers are - in fact, a prominent Microsoft engineer said standards-compliance is not a high priority for the MSIE team. Since I design according to web standards, I don't want the new Netscape Navigator 4 to be in my way.
  5. MSIE is not going to be maintained independently - the only prospect of getting a browser upgrade for MSIE is to buy a new OS. Buy a new OS just to get a new version of the browser? That's the joke of the month. Other browsers come with periodic upgrades with many improvements - all for free.

So that's it. I'm going to use such cool stuff such as CSS child selectors (html > body), max-width, Alpha-transparency PNGs, and :hover on elements besides links, as well as the full XSLT specification. I'm not going to break compatibility on purpose, but I certainly won't prevent a cool standards-complaint feature from inhibiting my pages. And I can't run MSIE on my choice of system, so Microsoft have themselves to blame if it doesn't work.

Finally, I may put the no-MSIE icon on each and everyone of my sites. With a link to a page explaining this new WWW order. No more Mister Nice Guy! Microsoft: adapt or perish!

(this scheme may not be an option for your organization's sites, but I'll apply it to mine)

27 Nov 2003 (updated 25 Sep 2004 at 11:41 UTC) »

dmoz.org

I finally became editor of the dmoz.org Linux User Groups category. I've been cleaning it up by accepting pending links, and handling errors. When I finish with all my current pending links, I'll probably post an editorial on Advogato, asking for people who are members of LUGs that do not appear them to submit them there. As it is, it is still very lacking.

Thoughs about XML

movement: I agree with you that Linus Torvalds does not understand too much what XML is all about. I don't think it's good for anything. I also, many times invented my own configuration syntaxes instead of using XML, because they were more human readable and maintainable or suitable for what I had to do.

Nonetheless, XML nested nature and the fact that you can apply arbitrary transformations to selected pieces of text, and that you also have attributes are sometimes priceless. Linus' indented example can only get you so far, before you start re-inventing a lot of XML and poorly.

Usually, XML is not very suitable for configuration files which need to be human editable. I don't know if the LM-Bench configuration syntax requires XML or not (I never used LM-Bench), but there are times people should use it. I defined my own XML syntax in two occasions already, create a lot of XHTML and DocBook documents and uses it indirectly in some programs (like OpenOffice).

Women in Linux

I hope I don't get flamed for this, because I really don't mean it, but here goes. After my discussion in the LinuxChix issues mailing list, I spent some time corresponding with one of them. One of the conclusions I reached was that until there were more women in prominent positions in the open source world, then female Linux enthusiasts will always suffer from being viewed as second class citizens by their male peers. (I'm not saying people should view them this way, but they will).

In a sense, in the open source world, as in other worlds, there is the iceberg effect, in which there is always a close to the spotlight elite. For example, in Holywood we hardly ever hear about someone who is not an Actor or a Director (or sometimes screenplay writer), even though the other people involved in producing movies are much more numerous.

If someone told me "Women can't write Novels", I could point him at a great deal of excellent Women Novelists out there. But if someone told me that "Women can't hack open source software", I'll have a harder time, because the examples are more isolated and few.

So my question is: why? The "Encouraging Women in Linux HOWTO" goes a great deal to dispel some of the common myths about why Women are and are not deterred from computers. But all these reasons can only go so far to explain why we see so few of them as project heads or first-class programmers.

Even if we assume that there are fewer Women Linux users than men, then we still have to accept the fact that the number of first class hackers who are female is even lower.

One thing I believe is true, is that less women believe that programming is fun. Many male software professionals share this view as well, but among women it is more severe. Even the correponsdant I talked to emphasized that she much prefers system administration to programming, because the former was more "social".

So, what can we do to convince people (men and women) that programming is fun?

Hacktivity

Worked a bit on the IGLU Jobs Tracker. It is almost ready for replacing the original one. There are still a lot of things on my to-do, but they are not as critical.

I also contributed some feedback and a few small patches to Yapcom, but have yet to do a substantial contribution for it. (partly because it does not work on my system for some reason).

Finally, I wrote an essay titled "The Joy of Perl", which explains why I like Perl so much. It is available upon request. (send me an E-mail)

Reading

Made some progress with "Extending and Embedding Perl". Also, read many things on the Net, among them Paul Graham's Java's Cover. The latter is an excellent article, as most of the things by Paul Graham. He was right that there was something very fishy about Java at the time. And I still think it is over-hyped and much less capable as a language than other languages I know.

Talks with Laymen

I went to the Barber on Sunday (finally - my hair was way too long). During the hair-cut, I had a conversation with him, told him about my degree and my projects, and started explaining about Open Source and what it was good for. ( he naturally could not understand why anyone would embark on a software project which he did not intend to sell) I could not explain anything I wanted within my time frame - maybe next time or I could stop by. At the end, another patron came in, who tried to help him with a computer problem he had. Turned out he worked in 012 support and knew Jess.

Yesterday, on the way back home, I talked with a woman on the ride back home. The conversation started from politics (a flat income tax, the settlements in the west bank, the poverty-reduction paradox), and I ended up telling about Neo-Tech, Julian Jaynes' Bicameral mind theory, "Feeling Good" and cognitive psychology, and finally open source software in a nutshell (for completeness sake). She actually knew about Mozilla and heard about Linux, and I explained her the four Freedoms of Free Software, etc. She agreed that most of what I told her indeed made sense, but naturally could not convince her of the my entire philosophy within the time frame.

She told me her son was now studying Math, Physics and CS in the Hebrew University as part of the IDF "Talpioth" project. (a famous project aimed to create very knowledgable and intelligent army researchers). The problem was that each year, several people whose grades are low are removed from the program, and so there's a lot of pressure to suceeed. I'm sure glad as hell that I don't have such constraints in my studies.

22 Nov 2003 (updated 22 Nov 2003 at 12:47 UTC) »

Job Tracker Revamp

I've decided to take some time and revamp the iglu.org.il Job Tracker. I first decided that since practically everything I had in mind was going to be different, I'd be better off starting from scratch. But, then I thought better of it, and started from the code I already have, and don't regret it. I already accomplished quite a bit and only been working on it for a couple of hours net.

Yesterday, I went to sleep at 23:00 because I tried to track a couple of bugs. One of them ended being an Apache mis-configuration. Apparently, when you use ScriptAlias the plaintext non-executable .css files are not served from some reason. Trying to solve it, required writing an ugly configuration code, with a regular alias, and then association of *.pl files with the cgi-script handler. But it works! ( I wish I would remember more of "Apache: The Definitive Guide", but I don't)

In any case, here are a few insights from the process:

  • At one time, we needed to add a posting date directive to tell when the job was posted. Someone volunteered to add it, and he created a workaround, that treated the "PostDate" field especially in the code. I still thought back then, that it was a good ad-hoc solution for a complex problem.

    When I did the change yesterday, I did it the right way, by designating the field in the fields' list with a few special directives, that were then treated by the code regardless of the field name. This took me exactly 5 minutes. Go figure! (this reminds me of what Joel Spolsky told about the Excel Drag&Drop Prototype).

  • Someone was unhappy with the jobs tracker before and suggested he would revamp it. I sent him the code, and he said that the first thing he'll do was convert it to Python. I told him he should rather not do it, because I don't know Python very well. So he told me that as an ex-Perl hacker, I wouldn't have any problem understanding his code. (I forgot to tell him that I would have a problem hacking his code).

    Anyway, with his attitude, I knew nothing would come out of it. Last I heard of him, he said his code was "close to be finished", but he then neglected working on it. And my code is working perfectly right now. (in Perl)

  • More recently, some other hacker I met, said a completed system he wrote in Python could be used as a replacement for what we have now. However, he turned out to be quite unresponsive, so I don't have access to the code now.

Reading

I read Paul Graham's Why Nerds are Unpopular article. It was quite a good read, but I got the central message right at the start, and then it continued chewing it. I also continued reading "Extending and Embedding Perl". It now covers the Perl 5 API, which has a lot of functions, and it is getting quite tedious. Nevertheless, it is probably a better reference and introduction than the Perl man pages on the subject.

Studies

In Statistics, we have to submit each three consecutive exercises in the following lesson. Since I joined late, I had to prepare all of them in one week. It was quite a lot of concentrated work, but I did it.

Other than that - it's fine. Thermodynamics seems quite easy so far and I understand almost everything. I hope this situation will last.

LM-Solve Article

I received a few comments for the LM-Solve article. Ran Eilam (my former boss at Cortext) commented that it was very well-written and that he understood everything. He did say that it raised many questions that will be addressed at the next meeting.

A certain correspondant also responded, that a pattern found in the code was discussed in the perl6-language mailing list, but also that there's a more efficient algorithm (which he sent to me). I acknowledged this was the case, but said that I didn't want to invest time thinking how to do it right when I wrote the code, and also that the original code was conceptually simpler.

Yapcom

My comments regarding Yapcom (the Perl Conference mangement software that Israel.PM is writing) sparked an interesting discussion between Gabor Szabo and I in its mailing list. I commented a bit about the Subversion repository organization. I also had trouble getting all the tests to succeed, and was able to solve it with some consulting. Eventually, a patch of mine was accepted there.

Bill Joy Interview

haruspex: I agree with what you say about the Bill Joy interview. He seems incredibly cynical and pessimstic. His comments about Linux are also strange:

Re-implementing what I designed in 1979 is not interesting to me personally. For kids who are 20 years younger than me, Linux is a great way to cut your teeth. It's a cultural phenomenon and a business phenomenon. Mac OS X is a rock-solid system that's beautifully designed. I much prefer it to Linux.

First of all, there has been much progress in Linux since what was the state of the art at 1979. Secondly, in a way Mac OS X benefits from the progress done by the Linux community. Most Linux programs can run on Mac OS X as well, just as much as they can run on other UNIXes. Hell, some UNIX programs were also made to run on Windows, so in a way Windows people benefit from them, too.

Thirdly, Linux still has some clear advantages over Mac OS X, and many features that are present in Linux are not present there. (and naturally, vice versa). Finally, if you want to compete with Microsoft and Windows, Mac OS X is not enough. You can't tell people that they need to buy a non-i386 computer just to run the alternative Operating System that they want. Linux can co-exist on the same x86 computer as Windows, which is not the case for Mac OS X.

I'm not the kind of guy who would immediately denounce Mac OS X, just because some of the GUI and the desktop there is not open source. Also, while being a big fan of the GNU extensions, I still accept other more minimalistic UNIXes. But saying "Mac OS X Rocks while Linux Sucks" is kind of like saying that "Windows XP Rocks while Windows 2000 Sucks". (or vice versa).

18 Nov 2003 (updated 18 Nov 2003 at 20:38 UTC) »

Article at Perl.com

An Article I wrote to Perl.com was published yesterday. The article covers solving some types of puzzles with the LM-Solve framework. (which I authored). I did not mention I originally wrote it (which was some months ago) here because I did not want to ruin the element of surprise. I'd like to take the forum and thank two correpondants from Perl-IL who commented on an early draft of the article, and for Simon, the Perl.com editor, for instructing me how to do a thorough revamp of it, and for publishing it.

Maybe I should take the opportunity to clarify my opinion on Perl.com, because some people who read the "usabilty" of the Perl Online World for Newcomers misinterpreted it. I don't have a problem with perl.com as a site. It's a nice site, with interesting articles. I do have a problem that it is considered the homepage of Perl, because it is very much inappropriate for it. Recently, www.perl.org got a facelife, and regardless of its shortcomings, is already more suitable as a homepage for the Perl culture. So I suggest people to link to that as Perl and not to Perl.com.

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