Monday, November 23, 2009

New Tomboy Releases with Ubuntu One support on all platforms, and other goodies in the Tomboy world

On Monday I announced our new stable release, Tomboy 1.0.1, and our new development release, Tomboy 1.1.0. They both share the following fixes:
  • Official support for Ubuntu One (and any other server that implements the Tomboy Web REST API and uses OAuth 1.0a...Snowy uses OAuth 1.0). This patch comes from friend and Canonical employee Rodrigo Moya.
  • Always show note icons in the recent notes menu.
  • Link to correct version of our help document on Windows and Mac.
  • Translation updates, etc.

With Tomboy 1.1.0, you also get these fixes and features:
  • New D-Bus methods for manipulating notebooks thanks to Clemens Buss.
  • New Synchronize Notes menu item for the panel applet.
  • Cleaned up the sync dialog so it shouldn't cut off text anymore.
  • A ton of great fixes for Windows users from Stefan Cosma, and printing should now work on Windows Vista and Windows 7.
  • Translation updates, other fixes, and another new D-Bus method from Matt Jones.

For openSUSE users, packages are available in GNOME:Apps:Tomboy and GNOME:Apps:Tomboy:Unstable. Ubuntu Jaunty and Karmic users can use packages from our stable PPA or our development PPA.

But the most exciting things happening in the Tomboy world right now aren't really about Tomboy at all. :-)

You may have already seen Eitan Isaacson's new Note Statistics add-in. It's not the first add-in like this, but it seems to be the most comprehensive, and it's up on github for added coolness. I'm trying to decide if I should add this to the upstream Tomboy add-ins, or use it to kick-start a community add-in repository. Any opinions?

Back on the subject of Ubuntu One and note synchronization, I want to first say that Snowy, the AGPL web service for Tomboy notes, is still an active project, and we still plan to have Tomboy Online in beta in the next few months. Having both main developers on the same team at Novell just means we both get busy with work at the same time. :-)

Manuel's Tomboy Online Logo Mockup

But recently, Manuel Holzleitner has posted some mockups for the following:
  • A front page for Tomboy Online
  • A new website for Tomboy
  • A new project website for Snowy
  • New logos for all
  • (Somewhat hidden) A new layout for Snowy:

Manuel's Tomboy Online Mockup

I'm not a designer or UI expert, but I'm a big fan of these mockups. For one thing, I've been wanting to revamp the Tomboy website for a long time now, and Manuel's idea of unifying the design of all of these sites seems obvious in retrospect. I also think the proposed logos are ridiculously cute and web-appropriate. There seem to be a few folks interested in helping us out with our HTML/CSS, etc, so I'm really looking forward to having a better-looking Snowy in the near future.

Once we expand our test suite a bit and work through our deployment story, I don't think there will be much standing in the way of a Tomboy Online alpha running Snowy.

Manuel's Snowy Logo Mockup

Of course, in the mean time, people can use Ubuntu One, since those guys were awesome enough to use the same REST API for sync as Snowy uses. In fact, as I've mentioned before, Rodrigo and Stuart from Canonical both helped out with the design of this API, and even the implementation in Snowy. It's still proprietary software, but at least the guys working on it are awesome. ;-)

And if you have been wanting to get your notes from Tomboy to Ubuntu One to your Android device, there is now working code to do this in Tomdroid's web-sync branch. Thanks to Benoit Garret holding my hand, I was even able to contribute a patch. :-P With Benoit's latest code in bzr, you can now sync Tomdroid with Ubuntu One. There are still a few fixes needed to make this releasable, but for anyone who's looking to get involved in Android development, here's a fun project to hack on for you!

In a similar story, Cornelius Hald has been updating Conboy (a C port of Tomboy for Maemo devices) so that it, too, can sync with Ubuntu One. It already supported Snowy sync last I heard, so the only hurdle was (again) supporting the changes in OAuth 1.0a. Last week Cornelius got it working, so I wouldn't be surprised if he has a release soon.

In other fun news, about a month ago Mohanaraj Gopala Krishnan emailed me to discuss a presentation he was planning for the conference in Malaysia. The topic of the presentation was Tomboy, Snowy, web sync, Ubuntu One, etc etc. Go read his fun slides on his blog .

That's all for now! I'll talk to you again after non-Canadian Thanksgiving.

Thursday, November 19, 2009

One-click install for Banshee Telepathy Sharing Extension 0.1.1

