Thursday, January 29, 2009

Gnome Do 0.8 released; awesomeness ensues!

Gnome Do 0.8 has just been released! If you don't know anything about Do, I HIGHLY recommend that you check it out. It is a magical launcher inspired by Quicksilver that is super powerful, plugin-rich, intuitive, and rather polished.

The 0.8 release added a bunch of bling in the form of smooth animations and more attractive interfaces. One of the most interesting aspects about the release, however, is the addition of a Dock interface called Docky:




At first glance it appears to be just yet another Linux dock and a random feature for Do to add. However the dock is actually automatically and dynamically populated based on your most launched applications in Do. You can also add and remove launchers by dragging them to and from the dock. This would be cool enough, but it doesn't stop there because Docky is a first-class Do interface where you can perform all your actions!




Oh yeah, and it features a silky smooth parabolic zoom. Instead of repeating what the developers have already said better themselves, let me link you to their blog posts. If you want to get Do, check out the first link which is the official release announcement (or skip right to the PPA :). For more in-depth information, I highly recommend jassmith's post who was the main Docky developer. Happing Do-ing, and don't forget to Digg it!

Release announcement: http://do.davebsd.com/release.shtml
jassmith: http://jassmith.wordpress.com/2009/01/29/gnomedo080release/
pengdeng: http://b.pengdeng.com/2009/01/do-08-rock-out-with-your-dock-out.html

Friday, December 19, 2008

New laptop on the way: Dell XPS M1330!

NOTE: If you are looking for a good deal on a refurbished Dell XPS M1330 (and maybe 1530), read on!

My current and only machine is a 4.5 year old 15.4" laptop. It's held up surprisingly well, but a Pentium M just isn't cutting it anymore and I really want a smaller and lighter form factor. I had been eying 13" Dells for quite awhile (the XPS and Inspiron models), and was looking at paying around $1200 for a new XPS M1330. After discovering Dell Outlet (refurbished, returned, et al) and finding some decent machines for about half the price I was originally looking at, I decided to turn my focus there.

I wasn't finding anything amazing in the Outlet at first, since so many people are snapping up all the deals very quickly due to Christmas and such. However I discovered a little trick! The Product Red XPS systems are listed separetely from the others with no obvious link. But once you get to a listing of machines for a particular model, you can manually look at Product Reds by changing the model drop-down from say, "XPS 1330" to "XPS 1330 PRODUCT RED". Assuming you don't mind red (it was actually my preferred color), now you'll have a list of machines that a lot of people aren't seeing. Sort by price and you can find a few for $759, and a bunch of "Scratch and Dents" (lots of good experiences with these online, it seems) for $799. I chose a refurbished one for $759 with a 2.1GHz Core 2 Duo processor (8100), 4 gigs of RAM, Nvidia 8400 128MB graphics card, 6-cell battery, Wireless N and Bluetooth, and integrated 2MP webcam for $759 with free shipping. I was about to bite at this price although I was slightly hesitant as the tax brought it to just over $800, and was really hoping for a coupon to make it sweeter. As I was heavily debating it and rather close to buying it, someone on SlickDeals pointed me to http://www.e-junkie.com/coupon where you can get free one-time use coupons, including 15% off Dell Outlet XPS!

I was quickly let down when the coupon didn't work online though, as it isn't valid with any other promotions, and the free shipping promotion is always there with no way to remove it. However as the coupon expired Dec 24th and the shipping Jan 5th, that meant it actually wasn't possible to use it, and figured a call to Dell could rectify this. Sure enough, I was able to get both promotions by ordering over the phone, and got the machine for $645 pre-tax!

So in summary:
  1. Go to dell.com/outlet, select XPS laptops, then change the model to the PRODUCT RED version from the drop-down.
  2. Add one to your cart to secure it for 15 minutes. Repeat as necessary throughout every 15 minutes.
  3. Visit http://www.e-junkie.com/coupon and grab a 15% off Dell Outlet XPS coupon.
  4. Call Dell Outlet (1-866-492-6721), explain that you have a coupon but can't use it because of the shipping promotion, and they should do the order over the phone for you (if you are nice enough :)
