Yorba

Jim Nelson's Blog

Dinner with Yorba

| 10 Comments | No TrackBacks

Last week at the Linux Collaboration Summit in San Francisco's Fillmore District, Yorba hosted a dinner with a gaggle of GNOME folks.  We met at Sheba Piano Lounge for drinks and some mighty tasty Ethiopian food.  A jazz trio played just a few feet away and a neighboring birthday party treated us to slices of their cake.  I thought it was a wonderful evening -- thanks to everyone for attending!

Cocktails at Sheba
The gang's all here
Rob and Dave
Dinnertime

Shotwell video review

| 6 Comments | No TrackBacks

Our first video review, from LinuxFileSystem.com:


Shotwell 0.5.0 released

| 26 Comments | No TrackBacks

Yorba has released Shotwell 0.5.0, a major update to our digital photo manager.  This release includes a host of new features, including:

* Photos can be tagged and organized by tag, creating a new tool for managing your photo collection
* Printing
* Photos can be published to Google's Picasa Web Albums service
* Photo exposure date and time can be set and shifted
* Photos can be set as your desktop background directly from Shotwell
* Photo import runs in the background, making imports smoother and more fluid
* Publishing photos to web services is more responsive
* New or updated language support for French, Italian, German, Simplified Chinese, Bulgarian, Danish, Dutch, Estonian, Polish, and Portuguese.
* Other stability and performance improvements

We highly recommend that all Shotwell users upgrade.

Yorba would like to thank all of our bug testers and translators, without whom this release would not have been possible. We'd like to specially thank Martin Olsson, for his rigorous testing of Shotwell 0.5, and Kaj-Ivar van der Wijst, for his stylish redesign of the Yorba website.

We'd also like to think our friends at Red Hat for making Shotwell the default photo manager in Fedora 13 alpha!

You can download a source tarball from the Shotwell home page at: http://www.yorba.org/shotwell/

or grab a binary for Ubuntu Karmic or Lucid via Yorba's Launchpad PPA at: https://launchpad.net/~yorba/+archive/ppa


One of the features I'm proud of in Shotwell 0.4 is our undo/redo system.  (Kudos to Rob Powell for turning me on to the Command pattern.)  Thanks to abstractions in our primary data structures, it was easy to build a set of base Command classes that deal with these generic objects in generic ways.  That's why our undoable crop command is only 13 lines of Vala code -- and that includes the class boilerplate.

When Adam first spec'd Shotwell (wa-aaa-y back in February/March of last year), he generated a slew of tickets for features he knew we wanted eventually, but in no particular order of priority.  We knew we wanted undo but didn't know when we'd add it (or even what would be undoable).

When I first attacked the problem in November, I pointed out that coding undo does not give you redo for free.  So, Adam created a separate redo ticket in case it had to go in later.

