Wednesday, December 19, 2007

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 and 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 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...

Monday, November 12, 2007

Slides from my talk

Talking at BarCamp San Diego

So I wasn't really sure what I wanted to talk about at BarCamp, and I've been way too busy to prepare anything. Since this was my first BarCamp, I didn't really know what to expect. I assumed my audience would mostly be Mac-toting, TextMate-using Rails developers, with a healthy dose of open source enthusiasts (and probably not too many free software zealots).

So with that in mind, I thought I'd talk about .NET, and whether or not geeks in general should use it, weighing its technical strengths against its source. My approach was to show that .NET was a compelling platform in a few minutes, and then set up the grounds for a discussion about whether or not it is in our best interests to consume a Microsoft product like that. I did *not* want to talk about whether or not free software zealots should be interested in Mono, because that's just exhausting. I threw the slides together Saturday morning, tweaked them a bit while at BarCamp, and presented on Sunday.

What I learned
  • People came to my talk who really just wanted to hear more about .NET or Mono. This slowed things down a bit, but I'm glad I was able to help.
  • 30 minutes goes by much faster than you think.
  • Telling people they can interrupt and ask questions at any point is counter-productive to trying to power through slides and then have time for a discussion. We didn't really have time.
  • BarCamp folks are awesome and forgiving even if you're not the best presenter.
  • Most people want to be presented to during these 30 minute sessions, so it's important to have a strong focus and a clear message. I didn't really have those, but it still went well I think.
  • Scheduling your talk against one entitled "How To Make Money Online" is not a great idea after half the people you meet have identified themselves as "entrepreneurs". At least I didn't have to watch it!
  • Turns out I'm not that bad of a presenter when I know what I'm talking about.

Sandy, Presentator

Friday night I came home from work, somewhat exhausted, with the goal of starting my slides. I thought I'd try Google Presentations and see what all the fuss was about. Bad idea. I spent almost half an hour preparing five shitty slides, without having time to think about where I really wanted my presentation to go. And I found myself making bullets, just because, the same way I've always felt compelled to make stupid bullets when using PowerPoint/OO.o/etc. I went to bed frustrated.

The next morning I realized it just wasn't going to happen. I had only a couple of hours to clean up and head to BarCamp. Then I remembered somebody at work using a cute little XUL app to prepare Takashi-style presentations. It was perfect! Please load up my slides and press ctrl+e to see how easy it is to write slides in that style. I had a blast, and it was really fast and easy to tweak them on the fly when I had an idea. Plus, I had no problems hacking the CSS and XUL/JavaScript to handle little things I wanted to work differently (EM=>Red in EVA mode, ability to use images without specifying height/width, etc). I managed to do a pretty good job presenting without rehearsing, though if I had a more difficult/subtle topic/message or a longer presentation, I think practicing would be really important.

The downside: my slides only work in XUL-based browsers. I've only tested them in Firefox.
I'm sure there's a way (or easily could be) to do the same sort of thing using S5. I'll look into that for next time.

BarCamp San Diego 2

I have more thoughts about BarCamp, but I think I'll just write about them later. I will say I was a little sad that there were no hackfests, but it's not like I tried to organize one, so I can't really complain. Unconferences are both awesome and weird, and this was my first. Looking forward to the next one!

Saturday, November 10, 2007


Eric Pukinskis just gave a super-awesome presentation entitled "Web apps are killing free software! (and how to save it)". His surprising teaser answer: a web-based IDE.

I went in to heckle, I came out totally energized. In my opinion, the IDE is the least important part of the whole thing.

I'll post more later. Hopefully he'll set up a website or upload the code or something soon.

Friday, November 2, 2007

Quote of the Day: Paul Graham

We in the technology world are used to that sort of solution: you don't beat the incumbents; you redefine the problem to make them irrelevant.

-Paul Graham, The Future of Web Startups

BarCamp San Diego

I'll be attending BarCamp San Diego next weekend (November 10th-11th), which will be my first experience with anything like that. I'm extremely psyched...I hope the massive overtime I'll be putting in next week won't impair my ability to hack. A friend of mine (and rock climbing partner!) will be there, too...she has an awesome idea for a web app to hack on, which would be a pretty neat change of pace for me.

