See you at OLF!


On my quest to become a more useful and active Linux person, and to take my shiny new laptop out for a spin, I’ll be attending the Ohio LinuxFest for the first time, representing Ubuntu (and the Ubuntu Kentucky LoCo/Bluegrass Linux User Group) and GNOME.

Be sure to checkout GNOME 2.28 and all of the great improvements made throughout this cycle (hopefully the last of the GNOME 2.x releases!)

Made To Share!

Hope to see you at OLF and onward and upward to GNOME 3.0!

New Stuff (Late updates!)

Finally getting around to writing this post. It’s way late, and I apologize for that, but I’ve been busy, so…

Almost exactly a month ago I turned 23, and decided to purchase some new hardware.

new displays and coffee cup

These are my new 22″ Dell monitors, courtesy of my Dad. Both of these guys are capable of 1920×1080 (that’s 1080p to the HDTV crowd), and are visually stunning. As with every piece of hardware, nothing’s absolutely perfect though. But at least the flaw here is a tiny one: the buttons are highly annoying, requiring too much force to press and feels spongy. Still, the main job of these guys is to show me a lot of text, and these guys do that job quite well.

The coffee mug is new too. It was part of the gift from my Mom. Hard to decide which gift I love more. (That mug is HUGE!)

new hotness

This is the real new hotness. My first new machine in 3.65 years. Specs: Core 2 Duo (P7350) 2.0GHz with 3MB of L2/core, 4GB of RAM, “500GB” (ahem, 466GB) HD, 1920×1080 LED backlit screen, 9 Cell Battery, Intel Graphics and 802.11a/b/g/n WiFi (making it a Centrino II machine), Backlit keyboard. Every component was picked for battery life, except the backlit keyboard which I just had to have… All for less than a thousand dollars.

Well, the bad news was, when I pulled the machine from the box, it wouldn’t boot. Wouldn’t even turn on. Fortunately Dell sent out a dude, and it was up and running with a new motherboard. The repair guy was quick and very efficient, so on the overall I’d say the experience was positive, even if it meant I got sent a $900 paperweight straight from the factory. (One that I still had to install Ubuntu on. Shame on you Dell for not offering this machine with Ubuntu).

The bad news doesn’t quite end there, sadly. The keyboard is taking a long time to get used to, and I’m being driven crazy by Dell’s pathological key layout:

drives me nuts

That’s right kids. They swapped the menu and control keys. Every, single time I attempt to hit the right control key, or the left arrow key, I hit the damned menu key, and *headdesk*. The page up/down/home/end cluster is also hard to get used to, but I foresee myself figuring that one out sooner than this damned key swap… Argh.

One last downer before we move on to the goodies: the software worked amazingly out of the box. Every single thing worked. Almost. For a little while, at least. I’m not quite ready to rebuild my kernel to get around a nuisance ACPI bug like the latter: I typically set my CPU to as low as possible, the display backlight down to as low as it will go, and set the backlight off during daytime and on the medium “auto-off” setting at night, so there’s no real reason I need those keys working. The other bug is that the Ricoh card reader doesn’t work, but I really don’t use it, since my camera has a handy USB cable and I’m quite used to using that. But I’d still like them to work, just to say “Ubuntu supported my hardware perfectly with zero configuration.”

Okay, so the goodies:

ports ports

Two headphone ports (and a microphone port, yay), in-lid webcam and microphone, slot loading DVD-RW drive (I adore slot-loaders, why bother with the trays!), eSATA port, HDMI, non-locking lid… Dell really got the design of these machines down. (Hell, this machine compared side-by-side with a Macbook Pro… it’d be really hard for me to choose.) The machine feels at least twice as fast as my three year old Toshiba machine, which I immediately attribute to its dual-core nature, and the battery life… oh the battery life. My old Toshiba chained me to a wall, quite literally. Started at around 1:30, degraded in about 18 months to 20 minutes, now holds a charge of about 4 minutes. My new machine, at all of its power-saving glory: 6 hours, 45 minutes.