Over the course of the summer, you may have read Neil Loknath's various blog posts about his Summer of Code project that lets you share your Banshee music library with your Telepathy contacts.

Well, it's pretty cool stuff, and now that he's started making releases, it's a great opportunity for people to try it out and give him feedback.

If you're using openSUSE 11.2, you can get version 0.1.1 of his extension through this handy one-click install link.

Note that my little repository includes upgrades to telepathy-gabble, telepathy-mission-control, and gnutls. You'll need to log out/in or kill all telepathy/empathy/mission-control processes before the changes take affect.

If you're like me and prefer to build Banshee from source and Neil's extension from source but don't want to reinstall your entire Telepathy stack from source, just install telepathy-gabble and telepathy-mission-control from my repository (this will cause a few gnutls packages to upgrade as well), and you'll be good to go.

Let me know if you have any issues, but let's consider these packages officially unsupported, could break your Empathy, impregnate your cat, etc.

Thursday, October 8, 2009

Tomboy 1.2 Planning Meeting Today

"Cows are plentiful in Segovia?", Copyright Ellery Armstrong, Milk Teeth Photography, Used With Permission

In one hour (12:30 US Pacific time, 19:30 UTC), we'll be holding our cycle-ly planning meeting to make some plans for the next Tomboy release.

If you want to comment, listen, volunteer, or heckle, please join us in #tomboy on GIMPNet.

Oh, by the way, if you've been wanting to follow Tomboy updates on Twitter but you find me way to garrulous, you can now follow @tomboy for some peace of mind. We have @tomboy on, too.

Thursday, October 1, 2009

Tomboy Hits 1.0

It's been just over five years since Alex Graveley made the first commit to Tomboy CVS, unleashing a brilliantly simple note-taking application for people who just wanted to Get Stuff Done.