As it turned out, I implemented Redo alongside Undo.  I was elbow-deep in the code and I could see how to get redo implemented on all the various commands, and sometimes in generic ways.  (This is why crop's so small.)

That was pretty satisfying, closing ticket #65 and #1001 in the same commit.  Now, some of those tickets in between aren't for Shotwell, but certainly a lot of them are.  It felt like nailing the 7-10 split in bowling.  I'm a horrible bowler, and I only remember making that shot once.  Closing two tickets separated by 936 others is likewise satisfying.

An article I wrote for The GNOME Journal about writing Linux multimedia applications with Vala is now posted.

Also, Adam and I are at FOSDEM 2010 this weekend.  We'll be floating around, probably spending most of our time in the GNOME room.  If you see us, come on up and say hi.

You know that any post about deactivating HAL will, at some point, link to a bucket of bolts singing "Daisy Bell", so I'll do it now and get it over with.

The past couple of days I've been removing from Shotwell the deprecated (and despised!) HAL.  Shotwell's reliance on HAL is minimal.  Most hardware interaction is through gPhoto.  What Shotwell needs is notification of devices being attached or detached (to run a gPhoto auto-detect) and a way of mapping USB ports to gPhoto camera objects (due to some legacy libusb port-naming stuff -- see this and this).  udev is the preferred replacement (although there's still some information out there saying to use DeviceKit; don't).  Unfortunately, there's no Vala bindings for gudev (a GObject-wrapper), so I had to build my own.

It turns out the Vala documentation for making bindings for GObject-based libraries has improved considerably, and I had a workable VAPI in just a couple of hours.  (It's here for those interested in its state.)

gudev has a signal for when devices are added, removed, changed, etc.  That's good.  However, it doesn't provide a way to get subsystem-specific device information (i.e. whether a USB device is a PTP camera).  The solution was to walk the USB bus (via libusb) and match bus/device IDs with gPhoto's auto-discovered port strings.  And that's all there was to it.

HAL offered everything we needed (signalling and USB-specific device type information), so I can't say I'm on the good-riddance bandwagon.  I'm not cheerleading for it either, though  Like a casual acquaintance with whom you don't have much in common, it's easy to say sayonara to HAL.

Shotwell 0.4.0 released

| 22 Comments | No TrackBacks

We've released Shotwell 0.4.0, Yorba's photo organizer for the GNOME desktop.  We've been cranking along the past two months (has it only been two months?) to get this version out before the end of December, and the hard work paid off.

Probably our most-requested feature to date has been publishing photos to Facebook and Flickr.  Shotwell 0.4.0 now offers both.  I'm pleased with the result, especially being able to log in to these services in Shotwell itself rather than through an external browser.  We have big plans on making Shotwell play well on the Web and with other Web services, so stay tuned.

Other big additions include more language packs, thanks to the work of translators from around the globe.  Shotwell 0.4.0 features complete or all-but-complete translations for Italian, German, Polish, Estonian, and Swedish.

Finally, Shotwell 0.4.0 has been ported to Windows and a binary installer is now available.  This is an alpha release with some limits, including a lack of camera support and no Facebook/Flickr publishing.  However, we were surprised with the (relative) ease of porting Shotwell to Windows.  GTK and Vala's portability were a huge boon in this process.

We're always looking for feedback, so let us know what you think.  Hope you enjoy!

Lucas noticed today that Shotwell is the featured project on Transifex's home page.  They describe it as "awesome".

Thanks Transifex!  Great news to hear.

Vala and C warnings

| 2 Comments | No TrackBacks

We're frantic here at Yorba working to get Shotwell 0.4 out the door before the holidays, but I wanted to take a breather and point out a positive trend I've noticed with the Vala compiler.

As you may or may not know, Yorba is a 100% Vala shop -- well, maybe not 100%, but the sliver of code that's not Vala (and I'm including Make as a kind of scripting engine) is present only out of necessity.

We were sold on Vala from just about the beginning of Yorba's existence.  One major concern was the number of C warnings gcc spat out when compiling valac's generated source.  I'm from the medieval school of thought where Wernings Shalt Be Treatyd As Errours, but unfortunately there's little recourse with a system like Vala.  Each warning had its own root cause.  There was no central fix that could be made to the compiler, nor was it a simple matter of rewriting the offending line.  Many warnings were due to const-correctness.

Recently I've noticed fewer warnings than ever.  Shotwell is approaching the 25,000-line ceiling (according to wc, blank lines stripped) and I was curious what kind of trend there's been on warnings.  It's positive all right:

18-Mar-2009 Vala 0.5.7: 746 lines, 4 warnings, 0.54% lines generating warnings
12-Apr-2009 Vala 0.6.1: 2,789 lines, 8 warnings, 0.29%
20-Apr-2009 Vala 0.6.1: 3,160 lines, 11 warnings, 0.35%
26-May-2009 Vala 0.7.3: 6,347 lines, 57 warnings, 0.90%
28-Jun-2009 Vala 0.7.3: 8,663 lines, 79 warnings, 0.91%
18-Sep-2009 Vala 0.7.5: 15,270 lines, 131 warnings, 0.86%
17-Dec-2009, Vala 0.7.8: 24,591 lines, 56 warnings, 0.23%

I suppose I could go crazy with the graphs, but you get the point: Shotwell's code size is growing and the rate of warnings are dropping.  The big leap was between 0.7.5 and 0.7.8, which justifies my hunch that this was a recent development.

(I ran 18-Mar for giggles.  I don't think a program under 1,000 lines is worth measuing in this context, but it's fun to remember when Shotwell was just a tot.)

Zero warnings are, of course, the final goal here, but I'd say that Vala's largest improvement of late has been its growing silence.  When you think about it, that's what you're really wishing for when you type "make".

Find recent content on the main index or look in the archives to find all content.

Recent Comments

  • aaa: Great application. Add sharpening and you have won me. :) read more
  • Andre: Nice program - works well. I hope that you will read more
  • Rob: Nice photo manager. Downloaded it for Mint9 last night. However read more
  • Jim Nelson: PNG support will be available in 0.6. -- Jim read more
  • Gerald Britton: Hi -- I found I couldn't import a png file read more
  • Gerald Britton: No png support? I tried to drag-n-drop a png file read more
  • Jim: Yes -- File -> Import From Folder does just that. read more
  • Jerry: I started Shotwell, selected Import from folder, navigated to my read more
  • Jim: I'm not sure what you mean, it grayed them out. read more
  • Jerry: Hi -- saw that Fedora 13 uses this instead of read more

Recent Assets

  • Dinnertime
  • Rob and Dave
  • The gang's all here
  • Cocktails at Sheba

Categories

Pages