Enough with the hardware you say!

Life updates. The Ubuntu Kentucky LoCo has a group of folks heading up to the OhioLinux Fest. I should be one of those folks, if things go well. I’m also trying to work out a way to go to the GNOME Boston Summit if I can work out the money and particulars. I’d love to have a Nautilus hack session now that we have people interested in working on it and the code is moving again. We’ll see how that all works out. And we have another UDS coming up soon enough, which I’d love to attend again and work with the new papercuts crew on some further UI revisions. All things looking up for a nice GNOME 3.0 Nautilus cleanup.

Last minute thing (gosh, feels like I’m always asking for things, but hey, it’s a good way to get a plug on by blog, if that counts for anything. Might increase your pagerank…): gotta find stickers for the new machine. If you’ve got any neat ones, I’d love to see them! I received in the mail a nice one from the Tinkerlog people, all the way from Germany, and a couple from the nice folk, and of course there are the always nice Ubuntu stickers. But anyone who has seen my old sticker surface knows that I’m a fan of them…


As soon as I put the new ones on my laptop, I’ll get a picture of that up, but I’m not quite sure how I want to lay them out as of now. Still in the planning phases.

And now, off to enjoy a sunny Saturday.

More Nonsense. MoNo for short.


Like Mono? Hurray, it’s included!

Don’t like Mono? `sudo apt-get remove –purge mono-common` Hurray, it’s gone!

It’s that easy people. We can bikeshed about it for the next forever, but it’s not going to matter because everyone’s already picked their side of this battle and trenched in. It’s not enough to see every Planet ping ponging about Mono, or every single person on pinging the !ubuntu group, or emails flying back and forth in the hundreds on the mailing lists. It’s not going to change until there is a reason for it to change, and right now, there just isn’t. Everyone’s just being argumentative to the point that it’s counterproductive.

Meanwhile, the rest of us would like to stop hearing about it so that we can go back to work. Things that really need to be discussed are too busy being drowned out by the huge signal:noise drop caused by all of this nonsense. We’ve got absolutely in shambles in a time when it’s more critical than ever to get right, with the development of so much new software including another desktop completely in LXDE. We’ve got shifting infrastructure left and right with PulseAudio and udev and DeviceKit and Kernel Mode Setting and you name what else coming down the pipeline. GNOME’s got work to do on ToPaZ Two…ahem 3.0 with Zeitgeist and Shell and whatnot.


A few updates and a request

It’s been a while since I’ve updated this blog, so I thought it was time to post an update (and Jorge called me out on Identica; follow me here. ;).

Things are moving upstream with notifications again, so hopefully we’ll have a new spec revision ironed out very soon. Lots of patches to push upstream for both libnotify and notification-daemon too. Not much to see yet though, stay tuned. You can see some of the discussed changes to the spec in my git branch.

The great Death by One Hundred Paper Cuts has reawakened quite a few old Nautilus bugs, so I’ve been trying to play catchup there. With all of the work going on to Client Side Windows by Alex and Empathy from Cosimo, we’ve been left with a bit of a vacuum in Nautilus, so I’m trying to pick up the slack a bit. We still have a lot to go, and we could really use some help, so feel free to stop by #nautilus on gimpnet and see where you can lend a hand. (And remember, if nobody replies right away, wait! Lots of different people in different time zones on at different times).

The last development in my life is that I’m finally heading back to school, just as soon as I can handle all of the paperwork and such. This will probably cut into my free time a bit more, but now that I have a much better grasp on what I’m looking for from my education and what I intend to do with it (that is, working on Free Software), I’m hopeful that it won’t cut into my community involvement. Wish me luck.

(Lastly, as a tiny request: as you may have noticed here or on identica, I don’t really have a great personal icon. If anyone in the community would like to make me one of those fancy hackergotchis, please contact me: I’d like to use this image (CC-BY-NC) taken by Martijn van de Streek at UDS Jaunty, which is probably the most favorite photo I’ve had taken in the past few years, but I have a couple others if that one won’t work. I mostly hide from cameras… Thanks in advance, and thanks Martijn for the picture!)

