Author Archives: Eric Gregory

Shotwell 0.13 to drop JPEG support

JPEG compression artifactsYorba announced today that Shotwell, their flagship photo organizer software, will become a lossless-only photo manager with the upcoming release of version 0.13.

Lossless-only means support for legacy image formats such as JPEG will be dropped, a forward-looking move Yorba founder Adam Dingle praised as “position[ing] Shotwell a generation ahead of competing photo management solutions.”

Upon installation, Shotwell 0.13 will upconvert the user’s existing JPEG image files to the lossless DNG format.

Users requiring additional space for their upconverted photos will be directed to a site where they may purchase a new hard drive.  A percentage of proceeds from these purchases will fund Shotwell development.

Yorba is confident that this is a positive step for photo management.

“Think of it this way,” said Shotwell lead developer Lucas Beeler, “If I bought a four terabyte hard drive but only used two terabytes, I’d be wasting half the drive.  Free space equals wasted money, which means Shotwell 0.13 users will get more out of their computers than they did with Shotwell 0.12.”

As Yorba’s Jim Nelson wrote on a blog post, “As a Gnome application, our goal is simplicity. Dropping support for legacy formats such as JPEG is one step toward that goal.”

Posted in Announcements | Tagged , , , | 12 Comments

Avoiding the association by hash map anti-pattern with GObject

There’s a common anti-pattern in software design that I call “association by hash map.” Rather than explain this in words, let me illustrate it in Vala:

HashMap<MyClass, string> name_map =
    new HashMap<MyClass, string>();

name_map.set(an_object, "Foo");
name_map.set(another_object, "Bar");

stdout.printf("an_object's name is %s\n",
    name_map.get(an_object));

“But wait,” you’re saying, “Couldn’t we just add a name field to MyClass and remove the hash map?”

YES! That is exactly what you should do — if you can.

But what if you can’t?  Adding a field isn’t always an option.  Perhaps MyClass is someone else’s API.  Or even if it’s contained entirely in your code, the name field might only make sense for a single use-case.  No reason to add an extra field to your class if it doesn’t truly belong there.

So what to do? Is there a better way? If your class is based on GObject, you’re in luck.

During a recent code review, Jim pointed out to me that GObject has methods for attaching arbitrary named data to an object.  In our example, we can use the simplest of these methods, gobject_set_data() and gobject_get_data() which use simple key/value pairs.

const string NAME_PROP = "name";

an_object.set_data(NAME_PROP, "Foo");
another_object.set_data(NAME_PROP, "Bar");

stdout.printf("an_object's name is %s\n",
    an_object.get_data(NAME_PROP));

Isn’t that better?  No more extraneous hash maps, all the data is stored right in the object itself where it belongs.  And you didn’t even have to modify the class!

In closing, if you’ve dealt with the association by hash map pattern before you now know a way to avoid it with GObject.  And if you haven’t, I envy you.

Posted in Hacking | Tagged , , | Leave a comment

Help test Shotwell with the daily build PPA

Great news for folks helping test Shotwell on Ubuntu 11.10 (Oneiric) — we have a daily build PPA for you!

WARNING: Shotwell daily builds are for testing purposes only. We highly recommend that you only manage your important photos with a release build.  Please backup your ~/.shotwell folder and your Pictures folder before installing and testing with this pre-release version of Shotwell.

Okay, you read that warning, right?  Great! The PPA address is: ppa:yorba/daily-builds

If you find any issues in testing, please report them here. For more details on providing the best possible bug report see our FAQ.

Posted in Shotwell | Tagged , , , | Leave a comment

Continuing adventures of the Travelling Gnome

For the past month the Yorba offices were home to a strange two-faced creature.  As of today, the little guy left our offices to embark on the next stage of his journey around the world.

Here’s some vacation photos of the Travelling Gnome’s stay here in San Francisco.

Taking in the view at Dolores Park

Checking out the cable cars

Visiting the historic Mission San Francisco de Asís

Counting sheep

Enjoying a latte

At a San Francisco GNOME hacker meetup

For more on the Travelling Gnome, visit his website.

Posted in GNOME, Yorba | Tagged , | Leave a comment

PirateBox at Yorba

The strangest item on my desk — at the moment — is a PirateBox.