Will any other GNOMEers be there? They say if it's your first time at BarCamp you have to present (sounds familiar). I was thinking about talking about Mono or leading a discussion about how .NET should be approached by geeks, considering its source. People are writing a lot of free software using the .NET framework (I'm not even talking about Mono here), so it's an interesting topic to me.

If anyone's interested in hacking, doing some sort of GNOME-related presentation, or just meeting up, let me know.

Thursday, November 1, 2007

Tomboy needs your help!

I just mailed tomboy-list to let everybody know that I won't be around to help much this release cycle (stupid real world!). The big bummer here is that I won't be able to work on automatic background synchronization, which Tomboy really needs to bring sync to the level of AWESOME.

So, as I said in my email, if you've been waiting for the perfect moment to dive in and be a free software hero, then now is your chance. Mess with the wiki page I linked above, send in patches, draw whatever it is that you do so well! I'll help by reviewing patches and doing whatever polish/integration work I can do in January before the UI/string freezes.

Oh, and keep in mind that we're still looking for a hero to revamp our tagging UI, too.

With your help, Tomboy sync in 0.10.0 will be legen-

...wait for it...


Thursday, October 18, 2007

Planet Ben Collins-Sussman

I'm surprised I haven't seen anyone link to these great recent blog posts by Ben Collins-Sussman of Subversion fame.

This discussion on why DVCS is currently too much to ask for 80% of programmers (not necessarily 80% of free software developers) was a great read, especially with the comments. I once moved a 30-person project from Visual SourceSafe to Subversion, and I had to face a political battle with process folks in addition to resistance from some 80%ers. Most 80%ers just didn't care, because all they ever needed/wanted to know was "svn up" and "svn commit" (in TortoiseSVN, of course).

And here's a really informative post on consuming meat responsibly, sustainably, and ethically. You don't have to read it if you're allergic to non-technical posts.

And just in case anybody hasn't seen it, here's a link to the fantastic "How Open Source Projects Survive Poisonous People (And You Can Too)" talk he did with Brian Fitzpatrick. I refer to this whenever I'm in doubt about how a maintainer should behave (since it's kind of new for me).

Friday, October 5, 2007

Burned *again* by Google Reader

I really like Google Reader. But one "feature" keeps biting me in the ass:

When viewing 500+ unread items, I'd say the "Mark all as read" button (Destroyer of Worlds) is just a wee bit too close to the frequently poked "Refresh" button. The first time I got burned by this I wrote a nice email to the Google Reader team, but I guess they still think it's a good idea. I guess it's not a big deal that I have no way of finding out what those 500+ items were that I had yet to read/skim/star/share/skip. Yesterday I took matters into my own hands:

Thank you Greasemonkey. You can find my little script at It is based on this other script by Scott Cowan. I never thought I'd use Greasemonkey, but Google Reader is just far too dangerous in its unaltered state!

I will say, though, that the addition of search in Google Reader helps to alleviate the loss of all those unread items. It was a long time coming, but it works great. :-)

Thursday, September 27, 2007

Thanks again, Murray!

Read this while skimming a sneak preview of Ubuntu 7.10:

"Note, by the way, how differently open-source projects present themselves to end users: Compare the release notes for Gnome 2.20 to the release notes for OpenOffice 2.3, and then tell me which group looks more serious about communicating clearly with the user base."

Comments like this would simply not have happened without Murray's hard work. I'm sure I didn't read anything like this about the 2.18 release notes. The bar, it has been raised...

Amazon MP3 Store

Kudos to Amazon on their new MP3 store. This is the first (mainstream) iTunes competition that has been of interest to me. I don't like subscription services and I am immediately turned off by DRM that is even more restrictive than FairPlay. The prices (especially on albums) are nicely competitive with iTunes, and in fact the user experience is really nice for circumstances when you don't have an iTunes install near-to-hand. Offering plain MP3s at double the bitrate is nothing to sneeze at, either!

