Older blog entries for khazad (starting at number 16)

Just finished my first IOCCC entry. It's been a couple of years that I want to enter the contest but always missed the deadline, first entry almost done (already fits the size constraints, works fine, I just need to give it a nice layout) and I already have a sick idea to explore the new 2048-non-whitespace-limit rule. Oh, joy.

    You gotta stem the evil tide
    And keep it all on the inside
    Mary you're nearly a treat
    Mary you're nearly a treat
    But you're really a cry.
-- Pigs (Three Different Ones) in Pink Floyd - Animals
new job
At last, I got a job. It consists of designing, writing and maintaining software on PDAs. Given my previous experience with Windows API, I'm starting with the Windows CE devices, but the company currently works with Palm too. Most people there are Un*x enthusiasts, and the PDAs just aren't running Linux/NetBSD for the OS comes in ROM (blame HP and Compaq). I had to choose between two positions, this one that I got here in Campinas, and another in Sao Bernardo do Campo, 150 km from here. Even though the other position was for writing Linux device drivers for the hardware the other company manufactures (mostly industrial sensors that are plugged in single-board PCs based on the 386EX processor), the logistics for moving out of Campinas was very complicated and I would need to drop all my open source projects to move. (Here in the state of Sao Paulo getting a phone line capable of dial-up access (i.e., not WLL or cell phone) can take up to 2 years, and I'd need to pay both a rent on the new city and keep paying the apartment here in Campinas. I'd lose money and wouldn't be able to access the net from home for a long, long time, and my projects would die. Not to mention that S.B. do Campo is in the Sao Paulo metropolitan area, one of the most polluted, violent and overcrowded regions of South America, not the place I dream of living in.

MSX / Uzix / FOCA

This week I'm restarting the work on my FOCA compiler system for the MSX/Uzix platform. For those who don't know, check the link, but MSX is an 8-bit computer based on the Z80 processor with nice graphics and sound capabilities popular in Brazil, Japan, Netherlands and Spain in the 1980s. Uzix is a Unix implementation for the MSX, implemented by a college mate who graduated along with me at Unicamp. The system is in development and I committed myself to writing a compiler/linker/assembler system for the lil'machine. I hope to present a working beta of FOCA (Fudeba: Optimizer, Compiler and Assembler) at the Brazilian MSX meeting that will happen in Jau / SP in the first week of november.

Unfortunately I've slowed down a lot the development, but it's almost done, most TODOs are GUI frills. I hope to have 0.4.x by the end of august.

birthday and guitars
After some months without time to run through electronic component shops to look for the capacitor that was burned in my amplifier, I finally got it and fixed it. Thus today I was able to enjoy my birthday with the volume knob on the loudest and reverb on its finest. I shouldn't be so happy at scaring away my neighbours, but hey :-)

23 Jul 2001 (updated 23 Jul 2001 at 02:42 UTC) »

I'm back to Campinas for another round of job interviews.

Mandrake "Usability"
Last weekend I was in my mother's house. I took one of the Mandrake 7.2 shrink-wrap boxes Mandrake gave me on New York's Linux World Expo. The only time I tried to install one of these on a friend's computer here in Campinas it failed completely to detect the partition table on the hard drive (while RH 6.2 and FreeBSD 4.2 detected it fine, same computer).

Here goes a report of the epopea:
After deciding that repartitioning was a bad idea (no backup media around), and as Mandrake's manual said the Linux4Win install was a bit slower, I decided for it. I boot from CD 1, start installing... the progress indicator starts saying "34 minutes total, 34 minutes left". It just keeps increasing. 40. 55. 1h20. 1h40. I came in later and it was reading '2h09 total, 4 minutes left'. Those must have been the longest 4 minutes ever, they lasted like half an hour, after which I started hitting the Cancel button on screen. The button went 'down' and 'up'. I must have hit it about 50 times. Nothing happens. I peruse the VTs, RPM says it's working. Reboot, remove C:\lnx4win, try again with less packages... I notice also that you can't go back and forth in the installation.

After another 2 hours, installing only the basic, it's done. GRUB fails to load the newly installed Mandrake system. fdisk /MBR to restore it, and start it from the .exe in Windows. It takes eons to load. It was a K6-2 500 MHz/64MB machine and it took like 6 minutes to get past the green OKs part of the boot process. X, which worked so cute during the install, comes in without mouse. DrakXConf uses a non-standard widget to present the 'clones of Control Panel items', making it impossible to select the 'Configure Mouse' item with the keyboard. All in all, it was too sluggish to use.

Now, the most funny thing is that I hear lots of people saying Slackware is not well suited for newbies and that Mandrake is the most 'user-friendly' Linux distro around. I'm using Slackware since late 1996, have tried RH and Conectiva just to come back crying to Slackware. Some comparisons:

1. Slack seems to use a regular, unmodified kernel. It never failed to detect the partition tables on me.

2. Slack uses text mode. It's not so cute, but when I 'hit' a button, it works (unlike Mandrake's Cancel button).

