Showing posts with label hack week. Show all posts
Showing posts with label hack week. Show all posts

Monday, October 20, 2008

Tomboy Preview for Windows and Mac

Please To Try

At the end of August, I told you about my little project to bring Tomboy to Windows users. Well, last week I finally merged that code into trunk. And then Friday, the excellent Mono team released a Mono 2.0 installer for OS X, and I found that my Windows build of Tomboy finally worked pretty well on the Mac, too. Of course, some platform integration there would be nice...





Click for full-screen shots. Notice that I added a menu for tracking open note windows, and attached the classic recent notes menu to the dock icon. This is not the most elegant solution, but I wanted Mac users to play around with it and share their own opinions. I'm very open to changes here. :-)

I didn't have any plans this weekend, so I present to you "preview builds" of Tomboy 0.13.0 for Windows and Mac OS X. I'm distributing them with the disclaimer that they are not widely tested, though in my own testing I have found no bugs that would make me worry about loss of data. Just consider yourself warned, and please back up your notes.

If you find any bugs, or have ideas for better platform integration, or find issues with install, please please PLEASE file bugs!

Click to file a bug for Tomboy on Windows!

Click to file a bug for Tomboy on Mac OS X!

Mac Instructions
  1. Install Mono 2.0 for Mac OS X.
  2. Download and mount the Tomboy disk image.
  3. Drag Tomboy to Applications, run!
  4. (optional) Copy your notes to ~/.config/tomboy

Mac Known Issues
  • Shortcut keys all use Control instead of Command.
  • The Bugzilla add-in doesn't work.
  • In the note window toolbar, notebook names can be ellipsized oddly.
  • Hand cursor doesn't show when hovering over links, but they're still clickable.
  • No keybindings support.
  • No i18n support.

Windows Instructions
  1. Install Medsphere's GTK# SDK installer (the runtime installer should work, but in my testing it did not install a particular registry key needed for Tomboy to recognize its presence).
  2. If you are running Windows Vista, you may need to follow additional instructions to work around an installer bug.
  3. Restart your computer.
  4. Download the Tomboy installer.
  5. Double-click to install!
  6. (optional) Copy your notes to %appdata%\tomboy

Windows Known Issues
  • Menu rendering issues.
  • Two console windows appear briefly when Tomboy starts (fixed in Mono.Addins SVN).
  • No drag and drop from other apps into Tomboy (appears to be unimplemented in GTK+ for Windows).
  • If you try to run Tomboy twice, it should show the Search window instead of launching again, but sometimes it will not show the Search window until you have interacted with Tomboy in some other way (by hovering over a window or clicking the tray icon, for example).
  • No i18n support.

Big Thanks

This was actually a pretty easy job, thanks to these folks:
  • Eoin Hennessey, who pioneered a lot of this work in his banshee-osx git branch, which he and Aaron are merging into Banshee trunk this week. Among other things, he created Mono bindings for Imendio's excellent ige-mac-integration library, and scripts for building app bundles.
  • Andrew Jorgensen, Thomas Wiest, Marc Christensen, and Geoff Norton of the Mono team. These guys have been rocking hard on Mono's Mac story, and it shows. Thanks especially for getting me a build of MonoDevelop in time for my Saturday hack fest!
  • Aaron Bockover, who keeps threatening to do a Mac release before me.
  • Brad Taylor and his old Medsphere cronies, who whipped gtk-sharp on Windows into shape.
  • All GTK+ developers and porters, especially those at Imendio!
  • The entire Tomboy community, especially Dmitry Kostenko, Doug Johnston, and Samuel Vandamme for their patches to help make Tomboy on Windows a reality. You guys are awesome!

Thursday, August 28, 2008

Hack Week III: Tomboy Joins The Dark Side

Tomboy on Windows Where It Belongs

As you all know, my job here at Novell is to migrate all worthwhile desktop Linux applications off of that ridiculous platform and onto Windows so that we can do away with this nasty open source stuff. Unfortunately I haven't yet gotten the paper work to close up my code for the latest victim of this effort, so for now dirty open source hippies can get it here:

http://svn.gnome.org/svn/tomboy/branches/tomboy-portable2/

Somebody even impersonated me and posted instructions and current limitations on our mailing list (soon to be replaced with a 1-900 number offering support for a reasonable fee).

And here's an image of what it looks like. Windows has a really awesome feature where you can press your "Print Screen" button, and then you dig around in the menus to find the excellent Microsoft Paint application, at which point you recall that you can produce a "screen shot" by "pasting". Then you save in one of a myriad of excellent file formats, and you have an image of what you were doing on your computer! You can then share it with your friends like so:



What do you think? Excited to end the Linux charade and switch to a solid and hip platform like Vista? Woo!

I feel very silly today.

Utah Open Source Conference