Unfortunately the Amazon Downloader, which is required for album purchases, is Mac/Windows-only. Clearly since I use iTunes to purchase music this isn't an obstacle for me, but I certainly hope that they realize how well-suited their store is to freedom-loving Linux users, and provide a native client. Amazon is a huge consumer of free software, so I'm sure they have the development expertise to port the Downloader.

For now, Amazon trails iTunes when it comes to customer reviews of their MP3 downloads, but I fully expect this trend to reverse itself in short order (come on, this is!). Also, the selection on Amazon is currently not as complete as iTunes. Does anyone know if Amazon offers tracks not available on iTunes?

So thanks Amazon for saving me US$4 on my copy of Josh Joplin's Jaywalker album, with no pesky DRM to remove and superior audio quality!

(Unfortunately it doesn't seem quite as good as The Future That Was...available on iTunes but not at Amazon...purchased by Ellery in CD format a few years back)

UPDATE: Thanks for the informative comments! In the Lame category we have Amazon charging $0.10 extra for the "Explicit" version of a track. In the Rock category we have a promise from Amazon in their FAQ to provide a Linux version of their downloader, and info that Radiohead is available on Amazon but not iTunes (much appreciated!). In the Self Defense category, I definitely support Magnatune and indie labels, but I'm not going to boycott artists I like just because they're signed to an evil label. And although I love the freedom given to me by Magnatune, the purchasing experience on Amazon is superior IMHO. I'm confident that Amazon's offering will force competitors to innovate in turn, which should only benefit consumers like me. ;-)

Friday, September 14, 2007

That reminds me...

All of this discussion about distributed source control systems got me thinking about a little piece of abandonware I wrote last year to help me manage permissions in a Subversion repository I was administering. I kept meaning to release it, but it needed a lot of polish so I kept waiting. Nowadays I don't do much svn repo administration, so I have less incentive than ever to work on it, and it still needs polish. I haven't worked on it in almost a year.

But it's a great excuse to mess around with a DSCM and see what all the fuss is about. I picked bzr because it has Windows support, and because if it bugs me I'm more likely to hack on Python code than a bunch of C and Bash.

bzr co

If I ever get around to cleaning up this very "my first pygtk app", I'll post a proper introduction.

In the mean time, I'm using bzr* 0.15 because that's what comes with Feisty. I'm also using Meld 1.1.4 to view my diffs, but its bzr support is nowhere near as good as its svn support. Olive-gtk is alright, too. Any suggestions for bzr bliss?

Oh, and thanks to John Carr for starting this page on using bzr with GNOME svn. Awesome, dude! Why did I have to find this by accident?

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' 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 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
. 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. ;-)


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] 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.

Wednesday, June 13, 2007

Thank you Firefox, Google, and Ben Goodger

Yesterday Firefox2 saved my wife a lot of trouble and frustration.

Ellery visited her MySpace to see what was new, and noticed a strange message in her inbox. Figuring it was spam, she brought it up so she could delete it. An official-looking MySpace login page appeared, which seemed strange to Ellery, but she figured it was probably a timeout or something so she went to start entering her email and password.

And then Firefox2 saved the day by intervening, explaining that the page looked like a phishing page, and offering a link that said "Get me out of here!". It probably looked something like this:

What does your web browser do when you visit that link?

Ellery and I have been internet junkies for awhile now, and honestly I feel pretty invincible in my day-to-day browsing. While I've often had to help friends and relatives out of spyware/virus/phishing situations, it has never happened on one of my computers. So when Firefox2 came out with anti-phishing technology, I was happy for their sake, but never figured it would matter for a sophisticated internet snob like myself.

The really scary thing here is that phishing is generally a web problem, not an operating system problem. When the goal is to get your passwords and take over your internet accounts, it doesn't matter whether you're browsing the web from Windows, Mac, or Linux -- you're still vulnerable.

Thankfully, we have Firefox2 available for all of those platforms. So thanks to the whole Firefox team, including Ben Goodger who is awesome. And also thanks to Google for maintaining the list of known phishing sites, and for working hard to make the web safer for everyone, even know-it-alls like us.

Monday, April 23, 2007