What is a PirateBox, you may ask?  At first glance it appears to be a Jolly Roger lunch box plugged into the wall.

But it’s more than that; it’s a wifi network for sharing files locally. All you have to do is point your wifi-enabled device at the “PirateBox” network, open a browser and try to load any page. You’ll be directed to a list of files to download and given the opportunity to upload your own.

At the moment, it’s filled with an assortment of video game music, an important textfile about Pascal, and a free album by gangsta nerd rap superstar ytcracker.

It’s all anonymous, at least as anonymous as any unsecured wifi network can be. The device isn’t connected to the internet so you have to be in (or very close to) our office to use it.

I built the box using an router capable of running open source firmware, following directions on the official PirateBox wiki. The storage is all on a cheap USB thumb drive.  Everything was installed and assembled at our local hackerspace, just around the corner from the office.

As far as hobby electronics projects go this one is pretty simple to do, relatively cheap (less than $150 USD) and occasionally exciting as unexpected new files show up.

Posted in Hacking | Tagged , | 2 Comments

Shotwell 0.11.1 released

Today Yorba has released Shotwell 0.11.1. This is a bug fix release; we recommend all users upgrade.

Changelog:

  • RAW+JPEG pairing now works on file import
  • Startup crashes fixed
  • Hierarchical tag issues resolved
  • RAW developer bugs fixed
  • Resolved internationalization problems
  • Various small fixes and enhancements

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

Binaries for Ubuntu Natty is available at Yorba’s Launchpad PPA:
https://launchpad.net/~yorba/+archive/ppa

Posted in Announcements, Shotwell | Tagged | 1 Comment

Shotwell 0.11.1: Call for testing

Shotwell 0.11.0 is here, and you know what that means — time for Shotwell 0.11.1.  We rely on our users to help test Shotwell to make it the most polished and stable photo manager possible.  But we can’t do that without your help.

Never done testing with us before? It’s easy! Here’s how.

1. Back up your Shotwell database (recommended)

This is as simple as making a backup copy of the .shotwell directory in your home folder.  The Shotwell FAQ explains backups in detail.

2. Run Shotwell

Run Shotwell 0.11.0 or run from Git. Play around with your favorite features, try doing crazy things,  and make sure everything works the way you expect.

3. Report a bug

Found a bug? If you haven’t done so already, sign up for Yorba’s Redmine bug tracker and then file a new ticket.

If you’ve found a crash in Shotwell, there’s a section in our FAQ which explains how to generate a log that can help us diagnose the issue.

Posted in Shotwell | Tagged | 3 Comments

Computer problems

I was having trouble with my computer — it didn’t want to boot.  So I opened it up, and look what was inside!


Not sure where the little guy came from, but in any event we’ll have to keep him away from computers.  Won’t be a problem for long though, as in the near future he’ll be embarking on a series of travels.

Posted in GNOME, Hacking | Tagged , | Leave a comment

Shotwell 0.11.0 Released

Today Yorba is proud to announce the release of Shotwell 0.11.0.  This is the latest version of our photo management software.

Changelog:

  • Hierarchical tags
  • Support for RAW+JPEG and selectable RAW developer
  • Switched from GConf to GSettings
  • “Hide Photos Already Imported” is now persistent
  • New Saved Search options
  • Mimics no longer stored in home directory
  • Added support for BMP format
  • Many, many bugfixes

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

Binaries for Ubuntu Natty will be available soon at Yorba’s Launchpad PPA:
https://launchpad.net/~yorba/+archive/ppa

Posted in Announcements, Shotwell | Tagged | 8 Comments

Shotwell 0.10.1 Released

Yorba has released version 0.10.1 of Shotwell, an update to our digital photo organizer. This is a bug fix release; we recommend all users update.

Changelog:

  • Fixes “Hide Photos Already Imported”
  • Multiple editing bugs fixed
  • Resolves crash when two or more cameras have the same name
  • Documentation now includes saved searches
  • Piwigo bugs fixed
  • Translation updates

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

Binaries for Ubuntu Natty and Maverick are available at Yorba’s Launchpad PPA:
https://launchpad.net/~yorba/+archive/ppa

Posted in Announcements, Shotwell | Tagged | 11 Comments