My last cellphone was a dumb phone. I seem to remember that it was called something like Samsung Voicer. It didn't have those hip things like SIM cards.

OK. Fast forward to December of 2010, and after a long hiatus, I decided to get a new phone. It was this shiny Nokia N900. The biggest thing that made me want this one was that some people at DebConf 10 were praising it for having a Debian-like distribution in it, and that it worked very well.

I saw that Phil Hands was enthusiastically talking about the bargain of getting one in New York and that it would have cost him many pounds in the UK and, so, he was happy with it.

Otávio Salvador also got one in NY and during one of the nights of that DebConf with him, Tiago Vaz, Daniel Baumann, and Chris Lamb, I asked him to call my parents here in Brazil and he let me use his N900. I had more time with it and played a little bit with the command line, opened the stock media player and played a beautiful trailer of 9 (2009 film), leaving me a very good impression.

I bought one, and, indeed, it is a very good machine that can even make phone calls. The ability to run Linux on it (even if it contains some non-free pieces of software) was decisive in me getting it. It runs this distribution called Maemo 5 which is loosely based on Debian.

But now, Maemo is not the "cool thing" to run, regarding Linux on these portable devices. Meego is. But with the advent of many Internet forums has brought many people writing some long, convoluted howto documents for things that would be better done as, say, providing a script or, better yet, preparing a package.

In the case of getting Meego running on the N900, only three things are required:

  1. Install uboot-pr13 while in Maemo.
  2. Uncompress the MeeGo 1.2 Community Edition for Nokia N900 image to a µSD card.
  3. Turn the phone off, plug in the µSD card, and PUT THE BACK COVER on the phone.

The last bit of the third step is crucial, as, otherwise, the SD card won't be detected and you will get kernel panics with the device trying to mount the root filesystem from a device that is not there.

As an aside, the official documentation tells us one should uncompress the available pre-made images and write them with dd to the device. In my experience, it is completely unnecessary to use it and, in fact, it is so 6 times slower than using a simple shell redirection. That is, instead of:

bzip2 -d < mg-handset-armv7nhl-n900-whateverwhatever-mmcblk0p.raw.bz2 | dd bs=4096 of=/dev/mmcblk0

you can get better results with the simpler:

bzip2 -d < mg-handset-armv7nhl-n900-whateverwhatever-mmcblk0p.raw.bz2 > /dev/mmcblk0

I actually used lbzip2 instead of bzip2, but that shouldn't matter. The use of the small block size for the dd command is probably the culprit, but I don't see the need to write the uncompressed data in chunks this small. If there is a problem, I would love to be informed of that.

As trying it with uboot and a µSD card doesn't mess with your "safe" Maemo installation, this is a good way to play with the successor of Maemo. Perhaps, if we give good feedback to the project, we can influence the direction that it is taking.

It will surely be nice to learn about this new "consumer-oriented" distribution.

Posted 2011-07-03T03:55:50 BRT

Here I write a little bit about my experiences running GRUB2 with a PowerPC Mac (actually, an iBook G4), since the current documentation is lacking in many places (outdated, incorrect, etc.).

Some of what I say is platform agnostic, though, and may be of interest to users of GRUB in general.

Basics using GRUB2 with PowerPC

First of all, it is important to understand (at least superficially) how botting on a Mac works.

One of the first programs that run in your Mac is the OpenFirmware. It works with more or less the same purpose of a BIOS in a regular x86 system. The basic idea is the same: get the computer running with whatever programs you want it to run. The implementation, though, differs quite a bit.

First of all, OpenFirmware (OF) usually presents itself as a command-line interface that is programmable, differently from the common day BIOSes from x86 boxes. As it is programmable, it is more flexible, but this flexibility comes at the price of an increased complexity.

I may write some things more in a future article, if there is any interest.

For now, it just suffices to say that to get to the OF prompt in a Mac, you have to press a combination keys during the time that your Mac gives a chime when you turn it on. At that moment, you have to press (simulaneously) Cmd + Option + O + F. (Note: the Cmd key is the key that has an Apple drawn on it, usually on the side of the space bar).

Limitations of Open Firmware

