Older blog entries for jao (starting at number 25)

12 Jun 2002 (updated 12 Jun 2002 at 22:07 UTC) »
sites worth visiting (or, at least, sites i keep on visiting lately):
7 Mar 2002 (updated 7 Mar 2002 at 00:32 UTC) »

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.

15 Jan 2002 (updated 15 Jan 2002 at 02:22 UTC) »
OCaml. Almost finished the Objective OCaml book... hmmm, still deciding if i really like it. When it comes to functional programming, scheme seems nicer and more elegant. As for oo, OCaml offers some interesting things like subtypying, which you don't find, for instance, in C++. Parameterised modules also look interesting, and the standard libraries are quite complete (liked the Marshall module, for instance). So, all in all, i guess it's ok. I must find a little application to try it out.

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!

8 Dec 2001 (updated 8 Dec 2001 at 22:45 UTC) »
Galeon. Since a few weeks ago, galeon has become my default browser, substituting konqueror. It's quicker, nicer, and has a few featurettes i like (and konqueror lacks); for instance it opens new documents using the running instance (if any), and has a nice google, google groups and dictionary toolbar. It also supports anti-aliasing, and new windows do not take ages to pop up.

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

19 Nov 2001 (updated 19 Nov 2001 at 00:52 UTC) »
Dia. I've been working on a patch for Dia, a really nice diagraming program. It is very well-writen, and it's been easy to code a diagram tree, showing all open diagrams and objects therein. The maintaners/developers are very nice guys, and my first patch quickly got into the cvs tree. I've just submitted a second one. I'm experimenting first hand the power of free software: i needed a feature, and the code was there to add it!.

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:

  • The pragmatic programmer. Good, but not that good. It is a good collection of pointers, but i've found that when you don't already know about what they're talking about, the book does not provide detail enough to learn it: you must go to the urls.
  • Software architecture in practice from the SEI people. Very good. Serious software engineering for practitioners.
  • Rapid development by S. McConnell. Very good and comprenhensive. It's been of great help for guiding the development of our products in scytl.
  • Software project survival guide by S. McConnell. Also good. A complement to Rapid Development. Or maybe a sort of abstract.
  • Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked Objects, also known as POSA2. Simply superb. The patterns in this book are extremely elegant and powerful, and the ACE framework gives you the oportunity of using them out of the box and in a portable manner.
Uf! No wonder i've had not time for writing diary entries! :-)
Monitor. Today i've bought a new 17' monitor, to substitute my old 14' one that died yesterday: now i know why i have to wear glasses!

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.

1 Oct 2001 (updated 1 Oct 2001 at 01:23 UTC) »
MDK. The new, Guile-aware version of MDK is finally out. It took ages to finish the new user's manual's chapters, but i think it's been worth the effort. And the next version will be even better: i've just received a mail from fxn with lots of insightful comments on the docs. It is people like him that make writting free software such a pleasure.

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!

16 Sep 2001 (updated 16 Sep 2001 at 12:51 UTC) »
prla: thank you for your recommendation of Cryptonomicon. I've already read it. It's a good novel (although, imho, not a masterpiece). And thank you for the cert :).

Eric S. Raymond does NOT speak for me, either.

MDK. The Guile integration is progressing quite fast. I quickly discarded the C++ wrapper thing: the C interface is clear enough, and i didn't see a way of improving it in C++. By now, i'm able to interact with the MIX virtual machine from within a guile shell and the other way around: interpret scheme commands from the vm command prompt. This opens great possibilities, like implementing new functionality usin scheme... in short, MDK is beginning to be extensible. I plan to write new scheme extensions to access the MIX vm, and a little scheme lib for manipulating the MIX data types in the next few days, and then make a new release.

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 :-))

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