Older blog entries for shlomif (starting at number 146)

Perl Beginners

I eventually posted a link to the essay to the perl advocacy mailing list. There I finally received a useful discussion of it. I'm not sure if I was able to convince anyone who was not previously convinced, but the discussion was to the point and of high quality.

I also added quite a lot of new things to the Perl Beginners site. I posted a link to it on a web-design mailng list I am a member of, and received a useful comment with a lot of suggestions for modifying the style and content. I applied most of them, and planning to apply another one in a different variation. (dedicating parts of the site for the various common uses of Perl like CGI, QA, Bio-info, Sys Admin).

Homework

My Software Systems partner drove to my Tel-Aviv home to sit on the home exercise. We had to write a rudimentary spell checker in VAX-11 assembler. It took us all day, but OTOH we ended up talking a lot about various things, and also took a long lunch break, to grab a byte in the commercial center, and to recreate. At the end of the day, it worked and we were very happy.

The simulator we work with is written in Turbo-Pascal with the old Borland style look, only a much worse behaviour and some exotic bugs and misbehaviours. I was told that a pair of students was assigned to rewrite it for Win32 using MFC, but they are not finished yet. What I could really use is a UNIX-style gdb-like application, with a basic scriptability and an ability to automate everything. As it is, over-GUIing it really decreases from its functionality.

Since the vacation involved a lot of Jewish holidays, my partner for Intro to Software Systems (a different course with a similar name, mind you) and I decided that we solve the exercise independently and then compare them. So in the recent days, I say on implementing the implementation of a linked list, as well as a stupid dating service management that uses it. The various operations, all have sub-optimal complexity if you ask me, but we were not requested to do otherwise. "Oh ANSI C, ANSI C! If only you were Perl..."

Now I still have the written part of it, which should not be too hard, and then the exercise in Financial Management. Financial Management is a relatively technical and dry course, but one that explains many important financial concepts such as interest rate, inflataion, loans, etc. and how they work behind the scenes. So far, I can wholeheartedly recommend it.

Impressions from the Mozilla Culture

It turns out Mozilla has spawned a great deal of culture and add-ons. I installed the Mozilla Google Bar, which is the Mozilla equivalent of the same offering from Google Inc. to MSIE. It's really nice and handy. I also downloaded a web-developers toolbar from somewhere, which is also very good.

Finally, I took a look at Cascades, a CSS editor for Mozilla. As it turned out, the page was an old leftover and its functionality was already integrated into the core Mozilla. The CSS editor is handy and gives a nice dynamic functionality. My only problems with it is are that it: (1) bloats the CSS stylesheet, (2) does not preserve its indendation, (3) has no decent HSV colour picker. Still, I could rip the styles I edited and apply them manually to my stylesheet, so it's better than nothing.

I am very glad that Mozilla spawned such rich culture, and I think what I discovered is just the tip of the iceberg. Is there a similar case with Konqueror/KHTML? Is it possible to program plug-ins and extensions for it in Python or in Perl or will C++ have to do? With Mozilla, many of the things were programmed in XUL and JavaScript, which is a much better idea as far as the programmer is concerned than messing with C++.

The Go-Linux Conference

A conference for promoting Linux in Israel took place in the Hilton Hotel some days ago. There had been a lot of buzz about it beforehand, and a lot of prepartions. I believed I was going to study throughout the entire today, so I did not took a very active part. I eventually attended the event from about midday, after attending a class in the morning. I must say it went extremely well and everybody seemed to think so as well. Hackers and Suits integrated nicely to give an exciting yet accurate depiction of the Linux world and potential. The conference was financed by People and Computers and many industrial companies.

