Friday, April 24, 2009

The Big Picture: Timed Release Failures

Image by via Flickr
Jaunty should be out today (this post is scheduled), and I think  this is a good time to talk about whether timed releases are a good idea. I'll put my opinion out here at the beginning and say that, from a project management standpoint, hard release schedules are really not the way to go. Let's look at Ubuntu 9.04 Jaunty as an example.

There's in Brasero that doesn't let a user create a video CD or DVD. Brasero claims to have this function; it appears to have this function by virtue of there being a button for it; but attempts fail because it claims that it's not possible with the available plugins. This also breaks Totem VCD/DVD writing, one of the bullet points for this release. A fix is available and in a PPA, but it's apparently (as of T minus one day) not going to be included because of the package freeze. They can't test the package and get it included in the CD on time.

That leaves a choice: push the release back a couple of days, or ship with a major bug.

Canonical used to be a little more flexible with its shipments: 6.06LTS (Dapper Drake) was delayed two months because they wanted to hammer out a few bugs. About the time that 8.04LTS came out, though, Canonical became much more serious about the day they were to release on. Countdown clocks were part of the marketing effort, and if they're showing a release but one doesn't appear, that looks really bad for the project.

As a result, 8.04LTS (Hardy Heron) shipped with a bug which prevented F-Spot from launching a second time on AMD64. The first time worked, but a late change in mono left the default photo application for the OS segfaulting on startup when run the second time. It didn't get fixed for a couple of weeks. Ubuntu 9.04 (Jaunty Jackalope) will likely have a similar (but not quite as serious) bug in the shipping version because of Brasero.

There's the other side of the argument which says that there'll always be bugs and that you just need to ship, anyway, but that's why some bugs are called  "release critical" and you need to correct them if at all possible. That "posible" thing includes delaying the release for a week.

Timed releases are fine, but don't shoot yourself in the foot. Be flexible enough to put out a good product. You can't be taken seriously by real users if you ship non-functioning product regularly. That's the big picture.

Thursday, April 23, 2009

Upgrade or Reinstall? How do you move from Intrepid to Jaunty?

Backup and Restore CenterImage via Wikipedia
Jaunty is a day or two away, and a lot of people will be upgrading. There are a bunch of ways to do this:
  1. Download the full CD or DVD and insert it into a running system to upgrade,
  2. Upgrade from the Update Manager,
  3. Wipe and reinstall using the full CD.
  4. Wipe and reinstall using a net install.
Which is best for you really depends on your system. If you have a lot of third-party repositories and/or packages, you run a much higher risk of borking during an upgrade, but you also will need to spend more time getting these back after the reinstall.

My preferred method is to back up my package lists and sources.list, reinstall using a net install, and install the previous packages using the lists I backed up. It works the best for me because I have a fast connection and I don't need to download any packages twice or burn any CDs. To do this:
  • Find a mirror of the netinst.iso installer.
  • Download the linux and inintrd.gz files.
  • Backup your package list to your user directory.
    • Use Synaptic and File > Save Markings, or
    • dpkg --get-selections > packages.txt
  • Copy your /etc/apt/sources.list to your user directory.
  • Backup your data to be safe.
  • Reboot.
  • At Grub, press ESC and enter the command prompt by hitting C.
  • Set your root partition. The command will vary. Most likely ...
    • If you are all in one partition on one disk, type root(hd0,0).
    • If you have a separate /home on the same disk, type root(hd0,1).
    • Other configurationws will vary. Disks start numbering at 0, and partitions do, too.
  • Set your kernel using kernel /path/to/linux. You can use tab completion. This path is the path on your partition, so it may be /home/user/linux or it may be /user/linux depending on whether you have a separate /home or not.
  • Set your initial ram disk using initrd /path/to/initrd.gz. Again, this will depend on your configuration.
  • Boot using the boot command.
  • Follow the easy to use Alternative installer. 
    • Set up the networking.
    • The installer will be downloaded.
    • Set up the system and partition.
    • Install the base system.
    • Choose additional packages using tasksel.
    • Downlaod and install the additional packages.
  • Reboot into your new system
  • Add your third-party repos back in from the backed-up sources.list, changing as necessary.
  • Load the packages.txt file
    • In Synaptic, using File > Read Markings and Apply, or
    • using dpkg --set-selections < packages.txt && sudo apt-get dselect-upgrade.
  •  Enjoy your new system.