Some notifications updates

I did get a few details wrong, and people have came to me and told me, and I am very glad that I did get them wrong.

First, the legal problems were copyright disclaimers, so they’re no big deal here, typical stuff, which is a HUGE load off my mind. Thank goodness for that.

Secondly, the code is still in very bad shape and was mainly for demonstration purposes with the development team and the UI team, which is also okay; the demo actually made it look more complete than it turns out to be, which is also a good thing because it will mean lots of chances for people in the GNOME community to get involved. I am so enthused to here this!

Thanks for everyone for clearing up details for me; always feel free to reply to me and make sure that what I’m saying is correct. (I’m factually wrong all the time, just don’t sue me ;).

Edit: Also, I was told that this code may go under GPLv3, which very much excites me so this code will be truly free. This really does make me feel a whole lot better about the whole situation. Thanks again everyone.

New Notifications for Jaunty

The big innovation (and controversy) coming out of the Desktop Experience team here at UDS seems to be the new notifications work going on. This is a big concern of mine, as I’ve worked on that code locally, and have definitely wanted to see some progress here for ages. Unfortunately, the upstream is more or less dead or limping due to conflicting time constraints on the lead developer, Christian Hammond.

Weighing in, I think that Canonical’s work here is looking really good, and has a wonderful design, but I do worry about some of the edge cases. The biggest other concern is that no effort until recently was put into contacting Christian Hammond at all, so it’s essentially a fork/reimplementation, even if it is one that makes sense due to upstream’s stagnation (until recent developments). Now that Libnotify and Notification-Daemon are up for proposal for GNOME 2.26, it’s only now that we’re looking into replacing it… It’s both unfortunate and opportunistic of Canonical to pull this out of their hat at UDS.

For those that are not here at UDS Jaunty at Google, it is important to understand some of the changes that we have discussed here. The first of which is the removal of “Actions” from notifications. This means that there will be no more buttons inside the notifications at all. The way that applications currently use libnotify is somewhat abusive to the original spec, where they should query for capabilities and then use an action if the daemon supports it, but changing the daemon now to simply never show actions will likely leave you with notifications that say “Please click the button below”, and there is no button to press. Bugs to be filed, users to scream at us…

Notifications now are simply there to show you the data about what’s happening on your machine. This can happen in two ways; Synchronously, as you press a button like the volume or brightness controls, the notification comes up and shows you the change, and “normally”, how instant messengers like Pidgin with the libnotify plugin currently work.

Instead of having “Actions” inside of the notification window, they will be moved to a panel applet, which will allow you to get to the application in question by clicking it. There have been a lot of discussions on what this panel applet will be like, but it is probably the biggest missing component in the discussion so far, since we haven’t seen any prototypes on it, or what it’s interface will look like. The Design team that’s working on this seems to be doing so behind closed doors and beyond all contact by mere mortals like myself.

So, despite the conflict of the Bazaar vs the Cathedral in the situation we’re in, I’m feeling pretty good about the general work being done. I’m really hoping that I can be a part of it and it won’t be this cabal-like situation where I have to bring patches to Canonical’s door and sacrifice a goat in offering to the Gods of the New Notification Daemon. Or, you know, I could always get off my bum and send my resume in ;).

*: I had planned to insert all kinds of wonderful pictures and a link to the wiki here, but unfortunately Google has outright outlawed the usage of cameras inside the buildings on their campus, and Canonical has to wait for some more design work before the wiki is up. GNOME community developer 0, Enormous Global Companies 2.

Buzzer Beater

I have been rather quiet on the code frontier lately. It’s not a result of anything more than working on my own personal projects and spending entirely too much time away from my computer. (That and getting everything in order for UDS.) So I decided I’d share a teensy, tiny bit of what I’ve been working on, since I’m excited about it…