Tomboy Back In The Day (click for Alex's blog post)

Three years ago (right after I joined the project), Tomboy became a part of GNOME 2.16. It was about this time that Boyd Timothy joined the fun and became a co-maintainer with Alex. Much of the polish in Tomboy and many of the features you take for granted such as notebooks, synchronization, and bulleted lists appeared during his stewardship. After helping with sync, I was "promoted" to co-maintainer, too.

After Boyd and Calvin Gaisford (of Giver and Tasque fame) left to start their own company last year, I was left as the sole maintainer. I'm trying to do my part to build on the legacy left by Alex and Boyd. Fortunately for me, Tomboy seems to attract cool people like Chris Scobell, Stefan Schweizer, Benjamin Podszun, and dozens of others who have contributed major features and fixes.

One of the funny little things that tends to come up at Tomboy planning meetings is the version number. Tomboy's been around for five years now, and really it's been a pretty solid app for the majority of that history, especially once it became part of the GNOME desktop. So why is it versioned like some alpha product?

Tomboy in your dock (click for full-screen shot)

Tomboy runs on every major operating system, is used by 50 kabillion people every day [citation needed], and even if we have more grand plans, Tomboy today really does help people Get Stuff Done.

So we're calling our new stable release 1.0, the first release of the 1.0.x stable series. The next big stable release will be 1.2, etc etc. I hope this arbitrary change will instill a sense of confidence in users, and maybe even get people thinking about what "Tomboy 2.0" might mean.

Here's what's new in Tomboy 1.0 since the 0.14.x stable releases:
  • WebSync add-in lets you synchronize your notes with the upcoming Tomboy Online web service, your own server running Snowy, or any other server implementing the new Tomboy Web REST API, which will soon include Ubuntu One and Midgard. Big thanks to Rodrigo Moya and Stuart Langridge from Canonical for their help on this.
  • NoteDirectoryWatcher add-in from Michael Fletcher (disabled by default) finally lets you edit your note files outside of Tomboy safely, even while it's running, opening the door for all sorts of ad-hoc sync solutions if you don't want to use a server.
  • Underline add-in from Mark Wakim (disabled by default).
  • Faster start-up.
  • UI improvements in note searching.
  • More keyboard shortcuts.
  • Loads of bug fixes.
  • Updated documentation (a complete revamp is on the way for the GNOME 2.30 cycle).
  • Notes and other files migrated to new standard directories.

I'm really excited about this release, because to me it represents a foundation. A lot of cruft has been cleaned up. Tomboy is leaner and meaner. Note and configuration files have moved to standard locations, making backups and upgrades better. Accessing those note files is now a less scary proposition. This is a good foundation on which we can build Tomboy's future.

With that in mind, here are some features I would love to tackle for Tomboy 1.2 if we can:
  • Automatic synchronization.
  • More work on Snowy, Tomboy Online, and social features integrated right into Tomboy.
  • Note sharing via Telepathy, and maybe even collaborative editing.
  • A new innovative workflow for managing simple task lists (with integration points for EDS or Tasque wherever it makes sense).
  • Customizable, themeable, simplified note UI.
  • Rethinking notebooks and search.
  • Better gnome-shell integration.
  • Better Tomboy experience on Mac OS X.
  • Additional memory and performance enhancements.
  • Your ideas and patches!

Personally, I'm really inspired by GNOME 2.28's "Made to Share" slogan, so I expect that will be a running theme in Tomboy 1.2.

I'll make sure to announce when we pick a date and time for our roadmap planning meeting, which is when we will choose what features we really want to focus on this cycle.

You may have read that we now have an official PPA for Ubuntu users. This is all thanks to Alan Pope and Jorge Castro. Since the announcement of the PPA a few other people have joined the tomboy-packagers team so I'm looking forward to being able to provide instant gratification to Ubuntu users on any distro since Jaunty, whether they want the latest stable or the latest development release.

In openSUSE land, the GNOME team is working on a specific organization for repositories like this, but I have the packages ready in my home project, so if you want Tomboy 1.0.0 for openSUSE 11.1 or later (including SLED 11), you can get them here for now:

This post brought to you by the Tomboy Blogposter add-in.

Tuesday, August 25, 2009

Tomboy 0.15.6 Released, ~/.tomboy is no more

"Light Hearts", Copyright Ellery Armstrong, Milk Teeth Photography, Used With Permission

Yesterday I released Tomboy 0.15.6 on Linux, Mac OS X, and Windows. The biggest change is invisible to most users: we've gotten rid of ~/.tomboy.

Anybody who's backed up their notes or created Rube Goldberg-esque sync solutions is familiar with this hidden directory holding note files, user-installed add-ins, and various bits of configuration. As of today, ~/.tomboy is no more. We've separated out notes, configuration, temporary files, and even the log, and relocated them according to standards on Linux, and appropriate conventions on Mac OS X and Windows. Everything will be automatically be moved. Details available on this wiki page.

The benefits of this move to users are:
  • Users who are already trained to back up directories like ~/.config and ~/.local won't have to remember to add ~/.tomboy to that list (same argument for ~/Library on Mac OS X)
  • Folks who want to set up their own ad-hoc note sync will now have a much easier time, because they can just sync the notes folder. Use any popular method of synchronizing a directory (rsync, iFolder, UbuntuOne, Dropbox, whatever), and combine that with our NoteDirectoryWatcher add-in, and you should be good to go. You'll miss some benefits of our sync infrastructure, like conflict handling, but you'll gain one big feature missing from Tomboy: automatic synchronization.

If you maintain some tool that expects Tomboy note files to live in ~/.tomboy, please update it to also look in (by default) ~/.local/share/tomboy. Thanks!

In the previous release I cleaned up the Search UI according to input from Andreas and Kalle at GCDS:

The original Search UI: Pretty with a lot of wasted space and one useless feature (click for full window)

The updated Search UI: Cleaner, lest wasted space (click for full window)

Other changes since the last time I blogged:
  • New underline formatting add-in from Mark Wakim
  • Keyboard shortcuts for changing font size
  • Improvements to HTML export
  • Less command line output unless you run Tomboy with --debug (this actually has a positive impact on performance, by the way)
  • Add "Get More Add-Ins..." button in the Preferences UI
  • In SSH sync, we no longer force port 22 if no port is specified

This post brought to you by the Tomboy Blogposter add-in.

Thursday, July 2, 2009

See you in Gran Canaria!

Pounding a bowl of cereal. Almost time to leave for my flight!

On Sunday I'll be giving a talk about the UI Automation spec, and the work of the Mono Accessibility team. If you're an a11y nerd, or your day job is Winforms or Silverlight app development and you want to automate that shit on Windows and Linux, or you just don't believe that I am currently bearded and want to confirm for yourself, please check it out.

I'd also love to talk to people about Snowy, Free web services, GNOME's online desktop strategy, Batman, and the future of Tomboy.

Dark Victory is really good so far. Doesn't stand on its need to read The Long Halloween first (and therefore should read Year One before that).

A few weeks ago I drafted a blog with updates on Snowy, and just ran out of time to finish it up and post it. But there is some basic info I want to share, so here's an updated excerpt:

We are really excited about all of the positive feedback we're hearing about Snowy, and the upcoming Tomboy Online service. We were reluctant to announce the project before we could confidently host it, but based on the excellent feedback and participation we've received so far, it's clear that we did the right thing by announcing early.

The day I blogged about Snowy, I left for San Diego to participate in my friends' wedding. When I returned on Monday, I had a lot of catching up to do! Here are some of the recent happenings:
  • Brad set up a Snowy mailing list, and a Snowy product in GNOME bugzilla.
  • Og Maciel has begun work on a virtual appliance for Snowy, and in the process of doing so has helped to unearth some bugs (our first mailing list activity). Thanks Og!
  • Ryan Paul of Ars Technica fame as written a great article about the current state of Snowy.
  • Rodrigo Moya and Stuart Langridge have continued to help us refine our REST API, as they work on implementing it for Ubuntu One. Stuart contributed patches to upgrade our authentication from HTTP basic to OAuth, and I finally pushed it upstream, along with corresponding support in Tomboy (based on some handy dandy code from Bojan Rajkovic). I am really grateful for their help!
  • We have our first localization! Thanks to Viatcheslav Ivanov for diving in.
  • The Midgard project has implemented our REST API as well, and intends to add support to Conboy (Tomboy ported to C on Maemo) as well.
This is all after less than a week of Snowy "going public"! This is an encouraging sign that we are on the right track with API design and modularity of implementation.

So that is my updated paste from the draft. The rest was all technical details on the design of the API, and how much Rodrigo, Stuart, and Brad all rock, etc etc. I'll post about that soon...for now I'm going to focus on getting a demo server up for you all to play with!

For those to whom I owe a drink, your day of reckoning approaches!

Thursday, June 11, 2009

Tomboy Bug Squashing Day: Tuesday June 16th


Some of our beautiful Tomboy contributors have organized a bug and test day on June 16th, 2009. It is officially scheduled for 8AM-5PM PST (3PM-Midnight UTC), but I expect people will be around before and after. :-)