For me, this is the safest and easiest method of upgrading your system. If you do it often enough, you can even make a preseed file and automate the whole process.

Wednesday, April 22, 2009

Google SoC and Gnome

The results from the Google selection are out and . I'll cover the ones I think are interesting below.


Adrien Bustany will modify Tracker to search various on-line resources, such as , , and . Speaking of GD, Thibault Saunier is going to add Google Docs support to Nautilus, allowing the user to treat the docs like local files. In conjuction with Bustany's work, this looks like a big win for users (and I'm one). If you're interested in music and videos, Neil Loknath is integrating Banshee and the Telepathy communications framework to share music with your IM contacts and
Mike Urbanski is hooking heavy podcasting support into Miro and Banshee. Zhang Sen is linking Telepathy's Pipes with Gnome Sudoku to make multi-player gaming possible. This is another of the great uses for Telepathy. Finally, Simon Wenner is geolocation data for tasks in Getting Things Gnome.


Siegfried-Angel Gevatter Pujals is adding Zeitgeist into the new Gnome Shell, planned to be the default desktop for Gnome 3.0, due to be released in 2010. Zeitgeist gives people a time-based view of documents. Sam Thursfield will be integrating GConf into GTK+ to make using GConf keys easier, including using it from Glade. Ian Marcinkowski is moving e-mail into its own independent process, similar to what Telepathy has done for IM and voice/video. David Jordan is going to be adding hooks to windowing allowing applications to expose more information to the Gnome Shell. Florian Ludwig is going to try to use Pulse to make the data avialable at a bit more useful and easier to visualize.


Guillaume Béland is planning to convert Nibble to the Clutter OpenGL canvas and add animations, while Timothy Horton want to "blingify" Gnome games by
making Mines a 2.5D program with special effects.

Other Features

Rhythmbox is getting a contextual information pane thanks to John Iacona, while Paul Bellamy is making MTP and iPod sync work on the application.
will finally get the ability to handle RAW images through Ruben Vermeersch's work. Gnome Shell doesn't have multiple monitor support yet, but Nathan Lo intends to change that, and Maxim Ermilov will help Gnome Shell developers using Seed by adding support for ECMAScript to the Anjuta IDE. Anjuta also gets Python integration from Ishan Chattopadhyaya.

There are some more projects, too. Take a look at the to find out more.

Monday, April 20, 2009

Awful Nautilus / Brasero bug in Jaunty RC1

If you're running the RC of Jaunty, you probably noticed that your Nautilus-based desktop isn't showing today and that you can't browse files at all. Nautilus is loading the Brasero library (which is currently SEGFAULTing on startup, and crashing. The workaround is
sudo chmod a-r /usr/lib/nautilus/extensions-2.0/
That's all on one line if you see a line break. Brasero won't work, but it didn't before so there's no real loss, eh?

Fix Your Crap 1: Want Tracker Support in Nautilus?

Image by via Flickr
Open up your Ubuntu Hardy (or later version) file manager and press CTRL+F to start a search. You'll notice that it's slow and only searches by name. Sure, you've got the deskbar (unless you're using a recent version of Ubuntu) and can get Tracker full text search, but why wouldn't you want Tracker integrated with Nautilus? Well, it turns out that and the integration was stopped after Gutsy (what a bone-headed decision that was!). Don't bother trying to report this as a bug, even though the Nautilus project and the Tracker project both claim integration with each other -- it'll just be marked "Invalid" or "Won't fix." Wake up. Modern desktops have this kind of integration.

So what's a person to do? Are you going to run off to another Gnome distro which doesn't do this? You have the power of the source. Use the source, Luke! Fix your crap. It's an easy cut and paste job for you. Just open a terminal and paste the following in (I'll explain later what each part does):

sudo apt-get build-dep nautilus
sudo apt-get install build-essential libtrackerclient-dev \
libtracker-gtk-dev fakeroot
apt-get source -b nautilus
sudo dpkg -i libnautilus-extension*.deb nautilus*.deb
killall nautilus

You should now have a near-instant search via full-text Tracker. Have fun.