I came mostly to talk to people I know, but also attended a presentation, the free software developers panel and the Perl-IL meeting. I bought a Perl in Israel T-shirt for 50 NIS, but forgot it there when I exchanged some books. (the Israeli Perl Master have taken it, so I'll get it eventually).

Refer to the Linux-IL mailing list archive for April and my record of it.

Perl Beginners Site

My Perl beginners site moved to a more Permanent Location. As for the standard rant+suggestions regarding the suitability of the Perl online world for newcomers: I was not happy from most of the comments I received in the Advogato post. Most of them beat around the bush in one way or another.

I am going to do my best to improve the situation and hope others would take notice of it as well. At the moment, too many resources of the Perl world are claimed by too few entities. I'd like the situation to improve.

Studies

Technion studies have began. I'm taking four courses this semester. Three of them were taken out of understanding that they would probably be easy to me and the other one (Micro-computers) interested me, and was also taken by a fellow Haifuxer. So far, I have quite a lot of homework assignments, but I still have a lot of free time. (maybe too much for my own good). I no longer have the Com-Net workstation due to the fact I no longer study there, and could not get a work there. This leaves me with the Technion facilities, which are inadequate for my needs at best. :-(

Perl Golf

I've been playing quite a lot of Perl Mini Golf lately. Perl Golf is a contest in which the participants try to write the shortest (character-wise) Perl program to achieve a certain end. This creates highly compressed and obfuscated programs, with some very unorthodox tricks, and lack of attention to conventions.

Perl Golfing is an addiction in which I routinely use gvim to edit two lines, trying to make the second one shorter than the original. I also tend to scan the core perl man pages a lot looking for clues on how to make it shorter. So far, I've been doing relatively well, but there always seem to be some people who can find better (or slightly better) solutions, and it's a bit frustrating. Oh well.

I usually read the winning entry or entries and try to understand them. This has made me relatively fluent in reading Perl Golf code, which is quite amazing because these things look like absolute line noise. I wonder if some people can fluently understand vi macros... ;-)

IRCing

