Latex should die (or evolve a lot)

Lately I happened to not tolerate anymore the ugly dirac spec, the pdf produced is w/out a index, the font are horrible and the reason is that they made use of latex instead of something saner (docbook anyone?)

This rant isn’t about the dirac spec anyway, the content isn’t bad at all, is just the presentation.

This rant isn’t even about their usage of latex, it is pretty much correct and produces documentation even if you have an ancient tex distribution (tetex).

Now my angry words are at latex in itself since it is the root of the problem.

Latex pros:
– large library of modules, styles stuff
– large userbase
– very nice programs that makes use it less annoying (kile)

Latex cons:
– Doesn’t support truetype fonts out of box, nor lots of image formats.
– It’s default fonts are anything but beauty on screen
– the syntax is between bad and ugly
– you end up with overcomplicated systems to keep your documents in shape
– you spend more time figuring out what to use instead of using it (and the time isn’t short)
– the document build system isn’t exactly an example of clarity.

Seems that many of those issue got addressed on texlive, that sadly we don’t have in portage since few people would touch tex since it is an ugly monster.

All in all you may think that latex is good enough since there aren’t saner alternatives if you want produce a book that doesn’t look a wordprocessor printout… Well, there are nicer alternatives IMHO, one being xml markups since you can convert them with ease (almost), you may produce them using maybe quicker markups (e.g. texy), you can mix and match them (including mathml and svg in docbook isn’t difficult. Sadly there aren’t good authoring tools like kile. Would be simpler make a good authoring tool (yea, I know emacs is wonderful for xml editing) or make latex less ugly from an user and developer POV?

Another reason to be ashamed of being Italian

Please have a look at this

Click to access protocollo_microsoft.pdf

If you don’t know Italian isn’t a problem since it isn’t even written in proper Italian.

Summary for this trash: Microsoft got a cofinancing in order to plant 3 new centers in certain cities of Italy (that also happen to be the ones in which you have active open source centers for innovations), the government grants some founds and Microsoft adds 1M$ in 3 years(in software licenses and other non-cash stuff like that). Note Microsoft receives at least 1000 times from the Italian public administration every year (the yearly cost of Microsoft licenses).

Why IBM, Canonical or even Novel won’t start making such deals?

Miguel, XUL is there…

Everybody and your dog knows that microsoft tried to rerelease ActiveX with a cool name and trying to play again the .NET card over it to make it look less stale. Miguel obviously got another dose of crack^W^W^W of optimism and tried to find something good in something that should be shot on start, well, restart.

He said that Silverlight will be something useful and 1/5 sites will use it in few years. Well I have lots of fun with standard tecnologies: javascript, SVG, HTML5 and so on…

Now, if you want richer applications there is something that binds everything together it’s called XUL, works EVERYWHERE (hi, minimo) it’s quite documented, mature, has an opensource implementation and a compact runtime (xulrunner).

and Oh, btw it has already more than the 1/10 of the market share and is steadly growing…

Now if we got a standard multimedia framework (maybe based on RTP, RTSP, codecs like Dirac, snow or vorbis) in the mix I think we are completely done, isn’t it?

Digging the kboot for playstation3

Probably some of us already read about how the playstation3 firmware runs linux (the “OtherOS”)

Some insight:

1- it uses as bootloader a very minimal linux system that then loads the right kernel using the kexec call (yai!, after the gamecube the other ppc platform with kexec implemented is the playstation3…)
2- the instructions obviously are scarce and seems to point out that the provided loader has a nice script to install just one kind of distro (I’ll let the reader the exercise of guessing witch) and doesn’t seem to provide anything useful if you happen to prefer something else…
3- [update] you can access the busybox shell from kbuild and just install gentoo the usual way (suggested using recent ppc64 stage3 and then build a cell-sources kernel using the cell_defconfig)

The kboot is quite neat in itself: it has a great deal of features (like ssh or tftp) and uses pretty standard tools (busybox, linux, kexec-tools, dropbear) plus something specific (the ps3pf-utils).

I’ll add the ps3pf-utils once I have them mirrored on powerdeveloper and maybe adding an unofficial svn/git for it and libspe2 (since looks like they will be improved a lot in the next weeks and keeping track fo the patches is a bit easier this way)

CMake… why?

I just did some comparisons about cmake and something better like… autotools?

Step 0:

Some numbers just for fun:

nemesi lu_zero # qlop -tH cmake
cmake: 13 minutes, 35 seconds for 1 merges
nemesi lu_zero # qlop -tH make
make: 1 minute, 0 seconds for 2 merges
nemesi lu_zero # qlop -tH bash
bash: 2 minutes, 32 seconds for 3 merges
nemesi lu_zero # qlop -tH perl
perl: 7 minutes, 52 seconds for 4 merges
nemesi lu_zero # qlop -tH m4
m4: 32 seconds for 1 merges
nemesi lu_zero # qlop -tH automake
automake: 1 minute, 8 seconds for 7 merges
nemesi lu_zero # qlop -tH autoconf
autoconf: 30 seconds for 4 merges

Ok cmake is a ugly hog at least while building.

Step 1:
What you want from your build system:

– take as little resources as possible
– have it as much portable as possible
– have as little as possible to write
– have a good way to express conditionals
– let you have your program correctly built on a large number of arches.
– automagically spot dependencies
– let you use tools like distcc and ccache in an effective way

Step 2:

Uglyness scale before cmake:

imake, scons: bad ideas with a bad implementation, everybody knows that, somebody is workarounding scons a lot, I hope for a fork.

qmake: not sure which part is bad, nobody likes to use it that much for a reason or another.

plain make: simple and to the point, it may not scale that well.

autotools: most people misuse them, many despise certain choices. The lack of good documentation and the version incompatibilities made them in a bad light, things are getting better little by little. The most used system despite the ugly Makefiles produced. I’d use them with their reference at hand.

kbuild: it is wonderful, works really well once you lay it out, it is even simple! Problem: you don’t have a stand alone template to fill so it is much an hacking over existing deployments.

Step 3:

put cmake in the scale:

1- takes forever to build
2- is compact
3- uses the same approach as aclocal m4 files (call them Modules/*.cmake) but has a risible number of them.
4- supports less platforms than autotools
5- the syntax is a brain damage between imake and autotools
6- Hype points because kde4 could use it

Step 4:

When it could have sense:

1- your project is targeting what cmake supports already
2- you like its brain damages more than others
3- you misused autotools and now you are trying to misuse another build system (hopefully it won’t make you misuse it that much).
4- you absolutely love the ability to have project files for some commonly used proprietary ides out of the cmake native files.
5- you want to gain some hype points to your project.

Summary:

cmake is a wonderful technology that should take the way of the dodo and never touch your hard disk, gives nothing more than a lobotomized autotools (and that is good since you can commit less mistakes) has the good mix of hype points and laziness compliant features.

In short cmake developers feel free to ignore me, this is a rant, I hadn’t wrote a build system that will be used by a large project and probably I’m not so entitled to write such large stain of venom.

You obviously can take it seriously and prove me wrong with a next version with 1/2 the build time, less overhead and a nicer syntax.

UPDATE:

flameeyes told me that cmake doesn’t have a way to set cflags/ldflags/asflags on a per target basis. So it is a wonderful regression to pile up to the rest…

UPDATE2:

http://dev.gentoo.org/~lu_zero/development/cdrkit-1.0pre3.tar.bz2
I played a bit with autotools to see how bad they are and/or how good cmake is…
I started from scratch for the first time using autotools…
There are some minor changes but nothing interesting.

Playing with Mambo Cell simulator part II

New release from IBM!

New and improve Cell SDK!

The new mambo works and works quite fine! I have already provided an ebuild for it and probably in short time I’ll add some gentoo custom bits to make working with it less annoying. You may check my overlay for it, I couldn’t get tile play with the tk UI yet but maybe I could try harder and have the simulator gui a tad nicer.

On the other side, there is the rest of the SDK is a nightmare =/

I bitched already about improper software distribution and seems that somebody read it since now the proposed medium is even more awkward: alloycanwatlowcarbnosourceincluded DAMN ISO IMAGE!

The fantastic iso image:

nemesi mnt # mount -o loop /tmp/CellSDK11.iso /mnt/iso/
nemesi mnt # ls iso
README.txt autorun css images pdfs
ShelExec.exe autorun.inf html media software

ShelExec.exe!?!

nemesi mnt # file iso/ShelExec.exe
iso/ShelExec.exe: MS-DOS executable PE for MS Windows (GUI) Intel 80386 32-bit

I hope that’s a joke…

Bright side: the pdfs in the same named dir are quite nice and is quite good have all the documentation in one place.

Dark side: again this is a fedora only distribution and the sources from bsc.es are again a messy tarball.

new stuff, new?

lots of media coverage about Picasa, a photo management tool, wow! ehm … hardly interesting.

There is plenty of program with equivalent features AND opensource AND native like
http://www.digikam.org if you like the all in one stuff or gqview.sourceforge.net if you want something lighter…

Those programs were around since ages, improved with time and aren’t in use just because are the new kool thing either because ported by a company known to provide nice stuff using some quite curious tricks or because is written with the new language du jour.

And yes, f-spot is based on a perversion of java that makes it completely non interesting