The explanation
  1. We're going to need to recompile nautilus, so we need to get the build dependencies for Naultilus. The first line does this automatically without having to work through everything manually.
  2. Since the Tracker dependencies weren't installed, we need to include those. We also need fakeroot since we don't want to build as root -- fakeroot is a package which keeps us from needing to use those priveledges while building the package. Build-essential makes sure that we have all the build tools installed. I normally have them, and I'm not sure whether you actually need to have this package on the second line or not (due to build-dep above), but it doesn't hurt to have it and I don't want anyone's build failing. The backslash in the middle of that line makes a carriage return possible without executing the command.
  3. We retrieve the source for Nautilus and automatically build it. Since Nautilus checks for Tracker during compilation, we don't need to mess with any compilation flags -- that's handled automatically.
  4. We install the new packages.
  5. We need to kill Nautilus to restart it.
Sometimes, changing your system to meet your needs is more difficult than this. I'll introduce you to one of those next week in Fix Your Crap 2.

Sunday, April 19, 2009

Getting that OS X Experience on Ubuntu 9.04 Jaunty is Simpler Than Ever

Image by via Flickr
Before I start this article, let me say that I'm not a big "make your Ubuntu desktop look like a Mac" kind of guy. I don't use a dock. I don't have an Apple icon on my top panel. I pretty much use straight Gnome. I even like the spatial view someitmes.

There are plenty of people who want the Apple desktop experience, though, and I'm going to tell you how to get it. No, I don't mean pixel-perfect themes. I mean the stuff that counts. Usability. There are three main elements to Apple's usability on the basic desktop: a dock, menus on the top panel, and a launcher. Lucky for us, Ubuntu 9.04 Jaunty makes all these pretty easy.

Let's start with the launcher, which in OS X is called Quicksilver. In Ubuntu, we have a worthy competitor in GNOME Do. It's already in the repositories and at version Installing just means clicking this link. When you are finished, Press ALT-F2 and type "gnome-do" or launch it from Applications > Accessories.

When the two-panel (and rather ugly) application appears, click on the arrow in the upper-right corner to open the Preferences box. In  the General tab, you'll want to set Gnome Do to start automatically and to hide on launch. Next, you need to enable some of the many plug-ins available for Do. Changing "Show: Official Plugins" to "Show:All Plugins" will give you many more choices. I suggest you enable the Tracker search, Google Apps, , micro-blogging (Twitter and, IM, browser, note, and music player plugins as a start. Some of these will require some configuration with user names and passwords.

Gnome Do appears with a press of the super or Windows key and the spacebar simultaneously. Instructions for using it are on the .

The next step in getting that OS X usability is to add a dock. Normally, people recommend Avant Window Navigator for this because it's quite a looker, but I'm going to recommend that you use the built-in dock in Gnome Do. You will need a compositing window manager in order to enable the dock. If you have Visual Effects enabled in Preferences > Appearance, then you are OK.

