wxBanker 0.7: simple personal finance

February 7th, 2010 by mrooney
Your favorite personal finance application, wxBanker, has turned 0.7!



This release comes about 2 months after the previous release, and focuses on usability and user experience issues that I obtained from watching people use wxBanker as well as from Launchpad bugs (thanks Arty!). Let's take a look at some of the changes, starting with the account control:



On the right we have the new account chooser in 0.7. The main change is using radio buttons for the accounts instead of links. This is a much better, already understood method for choosing accounts, and will also fit in with themes better. The last item is now "All accounts" and is selectable, making it easy to get a view of all your transactions and search in them.

The "Hide zero-balance accounts" option has moved to the View menu, and now has a keyboard shortcut. I've also removed the total number of accounts from the header, as well as the colons after the account names, to reduce clutter. Finally, everything has been given a bit more padding and the buttons have been slightly rearranged.

Additionally, the previous graphing library has been replaced by cairoplot (thanks Karel!), which looks much more attractive. Let's check it out:



The Summary view allows you to see a graph of your balance over time, and you can view a graph of a specific account or all accounts by using the account chooser on the left (previously the graph had its own account chooser, that was silly!).

And in case you missed the 0.6 announcement, that version brought recurring transactions, XDG directory support, and more intuitive behavior regarding deleting/editing transfer transactions.

For downloads and the full list of features and bug-fixes, check out the release page. You can also add the PPA for easy installation and upgrades.

If you'd like to stay in the loop join the wxBanker Users team (and announcement mailing list) on Launchpad, follow wxBanker on Twitter, or hang out in #wxbanker on irc.freenode.net.

Automating translation template generation and check-ins for Launchpad

February 2nd, 2010 by mrooney
I previously wrote about how excited I was for the automated translation import and export features of Launchpad. Launchpad will automatically notice when you commit a translation template and import it, making it available for translation online. Generous translators will then contribute translations, and Launchpad will commit them back to your project.


Okay, so this is pretty good! However for this process to work well, the translation template needs to be generated manually by a developer whenever there are changes to strings. Otherwise, translators are working on potentially outdated strings; some are perhaps not in the application anymore, and there are likely some strings which aren't in the template yet.

After forgetting to generate and commit my template until shortly before a release more than once (and thus having poor translation coverage on newly added strings), I decided to automate this part of the process as well. All it took was a relatively small script to generate the template, and then if there were any changes, commit and push to the branch configured for automatic import in Launchpad. The following script does just that, by searching for any files using gettext calls starting with _(" or _(', and passing them to xgettext.


#!/bin/bash
set -e
ack-grep "_\([\"\']" -l | xargs xgettext --output=wxbanker/po/wxbanker.pot
ACTUALCHANGES="`bzr diff | grep \"^[\-\+]msg\" | wc -l`"
if [[ "$ACTUALCHANGES" != "0" ]]; then
bzr ci -m "automated generation of translation template"
bzr push :parent
fi


Note that if you aren't using Python, you may need to tweak the regular expression supplied to ack-grep. Once the template is generated, the diff is piped through grep to grab any changes to actual messages and make sure there was at least one. Otherwise there would always be changes due to the timestamp in the template, causing useless commits.

I then threw this script into a Hudson job, the Continuous Integration server I use for wxBanker. I configured this particular job to run nightly, pulling down the latest bzr branch beforehand, and emailing me on any failures.

It seems to be working quite well and ensures translators are always translating the latest strings and leaves nothing for me to forget, smoothing out the release process.

If this sounds interesting to you but you're not familiar with Launchpad as a translation system, check out http://blog.launchpad.net/general/trying-out-launchpad-translations and feel free to ask any questions here. If you do have experience with translations, how do you handle generating translation templates and then integrating the translations?

Recent developments

January 19th, 2010 by mhr3
It's been a while since there were some interesting Awn news from me, but fortunately moonbeam has been filing the gap with his posts on the task-manager popup menu customization and also his work on network-manager adaptation for use in Awn.

I've been mostly looking over the core bugs reported at Launchpad, trying to fix them. Luckily there aren't many, which I suppose either means that we don't have enough bug-filing testers or that this release will be one of the best so far - of course I hope that the second one is the case. :) On the other hand there are quite a few bugs reported for awn-extras project (where most of our applets live) and it isn't always easy to fix bugs there, as some applets are without maintainer (for example Stacks), some maintainers are busy doing other stuff, and of course some applets would need major rewrites and people don't have time for that (Mail applet, Digital Clock, ...). Otherwise said, if you'd like to do some Awn applet development, now is the time. ;)

