Gentoo Logo
Gentoo Logo Side
Gentoo Spaceship

Contributors:
. Alec Warner
. Alex Alexander
. Alex Legler
. Alexis Ballier
. Andreas Proschofsky
. Andrew Gaffney
. Arun Raghavan
. Ben de Groot
. Bernard Cafarelli
. Bjarke Istrup Pedersen
. Brent Baude
. Caleb Tennis
. Christian Faulhammer
. Christian Zoffoli
. Damien Krotkine
. Daniel Drake
. Daniel Gryniewicz
. Daniel Ostrow
. David Abbott
. David Shakaryan
. Davide Italiano
. Denis Dupeyron
. Diego E. Pettenò
. Donnie Berkholz
. Doug Goldstein
. Fabio Erculiani
. Gentoo Haskell Herd
. Gentoo News
. Gilles Dartiguelongue
. Greg KH
. Gunnar Wrobel
. Gustavo Felisberto
. Hanno Böck
. Hans de Graaff
. Ioannis Aslanidis
. Jan Kundrát
. Jeffrey Gardner
. Jeremy Olexa
. Joe Peterson
. Jonathan Callen
. Jonathan Smith
. Jorge Manuel B. S. Vicetto
. Joseph Jezak
. Josh Saddler
. José Alberto Suárez López
. Kenneth Prugh
. Krzysiek Pawlik
. Lance Albertson
. Luca Barbato
. Luis Francisco Araujo
. Marcus Hanwell
. Mark Kowarsky
. Mark Loeser
. Markos Chandras
. Markus Ullmann
. Mart Raudsepp
. Matthias Geerdsen
. Michael Marineau
. Michal Januszewski
. Mike Doty
. Mike Pagano
. Mounir Lamouri
. Nathan Zachary
. Ned Ludd
. Nirbheek Chauhan
. Olivier Crête
. Pacho Ramos
. Patrick Kursawe
. Patrick Lauer
. Patrick McLean
. Paul de Vrieze
. Paweł Hajdan, Jr.
. Peter Weller
. Petteri Räty
. Pieter Van den Abeele
. Piotr Jaroszyński
. Raúl Porcel
. Remi Cardona
. Renat Lumpau
. Rob Cakebread
. Robert Buchholz
. Robin Johnson
. Romain Perier
. Ryan Hill
. Sebastian Pipping
. Serkan Kaba
. Shyam Mani
. Steev Klimaszewski
. Stefan Schweizer
. Steve Dibb
. Stuart Longland
. Sune Kloppenborg Jeppesen
. Sven Wegener
. Theo Chatzimichos
. Thilo Bangert
. Thomas Anderson
. Timothy Redaelli
. Tiziano Müller
. Tobias Klausmann
. Tobias Scherbaum
. Torsten Veller
. Yuval Yaari
. Zack Medico
. Zhang Le

Last updated:
February 09, 2010, 21:04 UTC

Disclaimer:
Views expressed in the content published here do not necessarily represent the views of Gentoo Linux or the Gentoo Foundation.


Bugs? Comments? Suggestions? Contact us: planet@gentoo.org

Powered by:
Planet Venus

Welcome to Gentoo Universe, an aggregation of weblog articles on all topics written by Gentoo developers. For a more refined aggregation of Gentoo-related topics only, you might be interested in Planet Gentoo.

February 09, 2010
Mike Pagano a.k.a. mpagano (homepage, stats, bugs)
gentoo-sources-2.6.32-r4 released (February 09, 2010, 16:16 UTC)

I have just committed gentoo-sources-2.6.32-r4 to the tree.

This kernel uses genpatches-2.6.32-5 and includes the following:

linux 2.6.32.1
linux 2.6.32.1
linux 2.6.32.2
linux 2.6.32.3
linux 2.6.32.4
linux 2.6.32.5
linux 2.6.32.6
linux 2.6.32.7
linux 2.6.32.8
A transmit hang fix for broadcom 5906

And the normal patches we always carry over such as fbcondecor, etc.

Device Convergence (February 09, 2010, 14:57 UTC)

The iPad has made me think a bit about device convergence. Conceptually, I have 8 main devices in my life:

  1. A phone. Receives calls (and occasionally makes them).  Has to last a full day of battery at least, preferably a full weekend.
  2. A development box. Big keyboard, big screen, fair amount of computing power. Let’s me code.
  3. A home gaming machine. Big screen, good controller, good sound, lots of horsepower. Let’s me play full on modern games.
  4. A mobile gaming machine.  Portable, good screen (for a portable), decent sound, decent input, decent horsepower.  Lets me play games on the go.  Battery life is not hugely important, as long as it can last a couple of hours.
  5. An ebook reader. High-rez screen, portable, good battery life, good sunlight visibility. Let’s me read books comfortably for long periods of time an on the go.
  6. A home diversion device. Decent screen, decent keyboard, decent horsepower, internet connection. This is used “at home” to browse the internet, read email, watch video, play small games, write blog posts, IM, and so on. It must be accessible where I spend most of my downtime.
  7. A mobile diversion device. Highly portable, good battery, always connected to the internet, reasonable screen, touchscreen, not impotent, preferably some kind of keyboard.  This is used for the same kinds of things as the home diversion device, except for when I’m on the go.
  8. A music player.  Stores and plays lots of music.  Prefereably all my music.  Preferably portable with really good battery life.

I pretty much use all 8 of these conceptual devices every day.  Now, obviously, I don’t really want 8 different devices for this, so I make some compromises to reduce number and cost of these devices.  This is not always possible;  device 3 (home gaming device) is, in fact, a dedicated device.  It’s my PS3.  Full-on modern gaming, such as Fallout 3 (my current game) is demanding.  It takes a lot of fairly specialized and expensive hardware to get that kind of game to play properly.  You can game with a computer; and lots of people do.  But the price of a decent gaming computer is 3 times the price of a console, for approximately the same experience.   Unfortunately, consoles are pretty bad at most anything except gaming, so I end up with a dedicated gaming device.  So, that’s one down.  (Well, really more than one, because we have a Wii, a PS2, a PSOne, a dreamcast, a NES, and so on… but I don’t use them hardly at all, so I’m not counting them here.)

I have another dedicated device, my ebook reader. There’s a good reason for that: e-ink.  Anyone who has tried to do any significant amount of pure reading on an LCD has discovered that they make horrible reading devices.  I stare at a screens all day at work,  and they’re about as good as screens get, but I still have to look away all the time to rest my eyes.  Not so with e-ink.  I can literally read for hours without looking up and be fine, just like paper.  It’s awesome.  Nothing else currently available comes close.  However, for anything except reading books, e-ink is currenlty useless.  It’s refresh rate is just fast enough to turn pages, but not fast enough for anything else.  So, my ebook reader (a Sony PRS-600) is my other dedicated device.

Now the compromises start.  First, my development machine. As much as I love my hoss workstation at work (quad-core, 4G, dual 24″ LCDs), it’s very big, very non-portable, takes up lots of desk space, and is very expensive.  I spend most of my down-time at home in the living room sitting in a chair with my feet up.  This means that getting access to a hoss dev box (which would presumably be on my desk in the computer room) would be difficult.  I would need to either give up my living room time with my family or my dev box time.  So, I use a laptop for personal development.  This allows me to spend time in the living room with my family.

Once I have a laptop, I can compress a number of other pieces of functionality into it as well.  My home diversion box, used primarly in the same downtime as I do my development, is also my laptop.  It has all my music on it, so it ends up being my primary music player (I use it at work to listen to music).  I even use it for some gaming, although admittedly not much.  It’s not very powerful.

For portable gaming, I have a DS, but I don’t ever use it.  I basically take it on flights, and that’s it.  Why?  Because my G1 is a decent mobile gaming device.  There’s lots of games that are quite fun, and lots of them are games that don’t seem to end up on dedicated mobile gaming platforms, like sudoku and freecell.  In addition, it has always-on internet, so it can use that to enhance the gaming.

This leaves a phone and a mobile diversion device.  Now historically, I had two devices for this:  A moto flip phone and my 770/n810.  However, for the last year and a half, I’ve had a G1.  Initially, I carried my n810 as well (since I used it at the time as my ebook reader), but my G1 quickly usurped all the features of my n810, and it became my main portable device, with one exception: reading.  It’s a poor ebook reader.  Too small, too short battery life, and that everpresent LCD.  In addition, I used to carry an actual mp3 player with me for portable music.  However, my G1 has usurped that role as well.  It doesn’t have enough storage to hold all my music, but it holds a good subset.  It also docs in my car, so I can use it in there for music.

Now, there’s one device that I left out of the list: GPS.  It’s a common dedicated device, and I do use Google Navigator (and before my G1 I used my n810) for GPS fairly often;  however, I don’t use it anywhere near as often as the 8 use cases above, so I kinda left it off the list.  In addition, I’ve never had a dedicated GPS device; I’ve always used another device as a GPS.  All the entries on that list have, at one point or another in my life, been represented by a dedicated device.  So, GPS is important to me, but not enough that I’ve ever actually bought a GPS unit.

On to the iPad, which brought this whole thing up.  The iPad, as it stands, cannot fit into my life.  It tries to be an ebook reader, but it has an LCD, so it fails.  It isn’t a phone, so it can’t replace my phone.  It would make a decent mobile diversion device, but it’s not enough better than my G1 (or, say, a Nexus One or an iPhone) that it’s worth carrying in addition to my G1, and I have to have my G1 because the iPad isn’t a phone.   It is supposed to be a decent mobile gaming device, but again, not significantly better than N1/iPhone, which I have to carry anyway, so…  It could be a decent home deversion device for most of those uses; however, it’s lack of a keyboard and lack of a real OS make it completley useless as a dev box, so I have to have my laptop anyway, which is much better in every home diversion category, so it won’t fill that niche either.  It’s not powerful enough to be a home gaming box.  It’s not any better as a music player than G1/N1/iPhone (and arguably worse because of it’s size).  That leaves nothing.  I need a laptop, I need a phone, and that covers everything that the iPad can do, and generally better.

So what would it take to get a tablet like the iPad to slot into my life?  Well, first off, it has to be able to replace my phone for 95% of my uses.  I’m willing to keep my old phone around on the charger so I can put my SIM in it for going to football games.  And, don’t tell me a tablet would be a horrible phone.  I know it.  But lets face it: making actual phone calls is the least common thing I do with my G1.  I actually make less than one call a day on average.  So a crappy phone is fine, as long as it can work as a phone.  I wear a headset for long calls anyway, so that’s not a problem.  But, without being a phone, the tablet just cannot fit into my life; I won’t carry it.

The next thing it needs to be able to do is replace my ebook reader.  This means it needs an extremely high DPI screen that is directly sunlight visible, and one that won’t hurt my eyes after hours of use.  Currently, this is e-ink, which fails for other uses; but there’s some hybrid screens coming out that operate like e-ink or like an LCD.  Hopefully something like that would be good enough for reading.

It would have to have great battery life.  Like 12 operational hours, at least.   I need to be able to actually use it all day without it going dead in the evening.  This is actually my main gripe with my G1: it has horrible battery life.  If I actually use it much, it fails in the evening.  I actually keep it plugged in all day at work, just in case.

It would have to have an always-on internet connection (like my G1), and a decent app store (like my G1) or run a full OS like Linux (which, of course, has tons of apps).

It would have to be the right size.  For me, that’s ~6-7″ diagonal.  Much bigger than that and it becomes too big to carry or to use as  GPS in the car.  Much smaller than that, and it’s too small to be a decent ebook reader.

If I had such a device, then I could remove one of the two dedicated devices from my life: my ebook reader.  I could consolidate down to a single device that I carry with me all the time.  Would I actually do it?  I’m not sure.  I can think of situations when I’d rather have my current phone (like the afore metioned football game).  But, at least there would be a chance.  The iPad, as it currently stands, is completely useless.

Diego E. Pettenò a.k.a. flameeyes (homepage, stats, bugs)
FOSDEM 2010 Recap (February 09, 2010, 01:16 UTC)

