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 identi.ca, 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 FreeDesktop.org 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 own...you 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

Everybody!


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.