Behdad Esfahbod's daily notes on GNOME, Pango, Fedora, Persian Computing, Bob Dylan, and Dan Bern!

My Photo
Location: Toronto, Ontario, Canada

Ask Google.

Contact info
Hacker Emblem Become a Friend of GNOME I Power Blogger
follow me on Twitter
July 2003
August 2003
October 2003
November 2003
December 2003
March 2004
April 2004
May 2004
July 2004
August 2004
September 2004
November 2004
March 2005
April 2005
May 2005
June 2005
July 2005
August 2005
September 2005
October 2005
November 2005
December 2005
January 2006
February 2006
March 2006
April 2006
May 2006
June 2006
July 2006
August 2006
September 2006
October 2006
November 2006
December 2006
January 2007
February 2007
March 2007
April 2007
May 2007
June 2007
July 2007
August 2007
September 2007
October 2007
November 2007
December 2007
January 2008
February 2008
March 2008
April 2008
May 2008
June 2008
July 2008
August 2008
October 2008
November 2008
December 2008
January 2009
March 2009
April 2009
May 2009
June 2009
July 2009
August 2009
November 2009
December 2009
March 2010
April 2010
May 2010
June 2010
July 2010
October 2010
November 2010
April 2011
May 2011
August 2011
September 2011
October 2011
November 2011
November 2012
June 2013
January 2014
May 2015
Current Posts
McEs, A Hacker Life
Tuesday, February 28, 2006
 Burning DVDs in Linux

It was interesting to see Uraeus experiencing the same problems with burning DVDs that I did originally when I got my (now dead) laptop. The surprising point indeed is that cdrecord (as shipped with Fedora) cannot burn DVD+R's (not sure about other types) but growisofs does that flawlessly.

Personally I've put the following aliases in my ~/.bashrc:

function burndvdfunc() {
[ "x$f" = "x-" ] && f=/dev/stdin
growisofs -dvd-compat -Z /dev/dvd=$f
alias burn='sudo cdrecord -overburn -eject dev=/dev/hdc driveropts=burnfree'
alias burndvd='burndvdfunc'
alias mkisofs='mkisofs -rJ -joliet-long'
alias mkdvdfs='mkisofs -rJ -dvd-video'

And now burning all kind of things has become a pleasure:

For mkdvdfs to work, all files should have all-capital filenames. That became a small issue last week when I was trying to burn a home-made DVD from files on a FAT32 partition on an external harddisk of a friend, as by default, vfat mounts tolower all the all-caps names. The shortname=win95 mount options does the trick, but it doesn't work with -o remount, so you have to umount and mount again.

 GNOME Work This Cycle, Done

So to avoid missing the deadline again, I actually rolled out and released vte-0.11.20 and gucharmap-1.5.3 on Saturday, and pango-1.10.4 and pango-1.11.99 on Sunday, and Phil released dasher-3.99.5. Get all from

Pango-1.10.4 is probably the last Pango release in the 1.10 branch. Vte, Gucharmap, and Dasher are just waiting for more translations before turning into final releases for GNOME 2.14, and Pango-1.11.99 is named so "Just In Case." So I'm done with GNOME work for this cycle. Can cross my fingers until the next tarballs-due before rolling some more.

I made a supposedly better, cool, Tango-based icon for Dasher. Looks like this: . It's got a semi-transparent background. My first version had a transparent background, like this: . The old dasher icon was this: . Comments welcome.

That said, gucharmap can use a better icon. Filed here.

I plan to do a separate post on all the cool stuff that went into Pango this cycle. Got to reply to the Werror posts too. Both are will be really long posts I'm afraid...

Sunday, February 26, 2006
 Turing Test or Dumb Humans!?

This happened today in #gtk+. Only after receiving a /msg from Dorito with the bug information and doing /whois Dorito I figured it's actually a bot; I was joking when I said "Dorito: you're a bot!"

(16:03:17) leio: let me know the number ;)
(16:08:20) behdad: bug #332672
(16:08:28) behdad: lazy bots
(16:08:56) Dorito: behdad: lazy humans!
(16:09:31) behdad: Dorito: that's why computers are for.
(16:10:34) Dorito: behdad: no computers are to make fun of you!
(16:13:16) behdad: Dorito: you're a bot!
(16:23:20) carol: Dorito: bug 332672
(16:23:48) carol: software that does not respond when it is none of her business

Saturday, February 25, 2006
 Desktop Libraries' Releases

[Awesome news about Qt willing to integrate with GLib main loop]

