Showing posts with label online desktop. Show all posts
Showing posts with label online desktop. Show all posts

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.

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.

Saturday, November 24, 2007

Bringing Freedom to Web Apps: Introducing Forkolator

For a while now the back of my mind has been crunching away on web apps/services. It probably started with my work on Tomboy note synchronization, which is disappointing in that we were unable to provide centralized note storage for our users...they'd have to provide that themselves. So of course the idea of providing that service via the Online Desktop is very attractive, but it inevitably leads to demand for a web app for interacting with those notes. Hmm...

Recently, Luis' posts on Gmail have really got me thinking about where free software fits into this whole web apps/services sphere. And then I went to BarCamp...



Erik Pukinskis talked about how he believes that web apps are killing free software. That Gmail takes away even more freedoms from you than Outlook ever did. That even wikipedia.org and wordpress.com cripple your ability to meaningfully exercise your freedoms. For example, you may be able to access and modify the source of the wordpress software, but you can't use your modified source on your data at wordpress.com. Useful web apps/services are not distributed to users in the same way as traditional software. So how can the open source methodology thrive in this situation?



Erik's idea for solving this is Forkolator. Imagine you're using your favorite web app. You find a bug or think of a feature you'd like to implement. What do you do? Think for a minute of how you would hack on wordpress or mediawiki. Is it a worthwhile investment of your time? Now imagine that you can just click a button that says "Fork this page!". You are taken to a personalized instance of the web app with all the same access to your data, and you can drop into a web-based IDE and tweak your branch live. You can file a bug report that points directly to your live branch, and if the dev team merges in your changes, you can choose to switch back to using the upstream service or keep running your own branch. Maybe the dev team chooses not to accept your changes. With normal free software, you can build your own from source and live happily ever after. Wouldn't it be nice to be able to do this with popular web apps, and not lose the advantages of having hosting and social data handled by a reliable entity?



Right now Forkolator is a web-based IDE which can be forked and modified live. Your fork is not integrated into revision control yet, and the problem of borking your PHP code isn't really addressed. But these are technical hurdles that should be easy to overcome. The difficult problems are staggering:

1. Security.
2. Privacy.
3. Stability.

So Forkolator isn't hosted anywhere yet.

This post is pretty long so I'll have to write later about different ideas for addressing these issues with respect to user data. To sum up insufficiently, Erik believes that the data layer of the app would probably have to be well-defined and untouchable by forkers.

I think that Erik's idea is one that we need to explore. I think it could takes us to a whole new level of community development. I think a combination of social and technical measures can address the huge unanswered problems. We really need people with experience in hosting, security, etc, to hop on the mailing list and weigh in with their opinions. How would you solve these problems? We need to know how start so that we can begin hosting this thing!

Oh, and we need to talk about the GNU Affero GPL at some point...

Wednesday, August 1, 2007

Tomboy Online Mockup

Ellery caught me sketching out some mockups for a hypothetical Tomboy Online service. She took pity on me and sketched up something more presentable (click for larger version):


The idea is pretty simple. Somewhere out there (maybe on online.gnome.org?) you have an account for synchronizing your Tomboy notes. It's cool because you get free storage space for your notes without having to set up your own server. Then you can use Tomboy's new note synchronization feature to sync your notes to/from that server. The bonus aspect is the web app shown above. Features include:
  • Ability to read all of your notes from any web browser on any computer when you log in.
  • Notes maintain their formatting, tags, links (URLs and links to other notes), etc.
  • You get your Recent Notes menu just like in real Tomboy, including note pinning.
  • You can search your notes, or browse by date or tag, just like in real Tomboy.
  • By default notes are private, but you can make any note public to allow your friends to see it (see the lock icon on the note?).
  • From your Tomboy Online page, you can see new public notes from your friends in the Friends sidebar.
  • Notes can be printed in a nice format.
  • You can download any note (yours, a friend's, whatever) in its native .note format, which automatically imports the note into real Tomboy.
I think this service would be an awesome addition to the Online Desktop initiative. The mockup is very Tomboy-centric, but in reality this could be integrated into something like Mugshot or another existing service.

What do you guys think? I'd love to work on something like this during the next development cycle. We just have to solve the infrastructure problems, and it seems like the Online Desktop guys are interested in helping us out.

And before you ask...I don't think online note editing is a short-term goal here. I don't really want to rewrite Tomboy for the web. :-)