One of the things that I like is that there were some great updates for a few of our applets - the Weather applet is now finally doing it's networking in a separate thread, which means no more hanging mid-animation during an update and it also started to use one of our new features in Awn 0.4 - overlays - now you can clearly see when there's a network error or the actual network fetch is happening. Kudos to danni for a nice threaded processing queue for python and to onox for implementing this in Weather. Still, Weather is not the only applet using the threaded queue, and sharkbait's Feeds applet is now better than ever with this, not to mention looking great. I only hope that more python applets will try to use this (yes I'm looking at Mail applet).



What I'm personally excited about (and pushed hard to make it happen) is the agreement with Docky's lead developer DBO on a common dock item management DBus API, where various applications can add menu items to things on the dock, change the icon used (for example media-players with album arts) add some text, etc. This has been present in Awn for years, but isn't overly used and moreover the API was crappy, and seeing how everyone is excited about "helpers" in Docky (which do this exact thing) I thought having a common API for this will only benefit all dock users. Though so far the API isn't implemented by us, nor Docky, I believe this will soon change (at least on our side). Of course other dock apps are welcome to join us here.

A few days ago I started to gut our core library (libawn) and the current result is a mix of Vala and C code in there (I rewrote our core AwnApplet class using Vala) and I'm actually running this code and it works as great as the C original (even though compiling it is all kinds of weird - a special shell script instead of proper makefile rule). Ideally this branch will be base for our new major version (probably Awn 0.6) and I'd be happy if more code was rewritten to Vala, though it's not that important (the C code works fine, right? on the other hand being able to easily extend it is very good justification for using Vala). However, I also want to introduce some architectural changes and it'd be nice if some of the API that will be added made it's way also to Awn 0.4, so applet devs could play with it before 0.6 release (though stability-wise it most likely isn't a good idea). Then again, if it will be clear that the release of 0.4 will slip further into the future, I will push to merge this code. All in all, cool stuff is over the horizon!!!

Context Menus Can be Fun!

January 8th, 2010 by moonbeam
Just a quick screencast of the XML based context menus. You can define the menu if you want.


Awn Rewrite Update

December 22nd, 2009 by Sharkbait
It's been a while since I've posted anything about Awn. Development of Awn/Awn Extras shifted to a mostly rewrite of both projects. There are tons of changes; many are summed up in malept's blog post and several posts of moonbeam's blog. I'm going to talk about four (really three) applets.


File Browser Launcher now has GIO support. If Python bindings for GIO are available (since GNOME 2.26/Ubuntu 9.04 I believe), File Browser Launcher is able to manage mountable drives like Nautilus' Places side pane does. If a drive (e.g. flash drive or mounted network place, etc.) is mounted, an eject icon will appear for that drive (as seen in the screenshot) and clicking it will eject the drive. If the place is not mounted but is mountable, clicking it will mount it and (upon success) open it in the file browser.

The applet also has drag-and-drop support, as seen in the recursive screenshot. Dragging a file (or folder) over the applet icon for (currently) 600ms makes the dialog open. (During this time a progress pie chart will appear.) The file can be dropped on any mounted place or bookmark, and it will be moved there. Upon success, the folder will open.

To-Do List received no significant changes, other than working with the rewrite and in the way progress buttons are drawn. Detach support has been removed.


SlickSwitcher is now in Awn Extras. Thanks to work in Awn core, the background and border colors of the applet's dialog can be customized properly. This theming helps with backgrounds that don't quite match the normal dialog background color. The version in Awn Extras is also slightly more RAM-efficient than previous versions. Detach support has also been removed from Slickswitcher.

Feeds Applet is a new applet to monitor Web Feeds. Enter the URLs of RSS or Atom feeds to add them to the applet. Their items are visible from the dialog, and clicking the item opens it in a web browser. You can also log in to your Google Reader account to add it as a feed. Whenever any of your Google Reader feeds is updated, it'll show in the dialog. If Google Reader is the only feed, the icon will turn blue instead of orange. Like with virtually every other applet, you can still drag and drop an icon onto the applet to use that icon instead.

There is an option (enabled by default) to automatically update every five minutes (adjustable). Feeds Applet also has an option (enabled by default) to display standard notifications when a feed is updated. With these two features, you don't need to constantly check your sites or Google Reader for updates.