We're going to be focusing on UNCONFIRMED and NEEDSINFO bugs, outstanding patches, and stuff targeted for the current cycle.

If you want to work on patches, that's great, but anybody can help regardless of their background and abilities. Just show up and we'll help you get started contributing by squashing some bugs!

Check out our wiki page for all the details.

If you're starving for Snowy updates, you might want to join our mailing list. I'll be writing more soon about a lot of the exciting happenings with Tomboy's best friend on the web.

This post brought to you by the Tomboy Blogposter add-in.

Wednesday, May 27, 2009

Tomboy 0.15.1 Release Brings New Online Note Synchronization Preview

"Red Westie", Copyright Ellery Armstrong, Milk Teeth Photography, Used With Permission

On Monday we released Tomboy 0.15.1, the latest development release on the road to 1.0. It features a lot of the same fixes from 0.14.2, and some other improvements:
  • Preview of new Web Synchronization add-in
  • Work around problems on Windows caused by having multiple GTK+ applications modify PATH
  • Search for phrases by surrounding them with quotes, save the width of the Notebook pane, and other improvements to the search UI
  • Better HIG compliance in synchronization UIs
  • All the same fixes from 0.14.2
  • And much more!

I'd like to talk to you a little bit about this "Web Synchronization" add-in. From a feature perspective, the biggest problem with Tomboy has been how difficult it is to synchronize your notes between multiple computers, and to share your notes with your friends and colleagues. We have note synchronization but it's hard to set up unless you have your own server. You can share notes with Giver, but that has its limitations as well. And how do you view your notes when you're on a device without a Tomboy notes client?

A long time ago I blogged about how great a free "Tomboy Online" web service would be as a fix for these issues, but I never had the time to follow up on it. Until now.

Snowy, Your Tomboy Notes Online

Meet Snowy. Snowy is a project started by Brad Taylor to bring your Tomboy notes online. It's "Tomboy's best friend on the web", as Brad says. Here is what you can expect from Snowy in the coming weeks and months:
  • "Tomboy Online" - a free hosted service (running Snowy), where anybody can create an account for securely synchronizing their notes.
  • Fine-grained privacy settings to let you mark your notes as public, private, or shared with specific friends.
  • Edit your notes directly in your browser!

Editing notes in Snowy