If you can't enable effects, you aren't out of luck yet. Metacity (Gnome's default window manager) can do compositing, though it's turned off by default. Hit Super-space to start Gnome Do and type "gconf-editor" and ENTER to launch the GConf editor. Under Apps > Metacity > General, put a check next to Compositing Manager and close the application.

To enable the dock, access the preferences in Gnome Do and change the theme to "Docky" in the Appearance tab. Bam! You're finished with the dock.

Another important aspect of OS X usability is the top menu, which conforms to Fisk's Law about where it should be placed. Personally, I have trouble getting used to it, but there's no doubt it's easier to hit than a menu on the window. Getting a top menu for GTK+ used to be the hardest part of this process, requiring patching and compiling, then later it was easier but required downloading and installing using force overwrite. These days, Gnome2-GlobalMenu has its own repository and is easy to set up. Add the following repository to Software Sources or manually in /etc/apt/sources.list

deb jaunty main
Download and add the , then update and install gnome-globalmenu. Remove the menu and quick launchers on your top panel, right click and add the global menu and a normal ubuntu menu if you like.

Choose a theme like Dust Sand, and you're done. There's no real reason to move the traffic lights to the left, but you can if you want to by using the GConf editor and changing the "button Layout" under Apps > Metacity > General.

Saturday, April 18, 2009

DRM's Ugly Head Rears Again

Image by via Flickr
Average people just don't seem to learn when DRM shows how awful it can be. Yahoo!'s and 's music services were cancelled and their authorization servers were planned to be taken off-line. The suggested workaround? Burn the tracks to CD and rip them to a non-DRM format, losing cash, time, and a serious amount of fidelity in the process.

The biggest complaint I hear about moving to Gnome right now is that the person's iPod and previous iTunes purchases won't work. The iPod's DMCA-assured secret hasing and iTune's limit on moving older music purchases share a common trait: that's DRM locking you in. But that's all old news, isn't it?

The new news is not about music: it's about e-books. Same old nasty tasting poison -- different wrapper. controls how long you can read your books for. The details of the case in the link above aren't important. The banned customer may have abused a policy or he may not have. The result is the same: he not only loses his right to the returned books, but to all the books he legally purchased and didn't return. The message from Amazon is clear.

"All your book are belong to us." You don't own the books your bought, and Amazon can take them away time they are dissatisfied with you. You have no recourse.

Do yourself and the world a favor. Support open formats. Refuse to buy products which contain DRM. Let the vendors know they lost your sale. Use the non-DRMed products legally and within fair use guidelines.

Friday, April 17, 2009

Do you need to worry about the new /dev/mem rootkit problem?

WubiImage via Wikipedia
A new paper was presented in late March about using /dev/mem to inject and hide a rootkit (PDF), and the method has been getting some press, leading to a concern. The first thing that you should understand is that this class of attack has been used before. We know how to protect against it.

If you read the paper, you'll find out two things:
  1. We need a way to write to /dev/mem as a regular user, and
  2. There's a kernel config which protects against this mechanism.
For Ubuntu Jaunty, the permissions on /dev/mem are read-write by root and read by  the kmem group. We can't write to /dev/mem without having root access, and there are many other ways to get a rootkit in undetected if we have that level of auth.

The kernel config also shows "CONFIG_STRICT_DEVMEM=y" -- meaning that this kind of attack wouldn't work even if we could write to /dev/mem.

In short, there's nothing for you to worry about.

Wednesday, April 15, 2009

4 Ways to Help Out Your Local Mirror

If you worry about your local repository mirror and how to save some of its bandwidth, there are many ways to go.

Proxy Options

If you have several machines on the same version and architecture, using a local cache can not only save your mirror bandwidth, but also keep your usage down. One machine downloads and keeps copies of all the updated and newly-installed packages, and the other computers look to the first one.
  • approx: You need to give an alias to each repository used on your network in /etc/approx.conf, like so:
Then you need to divert apt to use the approx proxy, which uses port 9999 by default. Edit the /etc/apt/sources.list file, like so:
deb http://apt:9999/debian testing main
deb http://apt:9999/security testing/updates main
deb-src http://apt:9999/debian unstable main
where "apt" is the hostname of your machine which runs approx. Make sure the hostname is in the /etc/hosts file of each machine. There are two good pages about approx.

P2P Options

If you're not worried about your own bandwidth or have only one computer with a given version and architecture, you can use peer to peer protocols like Bittorrent to ease the burden on your mirror. Your bandwidth will probably go up using these methods.


If you have several computers but don't want the bother of setting up a cache, you can try using the Zeroconf/Avahi method, automatically finding the required package on other computers in your network. Think of this as a hybrid cache/P2P solution. It is, of course, zeroconf, so there's no configuration necessary.


The possible combinations are numerous. There is a cool HowTo on setting up Approx and using the cache server to fetch via DebTorrent. It's in Spanish, but .

Tuesday, April 14, 2009

10% of Corporations Actively Moving to Linux

discusses a recent survey of businesses with regard to their plans about Win7. Not surprisingly, few have made any plans to move to the yet-to-be-released OS within the next twelve months.

Hidden in the numbers lies an interesting fact. Fifty percent of the businesses polled are looking at migrations to other OSes. I would hope that IT people are always looking and assessing so I don't put too much stock in this number. What are the other 50% doing ... sitting on their thumbs? Some of these people are actually in transition: about 14% of companies are moving to another OS. That's quite shocking, considering 99% of those surveyed are now on Windows.

Of that fourteen percent, twenty-seven percent are looking to OS X and another seven percent are planning to move to something other than Mac or a Linux-based OS. The rest -- 66% -- are moving to Red Hat, Ubuntu, or Suse, mainly. Do the math. Ten percent (to two significant digits) are actively moving to Linux right now.

Wow. I'll say it again. Wow.

Congrats Steve McIntyre

Debian OpenLogoImage via Wikipedia

Congratulations to Steve McIntyre on his re-election as Debian Project Leader. I hope he has another great year. The original e-mail reads:

The winner of the election is Steve McIntyre.

His new term will start on April 17th, 2009.

The details of the results shall soon be available at:

In the mean time the results are also available at:

The tally sheet is at:

The list of people voting is at:

Stats for the DPL votes:
| | Num | | Valid | Unique | Rejects | % | Multiple |
| Year | DDs | Quorum | Votes | Voters | | Voting | of Quorum |
| 1999 | 347 | 27.942 | | 208 | | 59.942 | 7.44399 |
| 2000 | 347 | 27.942 | | 216 | | 62.248 | 7.73030 |
| 2001 | ?? | ?? | | 311 | | | |
| 2002 | 939 | 45.965 | 509 | 475 | 122 | 50.586 | 10.33395 |
| 2003 | 831 | 43.241 | 510 | 488 | 200 | 58.724 | 11.28559 |
| 2004 | 908 | 45.200 | 506 | 482 | 52 | 53.084 | 10.66372 |
| 2005 | 965 | 46.597 | 531 | 504 | 69 | 52.228 | 10.81615 |
| 2006 | 972 | 46.765 | 436 | 421 | 41 | 43.313 | 9.00246 |
| 2007 | 1036 | 48.280 | 521 | 482 | 267 | 46.525 | 9.98343 |
| 2008 | 1075 | 49.181 | 425 | 401 | 35 | 37.302 | 8.15356 |
| 2009 | 1013 | 47.741 | 366 | 361 | 43 | 35.636 | 7.56155 |

Kurt Roeckx
Debian Project Secretary

Sunday, April 12, 2009

Six Interesting Gnome Panel Applets

  1. contact-lookup-applet
    Contact lookup applet for GNOME is an applet to quickly search your Evolution address book from the GNOME panel. INSTALL

  2. file-browser-applet
    Browse and open files on your computer from the GNOME panel  with an applet for the GNOME Panel that lets you browse and open files in your home directory from your panel, without having to open a file manager. INSTALL

  3. gtodo-applet
    GTodo applet for the GNOME panel contains the applet of the GNOME "to do" list manager (GTodo) for the GNOME panel, that provides you with ways to easily open GTodo, or even check some of your to do items that are due the current day without opening it. INSTALL

  4. quick-lounge-applet

    GNOME panel applet to organise preferred applications can organise all preferred applications in a single place. When the applet size exceeds the available space a menu containing the remaining launchers is created. The menu can be accessed pressing the arrow button located at the end of the applet. INSTALL

  5. service-discovery-applet

    The   service discovery applet, based on avahi for the GNOME panel, lists all available services which are published through avahi/Rendezvous/Bonjour/ZeroConf and allows to run actions on that service. INSTALL

  6. sshmenu-gnome
      ThisGNOME panel applet for connecting to hosts using SSH puts all your most frequently used SSH connections on a menu in your GNOME panel. Click on a host name to open a new gnome-terminal window with an ssh connection to the selected host. Set up options for port forwarding, etc. using the preferences dialog. INSTALL

The service discovery applet is one of my favorites.

Friday, April 10, 2009

The Death of "Code It Yourself"

When I started using Free software umpteen years ago, the standard response to a complaint about a bug that wasn't being fixed fast enough or a feature that the developer didn't deem important was "You have the code. You can fix it yourself if you want to."

That answer took a lot of flack with the Linux evangelists because it wasn't very user friendly. It "represents everything that's wrong with FOSS." Maybe. The unfriendliness doesn't change the accuracy. You do have the code. You can make a difference.

Sure. You may not be able to code. I couldn't. There's documentation to write, though, and if you speak a language out of the mainstream, there's plenty of translation work to do. That's how I got started: when Thai wasn't really supprted in early KDE, my name was on some of the translation work. I wrote some documentation. I supported the early FOSS movement in Thailand. I even gave several seminars about implemeting FOSS in schools there. Sometimes it was as simple as editing a definition file to get some hardware working and identified properly.

Could I code? No. Could I help? Of course. It didn't mean that I had  to sit in chat rooms or on forums, either. There was (and still is) plenty of work to go around. We should still be able to say "If it's really important to you, you can do it" once in a while.

Thursday, April 9, 2009

Another Reason Why FAT32 / VFAT Needs to Die

In addition to being an out-of-date filesystem which Microsoft is suing companies over left and right, FAT has some other serious limitations, one of which is a 4GB file size limit. I'm sure at some point, Bill Gates said "4GB ought to be enough for anybody." ;) Other filesystems which are similarly limited include HFS and ReiserFS.

If you try to use Nautilus or even cp to transfer more than 4GB to a VFAT fileystem, the transfer fails and leaves a large (4GB) pile of poo which you need a damn big pooper scooper to pick up. is years old and shows no signs of being resolved, other than just closing it and O_o A better man than I says:
No, no, no, don't close it, fix it! There's 19 duplicates and something like 50 people watching this bug. I've finished my education, had two kids and changed jobs three times since I opened this bug in 2005. Can we please not just close it, but fix it instead by issuing an error message? Trying to do something that will never work should be considered a bug.
It's got to be less than five lines of code the right place:
if( targetdir.fstype == "FAT32" && file.size > 4GB ) {
   echo "Error: You are trying to copy a file larger than 4GB to a FAT32 formatted filesystem. FAT32 doesn't support file sizes larger than 4GB.";
   return 1;
 This bug, like many, is too difficult to solve unless we stop using VFAT altogether. Ahem.

Wednesday, April 8, 2009

Upgrade to Ubuntu 9.04 Jaunty and Flash Doesn't Work?

Adobe Flash PlayerImage via Wikipedia
Ignore this article: it's no longer valid.

Once you've upgraded to Jaunty and done the mandatory reboot, you're likely in for a big surprise -- Flash stops working in . This is related to a bug in Network Manager which drops the connection during the upgrade. Since Flashplugin-nonfree is really a dummy package which downloads the Flash player from Adobe, the download fails and the package shows as installed when there really isn't anything there.

The solution? There are two, one significantly better than the other.
  1. Reinstalling flashplugin-nonfree will solve the problem short-term, but you're still stuck with this wonky download behavior which also breaks the package whenever Adobe updates Flash and creates a binary which doesn't match the package's checksum.
  2. The better solution is to uninstall flashplugin-nonfree, enable the Partner repository, and install adobe-flashplugin instead. Flash is actually in that package, so you won't have any strange failures.
  3. Of course, you could always install the plugin manually into your $HOME/.mozilla/plugins directory, but then you'd have to manually upgrade Flash, and it being the security nightmare that it is, there's almost no circumstance in which you want to do that.

The Avahi / ZeroConf Problem with Ubuntu 9.04 Jaunty

A screenshot of Avahi running under Xubuntu, d...Image via Wikipedia
If you are planning to upgrade your 8.04LTS machine up to 9.04 in order to get extra functionality, but depend on Avahi-based services like local chat in Pidgin or Empathy, Gnome User Share, or a DAAP server for music, you're in for quite a shock. Avahi fails to start for many machines due to either:
  1. A router DNS cache system that's improperly configured (D-Link has one of these), or
  2. An ISP which has its DNS system improperly configured.
When one of these returns a lookup for the .local domain, Avahi is shut down ... whether you have such a domain on your local network or not. You'll get an error like this:
avahi-daemon disabled because there is a unicast .local domain

What's the solution? Edit /etc/default/avahi-daemon and set
to keep Avahi from making this check. Of course, you need to make sure that there isn't really a valid .local domain on your network, but if you're running a home network, that's unlikely to be the case. If you are sure the problem is with your ISP, you can change your router's DNS lookup to OpenDNS to solve the problem, too.

Thursday, April 2, 2009

Introducing Vala's Friend, Genie

Python logo, 1990s-2005Image via Wikipedia
Last summer, I wrote about Vala, Gnome's C#-alike language that pre-compiles into straight C, with bindings to just about every good library you'd need to write Gnome apps. While Mono offers rapid application development, it carries the huge burden of the Mono runtime with it. A simple 125KB Mono app needs many MBs of runtime libraries. This is a constant discussion point on the Ubuntu front because Mono takes up space on the live CD for Tomboy and F-Spot that many people would rather see used for more features. Vala apps, however, don't need a runtime since they convert to C and then compile to standard binaries. You get almost all the benefits of Mono (sans cross-platform), but you don't get the pain. Vala also silences the Mono critics. Yay!

That's all great for the C# and Java programmers, but what about Python lovers who don't want their apps to need a runtime and the slowness of an interpreted language? Well, I recently discovered Genie, a language modeled on Python which uses the same valac compiler to create binaries, making all the same features available in Genie as are in Vala. Collaborators can even mix and match Vala and Genie in the same project since valac can handle both.

Genie still needs some serious love, though, especially in the documentation arena, which is almost non-existent outside of a few tutorials.

Python programmers, get over there and help out.

Wednesday, April 1, 2009

Gnome 3.0 -- Please get rid of the file hierarchy

Beagle (software)Image via Wikipedia
Lots of peoplelove Gnome Do. Why is that? It gives them power at their fingertips. More importantly, it takes the filesystem out of the picture. It gives you the power to open a file or take action without seven clicks.

Gnome 2 does what it can to keep you from thinking about the file hierarchy, with Nautilus supplying your devices and bookmarks. The Deskbar applet lets you search using Tracker or Beagle. The filesystem is downplayed, but it should completely disappear. Why? Geeks may not understand, but the filesystem, even in $HOME, can easily become a giant mess where nothing can be found.

There are great attempts to make this situation simpler. Zeitgeist combines your files, bookmarks, and browsing history into a time line instead of a hierarchy. In a similar way, the People Project tries to combine your e-mail, IM, and social network contacts into one interface and not worry you about having multiple applications running. Soylent is also working in this direction, and seems to have recently joined forces with People.

Where do I think we need to look for answers?

Look to Beagle. Well, not actually Beagle, but any full-featured full-text search client. Beagle has a good number of features that are needed (like SPARQL and embedding tag info in the file or filesystem itself using Extended Attributes when possible), so I point there, but the Mono connectiion may keep it performing well enough. Most likely, a new one will need to be developed. It will need word stemming.

Look to Deskbar. Well, not actually deskbar, but a similar search aggregator that focuses on search and not things like updating your Twitter account. It needs a new interface, too. That interface will look a lot little Nautilus does now.

Look to F-Spot. "Whaaat?" I hear you say. F-Spot has a great interface for dealing with pictures without worrying about the underlying file hiearchy.
  • It has tags on the left, representing both intrinsic and assigned values. They are hierarchical.
  • It has a timeline on the top, and files are ordered by time, meaning that your most recently worked on files are right there at the top.
  • The browser doubles as a viewer. Double-click on the picture and you change from browse mode to view mode. Click the browse mode to go back to multi-file view.
  • It has an "Edit" button to edit the picture.
We then have full-text and tag search (Beagle-ng) using multiple plug-ins (Deskbar-ng) with a Naultilus-like interface (with the addition of a timeline) which doubles as the viewer. Double-click a video or music file and get an embedded Totem. A document will embed a document viewer. Click "Edit" to open OO.o, The Gimp, PiTiVi, or whatever. The People Project can be integrated into the tags. Here's a quick and ugly mock-up.

What about your Nautilus bookmarks? Those become saved searches, and appear in the Places menu just as before. The standard XDG locations come as reserved tags. Speaking of the menu, Applications are just .desktop files, now aren't they? Index /usr/share/applications and $HOME, and you've got your menu. Put something on your Desktop just by tagging it "Desktop." Share something just by tagging it "Public."

So where do the files really go? What about the Open dialog? The default location for files needs to be handled for the user according to XDG specs and the MIME-type. Videos automatically go in ~/Videos, images go in ~/Pictures, audio files go in ~/Music, etc with names assigned by the user, not meaningless strings. In case of emergency or migration, files hierarchies are in reasonable shape.

Le Hoang Ni has similar ideas, but he likes the Rhythmbox model.
File manager for Gnome 3.0

Where should Gnome 3.0 go? Search, that's where. Gnome added a wiki page about 3.0 in the last couple of days. Apparently, they have similar ideas for the base fuctionality, though the interface isn't really discussed.

Newer Posts Older Posts Home

Other I' Been to Ubuntu Stories