I am very happy with the purchase, and it comes with a 1-year in home parts and labor warranty. When I was considering new XPS systems for over $1,000, I was going to get a 3 or 4 year warranty for $200-300, but at this price (half of what I was originally considering) I can afford a new laptop in 1-2 years anyway if it breaks down, and have a nicer system for those extra years!

I'll probably post this to SlickDeals eventually but I thought I'd give the Ubuntu community a head start. Let me know what you think of this deal in the comments, positive or negative, and if you had any luck doing the same.

Monday, December 8, 2008

UDS Monday Run-down!

Canonical graciously sponsored me as a community member to attend the Ubuntu Developer's Summit, and as the first day is over, I figured I should give a brief overview of the sesssions I attended.

Mark Shuttleworth opened the day, giving an overview of the general goals of Ubuntu followed by the specific goals for Jaunty. On the desktop the main goals seem to be a new notification system which looks very slick, and improved boot time. I was impressed with how down-to-earth he was, as well as being accessible throughout the day and popping into almost every session.

Next I went to the desktop experience session, which was mostly a presentation and feedback session for the new notification system targeted for Jaunty. Afterwards was a session about Launchpad, where Launchpad developers asked for input from users. As it turns out, almost every complaint and feature request made is apparently solved in 3.0. It sounds like it is going to be a very progressive release which will include an overhauled AJAX interface which is apparently much faster and easier to use, requiring less clicks and page loads. Additionally, signed PPAs should land in about two weeks, with the ability to have multiple PPAs per user coming eventually as well. Pretty exciting stuff for PPA users on both sides!

After lunch at the Googleplex I attended a session on improving 5-a-day, and we talked about how the program can be tweaked to encourage more consistent contributions to bug triaging. Afterwards there was a two-hour session on improving boot speed. Canonical is measuring boot time from the point where the GRUB count-down is done until the user is at a fully functional desktop with no disk I/O, and it sounds like the goal for Jaunty is to cut this time in half!

What did anyone else at UDS think of the sessions? If you aren't at UDS, what are your thoughts or questions?

Tuesday, November 18, 2008

wxBanker 0.4 released!

Today I released a new version of wxBanker, which is a lightweight personal finance manager. It is basically a digital checkbook register for multiple accounts; think of GnuCash but easier and more lightweight. It is written in Python/wxPython and runs on Linux, OSX, and Windows. Check out my previous post on wxBanker for a slightly more in depth functionality overview and screen shots.

The main focus of this new version was localization. It now ships with translations for 8 languages (4 of them basically complete, thanks translators!), and also supports displaying the amounts in currencies other than USD including EUR and GBP. It also sports a few of the typical bug fixes / usability improvements you would expect in a new release.

Another feature new to 0.4 is a setup.py, which allows Linux users to install it easily by running "sudo python setup.py install" in the folder, and wxBanker will install itself including a shortcut in Applications -> Office in Gnome, and store your data in ~/.wxbanker. If you are upgrading from a previous release, I recommend moving your bank.db file to ~/.wxbanker/bank.db for the easiest transition, which will also future-proof you from needing to shuffle it around in the future!

I also thought I'd highlight the launchpad integration I added awhile ago in 0.3, since I saw a recent planet post regarding Inkscape doing something similar. In the Help menu I've added convenient links to view and ask questions, and report bugs:


If you have been looking to start taking control of your finances, give wxBanker a try: https://launchpad.net/wxbanker/trunk/0.4 (or 'bzr co lp:wxbanker -r 86' for the seasoned). If you find problems or have ideas, please let me know via launchpad bugs/blueprints, blog comments, or email; if you know another language, help translate by following the Translations link on Launchpad! And remember, when you use wxBanker to count your pennies, the dollars will follow!

Tuesday, November 11, 2008

Zen and the Art of Memes

I wouldn't normally have participated in the nearest book meme going around on Planet Ubuntu, except that sentence 5 of page 56 of the nearest book happened to be divine! From Alan Watts' "The Way of Zen":

Suffering alone exists, none who suffer;
The deed there is, but no doer thereof;
Nirvana is, but no one seeking it;
The Path there is, but none who travel it.