Brad started Snowy in his spare time, and recently our team at Novell had a Hackweek at our disposal. So last week, Brad and I decided to really get this project off the ground. It is still an extremely new project, but we feel it's far enough along to solicit feedback and contributions from the community. Some basic facts about the project:
  • Snowy is AGPL-licensed. I firmly believe that our community needs to step up and start offering competitive AGPL web services. If we want to stay relevant, that is!
  • Snowy is developed in Python on the Django web framework. Most people who expressed an interest in working on this were most familiar with Python for web apps.
  • Snowy is developed in GNOME git. If you watch the commits list, you've no doubt seen the recent activity.
  • Snowy is easy to deploy on your personal server. If you don't want to trust Tomboy Online with your notes, you can still use Snowy to give yourself web access to your notes, or just to provide a more convenient way to synchronize.

Snowy is brand new! I hope in the screenshots you see the potential, but I'm sure you also see how much room there is for improvement.

What works:
  • Tomboy<->Snowy note synchronization
  • Online note-viewing
  • User registration
  • Database administration and other fancy Django stuff

Logging in to Snowy

Where we need help:
  • Authentication review, OAuth
  • HTML/CSS/JS to prettify everything
  • Design and implement all that cool note-sharing stuff
  • Little features like copying a friend's note into your collection, or downloading/emailing/printing any note straight from your browser
  • Security audit
  • Your ideas!

You may be wondering how Snowy and Tomboy communicate for synchronization. I will talk about this more in a future post, but we have designed a REST API for web synchronization. This API is easy to consume from the client end, and easy to implement on the server end. This means we should have no trouble adding sync capabilities to Tomdroid and other Tomboy note clients. It also means that if you don't like Snowy, you can create your own web service that implements the same API, and still use the same web synchronization add-in included in Tomboy.

We still have a lot of work to do to make synchronizing and sharing your Tomboy notes effortless and fun! Outside of Snowy, here are some things we'd like help working on:
  • Automatic background synchronization in Tomboy
  • Web synchronization support in Tomdroid
  • More features in the web synchronization add-in, like:
    • One click to get from your Tomboy note to its Snowy page
    • Control your sharing preferences for a note without opening your browser
    • Easy access to friends' notes

By the way, if you plan on using Tomboy 0.14.x for a long time, you'll be able to use the Web Synchronization add-in, too! When we launch Tomboy Online, downloads will be available for 0.14.x users on all platforms.

Stay tuned for more updates, and a demo server for everybody to play with!

This post brought to you by the Tomboy Blogposter add-in.

Monday, May 18, 2009

Tomboy 0.14.2 Released - 25% Faster Start-Up!

"Running Shep", Copyright Ellery Armstrong, Milk Teeth Photography, Used With Permission

Last week we released Tomboy 0.14.2, a new stable release with a lot of fixes cherry-picked from the development branch. We remedied a couple of crashes, squashed some weird errors and behavior, and we even improved memory usage and start-up performance. Here are the highlights:
  • Start Tomboy in 25% less time
  • Fix random start-up crash on distros like Ubuntu 9.04
  • Recognize presence of FUSE when built into kernel (not as module)
  • Fix error when opening New Note Template on Ubuntu 9.04
  • Stop seeing "this/that/other" as a file link (whoops!)
  • Don't crash when opening invalid or improperly-formatted notes
  • Better error-reporting on Windows
  • Updated cross-platform documentation
  • Updated translations

This start-up performance fix was also in 0.15.0, but I didn't realize how significant it was until after I'd already announced it. We found that this simple fix saved us around 25% on Tomboy start-up. On my system, start-up time was cut from 4 seconds to 3 seconds (these are warm starts, I did not have time to test cold starts).

These traces were created using Ruben's patch and Federico's graphing tool. You can click them to see the full graphs (note that apps run slower with tracing turned on). Compare the numbers for setting up our AddinManager in 0.14.1...

...versus the new numbers for 0.14.2...

The funny thing is, all I did was change a couple of lines in our Mono.Addins initialization code to reflect the latest recommendations of the maintainer.

This "free" boost isn't even part of the low-hanging fruit I keep talking about when it comes to Tomboy performance optimizations. I'm working on another fix that should cut down on memory consumption, too, and you should expect performance improvements in every release this cycle. If you would like to help us set up an automated way to track memory usage and start-up time in Tomboy, that would be an awesome contribution. :-)

Following the GNOME schedule, our next development release, Tomboy 0.15.1, is scheduled for May 25. Stay tuned for some exciting announcements!

This post brought to you by the Tomboy Blogposter add-in.

Wednesday, May 6, 2009