I was fortunate enough to get to join my friends and coworkers in Provo for this Hack Week. I normally work from my home office, so I'm having a blast seeing everybody. Today we're working at Salt Lake Community College as part of the Utah Open Source Conference. I'm actually talking with my buddy Brian Merrell about the efforts of the Mono a11y team (you know, my actual job). It should be fun, we've got some neat slides and we are both cool people so I don't really see what could go wrong. The UTOSC team has done a ridiculously awesome job setting up this conference, so I'm really excited to see everything come to fruition. We had a sweet speaker dinner last night but moron that I am I forgot my camera so you just have to take my word for it!

This Tomboy stuff still needs a bit of work so off I go. Hopefully having Tomboy run on more platforms will help us attract more users and developers. I know it's a popular request so I'm pretty serious about getting it supported in trunk. Later guys!

Tuesday, July 3, 2007

Tomboy Note Synchronization

I got back from Provo on Saturday, after spending three days and about 45 hours hacking on Tomboy note synchronization with Boyd during the last half of Novell's Hack Week. I'm down to about 7 hours of time off left at my real job, but damn was it worth it! For those interested, below is the email I sent to the tomboy-list, peppered with a few related hyperlinks.

Hi Tomboy fans,

As you may have seen on Boyd's blog, I visited Boyd at Novell HQ
in Provo to help work on Tomboy Synchronization during Novell's Hack
Week
. We made awesome progress, and we feel pretty confident that
sync will go into the next stable release. I've broken this update
into the following sections:

1. What is Tomboy synchronization?
2. What can I expect to see in the next release?
3. Technical details
4. What about Conduit, etc?
5. What about note sharing?


1. What is Tomboy synchronization?

With the Tomboy synchronization feature, we aim to solve a very
specific user problem: one person running Tomboy on multiple computers
who wants to keep all their notes in sync. It is very common for a
user to have (for example) a desktop and a laptop, with no obvious way
to move notes back and forth between them. Our solution is providing
100% note data synchronization between these computers.

We know some people are interested in more sophisticated sync
scenarios, like two users syncing a subset of their notes. This is
certainly doable, and the work we've done on sync would allow this to
happen via an external app, but there are currently no plans to add
these advanced sync features to Tomboy 0.8.0.


2. What can I expect to see in the next release?

If you watch Boyd's demo and check out the screen shots, that's a
pretty good indication of what we plan to deliver. You will be able
to synchronize all of your notes via a central shared location. This
location may be an SSH share, a WebDAV share, or *any* mount point on
your local file system.

We will provide extremely simple support for conflict resolution
during sync. Conflicts include modifications to the same note on
different computers, creating different notes with the same title on
different computers, etc. Our current solution here is to prompt the
user to either delete or rename the local version of the note. Any
ideas on how to make this is as brain-dead easy as possible would be
appreciated! :-)


3. Technical details

All syncing is actually done via local mount points. In the cases of
WebDAV and SSH shares, we utilize FUSE filesystems (wdfs and sshfs,
respectively) to mount the shares locally. We then use the same sync
backend to perform filesystem operations for sync. FUSE support is
detected at run time.

We will be writing up more details about our sync implementation as
soon as we get a chance. For now, feel free to play with the code in
the tomboy-sync branch (though of course back up your notes before
trying sync, as it's not bug-free yet).


4. What about Conduit, etc?

Conduit is a cool program that helps you sync between various
different applications and web services. It has support for Tomboy,
allowing you to sync between Tomboy and Evolution, GMail, BackpackIt,
and other apps/services. So why aren't we just throwing out support
behind Conduit (or another sync framework)?

Basically, we felt that Tomboy note synchronization is a must-have
feature for 0.8.0, and Conduit is still new and we haven't had much
time to test it. We wanted our users to have a sync solution that had
no risk of data loss (which can happen when a note moves to an
application or web service that is not aware of Tomboy-specific
features), and we wanted it to work right out of the box.

That being said, Conduit is an awesome project, and the work we have
done (which includes patches from the Conduit team!) will enable
Tomboy to work even better when syncing via Conduit. So our users
will have the option of a more advanced sync solution with Conduit if
that interests them.


5. What about note sharing?

Some of you may be thinking "I only have one computer...I don't care
about sync, I care about sharing my Tomboy notes with my friends!"
Well, this isn't something we're adding natively to 0.8.0, but the
work we've done for synchronization makes sharing a much easier
problem to solve. In fact, we now have support for easily sharing
notes to friends on a local network with Giver, another cool
Hack Week project
. The interaction here is so incredible...I wish my
computer was powerful enough to record a demo of how awesome it is.
You just drag a note to your friend's face in Giver, and when they
accept the note it just pops up as a new note in their Tomboy! It's
super cool.


Well that's everything. We'll send out more updates as sync
progresses. Remember, if you try out the code in the tomboy-sync
branch, BACK UP YOUR NOTES FIRST. We will bring the code over to
Tomboy trunk as soon as we feel comfortable trusting everyone's notes
to it.

We really look forward to hearing any ideas our users or developers
might have for making Tomboy Synchronization really rock! If you're
interested in hacking on this (there is still some work to do), let us
know. We will put up some technical documentation on our sync
implementation as soon as we get a chance to write it. ;-)

Best,
Sandy