Feeling Feisty?

About 14 months ago I switched to Ubuntu Linux (from Gentoo). It's been a good ride. Dapper Drake was awesome (my mom still uses it), Edgy Eft was a good upgrade, and now the Feisty Fawn has arrived.

Cool stuff:
  • New Tomboy ;-)
  • Installer offers to migrate settings from Windows, if you have it installed.
  • Fresh install. Double-click latest Naruto ep. Totem opens, tells me it can't decode divx/xvid/whatever, but it thinks I should install some codec packages, and after clicking OK a few times the packages are installed and the video starts playing. I didn't have to restart Totem (or my machine, of course) or even press the play button again. It was awesome.
  • Similarly, getting desktop effects and proprietary video drivers going was just a few clicks; no manually editing configuration files. Of course, this doesn't change the fact that my video card is too slow for such things.
  • Feels faster.
  • All the other great improvements moving from GNOME 2.16 -> 2.18.
  • Magnatune and Jamendo available directly from Rhythmbox. That means free access to ~35,000 streaming tunes.
  • Lots of French hip hop available from Jamendo.
Uncool stuff:
  • Migration assistant didn't offer to bring over my Firefox settings from Windows. I had to do it manually. :-(
  • When I tried to play MP3s and AACs from Rhythmbox it just errored out. It should be as friendly as totem. I had to install -good, -bad, and -ugly all on my own.
  • Jamendo and Magnatune won't work right now for some reason...must be camera shy, since I only brought up Rhythmbox to take a screenshot.
  • Buying tunes from Magnatune requires too many steps and interaction with three separate apps.
  • Lots of French hip hop available from Jamendo. ;-)
Token boring screenshot:

Token spinning cube screenshot:

Tuesday, April 17, 2007

Recent Fosters

Izzy was afraid of everything. After hanging out with us for a little while, she got adopted instantly.

"Pebble" is a dumb puppy. He spent last night with us but I think he'll be staying at Helen Woodward now until he's adopted.

So I'm writing this post from Picasa...but what's irritating is that I took the time to make comments on each of these pictures, but those comments aren't part of this post at all. :-( I'd really like to see Google improve the Blogger-Picasa-PicasaWeb integration. (UPDATE: These pictures showed up in my blog's Picasa Web Album with the correct comments)

I made my first Picasa Web Album, too.

Still, although I like all of the Google services, I wonder if I wouldn't be better off with Flickr.

One last dig at Google...when making a link here in Blogger, I have the following option to specify a gopher: URL. Wha? Shouldn't this just fall under "Other"?

Posted by Picasa

Sunday, April 15, 2007

Summer Plans

Lessons from Summer of Code

So, GNOME didn't accept any Tomboy-related projects for Summer of Code 2007 (Mono did accept a neat one, though). On the whole, this was not due to any shortcoming in the proposals themselves. We received 14, and several of them were very good. In fact, most of the students who submitted good proposals for Tomboy have been accepted by other organizations this year, so the end goal of getting these students involved in open source is achieved.

So what happened? Basically, I posted ideas that I hadn't really thought through, and though they might have made interesting projects, they didn't have any obvious value to GNOME as a whole. When students saw the ideas post on the wiki page, they might have thought that as long as they had the best proposal for a given idea, they would be accepted. This was not the case.
  1. Revision Control: This was the first Tomboy idea listed at the GNOME SoC Ideas page. We got 8 proposals for this idea. I would have been happy to mentor at least 3 of those proposals. But here's the thing: why would anyone use this feature? If you want revision control on your notes, you probably want it on all you data, in which case you want a system-wide revision control system, not a custom GUI in each application. The only use case I can think of where this feature makes sense is for simple or formal note synchronization (that is what I would use it for). But I failed to list this when writing the idea and its benefits, and most students did not focus on it at all. In the end, these proposals received low scores from most mentors, and the highest-rated students ended up being accepted by other organizations.
  2. Encrypted Notes: This feature represented an edge case for Tomboy. It would only be useful to users who are paranoid enough to want to encrypt a few notes, but not paranoid enough to want to encrypt their whole file system. And this set of users would also have to be really into Tomboy, since there are already applications specifically designed to store secrets. We received a good proposal for this project, but most mentors were not convinced that this would really be used by anyone.
  3. Todo/Task Lists: This was my favorite idea, and I think it had the most relevance to GNOME as a whole, but it was one of the last ideas on the wiki page, and we only received two related proposals. One proposal was so well thought out that we will probably use it in our own implementation of this feature. The student who wrote this proposal was accepted by GNOME for a higher-priority idea instead.
So what are the lessons here?
  • I (or whoever) need to only list ideas that have a clear benefit to GNOME as a whole, and that have a high probability of being supported by other mentors involved in the ranking process.
  • Any piece of the idea designed to be reusable by the rest of GNOME needs to be implemented in C, or there will be a backlash. This is unfortunate but understandable. Any ideas that violate this rule should probably be listed with the Mono project instead.
  • Most proposals will be for listed ideas. It is better to list no ideas then to mislead 8 students into writing good proposals for an idea that has no chance of being accepted.
  • Corollary to above: make sure students know that just because a maintainer is interested in seeing proposals for a particular idea, that doesn't necessarily mean the rest of GNOME will be convinced by it (and in fact, it doesn't even mean the mentor who listed the idea will be convinced by it, which, to be fair, I did state on the wiki page)
