Tuesday, December 11, 2007

47.8% Turnout

Noticed that out of 370 GNOME foundation members only 177 voted in the recent Board election - a worse turnout than the last 12 US presidential elections.
Stop apathy..or not By sadprofessor, used under the CC BY-SA license.
Any way, congratulations to the new board members!

Tuesday, November 13, 2007

One Laptop Per Photographer

Jon Trowbridge gave me a B4 OLPC XO the other day, and I'm absolutely loving it. It is so much faster than my old B2, and with the latest softare it is rocking. Harper and I were chatting and collaboratively editing a document from across Chicago with zero setup. There is a relatively new activity called Pippy that includes many Python scripts that are simple (hello world, etc), fun (random pitch/sound generator), and educational. Coupled with a Run button it is a simple interactive console. It doesn't have anything for using the XO's built in camera, so I dove in to figure out what I could do. I looked at the Record activity but found its gstreamer/picture taking code very tied to how it did stuff, dependent on Gtk, etc. So using it as an example I wrote a simple Camera class that returns the raw RGB buffer, and a PixbufCamera subclass that has the exact same interface but returns a Gdk.Pixbuf. With these two classes we can write awesome, Pippy-ish scripts, like a time-lapse photography program:
from pixbuf_camera import PixbufCamera

time_lapse = 60 * 60 * 4 # Take pictures over a 4 hour period
freq = 120 # Take them every 2 minutes
camera = PixbufCamera ()

for i in range(0, time_lapse/freq):
  pixbuf = camera.takePicture ()
  pixbuf.save ("series/test_%04i.jpg" % i, 'jpeg')
  time.sleep (freq)