It happened to stumble perfectly on the closing quote of that particular paragraph! If you want to participate:
  1. Grab the nearest book.
  2. Open it to page 56.
  3. Find the fifth sentence.
  4. Post the text of the sentence in your journal along with these instructions.
  5. Don’t dig for your favorite book, the cool book, or the intellectual one: pick the CLOSEST.

Wednesday, November 5, 2008

Microphones (and Rosetta Stone 3) in Wine

Recently I had an urge to brush up on my Spanish and thought I would try Rosetta Stone, however there is no Linux version. I thought instead of "messing around" with Wine I'd just install VirtualBox and use an XP Pro instance. Everything worked alright but the memory and CPU overhead was a little too much for my machine (1.7GHz Pentium M, 1GB DDR). It would run out of memory and thrash the HDD like crazy if almost any other program was running in Linux, defeating a large part of the advantage of virtualizing Windows in the first place.

So then I read in Wine's AppDB that Rosetta 3 seemed to work alright with recent versions, so I gave it a shot and it indeed installed perfectly with Wine 1.1.7 (using the PPA in Intrepid). The best part is that Rosetta uses a single sqlite3 database to track users' progress, so all I had to do was copy that over from the VM and all my progress and history was there in my Wine install!

But then came the problem: I couldn't get my microphone to work! It worked fine in the VirtualBox setup so I knew my hardware was fundamentally compatible. I then tried as many permutations of the follow settings as I could think of:
  • changing Wine to ALSA or OSS drivers
  • enabling and disabling all sorts of ALSA and OSS levels and captures in Volume Control
  • running Wine via `padsp`
Finally I came across an ubuntuforums thread where someone's solution to getting their microphone working with Wine was setting Wine to use OSS and then:
  1. killall pulseaudio
  2. aoss wine program.exe
And that worked for me! I was so full of joy. However, I am a little worried about what consequences killing pulse will have on the system for the duration of the session, and I don't really understand what aoss does. Can anyone enlighten me on why pulseaudio is a part of the problem here, and why aoss is necessary? This was a very helpful solution to me and thought it might be useful to others as well, but does anyone know of a better way that might co-exist with pulseaudio?

Sunday, November 2, 2008

L10N: Integrating translations into your project

This post is the second half of my series on internationalization and localization; that is, making applications accessible to non-English speakers. I am going to assume now that you have followed the instructions in the first post , and have internationalized your source, put the translation template up on Launchpad, and hopefully have a translation or two.

Since my last post, many people donated their time to translate my project wxBanker, and I have 7 translations in Launchpad now! (If anyone wants to add more, please do so, and I'll put you in the credits.) Now I'll outline the steps for actually integrating these translations into your project.

  1. Download the translations. Visit the translations page for your project in Launchpad, and click the "Download translations" link on the right. From here ensure "Everything" is selected, and change the Format to "MO format". This format is what the gettext framework we are using utilizes. Now click "Request Download". They won't typically be available immediately, but you should receive an e-mail in an hour or so with a link to the file.

  2. Once you receive the email from Launchpad, download the linked file. You should now have launchpad-export.tar.gz. Right click on it and "Extract Here". Rename the resulting "launchpad-export" folder to something like "locales", and put it in your project directory.

  3. Now all you have to do is tell gettext where the translations are. Previously we installed gettext via a line like gettext.install("wxbanker"), and now all we need to do is pass in the directory as a second argument. So assuming you renamed the launchpad-export directory to "locales" and put it in the directory of your source code, you'll change it to gettext.install("wxbanker", "locales"). This isn't the most robust and flexible way to do this, and I would recommend checking out my localization.py link below for a better example, especially if you are going to be doing this for a python application.
Now, assuming you followed all the steps in the previous post and this one, your application should be completely localized and run in the native language of the person using it! If you want to see the translation yourself, check out my own version of localization.py, which allows you to pass in the language code corresponding to the subdirectory of the locales directory, such as "--lang=es" for Spanish.

In a day or two I will also add a post on how to actually install other locales in Ubuntu and run your application in it, so that you can ensure you are seeing exactly what someone from that locale sees.

Congratulations on a localized application! Any questions?