So I'm bummed I won't be mentoring anyone this summer, but really the fault is my own for getting too excited and listing inappropriate ideas. I sincerely apologize to any students who may feel burned by this.

Plans for the Rest of the Summer

So I'm finally starting to have free time for coding again (SoC and other obligations being over for me). Here are my goals for the summer:
  • Get win32 support into Tomboy for 0.8.0. I've really dropped the ball on this, and it's going to take serious work to get it ready now.
  • Make a "Note This With Tomboy" extension for Firefox or Epiphany. I have basically done this for Epiphany, but unfortunately there are some limitations when writing Python extensions for Epiphany that may lead me to switch to Firefox (which is my browser of choice, anyway). This is inspired by the cool bookmarklet you can use with Stikkit to make a stikkit of the page you're viewing.
  • Poke around with Todo/Task list support in Tomboy. It would be cool to sneak this into 0.8.0.
  • Help out with note sync for Tomboy, and make sure there is some sort of win32 support.
  • Clean up and release svnservant before it suffers from bit rot.

Friday, April 6, 2007

When Bullies Win

I'm fairly upset about this whole Kathy Sierra thing. She's been an inspiration to me and others, and her teaching/presentation style is such a breath of fresh air. The Head First books have really raised the bar for all the tech writers out there. Kathy's blog is one of my favorite things to read on the web; and now some asshat sickos have threatened her in ways that make her fear for her safety.

Kathy won't be speaking in public, or maintaining her blog. Whatever her next move, it will be limited and restrained. I don't think she's wrong or weak to do this, but I do hope that she's able to return to a sense of balance in her life. Nobody should have to live in fear.

Anyway, of the options Kathy has discussed for the blog, I'm probably most in favor of the "real group blog" idea. Though I'll certainly miss Kathy's unique style and perspective.

Thursday, April 5, 2007

Amen, Joe

Joe Shaw really hit the nail on the head with this post:

If Tracker takes over the world based on its technical merit, that'd be fine. But right now Jamie's attitude really turns me off of his project. Beagle works fine for me, so I have no incentive to switch, anyway.

And since Jamie forgot to propose Tracker as the solution to the Gimmie/BigBoard conflict, one of his fans did it instead:

I find that most people who are looking for alternatives to Beagle (and other Mono apps) make the argument based on politics instead of features. So I guess it's nice that people who refuse to use Mono have choices. But the memory usage argument is less and less relevant with every Beagle or Mono release.

Tuesday, April 3, 2007

Tim is back, thank god

A little early from his exodus to South America. Apparently he was basically held hostage by FARC and had to get choppered out. I'm still reeling from this news.

What the fuck?

He says he has other stories, too. About girls and parties, I hope.

Tuesday, March 27, 2007

Summer of Code == Week of No Code