So, for the first time in my life, if we exclude the local Linux Day events, I attended a conference! FOSDEM 2010 has been my first time properly meeting other developers out there. It actually was a bit more travel than just Bruxelles, for me; I actually took a long way to get there. Since I was still afraid of planes, I didn’t want to go up there alone. Add to that, the fact that I’m neither used to Bruxelles area, nor I speak any decent French any more (I studied it in middle-school, so I could at least ask for, and listen to, directions, but in over ten years not using it, it really just went away), so I got there with Luca who lives in Turin (in the other side of Italy).

The end result looks something like this: I left Mestre (the Venice inland city, which is where I actually live) by train, I changed in Milan, then arrived in Turin; I went to dinner with some friends I only met online before (colleagues and fellow Ultima OnLine players), and slept at Alessandro’s – from lscube – flat. In the morning me and Luca took the plane for Rome, then changed to the one for Bruxelles. Our luggage decided to take a later plane (d’oh!). The same travel (minus the luggage nuisance, fortunately) applied to the way back. This resulted in something like five trains (one from the Bruxelles Airport to the Gare du Nord — we took a cab to go back), and four planes. I think my fear of planes was totally cured this time.

FOSDEM itself was lots fun! I finally met lots of other Gentoo developers (including Luca for the first time), the other FFmpeg guys, some of the VLC guys, and quite a few users who knew me, even though I didn’t know them before, which I have to say has a nice feeling to it. And I even met with a Mono team delegation, and with the one guy that I had a rough start with – Jo Shields, “directhex” – I should report every misunderstanding is cleared. I was also able to (very briefly) meet Lennart, but that was when me and Luca really had to hurry to catch our plane back.

I really would have liked to stay the whole Sunday and leave on Monday, but Luca was actually due to be back in Turin for other reasons, so we had to live early on Sunday to get back to Italy before all planes stopped flying.

Now, during FOSDEM I picked up a few extra tasks other than all the stuff that I’ve had already planned, and this means that the next few days will get me almost no time to breath, to take a break, or to go out with friends. That’s fine, I had four days that relaxed me quite a bit, so this is not too bad to do. Just so I can name some of the tasks that I’m looking forward for, beside the key signing (that was a “cool” party… even though it was maybe too cold), is writing something more about release notifications as it seems like I’m not the only person having a problem with that, trying to write some more about upstreaming patches, and packaging SIP Communicator – a demo of which was available next to the FFmpeg stand in the AW building… looked very promising, and getting an hash table implementation in libavutil for FFmpeg, so that we can use it on feng and libnemesi and thus get a good parser, finally!

Anyway this is enough for today, hope the other people at FOSDEM found it at least as fun, for me is time to hit (finally, my) bed.

Nirbheek Chauhan a.k.a. nirbheek (homepage, stats, bugs)
Infibeam Rocks. (February 09, 2010, 00:05 UTC)

Some of you who follow me on twitter might remember something I tweeted about on Feb 6th:

Crap. Bought the wrong book on Infibeam and there's no way to cancel after making payment. Worse, I already have this book x-( #fail

This is essentially what happens when you buy stuff on the Internet at 5am after not sleeping all night preparing for an exam. I selected the (wrong) book, paid for it using Paypal, and soon afterwards, realised that I wanted the second part of this book (Foundation Analysis). Checked their FAQ to find to my dismay that they don't support cancellation of orders after payment has been made.

Needless to say, I'm a student, and students are poor(er). So I was sitting around semi-depressed wondering how to sell the book off at a minimal cost loss after I get it. On a whim, I decided to tweet about it (I generally don't tweet much; mostly passive reading).

After giving my exam, I noticed two missed calls on my phone from a strange number. I decided to wait for them (whoever they were) to call me again. A couple of hours later, I get another phone call; but this time it gets cut before I can pick it up. A few minutes later I get the following email:

Dear Nirbheek Chauhan ,

Order Id : [REMOVED]

Title : [REMOVED BOOK TITLE]

We have received your request for cancellation of above order through twitter.com. So we are offering you your ordered amount as prepaid credit to your Infibeam account which can be used for next purchase.

Please allow us for the same. So we can credit your account accordingly.

We also tried to reach you through given no. [REMOVED MOBILE NO.], but could not get response.

Thank you for shopping with us! You can contact us anytime using http://www.infibeam.com/ContactUs.action


Sincerely,

Infibeam.com Customer Service
Fresh Way to Buy, Sell and Rent

My reaction -- :O :D :O :D

Yesterday evening, they cancelled my order and refunded the amount I had paid as prepaid-credit which I can now use to buy the other book that I wanted to buy!

I don't know about you, but I'm very impressed by their customer service. The fact that they took the initiative to monitor twitter for tweets mentioning "Infibeam" for any problems that users face is a strong indication that they aren't just some random E-Store. They have definitely made permanent customer out of me!

On a related note, I've found that their book prices are usually less than or equal to those on flipkart.com . Another reason to use them ;)

February 07, 2010
Hanno Böck a.k.a. hanno (homepage, stats, bugs)
Free and open source developers meeting (FOSDEM) (February 07, 2010, 09:34 UTC)

FOSDEM talkAfter reading a lot about interesting stuff happening at this years FOSDEM, I decided very short term to go there. The FOSDEM in Brussels is probably one of the biggest (if not the biggest at all) meetings of free software developers. Unlike similar events (like several Linuxtag-events in Germany), it's focus is mainly on developers, so the talks are more high level.

My impressions from FOSDEM so far: There are much more people compared when I was here a few years ago, so it seems the number of free software developers is inceasing (which is great). The interest focus seems to be to extend free software to other areas. Embedded devices, the BIOS, open hardware (lot's of interest in 3D-printers).

Yesterday morning, there was a quite interesting talk by Richard Clayton about Phishing, Scam etc. with lots of statistics and info about the supposed business models behind it. Afterwards I had a nice chat with some developers from OpenInkpot. There was a big interest in the Coreboot-talk, so I (and many others) just didn't get in because it was full.

Later Gentoo-developer Petteri Räty gave a talk about "How to be a good upstream" and I'd suggest every free software developer to have a look on that (I'll put the link here later).

I've just attended a rather interesting talk about 3D-printers like RepRap and MakerBot.

February 06, 2010
David Abbott a.k.a. dabbott (homepage, stats, bugs)
Podcast 71 Are you a Slacker? (February 06, 2010, 18:08 UTC)

colin
In this podcast comprookie talks about learning Python as a group, and his Gentoo unslacking.

Slacker
The term slacker is commonly used to refer to a person who avoids work (especially British English), or (primarily in North American English) an educated person who is viewed as an underachiever. Slackers, understood mostly as males in their twenties and thirties, or older may be regarded as belonging to an antimaterialistic counterculture, though in many cases their behavior may merely be due to apathy or laziness.

LINKS:
Slacker
http://en.wikipedia.org/wiki/Slacker

Fedora Bugzilla
http://fedoraproject.org/wiki/Bugzilla

PythonGroup Wiki
http://asterisklinks.com/wiki/doku.php?id=core:start

PythonGroup Forum
http://asterisklinks.com/python/index.php?board=4.0

Gentoo (dabbott)
http://dev.gentoo.org/~dabbott/

irc network freenode channel #linuxcrazy

Download

ogg

mp3

Hey, stop slacking!

Robin Johnson a.k.a. robbat2 (homepage, stats, bugs)
FOSDEM: Notes from MirrorBrain talk (February 06, 2010, 14:11 UTC)

Sitting in the MirrorBrain talk at FOSDEM, taking notes.

Actively used since ~2007.
Split between the redirector and the tester, explicitly made separate.
SourceForge helped with the ASN/Closest-Network side.
Metalinks and P2P support.
Scans mirrors for filelist to see what's present.
Load limiting by making director support mirrors that are limited to a local network / AS / country etc.
MetaLinks don't have Magnet links presently, but I noted that it should be possible to include it.

Using GeoDNS directly for lookups can cause trouble with partial mirrors. Ideally need to put a MirrorBrain server on each continent/region, and GeoDNS to point to that. Also, from some countries, bandwidth to adjcaent countries that might have a mirror is MUCH worse than bandwidth to a well-connected country elsewhere. Past user experience noted with a user in Mozambique, for whom the fastest mirror was via satellite to Canada. Routing data IS needed to make that best choice.

MirrorBrain mailing lists also have a generic non-project-specific "networkers" list for talk between content providers and mirror admins, non-specific to any app.

February 05, 2010
Markos Chandras a.k.a. hwoarang (homepage, stats, bugs)
Migrating to a minimalistic desktop (February 05, 2010, 18:12 UTC)

Since I moved to Linux OS ( 5-6 years ago ) I use KDE as my main DE. This wasn’t a random choice, since I ‘ve tried or at least seen all the others main DEs such as xfce and Gnome. KDE is so much beautiful and convenient that I never bothered searching for something else. This is because my main activity on computers was purely based on multimedia entertainment despite the fact that I had to deal with a heavy load of University projects. Since I finished University , and dedicate most of my free time on Gentoo and other Open Source activities, I started to use more and more utilities designed for such things, such as Qt-creator, version control systems, ssh connections to various servers etc.

It is pretty clear that a eye-candy desktop enviromment couldn’t be as much beneficial as I wanted. Hence I had to search for an alternative. A minimalistic desktop or WM allowing me to take advantage of every single pixel of my 19” monitor and don’t waste them with various widgets and stuff would be ideal.

I tried fluxbox at first but I wasn’t too fond of it because it looked kinda ugly by default and I just couldn’t get along with it. So next thing to try was Openbox. I was quite surprised to see that I could tweak it and tune it up by simply editing 3 files located at ~/.config/openbox

Having created my shiny menu.xml and autostart.sh files, I emerged obconf in order to perform that last tweak on my new enviromment.

I plan to migrate my laptop to openbox as well since it looks and feel quite fast and light . Exactly what I was searching for my “tired” laptop

To conclude with, I added fluxbox-9999 and obconf-9999 packages to gentoo tree since I wanted to try the latest version of those two packages and I guess our users will like that as well.

So, enjoy :)

Refs:

Gentoo Openbox Documentation

Gentoo Openbox wiki

Layman 1.3.1 released (February 05, 2010, 01:34 UTC)

Now that the latest bugfixes have received a positive response it’s time to share them with a wider audience, i.e. with you: layman 1.3.1 out now. Thanks go to Dmitry Karasik and Jimmy Jazz.

Summary

layman-1.3.1 is a bugfix release: Adding/deleting/syncing overlays did not work in all cases.

