<heartbeat>sites worth visiting (or, at least, sites i keep on visiting lately):
- Tunes is a Useful, Nevertheless Expedient System
- Sweet, unconvential code
- Lambda, the Ultimate weblog
It's been a long time without a post, due (mainly) to high workload... you know, the blisses and woes of a start-up. Nevertheless, i've not been idle. To begin with, i've come back to debian. FreeBSD's ports exhausted my patiente, due to poor dependency handling (i had to install gnome-pilot as a pre-requisite for mrproject!), an obsolete libtool version that nobody seems to be updating (more than a year old) and that prevented my compiling cvs versions of dia and guile, total lack of up-to-date compiled packages and some other minor quirks led me to try a fresh install of debian, and i got hooked again. It's really a pity, for bsd's kernel is so much better, imho, than linux 2.4 (i'm using 2.2.10 at home, btw). But, at the end of the day, i realised that i was using exactly the same applications in both os's, so that the important thing is the package management. Debian's is simply better.
i also got tired of waiting for the update of the OCaml port to 3.04, once i decided that OCaml was the right choice for my next projects. i finished a fp-and-co-languages review, incluing OCaml, Haskell (very nice), Scheme (extremely elegant), ML (well, you've got OCaml) and, last and very least, Python (please, use Perl instead). At first, it was hard to get used to OCaml's syntax, but i learnt step by step to love it... and, oh well, it's just syntax. What really matters is the new semantic world that functional programming opens up; each functional language i've tried came loaded with a handful of little conceptual treasures: type inference, first-class currying and functors in ocaml; lazy evaluation and monads in haskell (with the nicest quicksort evaluation i've ever seen); continuations and macros in scheme... no wonder that reading the python tutorial was so disappointing! It is also a pleasure to find , when using and reading books about, say, ocaml, a direct map between advanced computer science issues and the language you're using; you feel like using a tool from the ground up... imperative languages like C++, Perl or Java are like folk, pop or rock music: funny and light, with some harmonic surprises now and then; funcional languages are the classical music of programming, harmony itself.
As a result of these musings, i don't feel so partial to C++ against Java: they're more or less on the same league. So, it's been not that traumatic to use java at work, a decision we took due to schedule and stuff constraints. Reading Meyer's Object Oriented Software Construction (almost finished) has also made me reconsider some of the relative virtues of both languages, and i'm beginning to appreciate some java features such as garbage collection and reflection (i still terribly miss templates and generic programming features, though). Meyer's book is, by the way, worth reading. It's very well written and insightful, once you factor out his dogmatic defense of Eiffel as the only true solution to virtually all your problems.
WindowMaker. Back again to wmaker, because of some annoying bugs in blackbox when resizing emacs frames. In addition, the new wmaker version 0.8 let's you launch already docked apps from the command line (or a script, for that matter), a functionality i really missed. And, finally, i took a look at the bb sourcecode, and found it very low quality C++, so... let's see how long i stick to wmaker this time!
MMDK. Must have a look at Knuth's implementation of MMIX before starting my own: it seems quite powerful, and maybe it's no use reinventing the wheel; there is even a gcc port cross-compiling C/C++ to the MMIX emulator!
Procmail. I've learnt to use procmail to filter my mail, and use it in conjunction with wmbiff. I've tried also mutt again, but will stick to gnus for reading mail: i'm too used to its philosophy (mail == news), and it offers better integration with emacs.
Vim and Emacs. I've played a little with vim. It's ok, but i find it far inferior to the almighty emacs. These days i've written some emacs skeletons, with a little bit of elisp (dusting my GNU Emacs Lisp Reference Manual copy) and, boy, emacs rocks!.
New journey. Definitely, i'm going to learn Ocaml, and probably mmdk (the MMIX development kit) will be written using this nifty functional, object-oriented language. I already own Cousineau and Mauny's book, and have ordered Objective Caml (in French, i'll have to learn two languages at a time!).
FreeBSD. Still happily working with it at home. The portupgrade utilities are almost making me forget apt-get :-). I'm also using blackbox again (instead of windowmaker): after trying it again, i've found it noticeably faster (and the window decorations are nicer, i think... i always get tired of the windowmaker title bars: they are too big for my taste!).
FreeBSD. I'm using again FreeBSD at home. I already use Debian at work, and i really like it, but, somehow, FreeBSD appeals my hacker side. It's true that Debian is better when it comes to administration via apt/dpkg/dselect, but i thought that fighting against the nitty-gritty details of installing and configuring sofware in a Unix system once in a while gives you the opportunity of learning a lot of things. In addition, FreeBSD has, imho, a better writen kernel than linux (just look at the recent linux vm chores).
Books. Lots of them. I' ve finished:
Prototyping. I'm using (and learning) Gtk-Perl for building a user interface prototype (as part of the requirements analysis phase for Pnyx, our e-voting product at scytl). Gtk-Perl is really an excellent tool for this kind of job. The more i use perl, the more i like it.
Music. I'm going to the opera tomorrow: La Boheme, a wonderful masterpiece. And the theatre is also a very nice one: El gran teatre del Liceu, in Barcelona.
Job. The new job at scytl is really rewarding and exciting. Quality is our motto, and i've got here the rare chance of practising software engineering the way i think it must be done. That means lots of work, but pleasant work it is (as we say in Spain, sarna con gusto no pica). We are using LaTeX for writting technical docs, and it's really a joy: i'm having lots of fun re-discovering it in its full power. I've been also reading C++ stuff: Meyer's Effective and More Effective C++ books, and the really superb Exceptional C++ by Herb Sutter. Returning to C++, after all those months in the barren lands of Java, makes me feel like a real programmer again!
Eric S. Raymond does NOT speak for me, either.
Tools. I've begun to use on a regular basis a tool to keep todo lists from the command line, devtodo, and found it really useful (thanks to fxn). A second wonderful discovery has been surfraw, a refreshing project consisting of a set of scripts to access common WWW search engines from the command line: don't miss the web page, it's worth reading!
I've released a new version of MDK (0.4.2) with a few bug fixes and new toolbars for gmixvm (i've drawn a couple of icons and got the others from gnome and kde apps). I've restarted reading guile documentation and i'm playing with the idea of a C++ wrapper (have been reading old issues of the C/C++ Users Journal and some chapters of Sutter's Exceptional C++... man, that was real fun), but i'm not still sure if this would be useful (feel free of telling me what do you think :-). In any case, it's my preferred method for learning new things: coding.
By the way, a couple of weeks ago i discovered how to use anti-aliased fonts for Qt apps (even inside WindowMaker; you just need export QT_XFT=true and XFree86 4) and Konqueror looks pretty nice: the quest for a browser is over :-))
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!