Tomboy 0.15.0 Development Release Brings New Features and Fixes, Even For 0.14.x Users!

I'm very pleased to announce Tomboy 0.15.0, our first development release on the road to Tomboy 1.0. A few of the improvements in 0.15.0 are:
  • New NoteDirectoryWatcher add-in supports editing of your note files in other programs (think Dropbox).
  • The first of many improvements to start-up time, by not rebuilding the add-in registry every time Tomboy starts. This also fixes start-up bugs on a few distributions, including Windows.
  • Random start-up crash in GConf fixed.
  • Many improvements to the printing add-in.
  • Better note and URL auto-linking.
  • Console output on Windows command prompts now works correctly, for better error reporting.

See our NEWS file for information on some usability improvements, better GMime support, Mono.Addins upgrade on Windows, and more.

Please visit our download page for source tarballs, Windows installers, and Mac disk images. Note that the Windows installer is still a work-in-progress, and for now you should always uninstall the previous version of Tomboy before installing a new one.

NoteDirectoryWatcher Add-in Available for 0.14.x Users on Linux, Windows, and Mac!

NoteDirectoryWatcher in Action

For years, users in various situations have tried setting up ad-hoc note synchronization solutions by syncing their ~/.tomboy directory between computers. This has never been supported, and because Tomboy would not notice outside changes to note files while it was running, could easily lead to data loss and confusion. Thanks to Mike Fletcher, we are one step closer to supporting this group of users. With this add-in enabled, if another process modifies your note files, Tomboy will notice the change and update appropriately (after a short delay).

The great thing about add-ins is that we can make this feature available for download to all of our 0.14.x users. Source is in git, but you can download this cross-platform binary, drop it in ~/.tomboy/addins/ , enable it in your preferences and try it out! As this is our first release of this feature, bugs are expected, so please report any problems you experience. :-)

Please remember that sharing your ~/.tomboy is still not recommended, because it contains a bunch of add-in metadata that should not be shared unless you have identical set-ups on each system. In an upcoming version of Tomboy, we will be getting rid of ~/.tomboy and following the FreeDesktop XDG specification, so note data and add-in configuration will be stored separately. If you care about our migration from ~/.tomboy to XDG directories, please read my proposal on the bug and leave your comments.

Upcoming Releases

"Droplet", Copyright Ellery Armstrong, Milk Teeth Photography, Used With Permission

Some of the fixes in 0.15.0 will be coming to our next 0.14.x maintenance release: 0.14.2. Expect news about this in a few days.

Our next development release, 0.15.1, should include some new features in note synchronization, better Windows support when multiple GTK+ apps are installed, and the typical assortment of fixes and improvements. We are planning to have a bug day soon where we'll milestone a lot of our outstanding bugs. I'll let you know when we have a date. :-)

Lastly, after the last Tomboy planning meeting, we developed a roadmap for our next stable release, which, pending a few specific improvements, will be versioned 1.0. I'll be writing more about this in the future, but for now, feel free to check it out, and if you are interested in helping, toss your name in there!

This post brought to you by the Tomboy Blogposter add-in.

Tuesday, April 21, 2009

Tomboy Notes on Android: Olivier Bilodeau Releases Tomdroid 0.1.0

During the fall, Olivier showed up on tomboy-list announcing a school project he would be working on: Tomdroid, a Tomboy note reader (and eventually editor) for the Android mobile platform that drives the wonderful G1 phone. After a few months of development, the first "baby-eating" release is available for testing. Olivier mentions a number of nasty little bugs in this first release, but he is already working on fixing them, and people are already starting to poke around with the code and find ways to help.

Tomdroid: Tomboy Notes on Android