176 valid proposals received by GNOME.

14 proposals for Tomboy work.

8 for Revision Control for Tomboy Notes.

3 for some sort of Evolution integration (tasks, appointments, etc).

2 for Encrypted Tomboy Notes.

1 for Networked Tomboy.

0 lines of code written by me in the last week or so. ;-)

Thursday, March 15, 2007

The Bullets of My Life

(not a whiny post about my job)
  • Google Summer of Code 2007 has opened for applications! Of course, GNOME is participating this year. If we get any good proposals for Tomboy, I'll be mentoring, which is pretty cool.
  • I wrote the draft for the "History" page for the new GNOME website. Of course, it won't go up for a month or so. For some reason it took me like 2 weeks to crank out a couple of straight-forward paragraphs. I really need to practice writing more...
  • Although I haven't done any huge Tomboy work, I've done a bunch of little things that have been eating into the time I should be spending doing the refactoring I announced a month ago. Unfortunately I can only really spend about 8 solid hours per week on Tomboy. :-( But, I documented my work, and hopefully I'll get some feedback so I can start moving things into the main code base. Followed soon after by WORLD DOMINATION (well, no, just better Windows support, but still!).
  • Guys and gals, I added this "Shared Items" thingy to my blog, and you should check it out! When I'm in Google Reader, if I see something I think should be shared with the world (often it's not even geeky programmer stuff), I click the little "Share" button and it shows up in this widget on my blog. So you should check it out from time to time!
  • Yes! Exclamation points are definitely "in"! (so is putting punctuation where it should logically go: outside the quotation marks, unless you're quoting the punctuation!).
  • Ack! Almost forgot! GNOME 2.18 was released yesterday, so now I'm jonesin' to upgrade my Ubuntu installation to the beta of Feisty (whenever it comes out...).
  • I'm a little peeved that "refactor" and its various permutations are not recognized by most spell-checkers as words. I mean, shouldn't spell-checkers in geeky programs like Firefox and blogger include words like that? Incidentally, "blogger" is in blogger's dictionary, but not Firefox's.

Friday, February 23, 2007

Warning: May blow your mind

Links for today

Wednesday, February 21, 2007

Row, row, row


One of the things I used to like about my job was how the walls were decorated with amateur art, much of it created by employees. When I needed a break, I would take a long walk from piece to piece, occasionally finding something that really reached me. One day a while back I was walking to my cube and noticed that the paintings in my area (the entire second floor) were all being taken down. I asked if we were getting new ones, but it turned out we were getting something else. Billboard-sized promotional posters with soldiers and weapons and satellites, all larger than life, with catch phrases to convey the company's strengths.

The posters were not just huge, but they protruded about three or four inches from the wall. And it turned out they had so many of these that they put the extra ones _inside_ our closed area (which previously had no art). Our aisles are not even big enough for two people to pass without one turning, and this did not help.

So this was obviously done because we have customers in our area sometimes and we want to convey a professional image. The effect on me has been the constant reminder that my job is to increase the efficiency with which we take lives. No matter the reasons, this is not something I'm comfortable with.

The posters are still causing claustrophobia in our closed area (a closed area is a large secured room -- ours is most of the second floor -- that is approved by the DoD for various classified work). They have taken down a few in the halls outside my area, and art is beginning to reappear.

But anyway, I've been checking out the new art downstairs since I can't relax in the halls upstairs. One of our employees is very talented in landscape, which I enjoy. My current favorite is a watercolor of a rowboat partially docked on a wooded river or lake bed. I don't know the names of colors, but I love looking at this painting. Some days, like yesterday, my eyes are drawn to the water, which perfectly reflects the overhanging trees, the distant mountains, the setting sun. Other days, like today, I can only stare at the row boat. It's dark, and its composition seems to shift more than the water's.

If I liked to contemplate art at home, I'd buy it.

Returning The Favor

For a long time I've been a consumer of free software, thought-provoking blogs, and of course Wikipedia. What has kept me from contributing back on a regular basis? Anyway, I'm trying to rectify that. It's been going well and I'm feeling really good:
  • Tomboy work is very rewarding. Whether I'm hacking on the new portable-tomboy branch, trying to fix last minute bugs before the upcoming release, or contributing to Bugzilla/IRC/etc, I feel like I'm doing something that matters to me and to other people. I don't know why I took such a long hiatus from working on it.
  • I'm trying to be more proactive on the various mailing lists I'm subscribed to. It's nice to be able to answer questions about products like MonoDevelop.
  • Sometimes I even comment on blogs I read from planet gnome, etc.
  • If I see a problem in a Wikipedia article I'm reading, I fucking fix it. Seriously, it only takes a couple of minutes. Wikipedia doesn't work if people don't interact with it, and I'm so tired of just taking.
So I'm trying to be a better citizen in this free culture that I claim to support. I really hope I can keep it up. It's fun and it makes me feel good. A nice departure from my job ;-)