I spent most of yesterday hanging on the IRC. (despite the fact that I have a Micro-Computers exercise that I'd like to prepare by myself this weekend). I was able to help an Apache newbie (who actually uses Slackware and knows his way around Linux), with the Alias and ScriptAlias directives. I also discussed E-mail MTAs with a couple of people on the Perl channel. Then there was naturally, #offtopic on irc.kernelnewbies.org, in which topics ranged from the latest TPC-C results for 32-way Itanium 2 machines running Windows 2003, to SMP machines in general, to the history of ancient Europe, to Linguistics. In short: Life, the Universe and Everything. Off-topic indeed.

Certification

I certified wli as Journeyer, because of his work on the Linux kernel, and his vast knowledge. (I also taken into account the fact he writes his scripts in Haskell). He is already certified as a Master, but I'll have to know him better than my superficial familiarity with him to do so.

Hacktivity

Not much to show for, unfortunately, but quite a lot of small, relatively useless stuff. Been working on my Haifux Lectures Manager a bit. And then I wrote google.pl, a CGI (or mod_perl and friends) Perl script that acts as a mirror for Google. (I did not release it yet). I also made a coverage of the bugzilla bugs I reported, and found out most of them could be overcome or have been resolved. Kudos to the Mozilla team for the great work.

Per request of my Debian package maintainer, I updated the Freecell Solver config.guess and config.sub files to the latest avaialable from the GNU site. It took me quite some time to find out how to get them properly, and someone on the Autoconf mailing list helped with that. It is strange that libtool 1.4.3 which is quite recent does not contain them, but rather very old ones. Who can tell the ways of the GNU?

Some Thoughts about UNIX TCO

A recent Slashdot feature pointed to an Enlightening article about the TCO of a system with one central server and several X terminals. I've seen this X terminals, which can only be used to connect to a server over the network, and realize they require almost zero maintenance in comparison to full-fledged workstations. As far as a university is concerned, by using a server, one can install things in only one computer and allow everyone else to enjoy it, while a corresponding client-server architecture, would require installing packages on several different workstations somehow.

Now in a workplace where everybody administers his own workstation, the second option may actually make sense. But a university has farms with unpriviliged access. In the Technion we have many farms with such client-server configurations, and the software installed on it, is inadequate for the needs of many (if not all) students. And naturally, it is impossible to install new one, because it requires a system-wide installation. Strangely enough, there are also UNIX farms with a multiple workstation configuration, that suffer from similar symptoms as well. This X-terminals configuration sounds like a solution with a TCO from paradise, and it's interesting that the Technion did not deploy it widely.

Life

Still raining on and off, so not much biking for me. I'm spending a lot of time on the IRC lately, but still can get some useful work. Besides, when I start studying again this Monday, IRC would not be as accessible and much less recommended. So I'd better make the best use of it now. And even wasting time is good if you're enjoying it. ;-)

My father and I went to buy a new desk lamp for my Haifa apartment, right before he went to England. The light bulb holder there is broken, and so the room would be completely dark without it. Mom and I are going to set things up in the Haifa Apartment this weekend. At the time being, I don't spend too much time thinking about studying, but I suppose it will occupy quite a lot of my time, soon. Hopefully, this semester, should not be too hard.

Hacktivity

Worked a bit on my version of the Perl beginners portal, a bit on revamping the perl 5 perl*.pod man pages, and some on DocBookifying the OSS/FS document. I ran into a few problems with the PDF generation of DocBook (namely that Hyperlinks and footnotes are not functional), and I hope the good people of the DocBook-apps mailing list would help me soon.

Some IRC, E-mail, etc. Musings

riel is moving out to New Hampshire, while being in Brazil at the moment. The link is quite informative, so I suggest you read it if you are wondering about this issue. He also confirmed the fact that the core Connectiva distribution was open-source, much like RedHat, Mandrake or Debian. According to LWN, some non-free distributions proved to be a bit risky after they become defunct. Suse and Caldera are doing fine, but I still would not trust them.

I noticed a certain pattern with the #perl channels on the IRC. In EF-Net, #perl is reserved for expert talk and no CGI/Web/Net::IRC/newbie questions are allowed. That is reserved for #perlhelp. Of course, a lot of newbies log on to the IRC seeking perl help, and go to #perl, and without reading the subject-line (Rule #2 of GUI design: people don't read!), ask one of those common questions there. And I instinctively try to help them, only that both of us get flamed later on.

I think it would have been a better idea to create a #perlguru channel and designate #perl as a channel for everything including newbie questions. In Undernet, there's this permanent profile with a few scripts, that bans anybody who mentions the word CGI... I was eventually banned after using "c g i" and "c**" and posting a perfectly innocent URL. Again, something that could be remedied by designating #perl as a channel that accepts Newbie questions.

This all reminds me of Linux-IL and how newbie questions used to cause a lot of flamatory reactions. I think the situation is much better now there in this regard.

I visited #iglu at EF-net as well, which is the channel of the Israeli Group of Linux Users. I had a pleasant chat there. Someone asked me about Perl's XML writing capabilites, and I asked him what was wrong with print. Eventually it turned out he was used to a Visual Basic API that made sure the written file was a valid XML at each point. I.e: by appending all the closed tags to the end of the file. This requires an extra overhead, and I'm not sure is a good idea. (in a worst case scenario, it can increase writing from O(n) to O(n^2) for a UNIX file-system) Even so, implementing such an object should not be too hard.

I managed to help someone, I met on the IRC with a Perl CGI script he needed to write, and ended up writing the entire script and a form to power it for him. Which wasn't hard because all he needed to do was append a line to a file. It eventually turned out he was an Israeli, and we ended up chatting some more.

Finally, a flame-war broke out in Linux-IL regarding whether we as Linux developers should be considerate of the needs of Windows users as well. (e.g: use PDF instead of PostScript, maintain a port of the software to Windows). I'll let you be the judge.

24 Feb 2003 (updated 24 Feb 2003 at 07:34 UTC) »

"Open Source, Free Software and Other Beasts"

I wrote an essay aims to introduce open source, and free software to beginners. It covers the history, the meaning of the terms and some issues and myths. It's a bit longish (14 A4 pages), but otherwise aims to be encompassing enough.

Chen Shapira has reviewed the early versions of the document, and gave some very essential commentary (including how to trim them - they were even longer than now). nyh summarized the history of early UNIX and the BSDs for me, so I'm grateful for him as well as I was able to use it and link to it.

Hope you enjoy it and let me know what you think. At the moment, I've started working on another document titled "Free the Mouse!". It is a critique of current copyright law, a proposal for modification, and an explanation why it would benefit both consumers and content owners (large and small).

IRC Chatting

I spend quite a lot of time recently chatting on the IRC. I use the irc.kernelnewbies.org network, and usually hang on on the #offtopic channel. It's a cozy little channel with a good SNR, and some very enlightened and interesting people. It's a way to procrastinate I suppose, but then again, I don't have anything critical to do until I start studying.

wli and I have actually fought about our keyboard preferences (Sun vs. PC). wli seems to be very knowledgable and interesting. It turned out that as opposed to me he started working on computers from UNIX workstations, and later switched to Linux on PCs. I, OTOH, actually worked with DOS, Windows 3.1, and various Win32 variants. I think that you appreciate UNIX much more after you work on some really sucky OSes like that. I kept knowing they were bad, but not knowing why, until I started working on UNIX, where I saw a sensible system for the first time in my life. :-)