Some time ago on the Nautilus mailing list, the discussion came up about so called “Miller Columns“; Apple calls this “NSBrowser”, and it has a ton of history as far as tree visualizations go, dating back to the Smalltalk guys in the 70s. I managed to bang together a little demonstration that took only a few hundred lines of C (I had some weird problem with Vala that it didn’t want to work back then). It looked like this.

I coded that up, and promptly forgot about it. I thought that actually implementing it correctly over GtkTreeViews and GtkTreeViewColumns was going to be an absolute nightmare, and I thought nothing more of it.

Until my pet project needed a way to visualize a tree of items. Sigh.

The basics of the beast work fine, but there are still a ton of details to work out before it’s up to snuff for my project (and who knows, maybe Nautilus next?) The TreeView itself is an HBox, which has a new TreeView packed in every time the selection changes and any views further down the widget are destroyed. Each TreeView has a model that is set from a filter model of the previous model, so that we’re only seeing the section of the tree we want in each cascaded tree.

The columns were actually the biggest problem I hit, as you can’t add a GtkTreeViewColumn into multiple GtkTreeViews; instead, I created a class that has almost the same interface as GtkTreeViewColumn (with some details needingly removed, and some details left to be reimplemented under the new class), but creates a new column every time a new GtkTreeView is packed into the parent TreeView. All of the new columns properties are linked to the central column, such that when someone changes the TreeViewColumn in any way, all of the created TreeViewColumns are also automatically updated with the same details.

It’s still very much a work in progress, and it needs a good cleanup before I go any further on it. But it was interesting enough for me to want to share it. If you’re interested in any more details, you can email me about it or find me on IRC. For now it’s shelved so that I can go back to work on hating GooCanvas’s silly canvas API and my pet project (and yes, I’ll announce more details when it’s actually more than fairy dust and graphite on sheets of tree).

Public Service Announcement wrt Thumbnailing

Brilliantly retold by our pal Rupert on GimpNet, “Nautilus bugzilla is pretty much like whack-a-mole” (–interatom, April 23, 2004). As I’m feeling the need for a bit of hammer time after a short hiatus due to family troubles, and to whack as many of these moles as possible, and just as a general friendly reminder for future reference for those also writing software in the community, I would like to direct your attention to a nice piece of documentation written by someone on the GNOME Documentation Team some time ago (I would love to credit them for this, if you happen to know who it was perchance):

Installing a Thumbnailer Program in GNOME.

This document is the practical “How-to” guide for installing thumbnailers for any arbitrary format of your liking. If you find that “application/x-arbitrary-filetype” is not getting thumbnails and you would like it to, please consult said document, file a bug against the piece of software relating to “application/x-arbitrary-filetype”, ask them to provide a program or command-line argument suitable for thumbnailing said documents, and update their software packages as to install said program in the way described above. Tada, no more complaining about the lack of thumbnails on OpenOffice documents, EPS/Postscript documents (should be handled already by Evince these days), Word Documents, EXE files, and yes, even Folders if you wish.

(As an aside, does anyone know why OpenOffice doesn’t supply a thumbnailer by default? I know they have a GNOME support package, this seems like it would be one of the most obvious things for said package to contain, especially as the thumbnailer itself could be as simple as a couple of lines of already-written, but in need of a slight-update, python code to extract the thumbnail from the ODF zip. This is already a very old bug in Launchpad.)

This post closes GNOME bugs numbered #500519, #377786, #363006, #347694, and presumably bug #84927 if someone wanted to write a (silly) thumbnailer for “inode/directory”.

In other news: I will be attending UDS for the first time ever, provided I can find time to actually buy the tickets ;), to help work on the Jaunty Jackalope and the never-ending battle of Ubuntu Desktop Integration. Thank you Canonical for your considerations and generosity. It will be great to get to meet with the rest of the team and discuss the future direction of the GNOME Desktop in Ubuntu.