Differently from usual BIOSes of x86 computers, Open Firmware can read the contents of a partition in your HD (or other devices), as long as it is formatted in the original HFS format (not in HFS+ or one of its descendents).

This is the reason why some older versions of Linux create an HFS partition in your HD, even if you don't intent to run or use anything besides Linux. The yaboot bootloader consists of, among other things, one binary that is understandable by OpenFirmware. That binary is a file called yaboot, after the name of the booloader.

As an aside, you have to indicate to OF what is the file that you want it to load during the boot process, so that it knows what to do. The way to indicate this is to "bless" the file (and the folder that contains it). Some ways to bless a file are to, for example, use the bless command in MacOS X or the hattrib -b command from hfsutils.

Files in an HFS filesystem have two attributes that many other filesystems don't: a creator ID (the "application" that created the file) and the type ID (which determines what kind of file it is).

OpenFirmware, in particular, looks for files with the type tbxi for the bootstrap process.

The yaboot binary is loaded by OF into memory and, then, control is passed to the yaboot program, which then reads its configuration file (yaboot.conf) from the same folder where the binary was in. The file yaboot.conf contains instructions for yaboot to do its job. The file yaboot.conf is very similar in construction to configurations of an older bootloader for x86 computers, lilo.conf.

Also, in a way similar to what LILO requires, after you install some new kernel, change some parameter in the configuration file, etc., you have to run a program that will set up everything so that the boot process can know of your new configuration. With LILO, this command was called lilo, while with yaboot the command is called ybin (which, essentially, takes care of putting yaboot.conf in the bootstrap/HFS partition and blesses the yaboot binary).

Going to GRUB2

One of the characteristics of yaboot (which is left as an exercise to the reader to determine if it is a drawback or not) is exactly the way that changes in the configuration have to be copied to the special HFS partition: the step of running ybin.

GRUB2 (and its older sibling, GRUB legacy) do away with that: during boot-time, it can understand the filesystems that you have in your computer and interactively load whatever you want from there, also from a command-line like OF, before any (regular) operating system has even been started.

But how do you start GRUB2? Well, the way that this is performed is copying a binary to that special HFS partition. Here things start to be hairy, because GRUB2 has a lot of functionality, but it comes at the price of it consuming a lot of space (especially if you are using encrypted partitions or some kind of logical volume managements with some journalling filesystem that allows files to be compressed etc. on top of it). The list goes on.

Usually, that special HFS partition only has 800KB, which, BTW, is the size of an old 3.5" floppy used with older Macs (note: due to some contraints on partitions and aligments of such partitions on cylinders, it is not uncommon for disk partitioning software to create partitions slighly larger than 800KB, but not much larger than that).

A full-featured binary of GRUB2 to be placed on that HFS partition can have much more than those 800KB. But how do you get that binary, in the first place? And how do you fit that in the HFS partition?

Creating the GRUB2 binary