Life

It's still raining on and off. Yesterday, I was able to bike twice, but today's its raining. I'm going to start studying a week from now on Monday. I eventually decided to take a semester off instead of a year off. At one point I believed I had enough recreation, but now it seems that I'll miss having all this free time. Oh well, the Summer vacation is not far away, and there are some holidays and weekends as well.

I do wish to be able to hike sometime in the springtime. It's been a long time since I've been outdoors, and I miss the wildlife.

CVS, Subversion, BitKeeper and the World

raph: I am glad to hear your account of CodeCon. It's interesting to learn the GIMP guys now work for Google. From my impression Kimbal and Matthias did a tremendous work on GIMP and Gtk+ and came up with a very good design and a solid codebase. Of course, they later completely disappeared from the GIMP scene, and I did not hear from them or about them since, despite the fact I've been following GIMP development quite closely.

As for BitKeeper: according to my analysis its gratis license is not suitable for open-source projects. (I do not wish to start a flame-war here). This stems from my own unhappy experience, which was partly my fault, but nonetheless, could have been prevented if an unfortunate BitKeeper license change did not take place. Naturally, the subsequent non-compete clause, has made it impossible for me to even experience with it, and I believe this is the case for most hackers out there, who do not like BK enough to allow for it interfering with their further hacktivity. Furthermore, its license started from an almost free software one, and was changed several times in the past, making it very restricted now. There's no way to tell how it will be restricted in the future, which will make one unable to use it.

I cannot comment on its suitability as a commercial product much. While it is a very impressive and powerful product (and the McConnel/Joel test instructs that a software house should have the best tools money can buy), I'm not entirely sure if I like the attitude of BitMover towards free software developers to give way to its use.

After BitKeeper I experienced with several systems and eventually found that Subversion was very cute. I think BitKeeper is more powerful, but Subversion is still very usable and reliable. I now use it instead of CVS, for most of the things I do. As for WebDAV - I actually think it's an advantage. First of all by being over HTTP, it means that those pesky HTTP-only firewalls will like it; and secondly, I can browse it using a web-browser which is convenient for finding what you want to find in the repository. (and is a ViewCVS on ice) Thirdly, you get HTTPS and encryption and authentication for free.

And not everyone here uses Emacs, mind you. ;-) (I am a gvim and joe guy myself). Subversion should be a suitable alternative to BitKeeper (much more to CVS) once its out, and could be used by free software projects and software houses with a tight budget. (BK is kinda costy). Note that a non-HTTP-based transport is under development now, should you find it too slow.

I am glad the configuration management session went very well. I just really would wish Larry McVoy was a bit less posessive of BitKeeper and more understanding that it takes more than technical superiority alone, to appeal to free software developers.

22 Feb 2003 (updated 23 Feb 2003 at 18:22 UTC) »

