Friday, August 17, 2007

Start Here

Thanks jdub for adding me to Planet GNOME!

Caught Yawning

For those who don't know me, I'm Sandy Armstrong. I co-maintain Tomboy, and right now I'm working on note synchronization.

But is sync really complete?

I've been working on Tomboy for about a year now. My claim to fame is
consistently failing to finish my project of refactoring Tomboy
for easier porting to Windows and other platforms.

I live with my wife, Ellery...

Ellery with 'Pebble'

...in San Diego...

new suits!

...with a couple of strange creatures.

Tycho flashes

Maggie eats anything

Some Background, streamofconsciousness-style

I grew up in Cincinnati, OH. I have a friend who went to Space Camp while I was busy sticking keys in electric sockets. I moved to Sacramento, CA to start high school around the time the GNOME project was announced. In the late 90's I installed LiteStep on my computer because I wanted it to look like GNOME. I didn't really know what GNOME was, but I knew it looked cool. When my buddy Gary was the first in the neighborhood to get DSL, I made him take a break from downloading music, Simpsons episodes, and porn to burn me a RedHat 5.1 CD, which I promptly installed on my grandmother's computer, much to her chagrin. These days, my mom runs Ubuntu and so do I, with a sprinkling of Gentoo on the server side. I lived in Las Vegas for awhile, but somehow never got a chance to hang out with Steven Brust. Oh, well.

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. :-)

Sunday, July 15, 2007

Tomboy 0.7.2 Released!

This is the first release that I've done myself, so it's extra special to me. ;-) Aside from bug fixes and patches from the community, cool new stuff includes the transition from a custom plugin infrastructure to Mono.Addins, and Boyd's Tasks addin that adds task integration to Tomboy.

Now I just need to get tomboy-sync stabilized, so it can go into the next release...

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

Tuesday, June 26, 2007

Even fantasy authors aren't fooled!

Steven Brust uses Ubuntu. But then again, he's a cheap bastard and former programmer, so maybe it's silly for me to get all warm and fuzzy about this?

Sunday, June 24, 2007

Name has been changed to protect the creepy

--- Log opened Sun Jun 24 09:18:16 2007
09:18 -!- Irssi: Starting query in GIMPNet with creepy_loser
09:18 [creepy_loser] hi
09:18 [creepy_loser] sandy
09:18 [sandy|away] hey
09:18 [sandy|away] what's up?
09:18 [creepy_loser] fine
09:18 [creepy_loser] :)
09:18 [creepy_loser] snd you
09:18 [creepy_loser] and u
09:19 [sandy|away] good, what can I help you with?
09:19 [creepy_loser] hmm
09:19 [creepy_loser] you should write me where are u from ?
09:19 [sandy|away] why?
09:20 [creepy_loser] for be your friend maybe
09:20 [sandy|away] hmm...do you know that I'm a dude?
09:20 [sandy|away] full name is "Sanford"
09:21 [creepy_loser] where is sanford ?
09:21 [sandy|away] I'm Sanford
09:21 [sandy|away] that's my name
09:21 [sandy|away] sandy is a nickname
09:21 [creepy_loser] :)
09:21 [creepy_loser] where are u sanford ?
09:21 * sandy|away sighs
09:22 [creepy_loser] my dude friend :)
09:22 [sandy|away] so I'm going to ignore you now
09:22 [sandy|away] just fyi
09:22 [creepy_loser] and i fuck you now
09:22 [creepy_loser] :)
09:24 -!- creepy_loser [~creepy_losers_computer@creepy.losers.ip.address] has quit []
--- Log closed Sun Jun 24 09:24:37 2007

EDIT: The log didn't pick up the fact that he tried to query for my avatar (I don't have one). This is a private message from somebody who was in #gnome briefly, where I was lurking.