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.
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 :-)
I'm back to Campinas for another round of job interviews.
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 :-)
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.
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.
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)
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.
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.
wrote a tutorial on the usage of automake and autoconf, should be published on an "official SEUL URL" soon (as soon as Roger comes back from the 6th dimension), one of the copies I sent for review is here: autotut
Since last entry, released gBib 0.1.1, a Gnome BibTeX editor, quite a nice program (the main developer is Alejandro Sierra), had some nice fun hacking the bibfile parser.
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!