Like File Browser Launcher, Feeds Applet also has drag and drop support. If you drag and drop a link to an RSS or Atom feed onto the applet icon, it will add that feed. When the dialog is open, you can drag and drop the toggle buttons of the feeds to reorder them. If you drag a feed out of the dialog, you can drop a link to its main page into another app. This may or may not work with your web browser's bookmarks or tab bar, depending on a) which browser it is, and b) how it's feeling that day. (It's sometimes inconsistent.)

Lastly, if logged in to Google Reader, when adding a feed you can search for feeds using the same system as the main Google Reader web interface. This way, you can just type in cnn instead of http://rss.cnn.com/rss/cnn_topstories.rss. It also helps if you want to find multiple feeds about a specific topic, such as Linux or NASA.

There's still a lot more to be done. To-do needs a backend for all its items that's better than awn.Config. Feeds needs OPML import/export. To-do also needs import/export of its list. SlickSwitcher has several little quirks, needs to use the standard text overlay, and needs better background acquiring. To-do also needs to use the standard text overlay. SlickSwitcher and To-do might add drag-and-drop support.

P.S. Can't get enough Planet Awn? Then subscribe to MicroPlanet Awn!

Open Letter to Sherman Alexie

December 4th, 2009 by Mark

While going through my backlog of TV shows from the past week, I was watching the Colbert Report from Tuesday (December 1). During his interview with Sherman Alexie, I heard something that sounded rather offensive to my ears. Skip to 3:14 to hear it.

For those of you who hate Flash or don't wish to watch the video, the context here is that Colbert is asking why he doesn't allow his books to be digitized. His response, up to the point which I reference above, was the typical response about how the music industry is losing money because of the rampant piracy, and that the only way to make money is via live shows. And then he makes this statement:

[...]and with the open-source culture on the Internet, the idea of ownership, of artistic ownership goes away.

Mr. Alexie, to use a colloquialism: What have you been smoking? I know that you're BFF with The Stranger, but this is ridiculous. You're supposed to be intelligent, not ignorant. There are a couple of things that are inaccurate with your statement.

First, I'm pretty sure you're referring to the Free culture movement. "Open source", while it can refer to non-technical ideas, is more closely associated with software and its licenses. But I'm being pedantic.

Secondly (and more importantly), where does the idea of ownership go away? Maybe if you release the work into the public domain, sure. However, the majority of "free culture licenses" (e.g., Creative Commons licenses) ensure that one still owns the work that they create. The significant difference between traditional copyright and those licenses is that certain rights are granted by default, instead of having to ask the author about it. For example, this blog post (and the entire blog, for that matter) is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License (as explicitly stated in the sidebar). What this means is that I have granted noncommercial entities to reproduce (or even "remix") my work (in full or in part) in other works, so long as I am credited, and the work retains the same license. Nowhere did I relinquish my ownership of this blog post. If a commercial entity wants to use my work, or someone wants to reproduce/remix my work under a different license, traditional copyright applies and they have to ask (assuming the use doesn't fall under "fair use").

As one of the literate (see the interview for the reference) and also a dead-tree book lover, I suggest that you read two books, both by Professor Lawrence Lessig: Free Culture and Remix: Making Art and Commerce Thrive in the Hybrid Economy. Both should be available at your local bookstore.

Finally, thank you, Mr. Alexie, for reminding me that I still need to donate to the Creative Commons this year. I want to spread the Free culture movement as quickly as possible, making sure that the views that you expressed are corrected just as quickly.

So you like Network Manager…

December 3rd, 2009 by moonbeam
Just a tease.

Web Developers Wanted

November 19th, 2009 by Natan Yellin

We’re looking for web developers to help out with Zeitgeist’s website. If you have some experience with web development (of any kind) and don’t mind volunteering some time then let me know.

Thanks.

Linux and Governments

November 13th, 2009 by Natan Yellin

I left Bolzano back for Munich this morning. Here are a few quick thoughts on the Linux Desktop.

  • Every year I read four or five magazine articles claiming that this year will be “The Year of the  Linux Desktop.” Every article so far has been wrong, but I’m starting to think that this year and coming years will be “The Year that Millions of Users Switched to Linux and Didn’t Even Realize.” After Dave Richard’s talk last year in Boston, I realized that there are some governments and large offices using Linux, but I just didn’t grasp how many. This past week I spoke to a few people about the topic, including Sebastian Faubel, a few employees of the South Tyrol Free Software Center, and others. All of them spoke about the push to switch to FOSS for financial reasons and how Linux is now being used in places that one would never expect.
  • If we want this year to be the year of the Linux then we need to start developing differently. Linux needs to stop being the domain of geeks. We need to start targeting older users who are intimidated by computers. This means that we need to stop making assumptions about what users do and don’t understand. We need to focus on simplicity and usability.
  • It’s a critical moment right now. As crazy as it sounds, lets stop focusing on 99% of all computer users. Sure, they’re important- and we definitely shouldn’t do anything to stop them from switching- but they’ve already had their “Year of the Linux Desktop.” Lets focus on the remaining 1% of all computers- some of the computers found, lets say, in government offices. We can get Linux installed on them if we develop with those computers in mind.

Zeitgeist Hackfest- User Experience Team

November 12th, 2009 by Natan Yellin

Here’s a quick mockup from the Zeitgeist Hackfest.  The code for this should be online later today.

Mini GNOME Activity Journal