Today was a happy day for Pango, as these releases hit the net:
Now David Turner is my hero of the day. If you don't know, FreeType started not exposing its internal headers anymore, for sometime, all in CVS. This was known to break several major libraries and applications, including but not limited to Pango, Qt, and fontconfig. First thing David did was sending patches to each of these rogue clients to make them not use the private headers. But as time passed, it became clear that releasing 2.2 without the private headers and symbols, would break several (mostly Debian) systems seriously, and there was no easy solution to that. See here for details of the problem. In the past couple of weeks, David finally decided that the only way to not break lots of systems is to provide wrappers for old internal API to make applications using private parts of previous FreeType versions still working with FreeType 2.2. That's as someone put it on the mailing list, in the level of backward compatibility that only companies like Microsoft and Sun bother to provide. Well done David.

There's one small issue with FreeType 2.2 though, that it doesn't round metrics anymore (for good), so Pango will render fuzzy horizontal strokes all over the place (bug #327852). Not sure how exactly that should be fixed, as that may require changes in cairo... Just if we could have cairo 1.2 in the party today... But hey, they just switched to git. Fortunately, Carl Worth is back to applying patches now. (-:

Update: After reading this post and some private discussion, David has reverted that change. Wait for Pango release now :-)

Wednesday, February 22, 2006
 Linux Tip: tune2fs

Tiny and trivial yet useful tip: By default, ext2 and ext3 filesystems reserve %5 of the capacity of the partition for root, such that if the users fill up the partition, services running as root (as well as commands the root user runs) don't fail right away. You can reclaim that precious %5 on your /home or other user-only partitions by doing tune2fs -m 0 /dev/hdaX.

I have to look around and clean up space on my harddisk every other week, so gained some 2.5GB this way and I'm so happy about it (-:.