Details

  • Fix handling of CVS overlays (bug #301689)
  • Fix handling of non-existing overlays (bug #301612)
  • Now delete empty overlay directories (bug #301612) ..
    • on deletion of a non-existing overlay and
    • after failed addition of an overlay.

How to upgrade

  1. Unmask =app-portage/layman-1.3.1 if you’re on stable
  2. sudo emerge -av =app-portage/layman-1.3.1
  3. sudo etc-update

February 04, 2010
Luca Barbato a.k.a. lu_zero (homepage, stats, bugs)
Fosdem (February 04, 2010, 21:15 UTC)

Diego reached Torino safe, I'm almost fully recovered from the flu that caught me this Monday, I barely made all the preparatives for tomorrow morning.

See you next days!

(As usual I'll be split between Gentoo and FFmpeg)

Fosdem 2010, packing up stuff + PackageKit (February 04, 2010, 19:45 UTC)

Maybe I didn’t write this in enough different places beside Twitter, Facebook, IRC, identi.ca, …. Well, see you there!

Of course I needed something to talk about with other guys at Gentoo, Sabayon, Tracker, Itsme. So, I just implemented the first version of the Entropy PackageKit backend. This is the first step towards World domination (read: making Entropy a PackageKit service provider in one year).

Get this nice screenshot while it’s hot (KPackageKit running on top of Entropy PackageKit backend):

Steve Dibb a.k.a. beandog (homepage, stats, bugs)
narnia 2: whatever the title is (February 04, 2010, 04:58 UTC)

So, I watched the second Narnia movie tonight (whatever the name is .. I thought the book went by the name the Silver Chair, but maybe that was the third one.  I don't remember.  Anyway .. ), and it was really good!  I was more than pleasantly surprised.

I had put off watching it for a looong time, pretty much completely until a friend recommended it in passing and I was like "Hmm, it's on Netflix Watch it Now, meaning it's probably not that great, so I'll go watch it."  Yah.  Don't ever expect me to explain my logic to you.

I was really excited when the first one came out, and I was sorely disappointed by how much I thought it didn't live up to the book.  I thought it was good, but I was really bothered by the fact that the "epic" battle scene at the end was seriously less than 5 minutes long, and I don't think you ever saw *one* person do anything battlerific.

The second one, though, was awesome.  Probably about half the movie was one big battle or another one, and well done for the most part.  I especially liked the duel.  Oh yah, spoiler alerts.  Whoops.

The movie was interesting, though.  I don't remember the book *at all*, so that could be why I enjoyed it a bit more.  I thought there was a lot of interesting touches.  There was just one thing that kept nagging me a bit, though.  I kept thinking that, no matter how good the movie was, it seems like they focused on making it a spectacle movie more than a really good story.  It wasn't poorly done, but it wasn't excellent, either.  I often wonder why movies with really gripping stories and dialogue are so few and far apart.  This one went both ways.  At times it had some class and grit and character all its own, and then at other times it took things a little less seriously.  I suppose that's not too bad considering it's a film for kids, and I have to say that, overall, they did a really good job.  I think that the sequel was far better done than the first -- although I will admit it's been a *long* time since I saw the original Narnia, and I should probably give it a nod again.

promises and deliverables (February 04, 2010, 00:33 UTC)

I was thinking about my earlier blog post about my ideas for the new packages site I'm still working on, and I realized that to a lot of people it must seem like I sure promise a lot of stuff, but then never get around to really completing it.  I wanted to address that a bit, since I imagine that at times I'm either confusing or frustrating some people.

First of all, I get a lot of ideas to do a lot of projects.  There's lots of cool stuff I want to do, and I have a hard time saying to myself "I have enough projects already in the works to finish, better not start another one," but I do anyway.  I tend to quickly overload myself sometimes that way, which can be bad for everything.  However, one thing I'm getting more strict on is only picking up projects that I'm sure I want to complete, that I'll see through until the end.  I very rarely, if ever, completely drop a project that I've started.  I will tend to put them on hold for a while -- sometimes years -- but I'll eventually revisit the idea (heck, the packages website is a perfect example of that).

I have a ton of projects I'm "working on," though.  So many, that I'm honestly afraid to write them all down for fear of being totally overwhelmed by the responsibility I put on myself for them.  I do, however, plan on getting them all done, and they circle around in my head on a regular basis, and often times I think of ways to integrate two projects (for example, adding an option to search gentoo planet(s) from the packages site).  I get a lot of interesting ideas all the time, but I really have to be careful not to overextend myself.

One thing I've been trying to do recently (as in the past year) is slowly shutter off some of the support I've been providing for the Gentoo tree directly, and ebuilds / herds I've in the past taken close care of.  It occurred to me way back when that it'd be a more efficient use of my time if I built out some project websites (like the packages one) rather than trawling the tree looking for ebuilds to fix, bump and repair (for example).  Not that I mind doing that, mind you, in fact I find it rather relaxing at times, but what's happened is that I've overextended my responsibilities again, and I'm trying to cut back.  Basically, my thought is that while I want to still work on Gentoo for a while, I don't want to make a career out of it.

Oddly enough, though, part of the reason I'm doing these community projects is so that I can more efficiently do other ones.  For example, at times I like to go through the multimedia packages and just check them to make sure we aren't missing version bumps, and go fix small bugs that I can take care of and just little stuff that isn't really important (in a sense of package popularity) but still relevant to a few users.  Those are fun.  But it'd make my life easier if I could more quickly track what has been neglected, more easily see what available version bumps are available (I still wanna hook into GnomeFiles and track their changes, for example), and stuff like that.  A lot of the tree-fixing stuff in Gentoo development is just monotonous, which is why it's hard to find volunteers to do it.  There's a good chunk of it that is just boring work!  And I'd like to help streamline that a bit.  That's one of my big goals.

With that goal in mind, a huge reason for doing the packages site was just so I can have a simple interface to get all the information I need, and finally a standardized set of data for categories, packages and versions.  That's mostly done, or at least the framework is, so now I can get going on the *really* cool stuff.  What I've done so far is really just the tip of the iceberg.

Anyway, I didn't wanna talk about just the packages site.  There's lots of other stuff I have going on.  It's interesting, even to me, to see which ones I'll want to juggle at a time.  I switch between them on a regular basis.  Sometimes I'll be working on the packages site, then my DVD ripper, then my scriptures stuff, then I'll work on theology ebuilds, then sound ones, then I'll look after ALSA, then mplayer, then I'll go back to tweaking MythVideo a bit, and round and round and round it goes.  I'm always working on *some* project, that's for sure.  It might do me some good to try and get a bit more organized, but I don't even do a good job of keeping track of bugs in my own projects.  I just track them internally for the most part.

So, I apologize for the epic behind status that I'm always in.  I'm starting to recognize more and more how much I'm holding people up on some projects, so I'm doing my best to gracefully exit those areas so someone else can come in and take over.  I'm still fumbling a bit at the best way to do that, but at this point in my life I have at least recognized the few areas that I'm sure I'm not passionate about anymore, and shouldn't be lazing around just pretending to commit once in a while -- of which, there are actually really few.  In fact, I can only think of one off the top of my head.

One thing that might be cool that I just thought of -- have a status indicator on my blog or something that displays the current project I'm working on.  That'd be fun. :)   Sounds like work, though.  I'm gonna go watch a movie.

February 03, 2010
Steve Dibb a.k.a. beandog (homepage, stats, bugs)
some thoughts on php and oop (February 03, 2010, 17:25 UTC)

So, I was working on Znurt this morning (I woke up unusually early, and didn't wanna go back to sleep).  I'm getting close to opening the codebase, but before doing that, there's some really obvious glaring deficiencies that I want to clean up first.

The big thing I've been working on with the packages site now is making it more efficient.  The first step in that has been gathering some data on how often certain things are being called to see where optimizations are most needed.  So, the other day, I added a counter to the constructor of each class that would just tally each time the class was instantiated, and then I'd dump out the counter at the end of an import run.

One thing that surprised me is how often one particular class was being called -- PortageTree.  It's a really simple class, and all it does is set down some really simple variables that aren't going to change at all once they are declared, such as the location of the portage tree and it's metadata cache on the filesystem.  Pretty much used across the board on a lot of other classes that need to know the filesystem location of files (PortageCategory, PortagePackage, etc.).

Well, being still pretty new and fuzzy to the OOP approach, I thought it made sense to just extend the PortageTree class on PortageCategory and call the parent constructor to get the variables set.  That ended up in that class being created a huge magnitude of times,  all for the same pretty much unchanging variables.

So, I switched it this morning to use a singleton instance instead, so the class is only being created once and referenced thousands of times each import.  Much nicer already.

It's stuff like that that makes me wish I knew more about OOP.  I am studying it on and off, but there's still some concepts that I just can't wrap my brain around at times, like exceptions.  In my procedurally-attuned programming frame of mind, every time someone explains them to me, I think ... "Well, if something *breaks* why don't you just work with the return codes and work around that?"  So, yah.  Some stuff is still lost on me.  I'm trying to figure it out though.  Maybe it's one of those things that doesn't make sense so much when you apply it to PHP and it's general usage of websites.  A lot of the stuff I read about, I think how it would make much more sense if it were an actual application running.

Anyway.

On a totally different note, one thing I want to look at getting into the packages website is tracking a changelog of all the package's keywording history.  Right now, the import process is pretty simple -- if the content of the ebuild has changed, then the old one is marked for removal and an entirely new ebuild record is created in the database.  The reason for that is because that is far easier to do than it would be to examine all the myriad of data that is associated with one ebuild, track the changes, and then flag those.  Instead, I just dump the old one and treat the new one as a completely new record.

There's a tradeoff in the compromise, though, because instead of tracking ebuild modifications, I have to do all this coding to flag packages and ebuilds that things have changed and to treat them as an update instead of a new one.  That was tricky to get setup right, and getting that stuff in there in fact was one of the main things that pushed the initial launch back.  It was just one of those things that I couldn't run into the bugs until I started actually doing  a sequence of import runs, since they wouldn't show up until then anyway.

But, I'd like to start at least tracking the ebuild keyword status changes.  The reason is because that is really valuable data that can provide an excellent set of reports.  For instance, we can see which categories / packages / herds are getting ignored historically as far as stabilization.  Plus you can do cool stuff like import results from a statistics tracker as far as what people have installed, and you can start to see where maybe the tree could use a little more love.  And, it would help contributors who want to help out, but are overwhelmed by the enormity of bugs and packages and issues that need to be addressed.  I could see it being helpful saying, "here's an area that is suffering from neglect *and* is popular."  That would be cool.  And that's my goal.  In fact, that's *been* my goal for years.  I'm just now getting to the point where it's becoming possible, though.

Fun stuff.  I gotta hone my coding skills as I go, though.

FOSDEM 2010 (February 03, 2010, 09:30 UTC)

Yes, I am going.

Wordpress app (February 03, 2010, 00:28 UTC)

W00t! The wordpress app for android works with the new mu! It knows about multiple blogs on the install and everything. Pretty sweet!

Greg KH a.k.a. gregkh (homepage, stats, bugs)
Android and the Linux kernel community (February 03, 2010, 00:18 UTC)

As the Android kernel code is now gone from the Linux kernel, as of the 2.6.33 kernel release, I'm starting to get a lot of questions about what happened, and what to do next with regards to Android. So here's my opinion on the whole matter...

See more ...

Wordpress-mu upgrade (February 03, 2010, 00:15 UTC)

A shiny new version  of wordpress-mu now adorns this site.  Yay!   Maybe, now that it can upgrade itself, I’ll be more proactive about upgrading, rather than falling 4 (yes 4) major versions behind…

Hopefully all my old posts don’t show up as new on the planet.  If they do, I apologize.

February 02, 2010
Steve Dibb a.k.a. beandog (homepage, stats, bugs)
skateboarding in winter … um, again (February 02, 2010, 04:59 UTC)

I must be out of my mind.  I went skating again tonight (the second time in a week), even though its like 30 degrees outside.  It's freaking cold, man!  I dunno what came over me, though.  I just really wanted to go skating all of a sudden, so I called up Kevin and we went to Liberty Park and screwed around for a bit in the biting cold.  It was really fun, and I totally sucked at landing anything because I haven't been in at least six months.

Then, tonight, it was equally cold, but I went to Fairmont and was just screwing around.  Good times.  I really wanted to get a picture of the skate park, since it's half covered with snow, but there's enough melted that you can actually go around it in places.  Instead of that, here's a picture of me drawing pictures. :D

I think I learned a good trick though to skating tonight.  Just freaking relax.  I realized the other day that I get totally tense when I'm poised to ollie or shuvit and it's totally working against me.  So, tonight I tried to just relax and try and pop it a couple dozen times no matter how poised or ready I felt.  It wasn't very effective practice, but I did *try* a lot more, so that was good.  I landed one ollie, I think.  Barely.  I'm not sure I really went in the air, actually.  But who cares.  I went out, I had fun, it was worth it. :)

February 01, 2010
Steve Dibb a.k.a. beandog (homepage, stats, bugs)
znurt hosting, bugs, code (February 01, 2010, 23:40 UTC)

I migrated the packages website to a new server this weekend, and so far I'm really glad with the setup. I originally planned on having the whole thing setup in a short time, but I went with a different web server setup this time around. Instead of using lighttpd for the server, I went back to apache, but this time with mod_fastcgi to run PHP. From what I've read, PHP doesn't like threading too much, so running at as CGI instead should avoid any possible headaches. We'll see. So far, the site is far more responsive than everything else I've tried, so I'm happy.

I feel bad about how things have gone so terrible since the initial launch of the site. I really was not ready for the massive load, and my interim solutions were just slow and clunky. Hopefully things should be much happier now.

There's still a lot of silly bugs in the code that I need to fix. I just found another one this morning where the caching is breaking if you change your architecture selection around. Oy. I'd like to get to them, but I've been pretty swamped for time lately, between starting a new job this month and dividing my remaining time doing consulting work for two other companies.

Having a break from it though has been kind of good. I've already thought of a few optimizations that I can throw in there that are kind of like, "well, duh" type stuff I can't believe I didn't think of. For example, one way that I check to see if an ebuild is new is to see if the file mtime has changed. I don't know why it never occurred to me to just read the Manifest file and see if any of the hash sums have changed. That'd save me a lot of time.

I've been poked a few times about getting the code in a live repo somewhere, too. I guess that's coming soon, assuming I can get around to it. Personally, I don't like the idea of doing it when I *know* my code is in some ugly stages, but whatever. I need to learn how to setup a git repo anyway.

Oh yes, that reminds me. I also moved all the Planet Larry stuff onto the same server. Everytime I poke at the site, all I can think about is how much of an overhaul the whole thing needs. I'm totally embarrassed that I haven't even switched over to using Gravatar yet.

My goal is to ditch the planet software and write my own software to pull in the feeds, drop them in a database, and have the whole thing searchable. Then build a user admin section as well so users can manage their feeds themselves, and stop waiting on me. I'm planning on making that my next project, once Znurt gets to a better stage of stability.

Right now, though, I just did some minor tweaks. I got rid of the subdomains, and all the other projects on the site that I let atrophy, so planet is just available now at http://larrythecow.org/

Hanno Böck a.k.a. hanno (homepage, stats, bugs)
SSL-Certificates with SHA256 signature (February 01, 2010, 22:23 UTC)

At least since 2005 it's well known that the cryptographic hash function SHA1 is seriously flawed and it's only a matter of time until it will be broken. However, it's still widely used and it can be expected that it'll be used long enough to allow real world attacks (as it happened with MD5 before). The NIST (the US National Institute of Standards and Technology) suggests not to use SHA1 after 2010, the german BSI (Bundesamt für Sicherheit in der Informationstechnik) says they should've been fadet out by the end of 2009.

The probably most widely used encryption protocol is SSL. It is a protocol that can operate on top of many other internet protocols and is for example widely used for banking accounts.

As SSL is a pretty complex protocol, it needs hash functions at various places, here I'm just looking at one of them. The signatures created by the certificate authorities. Every SSL certificate is signed by a CA, even if you generate SSL certificates yourself, they are self-signed, meaning that the certificate itself is it's own CA. From what I know, despite the suggestions mentioned above no big CA will give you certificates signed with anything better than SHA1. You can check this with:
openssl x509 -text -in [your ssl certificate]
Look for "Signature Algorithm". It'll most likely say sha1WithRSAEncryption. If your CA is good, it'll show sha256WithRSAEncryption. If your CA is really bad, it may show md5WithRSAEncryption.

When asking for SHA256 support, you often get the answer that the software still has problems, it's not ready yet. When asking for more information I never got answers. So I tried it myself. On an up-to-date apache webserver with mod_ssl, it was no problem to install a SHA256 signed certificate based on a SHA256 signed test CA. All browsers I've tried (Firefox 3.6, Konqueror 4.3.5, Opera 10.10, IE8 and even IE6) had no problem with it. You can check it out at https://sha2.hboeck.de/. You will get a certificate warning (obviously, as it's signed by my own test CA), but you'll be able to view the page. If you want to test it without warnings, you can also import the CA certificate.

I'd be interested if this causes any problems (on server or on client side), so please leave a comment if you are aware of any incompatibilities.

Update: By request in the comments, I've also created a SHA512 testcase.

Update 2: StartSSL wrote me that they tried providing SHA256-certificates about a year ago and had too many problems - it wasn't very specific but they mentioned that earlier Windows XP and Windows 2003 Server versions may have problems.

Alex Alexander a.k.a. wired (homepage, stats, bugs)
FOSDEM 2010 :) (February 01, 2010, 21:50 UTC)

This year’s FOSDEM is just around the corner! (February 6th/7th, Brussels, Belgium)

A lot of interesting talks and presentations will take place and I’m pretty sure there’s going to be a lot of beer too! ^_^

Many Gentoo Developers will be there for the whole weekend, including me :)

See you all there :D

Robin Johnson a.k.a. robbat2 (homepage, stats, bugs)

In the early hours of this morning, a spammer managed to get the IP of the Gentoo list server on the NiX Spam RBL... simply by spamming the subscribe address :-(. This caused approximately 2000 deliveries of normal list mail to be rejected while the server was present on the RBL.

Notice the subscribe request, line 0004. (whitespace added)

0001 Feb  1 00:15:56 pigeon postfix/smtpd[29314]: 52278E0778: client=unknown[210.212.220.106]
0002 Feb  1 00:15:57 pigeon postfix/cleanup[31589]: 52278E0778:
  message-id=<01caa301$d307f7d0$b173a8c0@ambachglasfaser>
0003 Feb  1 00:15:58 pigeon postfix/qmgr[12260]: 52278E0778:
  from=<ambachglasfaser@test.mailnet.dyndns.biz>,
  size=59874, nrcpt=3 (queue active)
0004 Feb  1 00:15:58 pigeon postfix/local[31581]: 52278E0778:
  to=<gentoo-embedded+subscribe@lists.gentoo.org>,
  orig_to=<gentoo-embedded-subscribe@lists.gentoo.org>,
  relay=local, delay=2.4, delays=2.4/0/0/0.01, dsn=2.0.0, status=sent (delivered to command: ....)
0005 Feb  1 00:15:58 pigeon postfix/local[31716]: 52278E0778:
  to=<gentoo-user-id@lists.gentoo.org>,
  relay=local, delay=2.4, delays=2.4/0.01/0/0.01, dsn=2.0.0, status=sent (delivered to command: ....)
0006 Feb  1 00:15:58 pigeon postfix/local[31509]: 52278E0778:
  to=<gentoo-gwn@lists.gentoo.org>,
  relay=local, delay=2.4, delays=2.4/0.01/0/0.02, dsn=2.0.0, status=sent (delivered to command: ....)
0007 Feb  1 00:15:58 pigeon postfix/qmgr[12260]: 52278E0778: removed

Assuming that the it's a real subscribe request, we send a confirmation request, and promptly get blacklisted for being a good citizen. Line 0013.

0010 Feb  1 00:15:58 pigeon postfix/smtpd[31587]: B6FA9E0778: client=localhost[127.0.0.1]
0011 Feb  1 00:15:58 pigeon postfix/cleanup[31589]: B6FA9E0778:
  message-id=<1264983358-31717-mlmmj-3905840d@lists.gentoo.org>
0012 Feb  1 00:15:58 pigeon postfix/qmgr[12260]: B6FA9E0778:
  from=<gentoo-embedded+bounces-confsub-32dfa15d1a18a7a9-ambachglasfaser=test.mailnet.dyndns.biz@lists.gentoo.org>,
  size=1345, nrcpt=1 (queue active)
0013 Feb  1 00:16:29 pigeon postfix/smtp[31603]: B6FA9E0778:
  to=<ambachglasfaser@test.mailnet.dyndns.biz>,
  relay=mx.dyndns.biz[217.11.54.110]:25, delay=31, delays=0.06/0/30/0.41, dsn=5.7.1,
  status=bounced (host mx.dyndns.biz[217.11.54.110] said:
    554 5.7.1 Service unavailable; Your spam message has been received.
    You will be blacklisted. Thank you (in reply to end of DATA command))
0014 Feb  1 00:16:29 pigeon postfix/bounce[31637]: B6FA9E0778: sender non-delivery notification: B8AE9E089A
0015 Feb  1 00:16:29 pigeon postfix/qmgr[12260]: B6FA9E0778: removed

Why did this happen? I do agree on the importance of spamtrap accounts, but they MUST check the content of their messages. A list confirmation message MUST NOT be considered as spam.

The original subscribe request came from what seems to be a compromised server in Secunderabad, India. So it wouldn't have been detected by RBL focused on modem/dialup addresses.

Short of raising the bar to subscribe (with a specific token that needs to be included, and then it's only a matter of time till spammers include it too), there isn't much we can do to block stuff like this at the list-server level. There is no way to detect than an address is a spamtrap. There cannot be by definition, as the spammers would avoid it themselves otherwise.

Diego E. Pettenò a.k.a. flameeyes (homepage, stats, bugs)

You might have noticed that I started moving (renaming) Ruby packages, both with old and new ebuilds, to drop the ruby- prefix from packages such as ruby-mmap, ruby-bz2 and ruby-fcgi. My reason to proceed in this way is not only to avoid duplication, but to have an extra safety that the name of the ebuild is going to correspond (minus casing, most of the time) with the gem’s name. This gets even more important since the fakegem eclass will default to use the ${PN} variable to do its magic tricks for fakegem handling.

But the tipping point for this set of changes (which aren’t really easy, nor transparent) has been the dev-ruby/ruby-fcgi package we used to ship. Even Alex assumed that the gem it referred to was ruby-fcgi that exists, but in truth it has always simply been fcgi which is a different gem. To avoid these possible collisions in the future, the rule is going to be “use the original naming, don’t add prefixes!”. Obviously there are and there will be exceptions, such as the jruby-debug-base package that installs a gem named ruby-debug-base (this is to sidestep the dependency tracking in the original ruby-debug to let it load the JRuby specific code instead).

This post is not, though, about the naming scheme, but rather should give you an idea why we still haven’t unleashed Ruby 1.9 not even as a secondary Ruby implementation (while JRuby is). You can easily read around the net that “@$package@ now supports Ruby 1.9”… sometimes it’s true, sometimes it definitely is not. For instance when they say that Rails 2.3.5 supports Ruby 1.9 officially, they fail to tell you that builder (which is bundled by activesupport — and slightly patched, but we’re going to count the patched version anyway) looks pretty broken on Ruby 1.9, assuming its testsuite works as intended, which is what appears to me. And the rest of the code does not seem to be much better: tmail fails its tests, among many.

In the case of fcgi (which used to be mandatory dependency of rails 2.3.5 in Gentoo, although I’ve dropped it in the ruby-ng port, as it’s not really that needed, and the gem itself does not depend on it), the original code (version 0.8.7) does not work on Ruby 1.9. And we knew that, Alex added a 1.9 compatibility patch in Gentoo before: it built, and we shipped it, but… was it tested? Nope, since the old eclasses had no support for testing. Actually, I hit this problem when, a few months ago, I added a further safety check for Ruby 1.9: the linked extensions are built with --no-undefined so that eventual undefined symbols won’t cause Ruby to abort at runtime (which happened to me before). Indeed, even though the extension “compiled”, it left the undefined symbols, so it could never be loaded properly at runtime, because the function it used are Ruby 1.8-only and not defined in 1.9 at all. At the end – both on the in-tree ebuild, and in the testing overlay for the new eclasses – I ended up disabling the native extension for anything that is not Ruby 1.8 (there is a pure ruby, slower implementation that works even on Ruby 1.9 and JRuby).

But that’s for the “old” fcgi gem, let’s look at the description from the new one (emphasis mine; grammar quoted):

FastCGI is a language independent, scalable, open extension to CGI that provides high performance without the limitations of server specific APIs. For more information, see http://www.fastcgi.com/. This is the fork of fcgi implementation for ruby but with ruby1.9 – ruby1.9.1 compability

So this should actually have the extension working correctly with Ruby 1.9, you’d say. After all, the previous pure Ruby extension worked fine already, nothing to do there. Okay, so let’s build it (after fixing a three years old bug):

make -j12 -s 
fcgi.c: In function ‘fcgi_stream_puts_ary’:
fcgi.c:285: warning: implicit declaration of function ‘rb_inspecting_p’ [-Wimplicit-function-declaration]
fcgi.c: In function ‘fcgi_stream_puts’:
fcgi.c:309: warning: implicit declaration of function ‘rb_protect_inspect’ [-Wimplicit-function-declaration]
fcgi.o: In function `fcgi_stream_puts&apos:
/var/tmp/portage/dev-ruby/ruby-fcgi-0.8.9/work/ruby19/ruby-fcgi-0.8.9/ext/fcgi/fcgi.c:309: undefined reference to `rb_protect_inspect&apos
fcgi.o: In function `fcgi_stream_puts_ary&apos:
/var/tmp/portage/dev-ruby/ruby-fcgi-0.8.9/work/ruby19/ruby-fcgi-0.8.9/ext/fcgi/fcgi.c:285: undefined reference to `rb_inspecting_p&apos
/var/tmp/portage/dev-ruby/ruby-fcgi-0.8.9/work/ruby19/ruby-fcgi-0.8.9/ext/fcgi/fcgi.c:285: undefined reference to `rb_inspecting_p&apos
collect2: ld returned 1 exit status
make: *** [fcgi.so] Error 1

Guess what? that’s the same problem that the old fcgi had with Alex’s patch. It only fails at build time with the Gentoo version of Ruby 1.9 as we’re forcing --no-undefined, on other Ruby 1.9 packaging, you’ll get this to build… and then kill your Ruby process at runtime. So no, this gem is definitely not compatible with Ruby 1.9 even though it is stated so.

Now, there is another fork of the classic fcgi gem, with version 0.8.8, what does change in that? Well the first problem is that the content of the gem has not changed the version at all:

flame@yamato fcgi % egrep &apos0\.8\.[78]&apos . -r
./README:Version 0.8.7

Is this enough to mutter “boooooring”? Maybe, but to be fair, let’s try building for Ruby 1.9:

flame@yamato fcgi % ruby19 extconf.rb 
checking for fcgiapp.h... yes
checking for FCGX_Accept() in -lfcgi... yes
creating Makefile
flame@yamato fcgi % make
x86_64-pc-linux-gnu-gcc -I. -I/usr/include/ruby19-1.9.1/x86_64-linux -I/usr/include/ruby19-1.9.1/ruby/backward -I/usr/include/ruby19-1.9.1 -I. -DHAVE_FCGIAPP_H    -fPIC -march=barcelona -O2 -ftracer -pipe -ftree-vectorize -floop-block -g -ggdb -Wstrict-aliasing=2 -Wno-format-zero-length -Wformat=2 -Wno-error -Wno-pointer-sign -fdiagnostics-show-option -fno-strict-aliasing -O2 -g -Wall -Wno-parentheses  -fPIC  -o fcgi.o -c fcgi.c
fcgi.c: In function ‘fcgi_stream_puts_ary’:
fcgi.c:276: warning: implicit declaration of function ‘rb_inspecting_p’ [-Wimplicit-function-declaration]
fcgi.c: In function ‘fcgi_stream_puts’:
fcgi.c:300: warning: implicit declaration of function ‘rb_protect_inspect’ [-Wimplicit-function-declaration]
x86_64-pc-linux-gnu-gcc -shared -o fcgi.so fcgi.o -L. -L/usr/lib64 -Wl,-R/usr/lib64 -L. -Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu -Wl,--sort-common -rdynamic -Wl,-export-dynamic -Wl,--no-undefined    -Wl,-R -Wl,/usr/lib64 -L/usr/lib64 -lruby19 -lfcgi  -lpthread -lrt -ldl -lcrypt -lm   -lc
fcgi.o: In function `fcgi_stream_puts&apos:
/home/flame/mytmpfs/fcgi/ext/fcgi/fcgi.c:300: undefined reference to `rb_protect_inspect&apos
fcgi.o: In function `fcgi_stream_puts_ary&apos:
/home/flame/mytmpfs/fcgi/ext/fcgi/fcgi.c:276: undefined reference to `rb_inspecting_p&apos
/home/flame/mytmpfs/fcgi/ext/fcgi/fcgi.c:276: undefined reference to `rb_inspecting_p&apos
collect2: ld returned 1 exit status
make: *** [fcgi.so] Error 1

Okay so we’re back to the same problem, even this version which is supposed to be fixed to work with Ruby 1.9… is simply not, it’s a bundling together of the old code and some patch, the same patch that Alex used, maybe even picked up from Gentoo in the first place. Now, I can’t just reduce from this that all the compatibility with 1.9 is done this way, but it sure should tell you a lot about what “Ruby 1.9-compatible” might mean.

Sigh!

Lenovo Fan error again (February 01, 2010, 10:08 UTC)

Saturday my trusted old Lenovo x61s started emitting strange fan sounds again and like last time it started failing to boot up with the "Fan error" error message. Not saying which fan was at fault, though I suspect it's the usual second fan found on some x61s models. Last time only eight months ago I had to exchange both fans, let's see how it goes this time around. At least I found out that I could still boot by pressing ESC when the error message appears.

January 31, 2010
Diego E. Pettenò a.k.a. flameeyes (homepage, stats, bugs)

I’m still working hard on my free time on the conversion of Ruby packages to the new eclasses as well as improving JRuby support over the place – for this reason I might do another shameless plug – and in particular, between yesterday and today, I ended up working on a set of packages for packaging bones in Gentoo.

Why is that a set of packages? Well, I had to commit together four different packages: bones, bones-extra, loquacious and little-plugger; a subset of them wasn’t possible at all. There are two interesting things to say about these, if you care about Ruby development. The first is that I wouldn’t actually count bad for it, as what it does is mandating an interface for Gems going a step further than Hoe, Echoe and Jeweler as it encompasses testing, documentation and packaging tasks. The second thing is that it comes from the codeforpeople project which consists of what can only be called a fuckload of different and almost unrelated packages, and as far as I know it used to be manned by a single person. Not even the most friendly of the blokes, to be honest: when I asked him a couple of questions about another project – session – the one-line reply I got was a link to a (newly created) GitHub repository.

Dependency graph for Bones

So what is the problem here? Well, check out the depgraph on this page. I spoke about four packages before, but it lists four, one is not packaged and I’ll probably just package it if I’ll end up using Bones myself. Of the four packages, one is the “interface” one and is Bones itself, two are dependencies, and are generic libraries, the other two are “plugins” (extras and git) that provide optional functionalities; or at least sort-of-extra functionalities. Indeed, the extras plugin provides RSpec testing and RubyForge publishing support, which should probably be considered optional functionalities… on the other hand, if your package uses Bones, and defines the configuration keys for either, it will fail if the extras package is not installed. So much for the extras, then.

The runtime dependencies are actually quite linear: Bones needs the two libraries, and the two plugins need Bones, which is quite logical and very easy to deal with. But when you start considering the build-time dependencies you are way out of luck. All the packages including Bones itself would depend on Bones, and on the extras package (because all of them define the RubyForge project, and almost all use RSpec), for both documentation and testing purposes. Obviously, if you try to install Bones with USE=doc or FEATURES=test, Portage will bail out because of the cyclic dependencies. And I don’t think I can fix it in any way for now. To be honest, this would have been much easier if Bones itself contained what is in the extras, as at that point you would have everything in the same package, which wouldn’t then require itself.

Or would it? To be honest if you look at the development dependencies as listed within the gems, all of the Bones-managed gems will require Bones, and that is true… for Bones as well! Indeed, in the image above, the dotted lines represent the officially-listed dependencies which we’re not following (for some strange, but welcome, reason, the bones-git package is truly optional).

Somehow, it seems like many multi-package projects decided to go with similar ways of handling dependencies. For instance, take prawn, a PDF-writing gem: when I added it to Portage (as dependency of a webapp I worked on last summer), it was a single gem, depending on another gem by the same author for its testing. Now, it’s actually a simple wrapper gem for three split gems… and you most likely will need all of them for doing most non-trivial stuff. Or a much more common gem: Rails! The activerecord, actionpack, activesupport and actionmailer gems are so interdependent that I’m not surprised most projects just bundle Rails in their own sources (albeit this is very bad from the quality point of view).

Thilo Bangert a.k.a. bangert (homepage, stats, bugs)
MTKII as /dev/ttyACM0 in bt747 (January 31, 2010, 13:17 UTC)

During summer I got interested in GPS and mapping and bought myself a mtkII based device. For these there is a java app called bt747 in the tree. However I couldn't get it to work - bt747 would not accept the device name I tried to convince it of using.

Turns out that older devices where using a USB to serial converter to provide the USB interface: these show up as /dev/ttyUSBx - with x being an integer. The device I bought is a newer generation who appear to have an on-chip USB port, which will show up as /dev/ttyACMx (x again being an integer). So, support for ttyACMx type devices is needed in BT747. See bug #281888.

It turns out BT747, being a java app, uses rxtx to provide support for serial device communication. So lets fix rxtx - see bug #301126.

Meanwhile there is also mtkbabel in portage, which is not so picky about the device names.

Diego E. Pettenò a.k.a. flameeyes (homepage, stats, bugs)
LXC's unpolished code (January 31, 2010, 12:07 UTC)

So I finally added lxc 0.6.5 to the tree for all of the Gentoo users to try it if they care; on the bright side, the lxc.mount option seem to finally work fine, and I also found the problem I complained about a few days ago. It is this latter problem that made me feel like writing this half-rant post.

Half-rant because I can see they are going to great extents to improve it from release to release, but still a rant because I think it should have been less chaotic to begin with. On the other hand, I could probably be more constructive if I went on to provide patches… I’ll probably do that in the future if I free myself, but if you follow my blog you know I’m quite swamped already between different things.

Starting from the 0.6.4 release, they dropped the “initialisation” task, and just let you run lxc-start with the config file. It was definitely a nice way to do it, as the init command wasn’t doing anything heavy that shouldn’t be done on first startup anyway. It was, though, a bit of a problem for scripts that used the old method as the simple lxc-start -n myguest (the init step wouldn’t be needed after a restart of the host) would mess up your system badly, as it would spawn a new container using / as the new root… overriding your own system bootup. Thankfully, Andrian quickly added a check that refused to proceed if a configuration file was not given. This does not save you from being able to explicitly mess your system up by using / as your new root, but at least avoids possible mistakes when using the old-style calls.

So what about the 0.6.5 problem? Well the problem came to be because 0.6.5 actually implements a nice feature (contributed by a non-core developer it seems): root pivoting. The idea is to drop access to the old root, so that the guest cannot in any way access the host’s filesystem unless given access to. It’s a very good idea, but there are two problems with it: it doesn’t really do it systematically, but rather with a “try and hope” approach, and it failed under certain conditions, saying that the original root is still busy (note here, since this happens within the cgroup’s mount namespace, it doesn’t matter to the rest of the system).

At the end, last night I was able to identify the problem: I had this line in the fstab file used by lxc itself:

none /tmp tmpfs size=200m 0 0

What’s wrong with it? The mountpoint. The fstab (and lxc.mount commands) are used without previous validation or handling, so this is not mounting the /tmp for the guest, but the /tmp for the host, within the guest’s mount namespace. The result is that /tmp gets mounted twice (once inherited by the base mount namespace, once within the guest’s namespace, but it’s only unmounted once (as the unmount list keeps each mount point exactly once). This is quite an obvious error on my part, I should have used /media/chroots/tinderbox/tmp as mountpoint, but LXC being unable to catch the mistake in mountpoint (at least warning about it) is a definite problem.

Another thing that makes me feel like LXC really needs some polishing is that you cannot just run the commands from the source directory: the build system uses autoconf and automake, but the authors explicitly backed away from libtool as it’s “Linux-only” (which really doesn’t say much about the usefulness of libtool in this case). given I’m not even sure whether the liblxc library is supposed to be ABI stable or not (they have never bumped the soname, but that is suspicious), it might really be better if they used libtool and learnt out to handle it. Also, it uses badly recursive Makefiles, it would probably take just a second to build if I remade the build system as a standard non-recursive autotools package, like udev.

Oh well, let’s hope for the future releases to improve polishing, bit by bit!

January 30, 2010
Diego E. Pettenò a.k.a. flameeyes (homepage, stats, bugs)
Ruby-NG: Bin Man (or, the binwrapper problems) (January 30, 2010, 23:17 UTC)

One of the problems that we definitely need to hash out before we start marking as stable the ebuilds based on the new Ruby eclasses is the handling of the current “binwrappers”. I dislike the name sincerely — while they are obviously in the bin directory for the gems, they are definitely not binaries, but rather executable scripts. Sigh, let it be for now though.

RubyGems already creates a wrapper by itself, so that it calls the correct (latest) binary for a given gem. On the other hand we don’t use that wrapper, but a different one that can be generated by the ebuild with much more stable targets. The end result is generally pleasing, as we can use the same wrapper for any implementation the gem is installed for. But here start the trouble.

Right now, this works all fine only if the gem is installed for every implementation, or at least every installed implementation. This again is mostly correct for most users as they will only have Ruby 1.8 installed. It starts being a bit different for JRuby, as not all of those scripts can be launched through that (but on the other hand, since we cannot set JRuby up as default Ruby implementation with eselect, it shouldn’t be much of a problem). It will be come a problem when we’re going to have Ruby 1.9 fully supported in Gentoo, as setting it up as default Ruby provider for the system will cause most of the scripts, installed only for Ruby 1.8, to fail.

The problem described above is to be intended when a package lacks an implementation, but conversely the problem applies when a package is available only for an implementation. Take for instance the (for now unpackaged) Duby — a strongly-typed Ruby-inspired scripting language developed by JRuby developer Charles Nutter. It will only ever be available for JRuby (minus possible reimplementations) as it generates Java Bytecode that JRuby can execute. It also has a duby script, but the ebuild I have here installs a broken wrapper: it calls into /usr/bin/ruby, but of course that cannot ever be JRuby, problems ensures.

Another problem is what Hans tried to solve some time ago: when multiple slots of the same gem are installed, and they all install the same named commands, how do you choose between them? Most of the times, you install them slotted, so you got cmd-${SLOT} named commands around, but you also need to have a way to just call cmd and have it work. Hans worked on eselect-gem for that reason: it’s a generic approach to the same thing that eselect-rails does. Right now, we’re not integrating well with that, so we might need to find a way to handle that.

One of the reasons why I’m now writing all this about the wrappers, is that I’d love for people to comment (after looking at the implementation, possibly, as I’d seriously love to avoid noise due to users wishing ponies, or detractors just saying that RubyGems is perfect — it’s not), with possible approaches we can take. So, comments welcome! And you might want to use the typo:code HTMLish tag to submit code via the comments, so that it won’t be screwed up by the formatting. You can also use at-symbols for inline code keywords, like I’ve done in the post.

January 29, 2010
Marcus Hanwell a.k.a. cryos (homepage, stats, bugs)
New Kitware Developer Blog (January 29, 2010, 17:05 UTC)

Yesterday Kitware launched a new developer blog. There are categories for the different areas Kitware operates in, such as software process (CMake && friends), scientific visualization (the area I work in, e.g. VTK, ParaView), and our work in open source, which I am very passionate about. Check out Will Schroeder's post on Why Open Source Will Rule Scientific Computing, I think he makes some great points - in my own research career I witnessed how inadequate closed source options often are.

Bill Hoffman's post on Deploying on Windows with DLL Manifest Issues is something near and dear to my heart, I posted about similar issues last year in DLL Hell...The New DLL Hell? These recent changes will certainly go a long way to ensuring future developers can more easily validate Windows packages before distributing them. You can also check out my first post on visualizing the commit history of the VTK and CMake repositories in VTK and CMake Code Swarms.

I will get some more technical posts up soon too! Exciting things happening, still enjoying my new job at Kitware.

Disclaimer: The opinions and musings in this post are mine, and not necessarily those of my employer.

Good and bad password practices (January 29, 2010, 13:51 UTC)

I just stumbled across an article in the Danish newspaper Politiken, which give some recommendations about how to create strong passwords, which is all fine. However it also recommends that you test your password with passwordmeter.com (I actually expected something like this before clicking on the article).

At least one good password practice is to not disclose your password to third parties and especially a site like passwordmeter.com which you know nothing about (wouldn't it just be a genious way to collect passwords and origin IP adresses?).

So first thing is to make a whois lookup on the domain:

Registrant:
Domains by Proxy, Inc.
DomainsByProxy.com
15111 N. Hayden Rd., Ste 160, PMB 353
Scottsdale, Arizona 85260
United States

I didn't know who Domains by Proxy, Inc are, but just the name certainly make some bells toll. It's definately not a site I want to use to test passwords!

Reports on the web range from describing it as a normal service to a hideout for spammers. Why on earth would any legitimate business want to hide their identity and especially if you want users to type in all of their passwords?

Update: As some of the comments pointed out it actually does everything client side (at least with Konqueror and Firefox), however for the average user it's still bad practice to type in their password on any third party site.

Diego E. Pettenò a.k.a. flameeyes (homepage, stats, bugs)
Ruby-NG: The Most Ebuilds (January 29, 2010, 10:14 UTC)

This is a merry time for the Gentoo Ruby team, and for the users and developers of Ruby in Gentoo! As of last night, I have confirmed that there are more ebuilds in tree using the new Ruby-NG eclasses (ruby-ng.eclass and ruby-fakegem.eclass) than there are using the old style ones (ruby.eclass, gems.eclass)! This is thanks to Alex and Hans who have been doing overtime to work on bumping the new packages.

Proportion of eclasses usage as of 2010/01/29

Presence of Ruby targets in ebuilds as of 2010/01/29

 

Feel free to compare to the original charts even though they are of different types.

I have sampled the past nine days, at the end of each day, to get some more interesting charts. The first thing that might be obvious by those is that the amount of Ruby ebuilds in tree is increasing with the new eclasses: it’s mostly related to our need for new dependencies, usually for tests (since we never run them before, those dependencies often were ignored altogether), but it doesn’t stop there, as I for instance have added a few more for my own consumption.

The other graph also shows a pretty interesting situation: JRuby support is reaching Ruby 1.9! While all the packages using compiled C extensions are to be left alone (unless, of course, they have an equivalent Java extension), there are more than a couple of packages that fail with Ruby 1.9 because of the changes in the syntax but work with the current JRuby — since it defaults to 1.8… I’m not sure how I’m going to work this around when the default will be 1.9, nor I have no idea how to properly support the fact that it can switch the two implementations, for now… maybe we’ll end up having jruby18 and jruby19 targets at some point).

Now, if headius were to give me a working Duby, I would be able to add at least three packages that are JRuby specific, and with the current situation, that would mean more JRuby packages than Ruby 1.9 packages, as easy as that. And by the way there is one thing that I would like to point out, regarding JRuby support. The way we implemented Ruby-NG in Gentoo, it means that we’re not bound by gems declarations, dependencies, or whatever else, as we can sidestep all of it, eventually patching the code (as I did before for shotgun not to require launchy). The end result is that these instructions on how to set up ruby-debug on JRuby, are not relevant to us: RUBY_TARGETS=jruby emerge ruby-debug will take care of everything for you, including installing the alternative gem! And similarly, we’ll never hit the problems with ActiveRecord as the various implementations are separate.

So anyway, back to work to make Gentoo even better for Ruby development and use!

Steve Dibb a.k.a. beandog (homepage, stats, bugs)
pole position (January 29, 2010, 03:37 UTC)

Yay, cartoons!

So, I happened to stumble upon this one cartoon not long ago, that I had completely forgotten about ... Pole Position.  I think I saw a video about it YouTube or something, I don't remember.  80s cartoons is a popular subject in #uphpu.

Watching the video though, I was like, "meh, another old-school Japanese-styled animation show" until I saw the little computer face in the dashboard ... then all kinds of memories came back to me and I was like, "dude, I totally remember this show!"

pp10

I managed to snag a copy on Amazon, even though it's been out of print.  I didn't even know it was on DVD.  Since then, I've been totally obsessed with this show.  The theme song, in particular.  I can't get it out of my head.  Probably because I sing it to myself every 30 seconds.

pp12

Sadly enough, there were only 13 cartoons produced.  It looks like it could have done well.  I don't know why this one triggered such a response in me -- especially since I didn't even remember the title -- but I think I may have clued in on it a bit.  It features cool cars with electronic devices.  As a little kid, I'm sure I was totally enchanted by that.  Heck, I've always found computers extremely fascinating.  Just that they work how they do amazes me.

pp6

I don't remember the show, but I do remember the old Atari video game.  It was fun.  I also remember playing E.T. though, and wondering what the heck the point of the game was.

pp13

I've been watching the show since I got it last week, and I love it.  It's really cool, actually.  The first few I've seen so far start out with them (whatever their names are, on the secret Pole Position team) doing a live stunt show, and, it seems like, with totally random moves made up on the fly.  It's pretty hilarious now.  But man I love how old cartoons just do random stuff and don't even bother trying to explain it.  Good times.  I really miss shows like that.

adventures in a new job (January 29, 2010, 03:05 UTC)

You know, there are some really cool blogs out there.  The ones I like the most are the ones that simply tell the stories of life as they happen to them, and document them in a cool way.  This is not one of those blogs.  Unless you're as obsessed as cartoons as I am, and I doubt it.

Anyway, reading one such blog tonight, it got me thinking that I should loosen up a bit and document more of my generic life stories sometimes.  I'll think about it.

In the meantime, here's something that happened at work today.

I've still been settling in (I started a week ago yesterday) at the new place, and it's a little odd for me because I am the only IT guy there.  Everyone else is an engineer with more degrees than I knew existed.  I don't think I've ever worked for a place that either wasn't an IT shop or didn't have an IT department before I came on board, so it's all been just a little bit different. (See, this is why I don't write general life stories ... I'm already boring myself.)

When I first got there, the boss set me up with a laptop, which wasn't bad, but it had an Intel graphics card on there, which makes me want to install Debian on babies.  He asked me what my ideal hardware was, so I told him, and we're working on getting that, and using something else in the interim.  Anyway ... where was I going with this ... I had mentioned in passing that the Broadcom wifi chip on there was crap, and so he went online and got an Intel one instead for like $15 on ebay.  He brought it in today, and I got to pop it open and swap it out.  I had no idea that the onboard wifi cards were just using PCI Express Mini slots.  That is way cool.  So it took about five minutes to get the whole thing swapped out.  Pretty cool experience.

Oh, and for the record, the new Intel one worked out great.  Fired right up without any stupid issues (kernel or otherwise), though I still can't ever get NetworkManager to even recognize any wifi for some dumb reason.  Oh well, wicd works fine, even though it's bugly.

See?  This is why I don't write life posts.  They're not well formatted.  Meh.  I'm going back to blogging about cartoons.

January 28, 2010
Nathan Zachary a.k.a. nathanzachary (homepage, stats, bugs)
Video showing our expansive Universe (January 28, 2010, 20:36 UTC)

A friend of mine posted a link to this video on his dA account journal, and I thought I would post it here as well. It is a video produced by American Museum of Natural History in association with NASA. It gives a little bit of perspective on how vast our known universe truly is, and although no video can adequately portray that vastness, this one gives a good idea. The most fascinating part of the film, in my opinion, is that it mentions that we there might be much more out there past the rim of our knowledge (past quasars).

I will provide two links below to the video (just in case one is taken down):

The Known Universe (on a subsection of NASA's website)

or

The Known Universe (on YouTube)

Provided your computer is capable of displaying HD, make sure to watch this video in 720p.

|:| Zach |:|

Diego E. Pettenò a.k.a. flameeyes (homepage, stats, bugs)
My first experiences with with Amazon EC2 (January 28, 2010, 18:01 UTC)

It really shouldn’t be a surprise for those reading this post that I’ve been tinkering with Amazon EC2 in the past few days, the reason for that is that you can find it out by either looking at my identi.ca stream or at my commit feed and noticing how I ranted about EC2 and bumped the tools’ packages in Gentoo.

As a first experience with EC2, I have to say it does not really come out very nice… Now, the whole idea of EC2, doesn’t look half as bad. And on the whole I do think the implementation is also not too bad. What is a problem is the Gentoo EC2 guest support: while Amazon “boasts” support for Gentoo as a guest operating system, there is no real support for that out of the box.

Incidentally, there is another problem: the AWS Web Console that Amazon make available killed my Firefox 3.6 (ground to a halt). I ended up installing Chromium even though it stinks (it stinks less than Opera, at least). It seems pretty much faster, but it’s lacking things like the Delicious sidebar, still. Seems like my previous post wasn’t totally far off. Sure there are extensions now, but as far as I can tell, the only one available for Delicious does not allow you to use Delicious as it was your bookmarks.

The first problem you might have to affront is finding an image (AMI) to use Gentoo.. I could only find one (at least in the European availability zone), which is … a stage3. Yes a standard Gentoo stage3, without configured network, without SSH, without passwords, … Of course it won’t start. I spent the best part of three hours last night trying to get it to work, and at the end I was told that the only way to work that around is to install using Ubuntu as it was a live CD installing Gentoo on a real system. Fun.

So start up Ubuntu, create an EBS (stable storage) for the Gentoo install, install it as it was a normal chroot, create the snapshot and… here is one strange behaviour of Amazon: when you connect a new EBS volume to an instance, it is created as a block device (say, sdb). When you use a snapshot of that volume to register a machine (AMI), it becomes a partition (sda1). If, like me, you didn’t consider this when setting it up for install, and partitioned it normally, you’ll end up with an unbootable snapshot. Fun ensures.

By the way, to be able to register the machine, you have to do that through recent API tools, more recent than those that were available in Portage today. Hoping that Caleb won’t mind, I bumped them, and also made a couple of changes to the new API/AMI tools ebuilds: they now don’t require you to re-source the environment every time there’s an upgrade, and the avoid polluting /usr/bin full of symlinks.

So you finally complete the install and re-create the AMI, start an instance and… how the heck is it supposed to know your public key? That’s definitely a good question: right now there in Gentoo there is no way for the settings coming from Amazon to e picked up by Gentoo. It’s not difficult, and it seems to be documented as well, but as it is it’s not possible to do that. As I don’t currently need the ability to generate base images, I haven’t gone further pursuing that objective, on the other hand, I have some code that I might commit soonish.

Anyway, if you got interest in having better Gentoo experience on EC2, I might start looking into that more, in the future, as part of my general involvement, so let your voice be heard!

Nathan Zachary a.k.a. nathanzachary (homepage, stats, bugs)
Encouragement (January 28, 2010, 01:23 UTC)

A friend of mine sent me an email with a link to this commercial, and I think it has a very strong message. If we could all learn to encourage one another, and not be so cold in our responses to unexpected happenings, maybe the world would be a better place. If you have any problems viewing this video here on the Z-Issue, there is a link for it on YouTube (provided it isn't taken down for one reason or another).

Pianist:


Original posting on YouTube

|:| Zach |:|

January 27, 2010
Steve Dibb a.k.a. beandog (homepage, stats, bugs)
life is weeeeeeeiiiord (January 27, 2010, 03:13 UTC)

How is it that I can go from unemployed and pandering around in my  pajamas all day to so slammed busy that I get home and just sit on the couch stunned from it all all within a matter of like three weeks?  I dunno, but that's what's happened.

First of all, I got a job (yay!), so I'm glad for that.  Can check that one off my list.  I was honestly starting to get used to the whole unemployment thing, though -- get to work on my projects, stay home and watch Star Trek all day, and complain about my heater kicking in too much.  Oh well.  Getting laid off in the middle of December was kind of a good thing, in a way, because it gave me a break.  I didn't really think many companies would be in their right mind looking for employees because of the holidays, so I just ignore it and put off job searching until January.  My little vacation was nice, and much needed.  I got to spend Christmas at home all by myself, and did my best to make it a cool little holiday just by myself and my friends around here.  It went well. :)   It felt a lot like Christmas, in fact.  I haven't enjoyed a holiday that much since I spent it by myself like 15 years ago in college.  That was cool.  Anyway.

I'm really glad I got the packages website launched (znurt).  I worked like a madman all through November and December to get that ready to go, and pushed it live pretty much just a few hours after finishing a few touches.  Unfortunately, I had no idea I'd get such a high amount of traffic and, at first, I hosted it at home on my Comcast connection, and it absolutely crippled my poor network here within like the first 8 hours.  Whoops.  So, I scrambled to get it online somewhere else as fast as I could, only to realize that the server setup I signed up for was not *quite* as fast as I had hoped it'd be -- I don't know what possessed me to do *anything* with the word "Celeron" in it.  Yikes.  But, I pushed myself against a wall, and I haven't had time to look at it since then, so ... it's running slow, bugs and requests are backlogged, and I feel kinda bad about the messy launch.  However, if I hadn't launched it when I did, I probably would be obsessing still over the very tiny details, so it was good if only for my mental health to get it out there.

So, I got that whole thing going on.  I just started my new job last week, and I'm still getting settled in.  I'm not sure what I think of it just yet.  Could go a *lot* of different ways.  Right now, I feel like a fish out of water because for the first time in, well, ever, I'm the only IT guy working there.  Takes some getting used to.

There's a bunch of other stuff going on .. or maybe I just keep telling myself that.  Maybe it's just more like catching up to my previous obligations.  Who knows.  Either way, I feel swamped, but not overwhelmed.  That's good.  And a first.  I promised a friend yesterday that I'd help him build a mini Gentoo multimedia image to run on a VIA C7 system, so I gotta build that for him.  That shouldn't take more than a day or so, though.

Lots of cool, good stuff going on, though.  Most of it is of a more personal nature (not *that* personal, but as a general rule I don't get too detailed on my blog), and that's good.

Right now, though, I'm mainly just trying to adjust to the new job.  Get down the rhythm of everything new and all.  Yah.

That's mah life about now.

Gentoo on the Misa Digital Guitar (January 27, 2010, 03:03 UTC)

Gentoo has turned up in lots of interesting places before, but Michael from Misa Digital has put Gentoo to work in something entirely different: a unique instrument he invented, a MIDI guitar that uses a touchpad and digital keys instead of strings!

Behold the Misa Digital Guitar:

The Misa runs Gentoo Linux on an AMD Geode processor, using the Linux kernel version 2.6.31. It sports MIDI and Ethernet ports for connectivity.

I had the chance to ask Michael some questions about the guitar and his preferred choice of operating system:

Why Gentoo?

Since the guitar is an embedded system, I needed a really minimal distribution that would boot fast and had a small footprint. After investigating Linux From Scratch, I realised I did not have the time to invest in building a complete system. I was told that the minimal install of Gentoo is like Linux From Scratch with a package manager. I probably made you cringe with that simplistic analogy but essentially it was right for me. Once I had the install up it took me no time to recompile the kernel and streamline it as much as possible. I'm not a Linux expert though, so I reckon someone else could shrink it even more.

Yes, there are other solutions out there but they are surprisingly inaccessable. And the "live-CD" style distributions do not allow you to change the actual workings of the system. I figured it was best if I just used Gentoo because I have full control.

What were the two biggest challenges in crafting this instrument?

I would say the two biggest challenges are: 1) manufacturing and tooling the actual parts; and 2) sourcing components.

When you are a lone developer with no company, trying to keep the idea "secret", no one wants to cooperate with you. For example if you need a particular electrical like a screen, ordering "one" of something is surprisingly difficult - and you can expect it in 4 to 6 weeks - really slow! And then when you get it, you realise it is not suitable, so you have to repeat the process. The only exception is a website called Digikey, which will have the parts at my doorstep in 1 week guaranteed. But they don't have everything.

Working with Gentoo was a breeze, the Linux community in general is extremely helpful.

What can you tell us about the hardware?

There is no signal processing, it outputs digital signals via a MIDI connection. I had toyed with having an onboard sound generator but ultimately you limit the sound possibilities. By using MIDI, you are guaranteed support with practically every sequencer, synthesizer etc on the market - it is a standard that has been around for over 20 years.

[The touchpad] is a 5 wire resistive touch sensor. These are the most durable screens available on the market. The LCD behind it is OEM and ordered from China.

What changes to Gentoo (as a distribution) would make it easier for you to run it on the guitar?

I thought Gentoo was a breeze to work with. And can I just say, the Gentoo x86 install handbook? BRILLIANT. I used it so much that I think I actually know it off by heart now.

What's in store for the future?

I'd just like to see these instruments hit TV :)

Thanks for your time, Michael, and for crafting such a unique instrument! Be sure to watch a demonstration video of the Misa Guitar in action.

Josh Saddler a.k.a. nightmorph (homepage, stats, bugs)
Interview with the Misa Digital Guitar creator (January 27, 2010, 01:52 UTC)

I interviewed the creator of the Misa Digital Guitar.

I put it up on the front page of http://www.gentoo.org for your viewing pleasure.

I actually did the interview a week or so ago, but was out of town until today. In the time it took me to transcribe the interview and post it, some PC magazine or another ran their article ahead of mine. Dangit.

Still, I hope you enjoy the interview.

Diego E. Pettenò a.k.a. flameeyes (homepage, stats, bugs)

I currently am tackling a new job, details of which I’m not going to disclose, but one of the steps on my “pre-work setup” task was to create a new LXC-based guest, reason for which is quite easy to guess: I wanted a clean slate to work on rather than my messed up live workstation.

I could have gone to use Fedora or Ubuntu in a KVM, or even a Gentoo install in KVM, but I still like a lot the idea of using LXC, it’s a very nice “virtualisation” technology that does not consume a huge amount of resources, nor it requires special kernel support (it’s working mostly fine with vanilla kernels). And as I’m one of the maintainers for it in Gentoo, I also wanted to check if I could improve the situation.

Thanks to Adrian Nord, I’ve been able to learn quite a bit of things about LXC even without having to follow the upstream mailing lists. Unfortunately, the documentation about using LXC is scattered and sometimes messed up, so it took me a while to get this to work as intended. So here a few notes that might come useful to other people wanting to use it:

I’ve currently not packaged lxc-0.6.5 that was released earlier this week; my reason to avoid it is that I cannot get it to work, at least I couldn’t when it was released; once I can find what the heck is wrong with it, I’ll make sure to add it; unfortunately I cannot look into it as long as I’m using the lxc guests to do real work. On a similar, and maybe related note, I couldn’t get 0.6.4 to work on the 2.6.33 release candidates, so it might be a problem of version-specificity.

You cannot rely on udev, neither to have /dev filled in, nor to have a working detection of hardware; I guess that might be obvious given that we’re talking about virtual environments, but there is a trick: by default if you just bind-mount /dev (like I was used to do on chroots) you end up with the guest having full access to the devices in the host. You need to set up an access control list on the device nodes that are allowed to be accessed for that to work.

The easiest way to handle the problem with /dev, as Adrian pointed me to, is to use a static /dev; this does not mean using the static-dev package as that installs a huge amount of extra stuff we will probably never need, and at the same time it does not install some other devices, such as random on my system. My solution? This tarball – not even compressed as it’s just metadata! – creates the subset of devices that seem to actually be used by this stuff.

You don’t want to bind-mount /dev or /dev/pts, but you want instead for LXC to take care of the latter for you: not only it’ll mount a new instance of the PTS filesystem, but it’ll also bind the tty* devices to pseudo-terminals, allowing you to access the various virtual consoles through the lxc-console command. To do that you need a bit of configuration in the file:

lxc.tty = 12
lxc.pts = 128

Note the numbers there: the second one, referring to lxc.pts is, as of 0.6.4, unused, and just needs to be non-zero so that the new /dev/pts instance is created properly. The former instead is important: that’s the number of TTYs that LXC will be wrapping around to pseudo-terminals. You want that to be at least 12 for Gentoo-based guests. The reason is that consolefonts and keymaps scripts will be accessing tty1 through tty12 during the “start-up” and will then mess up you system badly if they are not wrapped. There are two extra catches: the first is that if the devices don’t exist, the init scripts will create regular files with those names (and that might sound quite strange when you go debugging you problems), the second is that you need to have the files for the given number of ttys around: LXC will silently fail if it cannot find the file to bind at the device path. Which also takes a while to debug.

I still haven’t finished making sure that the cgroup device access functions work as intended, so for now I won’t post anything about those just yet. But you might want to look into lxc.cgroup.devices.access to whitelist the device nodes that I have in the tarball, with the exclusion of the 4:* range (which is the real TTYs.

Now, maybe I’ll be able to add an init script with the next release of LXC I’m going to package!

January 26, 2010
Hanno Böck a.k.a. hanno (homepage, stats, bugs)

Hanvon WISEreader N526When asking me what I'd consider the most interesting technical developments in the near future, electronic books would be on the top of my list. So recently, I finally decided to buy one and ordered a Hanvon WISEreader N526. It has a pretty fair price, it seemed that free software support was likely to appear some time in the future (more on that later) and it has a touchscreen with pen, which was a feature I wanted to mark things in books.

From the hardware side, the device is pretty ok. Most ebook readers on the market share the same technologie for the display, it could have a bit more contrast, but else it's pretty okay. The device itself has a keyboard (which is querty, but not really ordered like a querty-keyboard), USB (not working as mass storage though), an audio output and a micro SD slot. Also, as said above, it has a touchscreen that can be used with a pen. So on the hardware side the device is quite fine.

What's not fine is the software running on it. It makes many features pretty much useless. Just to name a few flaws:

  • Adding marks with the pen, one of the main features of the hardware, is pretty useless. It works neither on PDFs nor on epub files. It only works for TXT and HTML files, so it's not possible to do any marks on any layouted file format.
  • HTML files are not supported. The vendor claims HTML support, but that's a plain lie. What it does is stripping out all HTML tags and showing the Text. If you know how HTML works, you can expect that this leads to pretty broken results and breaks all layout in HTML. Also, Hyperlinks don't work at all.
  • The zooming capabilities are very limited. For text, you only have three zoom levels. All of them are far larger than normal text in a book. For PDF, it's possible to make it fit on height or width, but not anything in between.
  • If you browse the files, there is no possibility to show the full filename, it only shows the beginning of the filename (about 20 characters). If you have files named “Author's name – Book title“ (which seems like a pretty common idea), you will only see some files with the author's name – not very useful.
  • The device has a button for landscape view (turn the view 90°). But it doesn't work. Probably a bug.

Example for HTML rendering
Example for HTML “support“ compared with original
I fell pretty angry about that. I'm not sure what to do yet. I have a 14 day return right and I seriously consider taking that opportunity. On the other hand, all of the issues are software issues. As this is a rather new device, it may very well be that the software is in an early state and issues get resolved soon. My problem is: I don't know that.

Another thing I'm looking at is OpenInkpot. It's a free firmware for ebook devices and they are working on support for the N526. However, having talked to the developers it seems that support for the touchscreen/pen is pretty unsure, as the vendor refuses to provide any documentation for that. Also, as this is a volunteers project, it's not clear if and when proper support will be available.

A certain subset of our users are scared by the huge amount of updates that sometimes are merged into our mainline repository (id: sabayonlinux.org) from our testing repository (id: sabayon-limbo). So last night I started to think about why this fear overcomes the “wow” factor.

It’s all about the number. Yes, the “number” of updates available. Look at other OSes (I mean, commercial ones), don’t they have the same amount of updates, in terms of “megabytes”? Last time I updated OSX I had to download around 500Mb. So, sometimes yes, it’s the same. What changes is just that ‘lil psychological number also known as “number of updates available: X”.

But what happens if such updates would be grouped into 5-6 main categories and presented as “category updates” ?
Let’s start with a fact: commercial OSes place dozens of updates into one “package”, that’s for sure. So, what about doing the same (more or less)?

But then, once again, if that’s the solution, what is it supposed to solve? Nothing. It just workarounds a psychological bug!

January 25, 2010
MythTV on Gentoo woes part 2 (January 25, 2010, 20:04 UTC)

Problems with the capture cards have continued, so in the end I had to unplug my Hauppauge Nova-T PCI card.

Otherwise dmesg would show errors like:

hub 1-0:1.0: port 2 disabled by hub (EMI?), re-enabling...
usb 1-2: USB disconnect, address 2
DiB0070 I2C write failed
DiB0070 I2C read failed

and after the capture cards died, mythbackend would sometimes crash and burn as well

mythbackend[23251] general protection ip:7fdc36c50f48 sp:7fff3a6a8c70 error:0 in libc-2.10.1.so[7fdc36bdb000+153000]
mythbackend[23302]: segfault at 7f1674000000 ip 00007f167c7ea289 sp 00007fff4fbfec40 error 4 in libc-2.10.1.so[7f167c771000+153000]

So I ripped out the Nova-T and settled for two DVB-T tuners for now.

At least the BE was running somewhat stable now and I could once again focus on the FE. Unfortunately most new danish channes were without sound, since MythTV doesn't support HE AAC audio. However this one was easily fixed by just enabling the faad USE-flag.

Worse were the serious stuttering on especially DR Update, which is actually not broadcast in HD. Seems to be these two bugs: MythTV bug #7481 MythTV bug #7522. After applying the corresponding patches found here and here, all channels seems to play properly.

Only odd thing about the frontends is that I somehow managed to mess up the config. If I run FE A and then FE B,FE B will think that recordings and capture cards are local until i delete config.xml. When I start FE A again it's the same problem there.

So now I'm just wondering wether I should build a dedicated FE using Zotac IONITX-D-E or just hack a bit to use my Pop Corn Hour.

Denis Dupeyron a.k.a. calchan (homepage, stats, bugs)
Neverwinter Nights (January 25, 2010, 02:40 UTC)

I've spent my whole weekend on this but it was well worth it. All known bugs in Neverwinter Nights are now fixed. That includes nwmouse and nwmovies being outdated and not always working, the elusive movie bug on amd64, some file collisions, and others that I can't remember.

For those who don't know the NWN ebuilds are rather hairy. The reason is we support a lot of things out of the box that are not even supposed to exist. Some are no more than the implementation of hacks available out there i.e. the hardware mouse and in-game movies, thanks to David Holland (see the ebuild for the url of his web site). But we also have multilingual installations from any language media. If you're like me and are in an environment where more than one language is used then this is a handy feature. I'd usually play in english but my son prefers french, so I can have both versions installed from indifferently english or french CDs or DVDs. All is needed is to set the proper LINGUAS. I have to have quite a few different versions of the game to maintain the ebuild but for the normal international user it's a real money saver. Oh and we have per-user directories too. So more than one person can play the game on a shared machine and have his/her own settings, saved games and languages (yes, each user can play with more than one language).

So do yourself a favor and get a copy of NWN. I bought yet another copy of the Diamond edition which contains everything ever available commercially for $13 a couple of months ago. Then simply emerge nwn, nwmouse (the hardware mouse, you absolutely want it) and nwmovies (nice for the commercial solo campaigns as the movies add a lot to the stories). Note that Bioware didn't translate the latest version (1.69) so if you want at least one language that isn't english then you'll have to stick to 1.68. Don't worry though, both versions are supposed to stay in the tree concurrently. Make sure you have the cdinstall and nowin USE flags and the ebuild will prompt you to insert the first disk and will recognize what edition you have. You should also add the hou and sou USE flags unless you have the original edition without the addons.

Finally, I have added two third-party campaigns: Penultima and Penultima Rerolled. Just emerge nwn-penultima and nwn-penultimarerolled. They're epic parody campaigns and among the best available. I also have ebuilds for the Tortured Hearts series but they need updating. Those are two mega-campaigns for the hardcore role-player which have the potential to keep you busy for about 100 hours each. If you want more of those feel free to let me know. Many of these third-party modules are a pain though because they contain built-in versions of widely available hak packs which end up colliding. But it never hurts asking. As usual, the best way to get the package you want into the tree is to send a ready-to-use and not-half-baked ebuild.

January 24, 2010
Raúl Porcel a.k.a. armin76 (homepage, stats, bugs)


Hello everyone,

Just wanted to let you know that the following stages for this month have been built and released and are available on the mirrors:

  • armv4l-unknown-linux-gnu
    For the Rebel NetWinder, HP Armada and other devices having an ARMv4 processor, which is only capable of running the old ABI. Nevertheless it should work on newer CPUs.
  • armv4tl-softfloat-linux-gnueabi
    For the OpenMoko FreeRunner and other devices using an ARMv4T processor. Uses the new ARM EABI and software floating point by default.
  • armv5tel-softfloat-linux-gnueabi
    For almost all ARM NAS, devices based on the Marvell Orion and Marvell Kirkwood, Marvell Sheevaplug, Marvell OpenRD, QNAP TS109/TS209/TS409/TS119/TS219/TS419, Buffalo Linkstation/Kurobox PRO, HP mv2120, HP iPAQ, Linksys NSLU” and other devices using an ARMv5TE processor. Uses the new ARM EABI and software floating point by default.
  • armv6j-unknown-linux-gnueabi
    For Nokia N800/N810, Smart Q7, OMAP2-based devices and other multimedia devices using an ARMv6 CPU and VFP. Uses the new ARM EABI and hardware floating point by default
  • armv7a-unknown-linux-gnueabi
    For OMAP3-based devices(Beagleboard, IGEPv2, Devkit8000, AlwaysInnovating Touchbook, Nokia N900), Freescale i.MX515-based devices(Efika MX, Babbage Board, Lange Board…) Marvell Dove/Armada and other devices using an ARMv7-A processor. Uses the new ARM EABI and generic(not NEON) hardware floating point by default

You can find them on your favourite mirror or clicking on the links above.

Sulfur Love, a month later… (January 24, 2010, 14:37 UTC)

Simple mode + UGC icons and Drag and Drop support (just drag images, documents, files over packages and see). Of course, this is from Entropy GIT, not yet available for general consumption (read: wait for Entropy 0.99.25).

Luca Barbato a.k.a. lu_zero (homepage, stats, bugs)
CMake vs autotools: poppler (January 24, 2010, 11:20 UTC)

Poppler has a CMake ebuild now. Given how poppler is used it seems to me quite a bad move, poppler is small and used in system that may not have cmake already installed.

I run some numbers when wesnoth moved to cmake and claimed that it took about twice for me to build wesnoth+cmake on a phenom and building wesnoth alone took nearly the same time. Later a friend of mine wanted to play with me with wesnoth and given her pc is a _bit_ old, took ages to build an up to date wesnoth, about twice the time you may consider bearable thanks to the cmake switch.

Let's see what means switching poppler to CMake now, after the previous post I got some news of nice improvements, hopefully it improved even more while I wasn't watching.

Now some numbers:

I have my system in need to update poppler, still the phenom I used the other time, it is doing nothing right now:

cat /proc/cpuinfo | grep model_name
model name : AMD Phenom(tm) 9500 Quad-Core Processor

first: I need cmake

cmake ebuild tell me that I need xmlrpc-c with curl and curl with a kind of ssl support. I don't see the point of having an xmlrpc library and two xml libraries for a make system, well let's set the right useflags and trigger emerge cmake

time says

real 8m9.854s
user 13m8.121s
sys 3m7.664s

qlop on the cut down emerge.log says

domino ~ # qlop -t cmake -f mylog
cmake: 207 seconds average for 1 merges
domino ~ # qlop -t curl -f mylog
curl: 233 seconds average for 1 merges
domino ~ # qlop -t xmlrpc-c -f mylog
xmlrpc-c: 40 seconds average for 1 merges

So cmake is taking about the time of curl and it's indeed faster to build that before (it alone), still autoconf+autotools take less than 60s here, and if we factor in the deps then we still have large margin for improvements (please make xmlrpc-c, curl, libxml and expat optional)

app-text/poppler

takes about 37-40 seconds

Hacking a bare ebuild w/out touching poppler configure.ac makes it take about 60-66 seconds

So if you are having cmake already installed this poppler ebuild is _quite_ an huge improvement. If you are wondering why that happens I could guess that given that poppler is quite small the cmake quicker configure step gives this large boost, probably not having libtool in the way helps as well.

To sum up:
- the cmake poppler builds quite faster than autotools poppler.
- CMake improved a lot its build time, yet is largely bloated and could enjoy a trim.
- Poppler configure.ac probably could be improved to be in line with the cmake times.

Ben de Groot a.k.a. yngwin (homepage, stats, bugs)
Poppler reunification (January 24, 2010, 01:49 UTC)

Since we have eapi-2 use dependencies now (and have had them for a while…), there is no longer any need to split the poppler package (a popular PDF library). As first major step in the reunification of the split poppler packages, I just committed a new ‘monolithic’ ebuild, app-text/poppler-0.12.3, to our testing branch in portage. This ebuild was developed by Maciej Mrozowski from our KDE team, and uses the cmake buildsystem, which is actually preferred by upstream.

You should have no problem migrating to the new monolithic poppler, as portage should be able to solve the blockers automatically. As a second step we will adjust the dependencies in packages that need poppler, to no longer depend on the virtual ebuilds, but on app-text/poppler directly, with the correct useflag dependencies. This work will be done gradually over the coming days.

Version 0.12.3 is also our stable candidate, and a stable request will be filed soon. Then all old versions of poppler and the split packages, as well as the virtuals, will be removed for security reasons. Feel free to come by #gentoo-kde on Freenode if you have any questions.

January 23, 2010
Ben de Groot a.k.a. yngwin (homepage, stats, bugs)
LXDE 0.5.0 update (January 23, 2010, 22:00 UTC)

Hello there! Long time no see, I know. (At least on this blog.) For our LXDE users out there, I want to point you to the fact that Victor Ostorga has provided us with some updated packages, and we now have lxde-meta-0.5.0 in portage, in the testing branch. So go ahead and test these updated packages out, and report any bugs you find!