To answer the first question, you have to construct it from your grub-ieee1275 package (I'm assuming here that you are using Debian or Ubuntu, but similar instructions may apply to other distributions). Then, a first step would be to create such binary with:

 mkdir /tmp/foo
 cd /tmp/foo
 cp -a /usr/lib/grub/powerpc-ieee1275/* .
 grub-mkimage -O powerpc-ieee1275 -o ../grub.img *.mod

The last command of these create an executable named grub.img that is callable from OF and which contains every module from grub-ieee1275. This executable that I call here grub.img is called, in GRUB2 parlance, the core image and it it seems to be named core.img in many systems.

On my system, with those commands, the binary grub.img is about 1208KB, which is 50% larger than that 800KB partition. And you would like it to be much smaller, becase you want to still have your yaboot bootloader by default while you are evaluating your bootloaders (or using it as a backup plan).

As GRUB2 follow a modular design, you can mix and match the features that you want. This already hints you to the way we can fit it in the HFS partition, and it is always the same story: just trim the fat.

Creating the configuration file

You will also have to have GRUB2 configuration's file (or you will have to play with way more commands than you'd want to). An important distinction here is that you usually have 2 or more partitions on your Mac:

  • the special bootstrap/HFS partition where OF is going to look at (I'll call it /dev/hda2 here);
  • the partition where your / filesystem resides (denoted by /dev/hda3 here);
  • some partition to hold /boot (I don't have one of these, but let's say that it is /dev/hda7 for our discussion purposes), usually containing your kernels and initial ramdisks.
  • other partitions.

With this in mind, you can With Let's say that this last one, in Linux parlance, is /dev/hda3 (as is the case of this author), and optionally a partition where your Linux kernel resides (people usually use it to store the /boot subtree of a Linux filesystem). Let's say that this last one is /dev/hda7.

Then, you would compose something like the following as a configuration file for GRUB2 (named grub.cfg):

insmod part_apple
insmod ext2
set root='(hd,apple7)'

menuentry "Linux" {
    linux /vmlinux root=/dev/hda3
    initrd /initrd
}

There are one two important points here that deserve more comments:

  • Note that, differently from a regular x86 system, in a Mac system with only one HD the way that you specify an HD does not have a trailing zero. For instance, in the case above of the variable root, we have (hd,apple7), while in a "common PC" we would have the (hd part replaced with (hd0.

    That's something that you should make your distribution aware of, if they aren't yet.

    As an addendum, I don't know how it works with systems with more than one HD, as I only have (PowerPC) Macs that are notebooks. If you can share any experiences, please do.

  • One point of caution here: what GRUB2 calls root is not necessarily the root of your filesystem (i.e., the partition that holds /), but the device that everything that is "not fully qualified" is interpreted as being relative to.

    The "not fully qualified" above means anything that is not prefixed with GRUB's device notation. As an example, (hd,apple2)/boot/vmlinux if fully qualified for GRUB's purpose, while /boot/vmlinux is not.

Putting it all together

The next step is to just copy the files grub.img and grub.cfg to the special HFS partition. You can do that using hmount, hcopy, and humount or you can use the regular Linux hfs module to copy to that partition.

Then, boot your system, get into the OF prompt and execute:

boot hd:2,grub.img

Here, the 2 above is a reference to my HFS partition. Substitute that with yours, appropriately. You will then see the common (familiar?) GRUB prompt and, from there, everything else that you know will (hopefully) work.

The list of modules that "Works for Me(TM)"

As I mentioned above, I use a subset of all modules that come with grub-ieee1275 to create my grub.img binary. Here is the list of modules that I use and that gives me a reasonably sized bootloader:

bitmap.mod        datehook.mod  gzio.mod         lsmmap.mod      reboot.mod          terminal.mod
bitmap_scale.mod  datetime.mod  halt.mod         memdisk.mod     regexp.mod          test.mod
blocklist.mod     echo.mod      help.mod         memrw.mod       relocator.mod       trig.mod
boot.mod          elf.mod       hexdump.mod      minicmd.mod     scsi.mod            true.mod
bufio.mod         ext2.mod      hfs.mod          msdospart.mod   search.mod          video.mod
cat.mod           fat.mod       hfsplus.mod      normal.mod      search_fs_file.mod  video_fb.mod
cmp.mod           font.mod      ieee1275_fb.mod  part_apple.mod  search_fs_uuid.mod  videoinfo.mod
configfile.mod    fshelp.mod    linux.mod        part_msdos.mod  search_label.mod
cpio.mod          gettext.mod   loadenv.mod      parttool.mod    setjmp.mod
crypto.mod        gfxmenu.mod   loopback.mod     probe.mod       sleep.mod
date.mod          gfxterm.mod   ls.mod           read.mod        suspend.mod

Just for the record, my grub.img file has 624KB, and that can certainly be shrunk.

The command line that "Works for Me(TM)" to create the image

Actually, I lied when I told you that I used the lines above to create my grub.img file, because I'm lazy and I don't want to type the .img extension. I also embed my configuration file in the binary that I create with GRUB2, so that I don't have two files to copy to my HFS partition, but only one. I do that with:

grub-mkimage -c grub.cfg -o ../grub -O powerpc-ieee1275 -d . *.mod

OK. No more lies here.

The nice aspect of GRUB is that one you install that image, you don't have to touch that HFS partition anymore: you simply update your regular filesystem's /boot/grub/grub.cfg file (which is usually performed when you install a new kernel, at least with Debian) and you're ready to go.

The good way to do that is to use a minimal configuration file embedded in your grub binary in your HFS partition that will hook into the system's /boot/grub/grub.cfg to read newer kernels and leave the HFS partition (and your system's NVRAM) alone.

Here is what I am using right now:

search --no-floppy --fs-uuid --set=root 35d26869-f7c9-4852-a9b8-100314560c34
set prefix=($root)/boot/grub
configfile /boot/grub/grub.cfg

You will, of course, want to modify the file above as you install newer kernels (perhaps even that unsupported operating system from that fruity company, who knows?). Don't forget to change the UUID's, and partition numbers to fit your needs.

Well, that's it. I hope that it helps somebody out there, as the information that I got otherwise was way outdated, incomplete, etc. to keep up with GRUB2 from these days. Now, let's go patch the tools that we have so that not everybody who wants to use GRUB2 have to learn about its workings.

Oh, of course, you can now have your kernels in ext4, btrfs, xfs etc. partitions without the fear that your bootloader won't load them.

In my previous post, I was pointing out some of my frustrations with Chromium/Chrome. A very kind reader, Timo Juhani Lindfors, gave me answers to many of the problems that I pointed out and got me straight on some issues:

  • I can disable full zoom in Iceweasel (i.e., I only want to zoom the text, not the images). According to Chromium's project BTS, it seems that this will be a WONTFIX bug, despite many people asking for it (and it having a lot of duplicates).

Timo told me that there is an extension called "Font Size Increase" (ID: ombpcpigmndepfckcifdblemkabaoihk) that adds a button on the side of the URL bar that you can click to increase the size of the text, without affecting the size of the images. Highly recommended.

Not that I need this one as much as "Font Size Increase", but there is also a "Font Size Decrease" (ID: mpajngnpcmjjeoflljdjpnehcfaldcia) that, as the name implies, decreases the size of the text. It is nice to have this one when you clicked on the button to increase the size of the font one or two times too many.

  • In Iceweasel, I have a way (without resorting to many extensions or hackish solutions) to use the equivalent of Firefox's "View > Page Style > No Style" (i.e., to ignore any CSS sheet that the document author may have specified on the page).

Timo also told me that there is a very cool extension called "Chrome Page Style" (ID: ddpkgkegfklikkmfmneldonhldahhacb) that allows you to alternate between stylesheets provided by the page (see Joey Hess's ikiwiki's CSS Market for an example of that).

It also has the possibility of disabling all the CSS'es that a page may have, which, in many cases around the web actually improves the readability of the pages, for many "fancy" things detract from readability, especially if you have poor eyesight.

Although I had said that I didn't want to resort to extensions, this was a simple solution enough that made me consider revisit my requirements. I do, though, wonder why some frequently used extensions are not built into the programs from stock.

  • In Iceweasel, I can press Ctrl+Q and make the damn browser quit, instead of me having to use the mouse/trackpad/pointing device. This is probably a lack of my understanding on how to associate key bindings to Chromium, but the problem still stands.

Of course, Timo also set me straight and told me about Ctrl+Shift+Q for that purpose, which I had missed completely.

  • Similarly, when there is only one tab open, pressing Ctrl+W in Chromium does not close the tab (say, presenting me a blank tab or the list of most visited sites), nor it closes the application.

As a poor writing of my part, Ctrl+W does close the tabs. But when there is only one tab present, it doesn't close the window. I'm OK with that, since I now know the way to close the window. Thanks again Timo.

Oh, and one point that may not be known by many is that using about:flags in Chrome does something analogue to Firefox's about:config (even with the warning).

And tweaking with it you can try to see if you can enable hardware acceleration of some parts of your pages, as present in newer releases of Chromium.

So, there I am: way more satisfied than with earlier with Chromium, but still having Firefox/Iceweasel as my primary browser. Good to have two usable browsers now.

Posted 2011-03-09T14:33:00 BRT Tags:

Given that Chromium/Chrome is used more and more (as became apparent with the discussion of including it in Debian's squeeze), I decided to give it some tries, mainly Giuseppe Iuculano's version. I occasionally install Chromium from Fabien Tassin's daily builds.

And, to be honest, I have also contributed a good amount (about 400) of translated strings to the Brazilian Portuguese part of Chromium. As a matter of fact, I have even done some "activism" and incentivated other people to create their accounts on Launchpad and help with the projects.

But I always come back to Iceweasel/Firefox, especially with Mike Hommey's frequently updated repository.

What are my reasons for staying with Iceweasel, and not with Chromium?

  • I can disable full zoom in Iceweasel (i.e., I only want to zoom the text, not the images). According to Chromium's project BTS, it seems that this will be a WONTFIX bug, despite many people asking for it (and it having a lot of duplicates).
  • I can, in Iceweasel, set my preferred fonts without resorting to hacks on the system level, like say, having to lie with fontconfig or other stuff. And I really want Deja Vu Sans, not a serifed font.
  • In Iceweasel, a middle mouse click on "an inactive portion" of the page makes me go to the URL that is the system clipboard, just like pasting stuff in X, in general, works. I guess that there may be some way to enable this in Chromium, but, so far, I have not found it.
  • In Iceweasel, I have a way (without resorting to many extensions or hackish solutions) to use the equivalent of Firefox's "View > Page Style > No Style" (i.e., to ignore any CSS sheet that the document author may have specified on the page).
  • In Iceweasel, my personal data is encrypted before being synced.
  • In Iceweasel, I can press Ctrl+Q and make the damn browser quit, instead of me having to use the mouse/trackpad/pointing device. This is probably a lack of my understanding on how to associate key bindings to Chromium, but the problem still stands.
  • Similarly, when there is only one tab open, pressing Ctrl+W in Chromium does not close the tab (say, presenting me a blank tab or the list of most visited sites), nor it closes the application.

I would be satisfied if any of the above were fixed or better documented, but it seems that some of those are, at best, going to wait a long time.

Posted 2011-02-26T11:55:06 BRT Tags:

Seeing now that the situation regarding Free fonts is much better than in the past, I have started packaging some that are of high enough quality so that we can have it available on our systems (be it Debian or any of the good derivatives).

In particular, I spent some time during the past few days packaging some that, I think, deserve to be mentioned:

  • ParaType Sans: this typeface family consists of a set of proportional, sans-serif fonts that supply a lot of Cyrillic glyphs.

    Purpose: the intention of this font is that of supporting many of the smaller ethnic and cultural aspects present in Russia. It was even funded by the Russian Government: in particular, by the Federal Agency for Press and Mass Communications of the Russian Federation.

    Why you should care: for those (like me) that use a Latin-based alphabet, the fonts also have some nice attractives, like, besides the usual 4 shape/weight combinations (regular, italic, bold, bold italic), two other variants: PT Sans Narrow (with its respective bold) and PT Sans Caption (also with bold).

    On top of that, the fonts support ligatures (liga, dlig), fractions (frac), ordinals (ordn), and glyph composition (ccmp), among other OpenType features.

  • Anonymous Pro: this typeface family consists of a set of fixed-width fonts with the usual 4 shape/weight combinations (regular, italic, bold, bold italic).

    Purpose: Anonymous Pro was made with people that stare at a computer screen, coding for long amounts of time, or people that use a terminal all the time. Apart from being scalable, it also features some pre-made bitmap versions at some sizes (10, 11, 12, and 13), so that they should look better than some automatically drawn font without proper TrueType hinting.

    My package still is not good enough, as I have not yet included explicit support for the bitmapped sizes via some fontconfig configuration, but I expect to fix those in two or three days.

    (This should just be a matter of including something like

    <edit name="embeddedbitmap" mode="assign">
        <bool>true</bool>
    </edit>
    

    in the configuration that I ship with the fonts).

  • Cardo: this is produced by David Perry and it is a proportional, serif, old-style typeface similar to some highly regarded fonts like Bembo. It does not offer italic, or bold versions.

    Purpose: Cardo's target "audience" are scholars that need to type set Medieval texts, it has many glyphs, support for many opentype features and the author has told me that he may even provide some support for typesetting Mathematics (and this is a very big deal, since typesetting Mathematics is hard enough when you decide to change your typefaces).

    It works quite well with Jonathan Kew's XeTeX and you should just try it, especially if you are into serif fonts (like I am).

  • Droid: this consists of three font families, with varying shapes and weights, in sans-serif, sans-serif monospaced, and serif families. It has received a lot of press, due to it being sponsored by Google and made by Ascender Corporation.

    Purpose: the Droid fonts were made for Google's Android platform and one of the main concerns was to be readable on devices with low resolution (like computer screens). It has a very wide coverage of glyphs (as one would expect from a font for phones) and have very high quality. A really nice donation to the world.

  • Linux Libertine: this has to be one of the most beautiful fonts that I have see in a while. It has the basic four combinations of a serif font

    Purpose: to provide a beautiful, "organic" version of a typeface that can substitute Times/Times New Roman. It works well both with "regular" latex/pdflatex and with XeTeX (and, quite probably, with LuaTeX). It has quite a lot of OpenType features:

    rbrito:~$ otfinfo -f /usr/share/fonts/truetype/linux-libertine/LinLibertine_Re.ttf | wc -l
    25
    rbrito:~$
    

    OK, I can't be impartial with this font. It is beautiful. It is a pity that we are in a feature freeze and that a the new version won't probably be included in squeeze.

  • Heuristica ("Эвристика"): since Adobe has donated Utopia to the TeX Users's Group under a Free Software license, it was only a matter of time that people would tweak them and generate other versions. Then comes Andrey Panov's Heuristica, a modified version of the four basic typefaces that Adobe donated, in OpenType format (and, to boot, some nice scripts for fontforge).

    Purpose: Heuristica improves Utopia with the primary intent of adding Cyrillic symbols by Andrey V. Panov. Andrey has also incorporated Vietnamese glyphs made available by Hàn Thế Thành. Heuristica is a family that features regular and italic shapes, with both being present also in bold weight.

Well, that's it for now. Stay tuned for more to come.

Posted 2010-11-12T11:23:55 BRST Tags:

Even though I am late with this post, it is nice to say that I am writing here from this year's DebConf10, in NYC.

Today (well, yesterday) was the day of the Cheese and Wine party and I think that it was cool, at least for the moments that I were there. This post, though, isn't technical in any sense. I only talks shortly about my impressions of the community, as this is my first DebConf ever (despite the fact that I have been using Debian since the late nineties).

I was very pleased to have met Bdale Garbee. I saw him the other day arriving with Keith Packard, but I just didn't want to disturb them at that point. We only talked for, say, 2 minutes, and his was one of the nicest receptions that I had here.

And there were some other people that were equally easy to approach, nice to talk with and, to my surprise, knew my name after some brief moments (yes, this does make a difference, especially when you are in a strange country, when you don't know anybody with whom you have worked for some years). Being involved in the organization stuff, one would think that Jimmy Kaplowitz would be so busy, but he was so kind.

I had longer conversations with Tássia Camões, Tiago Vaz (as always) and some other people that I had not yet had the pleasure of meeting in person. In particular, Daniel Baumann (who apparently is now crazy about our FISL and wants to drink all Guaraná that he can get :-)), Chris Lamb and Otávio Salvador and his mom. Those people are so cool and it is nice to discuss some legal issues among different continents in the lounge of their building at late night. :-) Too bad that I am allocated to the other building. :-)

I am forgetting many other people (hey, it is 2 am here in NYC), but I would feel guilty if I had not mentioned at least three people more: Martin Michlmayr, Phil Hands, and Reinhard Tartler (who is uploading lame to the debian repository, as the patents regarding it are expiring or expired already).

Thanks!

P.S.: I just created an account on flickr that I hope to populate with some photos that I took here. And even with a nice squirrel. :-)

Posted 2010-08-03T06:09:46 BRT Tags:

I just bought my tickets today to NYC and I am glady to say that I am going to Debconf 10.

[caption id="attachment_55" align="aligncenter" width="200" caption="I am going to DebConf10"]I am going to DebConf10[/caption]

The tickets have this information:

  • GRU->JFK: Departure: 2010-07-30, 21:25; Arrival: 2010-07-31, 6:10, Flight AA950
  • JFK->GRU: Departure: 2010-08-09, 21:40; Arrival: 2010-08-10, 8:35, Flight AA951

This represents a personal milestone for me, as I have many plans for the conference. In fact, this will be a trip of many "firsts" for me:

I am thankful for the DebConf team sponsoring both accomodation and food. It is highly appreciated.

See you in NYC! Any hints that you may happen to have are warmly welcome.

Posted 2010-07-18T03:34:40 BRT Tags:

Well, it's been some time since I last wrote here and things are quite hectic, due to some real-life happenings.

Announcement

For those people that are insterested in a small PDF viewer, based on an actively maintained backend, and that doesn't bring your computer to a halt when you try to zoom your documents when you need to see some details, then you might want to give this version of xpdf a try.

I already received some reports for some bugs and fixed them, with one of them being a problem related by a kind user of Gentoo.

Motivation

Some people have asked me why this even needs to exist in the first place and I agree that it would be better if it didn't: I would love to spend my time actually using my computers rather than fixing my computers for better tasks (read: studying Mathematics, etc).

The upstream maintainer of xpdf uses it as one source of income and keeps it running across many system (even legacy ones). I imagine that this one of the reasons why he tries to keep xpdf almost self contained, with many parts that could be delegated to other libraries, and with some abstraction code that makes the code compile even in the presence of very broken compilers. Of course, this means, in part, that as long as you take more duties, maintaing the code becomes more and more complex.

He told me that he doesn't offer an open development tree because he wants to give his customers some advantages over the public version and his reasons are perfectly justifiable, of course. He also manifested the interest of possibly basing xpdf on a "more modern toolkit" and, when I asked him what that would be, he mentioned that, perhaps, it would be Qt. The development of xpdf will, quite probably, take newer directions.

Unfortunately, xpdf has not seen a new upstream release since 2007-02-27. It did, though, have some patchlevel updates released. Taking care of the maintainance of the code is a high concern for distributions.

Some people, though, would like to keep it simple (me included). Unfortunately, some efforts to maintain it had not had the necessary coordination and duplication of effort has occured.

Proposal

I am willing to become a patch aggregator for the code in xpdf with a poppler backend. I would love to give it some refactoring too, drop some of the legacy code that is not used (and only serves to make the code hard to read), and adopt some good coding style standard (I particularly like the one from the Linux Kernel---with the proper adaptations for C++).

I have already contacted the people at Gentoo, and I would love to get people from Fedora, Ubuntu, and Suse involved also. Alas, the last time I tried to mail their mailing lists, I got messages telling me that my messages were rejected or waiting for moderation, because I was not a subscriber. I never heard back, since.

I appreciate it if you could help spread the word.

Thanks.

Posted 2010-06-10T19:46:13 BRT Tags:

Please, excuse me if you are a connoisseur of fonts and typography. You will find this boring, but other people may not know.

With that said, something that has been the subject of a joke for many years is the release of a set of fonts designed by a consortium of pulishers to create a typeface that would "match" the visual of Times, but that would have many (all?) of the glyphs needed by scientists.

Well, the wait is over (surprisingly). I didn't expect that. And the Free Software part of this is that the fonts were released under the SIL Open Font Library.

This, together with Google's new font directory of Free Software fonts (overshadowed by the release of VP8 codec, in the eyes of some), shows that the typographic arena is alive and going strong.

Posted 2010-05-29T17:54:56 BRT Tags:

I just added some very, very preliminary support for web in youtube-dl which I uploaded to unstable some minutes ago.

This way, at least people will have some material (in, fact, a chance) to play with this format. I implemented this because, so far, I was only hoping here that a player for this would emerge. I guess that Debian's ffmpeg/mplayer will take some time, but I was pleased to see that Sebastian Dröge to upload a version of something that could use the new libvpx codec.

I hope that, now, as a side effect of webm being widely available, more people become interested in Vorbis. More support (no, not "alternative", like Rockbox, but straight from the manufacturers) for it in hardware devices will be sweet. Well, I can dream. :-)

Well, it seems to be time to shape up that local build of mine of the aotuv tuned version of Vorbis with Aoyumi's patches for libvorbis.

Exciting times in the multimedia world.

Posted 2010-05-29T17:06:18 BRT Tags: