sudo find me a clock

I love Ubuntu and Linux. I really do. Some days, though, it does some tremendously stupid things. Before I left the house this afternoon, I tried to hibernate. That failed and hung up the machine. Annoying, but I can accept that. The fun begins when you reboot and the clock says it’s 2:38PM, but it’s really 4:48PM. Weird, but okay. Open the Date/Time settings in GNOME, and yep, it’s set to the proper time zone, and set to sync against various Internet time servers. Close that dialog and the time changes to 12:38AM. What the heck?

So, being all old-school, I break the Ubuntu use-case and open up a terminal to run ntpdate.

stone@mithril:~$ sudo -s
sudo: timestamp too far in the future: Jan 4 14:16:03 2007


Sudo is so powerful that, despite traveling backwards along the time-space continuum, it is preventing me from obliterating my future-self through some wreckless super-user action. Take that, Vista. Linux prevents you from creating a paradox!

Ubuntu/Gnome Wishlist

Every once in a while I get angsty about the lack of certain features that I wish I had in my preferred distribution and desktop. Instead of bitching about them on irc, I decided to open it up to a more public forum.

The first thing I want to say is that these are things that I want to see, and don’t necessarily reflect the opinion of anyone else. I’m not slamming anyone for these lack of features, but thinking aloud what I would like to see while I consider what effort it would take on my part to make it happen.

I am a slave to my terminal. I typically have at least a dozen terminals active, half of those connected to different machines and the rest assigned to various tasks. I have the single-task terminal, usually to monitor services on specific machines. For that I typically use aterm. For the rest I’ve recently been using konsole. It’s tab support works better than anything else I’ve tried and the keybindings, while not perfect, are at least customizable. That is generally the only KDE app that I use and I’d prefer not to simply for the additional resources required.

There are some interesting ideas floating around about how to improve gnome-terminal. One of them is the integration of gnome-terminal and screen. This is an intriguing idea, but I don’t know how well it would work practically. Like my favorite light-weight, aterm, a good terminal doesn’t need contain an exhaustive feature list. It just needs to do what it does do very well.

Here is my wishlist:

  • Customizable keybindings. I’ve got a certain workflow. I’m flexible enough to change that when warranted but keybindings are one of those things that I’m very particular about (see next).
  • Customizable tabs. Tabs are on top, and you can navigate to specific tabs by “Alt + #”. Completely functional for occasional use, but that interferes with the same keybinding that irssi uses to change windows. I also like to have my tabs on the bottom of the window.

Metacity – The default window manager of Gnome.

Metacity strives for simplicity. It has a limited number of configuration options, aimed more at the new Gnome user. While that’s not a bad thing, I would love to have some more advanced features, such as window memory. There are tools like devilspie that will achieve what I’m after. What sucks is having to hunt down extra software to extend basic functionality.

Language Bindings

There’s been a debate recently about adding [programming] language dependancies to the Gnome desktop. By and large these debates are split across philosophical lines. We tend to take our programming languages very seriously and there is no shortage of opinion about who’s preferred language is the best. Personally, I have no problem with Mono, Ruby, Python, Perl, or O’Caml being added in as a dependancy, as long as the reasoning is sound. Does the dependancy ultimately make for a better user experience? In the case of Mono I would say absolutely yes. Applications like Beagle, Tomboy, Banshee, and f-spot should make that an easy decision to be made.

Now that I’ve bitched, the real question that comes to my mind is, how do you go about making change happen? It’s easy to jump on the soap box and say how you think things should be. Real men and women make things happen. The burning question in my mind is, even if you write a patch to add your pet feature, will it even be accepted? How do you go about working with “upstream”, aka, the people in charge of deciding what should and shouldn’t be, to ensure that your efforts aren’t wasted?

I’ll put my money where my mouth is and write patches but I don’t want to waste my time, either.

Technorati Tags:

Detroit Hackfest Redux

I’m back home and more or less caught up on sleep after this weekend’s Ubuntu Detroit Hackfest. It’s a nearly six-hour drive each way but it’s worth it to hang out with everyone occasionally. We ate good food (thanks to Kattni’s wicked cooking skills) and even did a little keysigning. Thanks again to Kattni for letting everyone crash at her place. Saves money on a hotel, which makes it much more likely I can attend in the future.

In the end, I finally decided to start hacking on Tomboy. Step one is to make it easy to find and connect to other Tomboys on the network.

Thanks to Charlie, who told me about the GnomeVFS bindings for Zeroconf aka Rendezvous aka Bonjour. If you don’t know what that is, in a nutshell, it lets you publish what services are available on a machine. You could, on your mail server, use Zeroconf to announce that you have smtp, imap, and pop3 available. It’s a way to make shit easy when connecting people together.

I’ve started working on Mono bindings for the Zeroconf stuff. I have some of the calls working. Others I’m having some difficulties with and I may need to turn to the gtk-sharp-list group for some advice. One particular struct is giving me headaches

I’ll get the code posted up here soon and hopefully get some working bindings released in the near future. Once the binding is done I can start to do the actual integration work in Tomboy, which will be exciting.

After a while the code began to blur and progress grinded to a halt. Still, I made lots of headway and got to meet some cool new hackers. Hopefully I’ll be able to make it again in the future. After I got home I realized that I never did leave Andrew any money for the food we consumed. Sorry dude! I’ll make it up to ya when you’re in Chicago next month.

Detroit Hackfest

I’m heading to Detroit tomorrow to hang out with Jorge and the rest of the Detroit crew. A weekend of hacking on code and eating unhealthy food. Just my idea of relaxation.My only dilemna is what to hack on. Here are the current candidates:

tomboy – Adding network support so that you can access and search notes across multiple machines. Ideally advertised with rendezvous. No more wondering which machine you left a note on.

libnautilus-pr0n – Add some new functionality to my nautilus media-sorting extension, like exif tags and perhaps video support.

gnome-launch-box, a very cool launcher. I’ve patched it to work with Ubuntu Breezy. There’s still work to be done to improve the performance. I still don’t know if this is actively being maintained. I haven’t been able to get an answer from the projects maintainers.

Porting Expresso to Linux/Mono. Expresso was originally released on the Code Project. I’ve talked to the author, Jim, and he confirmed that I’m free to port the original code to whatever I need. This would be a very useful tool to have in Linux.

I know Jorge and n0p are interested in gnome-launch-box. Andy is excited about porting Expresso. I want to do them all but I know that’s not logistically possible. I guess I’ll let peer pressure decide for me.