I Was Just Trying To Help

It was me. I put up the sign in the first stall of the men's restroom that says "Nobody's Perfect. If you're standing up, please lift the seat." And you know what? It worked! I stopped seeing pee all over the toilet seat! Imagine that! Then recently we had a bunch of customers in for some sort of thingy, and I went to use the restroom and noticed my sign was gone.

Then I looked down and noticed there was pee on the seat.

Oh well, at least I had a few months of not having to clean up old man pee.

Tuesday, February 6, 2007


Bugs and Superstars

Robin Williams came to me in a dream last night to tell me that he disagreed with the approach taken in my patch for Tomboy bug 404739. He said he didn't like unpredictable UIs that can change on you without warning. I think he was advocating disabling the "Import Sticky Notes" option instead of completely removing it (this only happens when a user has no sticky notes).

I'm still not sure how I feel about it. But if you've never ever used the Sticky Notes applet, and you're using Tomboy, what are the chances that you'll ever try Sticky Notes? In which case having the "Import Sticky Notes" option at all is a confusing waste of space. And if you do decide to try Sticky Notes, the next time you start Tomboy, the Import option will be there. Mr. Williams compared it to those irritating Microsoft Office menus that by default only show common or recently used options, but with all due respect to The Mork, I don't think the situations are the same at all.

Silly Distros, the Sticky Notes applet is for old bearded hackers who can install it on their own

I'd like to be able to remove the plugin entirely, but distros are still shipping the Sticky Notes applet even though it's no longer a default part of GNOME. I don't like when distros ship both Sticky Notes and Tomboy; it's like the old days when everyone shipped 5 IMers and 4 web browsers. As a hypothetical new Ubuntu user just discovering applets, how do I choose between two identical-looking notes applets?

The description for "Tomboy Notes" is "Simple and easy to use note-taking". For "Sticky Notes" it is "Create, view, and manage sticky notes on the desktop". Yes, they're both good apps. Yes, they represent two very different ways of managing notes. But to 80% of users they are the exact same thing. So distros, pick one for your default install, and offer the other in your package repsitory. Why is this so hard?

In Other News, Visio Sucks

That is all.

Monday, January 15, 2007

The NFL is to the Free Software Movement as...

After explaining the draw of the Chargers vs Patriots game, and talking about the various superstars, Ellery stated:
Tom Brady is a visionary. He's like the Havoc Pennington of football!

Wow! What an interesting leap of an analogy! This is further evidence that I have THE COOLEST WIFE EVAR!

Saturday, January 6, 2007

Using ssh-agent to stop getting prompted OVER AND OVER AGAIN for GNOME svn+ssh password

I'm mostly posting this as a reminder for myself, since I'm probably the only GNOME developer who didn't know how to do it. But if you're tired of getting prompted for your ssh password three times during `svn co`, and several other times throughout a hacking session, this command is for you:

ssh-add ~/.ssh/id_rsa

If you're running GNOME, chances are ssh-agent is already running when you log in. The above command prompts you for your SSH password then adds your SSH key (at least, that's where I keep my GNOME SSH key) to the running agent. And that is the last time you'll have to enter that password until your next log in.

This was very exciting to me...

UPDATE: I guess seahorse (slated for inclusion in GNOME 2.18) does the same stuff, but graphically.