Using this program on the XO I captured this outside my window today (and scp'd it to my computer): I'd like to add video support and expose a bunch of gstreamer properties so you could create a time-lapse Ogg Theora video instead of JPGs. Perhaps eventually this camera API could be used by the Record activity itself. I really need to buy some mirror fragments and build a clip-on device for XOs so you can photograph things in front of it (meaning you can film something and use the computer simultaneously).

Working on Banshee

Not long ago Novell offered me the opportunity to do my hobby full-time, an offer I couldn't refuse. I loved working with Ruby and Rails and my Chicago-based team for IBM, but making Free Software multimedia apps and making the success of the Free Desktop my professional goal as well as personal, not to mention working from home, made the decision to move on less difficult. Aaron and I are working on two branches of Banshee, the stable branch, from which we will have one more release, and trunk, where we are wreaking havoc (+28268/-32325 lines in the last few weeks) and reorganizing, refactoring, and rewriting Banshee. Not all the excitement these days is from the huge changes in trunk. Over the last couple weeks I've created a Last.fm radio plugin for Banshee that is now working quite well and will ship (disabled by default) in the next release.
Playing Last.fm radio in Banshee
With Banshee's mini-mode plugin on
Unfortunately it will only run on the latest from the stable branch, so either check that out or wait for the next release. Feel free to join us on #banshee on irc.gnome.org, our mailing list, or our forums. Update: Wanted to thanked Iain and the rest of the Last Exit team for inspiring me and giving me an example to work from.

Thursday, November 8, 2007

Funky Green Chicago

Erica and I went to the Funky Buddha Lounge tonight for a party in connection with Green Build, happening this week in Chicago. The place is indeed funky - especially because we arrived before the party started, the venue appeared abandoned, and it was sub 40F outside. Once the party began, however, the place came alive with great ambiance, music, organic beer, and people. I had a wonderful discussion about many topics including Free Software computer aided design with a partner at a leading green architecture firm. Need to look at Open Architecture Network and FOSS CAD efforts and see where we can take the idea. In related news, the book Erica helped author, produce, and finish, Sustainable Urbanism: Urban Design With Nature, is now out and selling well (already #48 in Urban Planning on Amazon).

Saturday, September 22, 2007

F-Spot's Tag TreeView

I recently fixed up F-Spot's tag TreeView. Right clicking on or dragging several tags used to be practically impossible, and there was no way to make a tag toplevel (having no parent tags) with DnD.
F-Spot's Latest Tagging Improvements
Reparenting two tags to Banff
I put the code for the right click/dragging fixes (most of which came straight out of the nautilus code, thanks!) into a reusable TreeView subclass in case others are in need. If you haven't used F-Spot for a while (or haven't yet discovered this feature), you might notice you can make the icons next to your tags smaller now (or even turn them off). That feature has been in since early March, courtesy of Stephane.

Tuesday, August 7, 2007

Cracken Beagle

I am sick of Jamie justifying his attacks and negativity toward Beagle with the juvenile "they started it."
"Beagle devs still have big problems with stablity and memory usage and they admit themselves its no where near ready....Tracker also has much more support from Gnome devs with a greater willingness to integrate so its inevitable that tracker will become mandatory anyhow in Gnome sooner or later." -- Jamie McCracken, Nov 2006
I am a GNOME developer who disagrees. As I mentioned during Jamie's talk at GUADEC, I do not see how using Tracker as a replacement store for applications like Banshee is plausible. Tracker stores its data in a set of tables with three columns, URI, key, value. So for Banshee, you would have one row for each attribute (key) of metadata for each audio file. Such a store is going to be much larger on disk (since it has to store the URI and key for each attribute) and take impossibly longer to run useful queries. Jamie estimated it would take roughly 5 seconds to return the information for 10,000 songs - something that takes an optimized, specialized database a fraction of the time. I'm sure there are cases where a centralized triple-store could be useful (tagging), but Jamie's promise of "a synergy of technologies that are designed to provide a highly sophisticated, innovative and integrated desktop", this all-singing, all-dancing bear, is unrealistic and distracting. Lastly, when F-Spot was proposed for inclusion in the default Ubuntu install, there was much discussion. I have found little discussion regarding the recent decision to include and turn on Tracker in the default Ubuntu install, and this concerns me.

Thursday, July 19, 2007

Defining Free Services

With Mako's blessing, I have started a wiki page hosted on Freedom Defined for working on the Free Service Definition. Please create an account and help us work out what it means for a service to be free, respecting users' freedom and privacy.

Tuesday, July 17, 2007

Free Service License

State of Thought I've been thinking about, discussing, and exploring the issue of what I'm calling Free Service Licensing. The core idea is to protect users' freedom when they use services (gmail, flickr, todocue, etc) — to standardize Terms of Service/Privacy Policies so users know how a service will respect their freedom and data. I started brainstorming ideas for what a Free Service License (FSL) could look like/contain. Here's what I have so far: 0. Uses all Free Software 1. Uses free/standard data formats if possible 2. Provides trivial and costless data export for backup/transferability 3. Keeps information private except with explicit permission. 4. Deletes all of user's records within N hours/days of closing account 5. Doesn't log personally identifiable information 6. Limits liability for provider 7. Protects trademark/naming rights of provider Perhaps two versions, a FSL and LFSL, could exist, with the LFSL not containing requirement 0. When I made TodoCue public, I wanted people to know that I respect their freedom. For many reasons, the best I could come up with was this paragraph. Having a standardized FSL would make the decision to become a freedom-respecting service provider simpler and less risky. Naturally, one requirement of FSL services would be that they do not incorporate/contain non-FSL services (like many third-party advertising or statistics providers). Given a critical mass of FSL services or at least mindshare, we might even see FSL versions of Google AdSense, Analytics etc. State of Freedom After I wrote most of the above, I was pointed to work being done by others. The Affero GPL is GPL plus a requirement that service providers must provide source of modified network applications, even if there isn't a transfer of code in the normal desktop-application sense. I am not releasing TodoCue as open source until I figure out what makes more sense: the AGPL, or a different license that goes beyond AGPL, requiring any services that use it to be under the FSL. OSCON, coming up on July 24th, includes Eben Moglen talking about Licensing in the Web 2.0 Era and Tim O'Reilly talking about The Cathedral AND the Bazaar and the "six axes of open source". Alex Barnett posted a good summary of related discussion over the last several months. Update: Havoc just finished his keynote at GUADEC related to this. It provoked a lot of good discussion that I hope will lead to the creation of a Free Service License (or Open Service Definition as Havoc called it), not to mention the Gnome Online Desktop.

Friday, July 13, 2007

Tribune Corrections & BBC Picture Feeds

I created a dapp (here in RSS) of the Chicago Tribune's Corrections page. Next I want a feed with the BBC's pictures inline so I don't miss shots like this (see #2). Update: Announcing the BBC Picture Feed, brought to you by the BBC, dapper, Yahoo! Pipes, and me!

Thursday, July 12, 2007

OpenMoko Neo1973 and iPhone

I shot these while at dinner last night with an awesome group of Chicago techies:
iPhone and Neo1973
iPhone showing TodoCue
The idea of a simple todo app for the Neo1973 was the original inspiration for TodoCue's creation and design. It doesn't render as well on the Neo as the iPhone, but that will change. I need to read up on how to support double clicking and DnD on these devices. I bought a prepaid sim card off eBay for $6 at Harper's suggestion. I'm psyched about the applications we can create on the mass-market Neo1973 coming in October, with it's GPS, accelerometers, 802.11, accelerated graphics, and free platform.

Friday, June 15, 2007

TodoCue Action

With some strategic caching, TodoCue processing times are down from the 200ms range to less than 1ms for many (repeat) requests. New features include embeddeding in iGoogle by using this gadget, cancelling editing with Esc, and saving by clicking away from an item. The app is now translated into Español, Français, Slovensky, and Svenska. I'm looking forward to seeing what snazzy styles people customize their TodoCue with (via the custom CSS field under Account). Send them to me and I'll make them options for all users. As a side note, I plan to release the code under a FOSS license; stay tuned. Digg TodoCue

Sunday, June 10, 2007

Embedded TodoCue

I created a Firefox extension that puts TodoCue on the sidebar in GMail and Google Calendar. (With the extension's preferences you can actually pull in any URL).
Also, you can now drag and drop todos between lists. If anyone wants to help, the app is ready to be translated. For an idea of the response so far, there have been 79 new users and 1k visitors since I first blogged about todocue. It's a simple project with a simple goal, and I'm thrilled if it's been useful to people. Note: if you have an addons.mozilla.org account you can help get the extension onto the public site. Update: TodoCue is now translated into Swedish by Daniel Nylander and Slovak by Michal Harakal!

Tuesday, June 5, 2007

Kickin it Standards Style

I added iCal and XML feeds to TodoCue today. Here is an iCal feed configured as a web todo list via Evolution and put onto my desktop calendar:

Monday, June 4, 2007

Chicago: Pot of Gold

The most amazing rainbow was over Lake Michigan an hour ago. I ran to the roof and snapped some pretty pictures, though they do the experience little justice.
Update: Not sure how this disappeared from the web; sorry for the repost.

Sunday, June 3, 2007

Cue the Action

A few weeks ago I wrote a small webapp in Rails that I've dubbed TodoCue. It is a simple, slick todo list program.
Feel free to sign up.

Thursday, May 31, 2007

Inspiration by Media

William McDonough I've read Cradle to Cradle, but McDonough is a brilliant speaker. He is pushing the edge in ecological design, and has the ear of the Chinese government. Cory Doctorow Cory spoke very well at the Red Hat Summit a few years ago. Google has an amazing number of videos of him, plus there are his lectures from the course he taught at USC this year. Lawrence Lessig I think I got to this via Miguel's blog a few years ago, but Lessig's amazing free culture talk/slideshow is still outstanding and educational. Others I've recently enjoyed talks by Burt Rutan and Jane Goodall. The quality of the speakers you can watch at TED, Authors@Google Talks, and others blows my mind. Who inspires you?

Tuesday, May 1, 2007

Stop Illegal Spying

The EFF has put out a call to action to stop President Bush from giving corporations immunity for helping with illegal spying.
The Senate Intelligence Committee's hearing on the bill is now set for tomorrow [May 1] and only the Administration will be allowed to testify.
The hearing is also closed to the public. Sign the petition and make sure your representatives know where you stand.
Stop Illegal Spying
In other news, big surprise, Facebook is a bunch of sellouts willing to censor and marginalize communities that don't meet the approval of certain countries. Hard to believe they're not censored anyway.

Tuesday, April 3, 2007

Banshee, OLPC, Flourishing

Banshee Bookmarks If you use Banshee to listen to audio books, lectures, or similar, you'll enjoy the new Bookmarks plugin I committed tonight. It will ship with Banshee, but be disabled by default.
OLPC The latest build (368) is much faster, more responsive. I finally really played around with TamTam and eToys; what a blast! I also submitted my first patch to Sugar. Flourish There is a Linux conference called Flourish being held this weekend, April 6 and 7th, at UIC in Chicago. The conference is free if you register in advance. There will be speakers from Google, IBM, Red Hat, FSF, and Drupal. I'll be attending a couple of talks and the mixer (held at my office), and I'll bring my XO and Neo1973.

Sunday, March 11, 2007

Emissions Sensing

I just finished putting together the first three prototypes of the emissions sensing device I'm helping design for Engineers Without Borders. The idea is to sense CO, CO2, and particulate matter levels near indoor cook stoves so the stoves can be modified to be safe and efficient. Around two billion people live in households that use solid fuels with poor combustion and ventilation. A year ago Professor Tami Bond gave a great presentation explaining the history of efforts to prevent the health and environmental problems caused by wood stoves and how the problem is being approached today (including our effort).
Top prototype showing the menu in Spanish, middle showing the language selection dialog, and bottom showing the data screen.
There is still a lot to do, including finalizing our choices for sensors, getting the device running on batteries, and getting PCBs made. Our entire effort (firmware, hardware, documentation) is open-source, released under the MIT license. Unfortunately we are currently using a proprietary C compiler as no FOSS compiler for our microprocessor (PIC18F4455) seems to exist.

Thursday, March 8, 2007

Relative Scale

The XO has surpassed my expectations. Sugar is intuitive, and the activities show a ton of promise. On the Neo1973, I tried the dialer with a Cingular SIM card, but as warned, it is unstable and crashed.
OLPC XO B2, Lenovo T60p, and Neo1973

Wednesday, March 7, 2007

Open Devices

I'm thrilled to have received my Neo1973 today. Thank you to FIC and the people behind it! I am excited to contribute to such an important project. The developing world is bypassing PCs in favor of cell phones and the XO. OLPC and OpenMoko rock for bringing freedom to the only computing most of the world will ever know.

The goods: Neo1973 and accessories. Note GPL printout.
The phone feels wonderful and is slimmer than I expected. The black and silver design is gorgeous.

Phase0 Neo1973 phone and the author.
The world is changing and fast, and as if to impress this upon me further, my XO B2 machine arrives at the office tomorrow.

Monday, February 26, 2007

Medsphere Opens

Congratulations to Brad, Peter, and all of Medsphere for releasing OpenVista. Better health care is a very noble mission, and that Medsphere seem to realize the importance of free software and open standards (open access, longevity, avoiding vendor lock-in) is superb. Related links:

Wednesday, February 14, 2007

Introductions All Around

Hello Planet Gnome! About Me I work for IBM, currently on the SME Toolkit project. I live in Chicago. In my free time I hack on F-Spot (new query functionality, hjkl navigation, window size/position preferences, etc) and Banshee (smart playlists and USB audio device support). I also work on a project with Engineers Without Borders developing an embedded system for sensing air quality to improve cookstove design and construction in the developing world.
Preparing to fly in December
Gegl# GEGL is a library for serializing and evaluating sets (actually graphs) of manipulations on images. We hope to use it for F-Spot to allow users to make changes to images and later tweak those changes and/or apply them to other images. To this end, I committed a first, rough version of Gegl# to Gnome SVN.

Thursday, January 11, 2007

F-Spot Power

I've been using F-Spot quite a bit since putting my photos on an external drive and using F-Spot's ability to store it's database where I choose (with -b dir). While tagging my 3,235 photos I found myself using the mouse or arrow keys to select photos to tag using Nat's awesome tag bar. To make this process smoother and avoid fingers leaving the home row, I committed support for using hjkl as left, down, up, and right respectively (like vim does). Now the process is smooth as butter: hjkl to move the focus combined with shift, ctrl-shift, and spacebar to change the selection; t opens and focuses the tag bar; tab completes; enter and esc return focus to the photo selection. Now all I need is GEGL-powered reusable, adjustable image manipulations and p2p album sharing.