Certification

Certified ahu as Journeyer, out of his work on PowerDNS and his interesting homepage. Met him on the IRC today, and we talked about Thread Local Storage in gcc 3.3 and other stuff.

Update:: met lypanov on the IRC today. Certified him as Journeyer as well.

Certification

Certified RoUS as Master, because of his amusing homepage and work on Apache and other projects. I stumbled across one of the pages of his sites on Google, and went to the root of his homepage. Besides, he was already certified as Master and certified himself as a Master, so it was common courtesy.

He calls himself "Rodent of Unusual Size" at Freshmeat, and now I realize RoUS stands for it. RoUS, is "The Princess Bride" your cult movie as well? "'A battle of wits? [nod] To the death? [nod] I accept.'; 'Great, so pour the wine'"

Update on my goings

I spent the last time hacking on all kinds of things and nothing in particular. I managed to bike a lot (when it wasn't raining) and enjoy myself. Otherwise I maintained a low online profile, because I figured out that absence makes the heart grow fonder, and I ended many people's fuses beforehand.

I'm starting to study again in the Technion on March 3. Otherwise, I'm perfectly fine: alive and kicking.

CLAN (or more accurately LKMB) gains flesh and blood

I added an install directive, created a new version, and announced it on the Linux Kernel Mailing List. I received some replies. One said that it was broken, and a chat on the IRC gave me some info on how to fix it exactly. I also registered the namespace on CPAN.

My sister occupied the dual-boot machine for a large part of the day (chatting with MSN messenger) so I could not continue hacking. I spent the rest of the time fixing the "-man" flag and the Pod::Usage stuff. Now it installs something under /usr/bin (which contains the appropriate POD) and thinking about it I realized it may eliminate the need for a ./make_pack.pl script altogether. Sometimes, the perl APIs do not give you enough flexibility, but sometimes this lack of flexibility makes sense.

I still have plenty to do with LKMB but there's code accumulating and bugs squashed. Now it's a matter of getting the exact behaviour right.

I got another response that said that CLAN when pronounced as "klan" instead of "see-lan", has bad cronotations in the U.S. because it is associated with the Ku-Klan-Klux. <sigh /> But there are Scottish clans and in D&D dwarvish and elvish clans IIRC. Besides, I like to pronounce it as "see-lan", like CPAN or CTAN.

Life

My bike's seat got separated from its pole when I drove them today, so I had to drag them home all the way back. I did walk in the early afternoon, and jogged afterwards. It was nice.

The Israeli-PM mongers was yesterday and I gave a lecture about Web Meta Language. It went quite well, I believe, and I hope some people will utilize WML instead of hacking an ad-hoc system of their own. The lecture is for propsperity on my site, and I'm going to give it to Haifux soonish.

I need to register to the Technion now. I think I'll take just three or four courses this semester. There's also a gig I might have in giving computer-related private lessons to people and some Haifuxers explained to me why I should not worry about red-tape. Thanks guys!

CLAN Progress

There is code now! It does not do too much, but it allows one to package a kernel module in a distro, that later when processed with LKMB (=Linux Kernel Module Builder) generates a standalone package, that can be compiled (but not installed) on any GNU system with the appropriate kernel headers. At least where I tested.

Now I've got to actually make it useful: write an install directive, support various architectures, support binary only modules, etc.

In any case, here's the Freshmeat Announcement.

IRC Stories

I met Liedra on irc.kernelnewbies.org. It's funny that being Israeli I have to log there in the mornings to meet the Australians and in the evening to meet the Americans. I told here about CLAN, and she told me it is of little relevance to her as she now uses MacOS X, which she likes very much. (she has a three-button+scroll wheel USB mouse, uses X-Chat, and is otherwise happy. She said MacOS 9 sucked a great deal).

I Met jdike and told him, interactively, how UML was a life saver for the IP-Noise project. Then I mentioned VMS and we talked about its ability to run another OS as a process (including itself), and its future on the Itanium. Someone mentioned that DEC's Alpha team is now working on IA-64, which might make it usable. However, the Windows NT 3.2 team was composed of the VMS hackers, and looked what we got out of it. Maybe that's what Fred Brooks call "The Second System Effect" in the Mythical Man-Month.

If you ask me Sun or SGI or whoever, should take their RISC computers (which beat the hell out of Pentiums of the same CPU) install Linux on them (Mandrake or something similar), and market them to home users, as replacements for x86 boxes. In the Com-Net lab, Michael ran Suse for SPARC on an UltraSparc 5 or 10 for quite a while. It ran fast, and was very stable. He got distressed by the inavailability of proprietary software like Java. (I told him taking the Solaris binaries might work).

Let's face it: people don't want Solaris or IRIX at home. I can hardly stand them on the server side, much less on my client machine. In the future, I expect that only GNU systems will truly survive. a GNU/Solaris machine might be a cool idea, and I know users have implemented them in user-land to some extent. But the Linux kernel was already made entirely compatible with the GNU system, has many extensions of his own, works pretty well, and is optimized for home use.

Now that IBM has Linux running on RS/6000, I wonder if I can get such a machine running Linux to play with. There's no way I'm using AIX, with or without the L.

14 Jan 2003 (updated 14 Jan 2003 at 12:55 UTC) »

CLAN Progress

I wrote a whitepaper, a SPEC of the "final" system as I see it now, a roadmap and a SPEC of version 0.2 Perl POD is really great and my documents usually compile at first run, and produce nice HTML. Still, I may use DocBook eventually at various places.

I prepared an organized site for everthing (note that the location is temporary and I plan to move it to clan.berlios.de as soon as I get the positive response from the BerliOS guys). In any case, the site is built with Web Meta Language and follows the same standard of my other sites. I'll put everything up to date now.

Now any code yet I'm afraid. I did read the CPAN man page and got a nice impression of its capabilites. However, CPAN is single-source mutliple-mirrors while I need multiple-sources multiple-mirrors like Debian. But so far, what I need is a way to package a kernel module so it will be self contained, and from that to transform it into a system package that can be compiled on any GNU system without Perl. Then, I'll do other things.

I'm really excited about this project because it's in Perl and it's for the Linux kernel so I get to enjoy both worlds. There will be the Linus Torvalds barrier, but CLAN might turn into a mutiny...

Message to Arafat

Check this. I tried to post it to Kuro5hin and it was declined by the voters. You might as well read the comments after you've read the article because they are very lame. K5's reputation has not been very good from my impression.

RMS' Lecture

I attended a lecture by Richard Stallman yesterday. Here's the general report I gave to Linux-IL. And now for some personal comments

I told RMS about the fact that I believed the Public Domain suited Freecell Solver very well, because it made it suitable for small-time vendors of shareware and freeware software. He said he would have used the GPL instead, because: "we have this wonderful solver, so if you want to use it you'll need to make your Freecell implementation free." We agreed to disagree because it's a difference of ideologies that cannot be gapped.

I told him about CLAN and he said it could be a nice idea, but nothing much more. We also talked about other things. I expected him to be much more flamatory and stubborn, but he's actually very friendly and gentle. He does correct you a lot about his etymological battles, and seems to lack some basic conventions. When I asked him how he enjoyed his visit to Israel he said that he was disappointed, because a 1000 people learned about OSS in the IBM Convention, while only 200 came to hear him talk about free software yesterday. Normally I would expect something like "Oh I enjoyed it very much. The people are nice/the food is great/the scenery is beautiful/etc." as any native welcoming a tourist would expect. But for him free software always come first.

Here's Ira Abramov take on the lecture.

Our E-mail transactions continued. I sent him an E-mail about his personal notice and after the lecture he said that despite my criticism, he likes it the way it is. I believe most women would be deterred by it completely (and for a good reason - it is not phrase well), even though many of them would otherwise be very attracted to him and maintain a steady relationship with him. One of the things I noticed is that it was impossible to convince him of anything.

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