(I'm going to open an RFE with Fedora, to not reserve this %5 on /home partition by default. Update: filed here. Update 2: Jeremy Katz comments in the bug that this reserved space is used to avoid fragmentation too. So zero is probably not the best value. Set mine to %1...)


Pouria is one of the coolest Iranian/Canadian friends that I've made in Toronto when I came here in 2003. Since last Summer, he's in Afghanistan as a Red Cross translator/volunteer. He writes an interesting weblog and recently has started a photo stream on flickr too.

Anyway, on Monday I was reading through his recent weblog entries when I hit his Weekend in Samarqand post where he explains among other things how the kebabs in Central Asia are much better than in Afghanistan. Later he made another post with photos of said kebabs. Damn, they look delicious!

Got past it and continued reading email, where I found a friend posting to an Iranian list this article about History of Most Famous and Most Popular Iranian Dish, Chelo-Kabab. I couldn't wait anymore. finished mail and some bug work and headed to the nearest Iranian restaurant with Hossein for a real Chelo-Kebab. Nothing to be compared to any of the photos though. Have got to go to the Iranian area of Finch and Yonge for a real treat sometime soon...

Tuesday, February 21, 2006
 Persian Linux Project

I'd know when the Iranian governmental Persian Linux Project (link in Persian) sends requests for proposals. It's when multiple people send me emails on the same day about how they have become interested in this particular thing and they need my advice/help...

Monday, February 20, 2006
 You Belong to Me

Watched Broken Flowers (Jim Jarmusch, 2005) and Natural Born Killers (Oliver Stone, 1994) on Saturday night with a bunch of friends. Can't say I particularly liked Broken Flowers, not really Jim Jarmusch. But loved NBK. Inspiring even, and what a sound track!

You Belong to Me
Natural Born Killers Soundtrack
Bob Dylan

See The Pyramids
Along the Nile
Watch the sun rise
On a tropic isle
Just remember darling
All the while
You belong to me...

See the market place
In old Algiers
Send me photographs
And souvenirs
Just remember
'Til your dream appears
You belong to me....

I'll be so alone
Without you
You'll be lonesome, too
You'll be lonesome too
And blue

Fly the ocean
In a silver plane
See the jungle
When its wet with rains
Just remember
Till you're home again
Or until I come home to you
You belong to me...

Saturday, February 18, 2006
 Chinese Feast

Yesterday, it was the grad visit day in the CS department where candidates for next year grad students where visiting. I was part of the theory group team of it, chatting with them over snacks, and we (the theory group) went out for dinner in a Chinese restaurant in China town when the Database and Graphics groups were partying in Karan Singh's place.

The food was a real treat though. We tried more than ten dishes, every single one of them could make a delicious dinner in itself.

A cute (and easy) problem somebody dropped on the table: Find a polynomial-time algorithm to find a subset of the nodes in a simple graph, that is both a minimum vertex cover, and a maximum independent set, or determine that no such set exists. (Yes, it's maximum/minimum, not maximal/minimal. Yes, both min-vertex-cover and max-independent-set problems are NP-hard.)

Monday, February 13, 2006

Playing with gdb, I just discovered gdbtui. Very nice tool. Give it a try if you've not before.

Saturday, February 11, 2006
 Dear Maintainer

Please do me and several other (CVS) users a favor and do NOT turn -Werror on under ANY condition. I will (and several other will too) appreciate if you respect our decision-making ability and freedom of choice on which compiler flags to use.

Let me assure you that I better understand about my compiler and compiler options, than your five lines of magic can ever do.

Please understand that Free Software (in particular, GNOME modules) are not your pet software only, and do NOT put what you should be putting in your ~/.bash_profile into


gnome-keyring maintainer.
gnome-vfs maintainer.
gnonlin maintainer.

Friday, February 10, 2006

Let vte-0.11.18 and pango-1.11.5 out for next week's release. gucharmap is blocking on Behnam reworking his patch, and Phil will release dasher tomorrow as he has release access now.

Pango-1.11.5 released on 2006-02-11
Pango-1.11.4 released on 2006-02-06
Pango-1.11.3 released on 2006-01-30
Pango-1.11.2 released on 2006-01-16

Wow, that's four releases in one month!? I like making devel releases crazy like this, as Matthias pushes them in rawhide and they get a lot of testing. No major regressions so far, even though I've been committing crazy stuff (will post about in a second.) Anyway, I think I'm alsmost done with Pango for this GNOME cycle. The rest of changes that I have patches for need some more work and I don't think I can get them done in time for some testing.

By the way, pissed off at Novell and how they have a braindead bugs database that gives you an "Access Denied" even though what it means is that "You need to login." And this is the first damn time I see a registration form with those "required" stars on every single field. And they have one of those crazy little JavaScripts that tell you "Please enter a valid password that contains at least 6 characters and at least one letter and one number or punctuation character." Damn! Are their customers *that* stupid? I appreciate a password strength meter like the one gmail has, but I really doubt a 2 line JavaScript knows better than me what a good password should look like. Not incidentally, the only passwords of mine that I forget and have to beg for a new one are the ones that a crazy JS forced me to set a password other than what I originally wanted to set.

 VTE is Fast now

VTE patches are in CVS. The throttling one, the faster private, and the efficient sequence handler table that I just cooked. The throttling reduces the time for a warm "ls -R /usr/lib" from above 5s to below 2s with no sensible difference on the screen.

Thursday, February 09, 2006
 VTE Performance Work

I've been doing some little performance work on vte, everyone's favorite terminal emulation library. See the report and patches in the performance-list archives here. Please follow up on the mailing list for technical discussion.

Tuesday, February 07, 2006

Now I've been in love with the bash_completion package for a couple years now. I've always wondered about how much performance hit does it cause, by loading all the completion rules for all commands known to it in every bash shell, which is default shell in any decent Linux system, every single time... But never measured before.

Tonight, I'm writing a shell script (will post soon), and I was wondering why does it take 0.66s for it to print out usage information. Indeed it was bash_completion. First disable it, time down to 0.09s. Neat. But then I simply added a single magic line to /etc/profile.d/

[ -z "$PS1" ] && return

so it doesn't run in non-interactive shells. That's it!

 Bug Buddy Rockness!

Fer writes up about the new cool stuff going into Bug Buddy, the GNOME automated bug reporting tool.

One thing I'm sure both Bug Buddy can use, and us developers, if to have shorter URLs for bugs, like having redirecto to the current

I'm sure somebody on the SysAdmin team would be happy to implement that :).

Update: I was just informed that in fact indeed works ("bugs", not "bug", btw.) Ok, to have something proposed anyway, would be cool to have redirect to where it should too.

Saturday, February 04, 2006
 Gilmour and Preisner

As a followup to the David Gilmour tour that we couldn't get tickets for, it seems like he's in fact touring a new album, On An Island, due to release on March 6, just before the tour begins. Nice move from Dave indeed.

More interesting detail of the album revealed in the linked page above is that the album features orchestrations by renowned Polish composer Zbigniew Preisner. Now Gilmour I have always liked, as much as I like Pink Floyd, and Preisner has been my number one favorite composer. Never I expected though that they will work together... Not in my dreams!

First Dylan appears on a VictoriaSecrets TV ad, then Waters writes anti-Bush lyrics, and now Gilmour works with Preisner. These guys won't stop surprising us soon...