3. Slack never lied about the time left to finish for me.

4. I can go back and forth in Slack's installation.

(Everything I say about Slack above applies to FreeBSD's install too)

Not to mention that I had to manually edit /etc/X11/XF86Config-4 to configure the mouse on this experience. Recommending Mandrake for newbies looks offensive.

It's been some weeks since I last touched the code, better work a little on it tonight.

...currently brainstorming some interesting way to protest against Adobe (first PDF (Pifious Document Format), then KIllustrator, now this...), send suggestions if you have any :-)

Well, looks like all the easy bugs are gone, now it's time to struggle with the die-hard ones, and that's why I'm taking longer to release more 0.3.x versions.

Anyway, I'm going to Brasilia for some days, maybe the bugs will be dead when I get back :-)

I should also consider implementing single-process tracking in gPS and call it 1.0.0, it's been a long time I don't touch that one, and it shouldn't be 0.10.3 for all eternity.

A review just came out talking about chess interfaces for Linux (including eboard), here is the review itself and here is a thread about in in Linux Today.

It's been a long time since my last note and until someone remove that awful link that's screwing up Advogato layout I'm not reading diary notes anymore.

raph: One feature I think would be very useful in Advogato is having a way to know you were mentioned in someone else's diary entry (maybe an asterisk on the side of the list of Recent Diary Entries on the front page ?). And about the "rooms" idea, I'm not really for it, but I just hope advogato never becomes a land of trolls.
Autotut is out. Read, copy, distribute, email to that friend who is lost in Imakefile dimension.

Getting tastier each minute, 0.1.6 will be out later today when I finish implementing examination mode.

If I don't get a Un*x-related job soon I'll grab my guitar and start playing it for money. You _don't_ want me to do that, the music scene will never recover from the damage. (I am known for having performed the Free Software Song worse than RMS -- the guitar performance was decent but I sing much worse than he)

GNU Chess Sucks
GNU Chess support was already planned for eboard, but someone concerned with crafty's non-freeness got me adding support for it earlier than I expected. So I go to GNU's FTP directory, and start looking for GNU Chess...

1. The only tarball, for 5.02, is 30 MB long. There are no older versions at the site. I look to the 33.6 kbps modem. It looks to me.

...4 hours later...

2. uncompressed the thing, as expected there is a 103 MB PGN file for the book. Those who can't write chess engines add huge game databases. No documentation, Makefile or configure script in the toplevel directory.

3. Entered the 'doc' dir. So I must go to the src directory, run autoconf, configure and make. Sounds right.

4. When I try to compile I get an error from GCC about trying to use sp as general register for register variables. Peek the code. Peek the Makefile. Removed the -O3 switch. Ok, it compiled this time.

5. I was almost su'ing and 'make install' when I had a bad feeling. A voice says 'check the Makefile before'. This is the install target:

  cp gnuchess.exe /cygdrive/c/winboard/gnuchess.exe

GNU Chess assumes you are running Microsoft Windows. (scream) How did this crap got to bear the GNU on its name ????????

6. The doc file said I should build the binary book file from the 100-MB PGN file. I follow the exact instructions and... nothing happens. No file is written, no error message, no crash, no nothing. It just does nothing. The 100 MB file that made the whole thing so slow to download is completely useless (I can use it for Crafty, but it's useless for GNU Chess unless it builds the damn binary file)

Well, GNU Chess (in fact, any engine that talks the xboard protocol version 2) support is added to eboard, the changes are already on CVS. Wrote a harsh document about the whole experience, also on CVS by now.

I must now look for older versions of GNU Chess, maybe they suck less. I must also start looking for GPL'd (or at least free in the Debian Free Software Guidelines sense) engines. If you know of any, drop me a note.

28 Apr 2001 (updated 28 Apr 2001 at 19:03 UTC) »
jtauber: bug severity 0: programmers using CMM without really understanding why -- their bosses or company policies just told them to --, spending more time reading about "quality standards" than browsing source code or reading technical texts that would help them accomplish their tasks better and teach about other people's mistakes before they fall themselves in the same traps. (source code browsing is hindered by the fact that at many places developers don't even know there is any code but theirs to browse) This kind of bug is really tough to fix.

Similar comments apply to UML and Rational Rose enforcement. If one can't picture the structure of the software by himself without the aid of a diagram-drawing, code skeleton generation program (pencil and paper is ok) or agree on extensions by talking with the workmates, he shouldn't be developing software in the first place.

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