Obviously, having access to your Tomboy notes on your mobile phone is a huge win. Even when they are read-only, you can:
  • Access your grocery list without having to call your wife (which only proves that you weren't listening in the first place)
  • Quickly access your notes about obscure system configurations when visiting a client site, instead of googling (ever worked for a client who stood over you shoulder, and wasn't too impressed by your frequent googling?)
  • For me, I often forget to add contacts and calendar events until I am repeatedly burned, but it's pretty common to have that info floating around in my Tomboy notes.
  • And the number one win: you can have the schizophrenic dude next to you on the bus review the draft of your latest blog post (this keeps him busy, making it less likely he will stab you in the face)

See? Tomdroid just saved your life.

As a G1 owner, I'm extremely excited about this project. I downloaded the Android SDK just so I could start playing around with the code. Olivier has communicated extensively with us on tomboy-list and in #tomboy, and one of the really nice things he's done is initial work on an XML schema for the Tomboy note format. This will be extremely useful to maintain, as it is inevitable that Tomboy notes will being to be read and edited via interesting new clients.

If you're looking for a fun (because it's Tomboy-related) and hip (because it's mobile) project to work on, I recommend spending some time with Tomdroid. New projects are always fun, for example you could work on tighter integration with phone features (like phone numbers, contacts, calendar, and web), or you can start playing with note editing (maybe a nerdy markdown editor would be a good fit?).

Ideas for getting your notes onto your G1:
  • Manually copy ~/.tomboy/*.note to your G1 periodically. Verdict: Lame
  • Write Tomboy add-in that hooks into HAL, notices when a G1 is connected, offers to push notes to phone (could be a button that appears in the note toolbar, a libnotify bubble, or even a totally automatic process). Verdict: Instant win, minus the requirement to plug in your phone.
  • Implement Tomboy online service, and corresponding sync functionality in Tomdroid. Verdict: Epic win, may not be ready for a few months.

Pushing your notes to the G1

Those are great ideas. While drafting this post last night I really liked the second one, so here you can download my quick hack job that Gets It Done. Drop Tomdroid.dll into ~/.tomboy/addins, or `make && make install`. Many thanks to James Wilcox for his incredible vision and Aaron Bockover for all the Banshee code I stole to make interacting with HAL devices brain-dead simple. Right now you just get an item in the Tools menu in the note window, but clearly there are better things that could be done. Patches welcome, I'll dump this into git as soon as I get rid of the excess Banshee code I brought in.

This post brought to you by the Tomboy Blogposter add-in.

Monday, April 20, 2009

Tomboy 0.14.1, the future, and a word about Gnote

Tomboy 0.14.1 Stable Release for Linux, Windows, and Mac OS X

I'm very proud to announce Tomboy 0.14.1, which represents the beginning of our stable support for Tomboy on all major desktop platforms. Here are some of the major changes since the 0.12.x stable versions:

Searching Notes in Windows

All in all this has been a pretty great cycle for Tomboy. Windows support has been the most-requested Tomboy feature for awhile, and in fact some of my first work on Tomboy three years ago was to make it work at my old Windows-only job. The Windows version has generated interest from a whole new set of users, but most importantly to me, it has gained us several new contributors! Benjamin Podszun, for example, rewrote printing to remove our dependence on the obsolete libgnomeprint, then went on to fix several other bugs and to triage the rest. Since I am not generally a Windows user, it is important to be able to depend on contributors from that world to keep an eye on things.

The Mac port is a little less mature, and we will probably need to get more involved in in the GTK+ implementation on that platform to ensure solid support. Nevertheless, though there are quirks, we are happy to support Tomboy on Mac OS X, too.

Tomboy in your dock (click for full-screen shot)

If you are a GNOME Do user, you may currently be enjoying the wonderful Tomboy plugin, which provides instant access to your notes, and convenient creation of new notes.

Instant note access with GNOME Do

With Tomboy 0.14.1 we have striven to create a solid base on which to build the future of Tomboy. Cross-platform support has given us new contributors and a cleaner code base. We have gotten rid of most of our use of obsolete GNOME APIs. We are off to a great start on profiling and making performance enhancements. Note synchronization is stable on all platforms. Now is the time to make Tomboy really shine.

Looking Forward

For Tomboy 0.16.0, we have a few more fun things planned. The community is having the planning meeting tomorrow, so we'll have our official roadmap soon, but some features I'm currently excited to work on are:
  • Automatic note synchronization between Tomboy(s), G1, iPhone, and the web.
  • Continued improvements to memory usage and overall performance, especially on startup (lots of low-hanging fruit here).
  • Figuring out how best to integrate with gnome-shell, which currently has no specific plans for applet support (which means it's a great time for us to figure out how to make applets awesome in GNOME 3.0!).
The great thing is that most of this work is easy to do in parallel, so now is a wonderful time to join in the hacking.

An old Tomboy Online mockup, stay tuned for news!

A Note about Gnote

Some people have started asking about Gnote, Hubert Figuiere's line-for-line port of Tomboy to C++. Our stance on Gnote is that it is counterproductive to maintain identical software in two languages. It will be harmful to the community, especially as these two apps inevitably diverge. It will result in duplication of effort, duplication of bugs, and a lot of wasted time for those who are trying to add value to the user experience.

Tomboy is not going away, and it will continue to be developed on the extremely productive Mono/GTK# language platform. Anyone thinking about distributing Gnote should consider the impact on users and their data. When we develop, we should always be asking ourselves, "is this adding value for our users?"

Tomboy has a vibrant community, a happy relationship with GNOME, and an exciting future. If you'd like to help us out come to tomorrow's planning meeting, join us on our mailing list, or just start hacking!

This post brought to you by the Tomboy Blogposter add-in.

Monday, February 16, 2009

Tomboy 0.13.5 Brings a Better Windows Installation Experience

Today I released Tomboy 0.13.5. It has a bunch of nice fixes, including updates to Benjamin Podszun's Gtk.Print rewrite of Tomboy's printing add-in (making printing available on all platforms). For Windows users, this is the first time that you should be able to easily install gtk-sharp and Tomboy without having to muck around with your system. But we wouldn't want it to be too easy, so there are some caveats.

From :

Instructions for installing a Tomboy Windows release

Upgrading from Tomboy 0.13.4 or earlier
  1. Uninstall Tomboy.
  2. Uninstall any existing versions of gtk-sharp you may have installed.
  3. Continue with Installation instructions.
  1. Install Novell's gtk-sharp 2.12.8 or newer.
  2. Restart.
  3. Run Tomboy installer 0.13.5 or newer.
  4. Enjoy!
Importing notes from Linux (optional)
  1. On your Linux box, copy all of the *.note files out of ~/.tomboy .
  2. On your Windows box, quit Tomboy.
  3. On your Windows box, copy all the *.note files from Linux into %APPDATA%\tomboy .
Please please please don't hesitate to file bugs for any problems you experience.

Thanks so much to Mike Kestner for working his ass off (on his own time) updating the gtk-sharp installers, making them easier to develop and build, and fixing the issues reported by Tomboy users. Apps like Tomboy, Banshee, and GNOME Do would simply not exist without all of his hard work.

Monday, January 26, 2009

Tomboy 0.13.3, Tomboy 0.12.2, Tasque 0.1.8, and Giver!

There have been some very important Tomboy and Tasque releases in the past month or so that I have neglected to share. I think it's true that Twitter removes a lot of the motivation to blog. Here are the takeaway points:

Shiki-Colors Theme (click for larger version)

So what else is going on? Tomboy 0.13.3 features some fixes that cut down my memory usage by 25% (with ~200 notes). It should also speed up start-up time if you have a big note collection. One user with 621 notes reported a change from 11 seconds to 4 seconds when he upgraded! The fixes were almost all related to extra work done on a per-note basis, so the memory and performance wins are most significant on these large note collections.

That being said, there is a lot more work to do on memory and performance. Ruben Vermeersch blogged about adapting Federico's timeline tracing tools to chart Tomboy start-up performance. This is going to be extremely helpful in figuring out where we're slowing things down. And as for memory usage, I have only fixed the low-hanging fruit; there are more wins to be had! If this is an area of computer science that you find fun, all help is welcome. :-)

Tomboy Startup (click for full-size graph)

My day job of working on the Mono Accessibility team has kept me pretty busy, and it's been hard lately to find time to work on Tomboy and Tasque. Sure, my team understands when I take a few hours every couple of weeks to prepare a Tomboy release, but that doesn't provide enough time for big feature work or difficult bug fixes. For example, we knew about the problems with Tasque and for a month before we were able to fix it and get a release out. Fortunately, Novell has its cool "ITO" (Innovation Time On) program. I accumulate 4 hours of ITO every week; that's basically the equivalent of 10% time! As I used up all of my regular time off with hospital visits last year, I scheduled four days of ITO during the week of Christmas. I was able to use that time to review a ton of outstanding patches for Tasque, fix the bugs in the RTM and SQLite backends, and make it easy to build on Windows and Mac OS X. This is also when I did all of the memory fixes for Tomboy. So a big thanks to Novell for supporting me in this work.

Lastly, I'm really excited about Ankit Jain's work on Giver. I never worked on Giver, unless you count the moral support I lent during that first Hackweek. :-) But I am amazed at how many people are asking for updates, Windows and Mac versions, etc. As somebody who works from home, Giver isn't that useful to me, but apparently it is very popular and more people are learning about it every day. With Ankit's help, this project may not be so dead after all. You can help him out by testing his Windows builds, trying latest SVN, filing issues, and hanging out in #giver on GIMPNet.