F-Spot 0.7.2 Released!

I’ve just pushed F-Spot 0.7.2 out into the world, four weeks after the F-Spot 0.7.1 release. This was a very busy cycle (in part due to GUADEC), but despite all that we’ve continued our path of fixing loads of bugs (closed over 50 of them) and making it generally much more solid.

No big earth-shattering user-visible new features in this release: the focus has mostly been on fixing breakage and solidifying what we have. All of this to make sure that F-Spot 0.8.0 (the next release, in 4 weeks from now) will be stable and supportable over a long period of time. This will allow us to make big and radical changes during the 0.9 cycle, which starts together with the 0.8.0 release and will last for 6 months. More on that in a future post.

Get your hacking shoes on.

You can now build, develop and debug F-Spot in Monodevelop

From a developer point of view, there was a very big change though: F-Spot can now be completely built using the Monodevelop IDE. You still have to do the initial ./autogen.sh; make; make install to make sure all the native code is built, but afterwards everything can be done in Monodevelop.

We want to make it super trivial to dive in, similar to how things work in the Banshee Awesome Factory (Gabriel Burt gave a great talk about this at GUADEC 2010, check it out once the recording is online!). This is an ongoing process.

Getting the code
You can get all of this goodness through GNOME FTP, the OpenSUSE build service or the F-Spot team PPA (packages will be up shortly). More info can be found in the full release announcement.

Posted in Uncategorized | Tagged , , | 3 Comments

Summer of Code Lightning Talks at GUADEC

Tomorrow at GUADEC there will be a session on Google Summer of Code. It will be structured as a lightning talk session where the students will do the talking and present their projects. Attend the session if you want to see the cool stuff that is coming up. It starts at 11:15 in the Paris room. Be there!

Each student maintains a wiki page with information about their projects. You can find these on the GNOME wiki.

The main hall at GUADEC 2010

Posted in Uncategorized | Tagged , , | Leave a comment

Diving into the unknown: Looking for a new job

After long and careful consideration, I’ve made the decision to announce that I will be quitting my PhD position in a few months. I firmly believe that you should do what you are passionate about and over the past few months I have come to realize that I am not in the right position. I have a passion for solving real-world problems and working on projects that ship out into the world, as opposed to theoretical nature of the academic world. I also thoroughly enjoy the collaborative nature of the free/open-source world, which brings an environment of open collaboration that is less present in the academic world. This had to be compensated by many sleepless nights of therapeutic hacking (on F-Spot), to maintain my hacker sanity. Not a healthy situation and for that reason I decided to dive into the unknown and look for a place where I can work like mad and enjoy it at the same time.

This also means that I will be available for hiring starting on October 1. If you are looking for a great GNOME hacker and have something exciting to offer [1]: I’m willing to talk and I will be at GUADEC next week. You can find my CV here.

[1] Note that this should not strictly be a GNOME hacking job: I’m interested if the job poses a good technical challenge and occasionally gives me the chance to fly around and meet interesting people. Bonus points if it allows me to work on GNOME-related technologies (desktop or mobile).

Leuven at night.

I will also be doing a short lightning talk about the state/future of F-Spot at GUADEC. Five minutes, so it’ll be extremely fast, but I’m around all week to discuss it in greater detail. Hope to see you all there!

Posted in Uncategorized | Tagged , , | 3 Comments

F-Spot 0.7.1 Released!

Four weeks after F-Spot 0.7.0, we are happy to announce the immediate availability of the second release in the 0.7 development series: F-Spot 0.7.1. This series will lead up to the release of F-Spot 0.8.0, which is scheduled for the beginning of September, well in time for inclusion in the major distributions. Here’s an overview of some of the major changes in this release:

Better metadata through Taglib#
One of the larger sources of instability in F-Spot was the sometimes fragile handling of metadata. After careful consideration, Mike Gemünde and I chose to extend the Taglib# library used by e.g. Banshee and add image support to it (code on gitorious). We have been working on this for almost a year and it is now in a usable state. This brings us much better metadata handling in F-Spot, backed with an extensive regression suite so that we’re actually sure to be handling your data safely. It also brings us fun features like full support for XMP sidecars, a must for those worried about file integrity.

This work isn’t done yet, there might be issues with files we haven’t encountered yet and not all RAW formats we used to support are understood right now. We will make sure all of this is fixed before 0.8.0. If you run into trouble, please file a bug.

Remove from camera
The importer now gives you the option to remove files from the camera after a successful import. We’ve long refused to add this because it is generally not a good idea to do so: you should really backup first. However, you are also free to do what you want. Now you can.

The little warning button pops up a warning that explains how you should really backup first before doing this.

Piles of cleanups, back to lean and mean
We’re working with a long-term vision here: part of the goals of the 0.7 series is becoming lean and mean again, cleaning up the codebase and making F-Spot maintainable/hackable again. This means that a lot of work happens behind the scenes. Probably the best way to illustrate this is this pretty graph from Ohloh:

The interesting part is on the far right: steadily dropping.

On the far right you can see how we’ve been steadily reducing the amount of code from well over 200K lines to somewhere in the mid 100K. All of this while improving and adding stuff. We’re truly building the foundation for the future here.

Bugs!
And finally, there’s over 85 bugs closed. Similar evolution as the LOC number here: fixing faster than it is growing.

Goodie, I want!
You can get all of this goodness through GNOME FTP, the OpenSUSE build service or the F-Spot team PPA (packages will be up shortly).

More info
More info can be found in the full release announcement. This release would have not been possible without all the people (code from 18 persons!) that contributed to it. Many thanks to them. A full overview is in the announcement.

Posted in Uncategorized | Tagged , , | 14 Comments

F-Spot 0.7.0 Released!

After a month of intense hacking, we have just released F-Spot 0.7.0, the first release of the unstable 0.7 series, which will lead up to a stable 0.8.0 in September. This means radical changes, possible breakage (which we try to avoid) and generally a lot of progress.

The goal of thus cycle is to replace as much code bits by Banshee-code (where possible), clean up, refactor, blingify. All of this will make it much more stable and hackable, allow us to solve some of our long standing issues (performance / memory usage) and do more radical changes (on the UI and internally).

Highlights of this release
Import has been rewritten completely, to make it more hackable and less crash-prone. Along with that, there is now duplicate detection that actually works. Another side effect is that it should be much faster and use a lot less memory (unless you are importing from a PTP camera, that’s quite slow currently, I recommend a cardreader).

Faster import

Much faster and less memory hungry import, with duplicate detection that works flawlessly

Anton Keks implemented reparenting and detaching of versions. This means that you can combine multiple similar photos (e.g. bursts of photos). You can also detach versions of a photo into a separate photo. Very handy to organize large amounts of very similar photos.

Reparenting

You can combine photos by simple drag-and-drop.

It is now possible possible to select photos by mouse drag and to pan around in photos using the middle mouse button. To very basic features that were missing for way too long. Facebook support has been fixed and there is a brand new user manual. And finally, we’ve seen a large amount of code being replaced by the Hyena (part of Banshee) equivalents (this is an ongoing process) and there were over 100 bugs closed. A full overview of all the changes can be found in NEWS.

What’s next?
In the next release we’re planning to continue our current effort. One of the highlights you can expect is a brand new and extremely tested metadata layer we’ve been building for almost a year now. It will also bring more performance and stability improvements plus plumbing work that will allow us to build really exciting new things. More on that in the recent meeting minutes.

Where to get it
Download F-Spot 0.7.0 from GNOME FTP. OpenSUSE users can get packages using the open build service, in GNOME:Apps:F-Spot:Unstable.

More info
More info can be found in the full release announcement. This release would have not been possible without all the people that contributed to it. Many thanks to them. A full overview is in the announcement.

Want to help out?
F-Spot is made by you. Yes, you! If you want to help out, come and talk to us on #f-spot on irc.gnome.org or on our mailing list. We are there to help you out. Absolutely no inspiration where and how to start? We have easy tasks with instructions to make your first steps.

Tagged , | 14 Comments

A tale about design: part two

Last summer, at GCDS, I had some very pleasant developer-designer interaction experiences. I blogged about this. A week ago the annual Libre Graphics Meeting was organized in Brussels and again there was a very good cooperation between designers and developers. This post describes my experiences there and is the second in a hopefully long series of posts on why it matters for developers and designers to work together.

Visions and goals
A couple of weeks ago I inherited the maintainership of F-Spot. One of the first things I wanted to do was to set out a new direction for F-Spot, to get the development momentum going again and to reconsider our assumptions. F-Spot has a lot of nice and not-so-nice aspects, it’s time for us to set the goals high, be ambitious and go from good to awesome.

While speaking about this with Peter Sikking (interaction architect and over here probably most known for his Gimp UI design work), he correctly noticed that we should have a clear vision first before redesigning things. We sat down and started working on this.

Maybe working isn’t the right term here: working with Peter means having an enjoyable chat where he asks you a couple of questions, which gradually help you crystalize the vision. At the end he grabs his laptop, spends fifteen minutes alone typing and out comes a great vision statement, which neatly sums up what I had in mind:

F-Spot is a cross platform application for organizing thousands of photos. It shuns ‘organizing in folders.’ instead, metadata is the basis for viewing and drilling down the collection. Adding and maintaining metadata is easy and enjoyable in F-Spot.

Individual photos can be retouched and globally corrected (e.g. dynamic range, color), for sharing via the net, printing and viewing by consumers. The number and sophistication of the correction scales to the the ambition of users. An advanced form of corrections is that of batches of photos.

Beginners in the digital photo field can easily start using F-Spot. These and more advanced users are encouraged by F-Spot to grow their skills, to the point where they integrate more specialized photo manipulation software into their F-Spot workflow.

The key ideas here are usable for nearly anyone, yet powerful for those who want it, with a gradual path to grow from beginner to advanced photographer. This vision will serve as a test for all new features: what doesn’t fit in won’t get in.

Spend some time doing this for your project, it will greatly help your project. I highly recommend Peter to anyone that considers working with him.

Peter Sikking

Interaction architect Peter Sikking

Design, user interface and maintainters
The next day I sat together with some of the great designer heroes of our GNOME community: Garrett LeSage, Jakub Steiner, Hylke Bons and Andy Fitzsimon. Together we started thinking about how we could redesign the user experience of F-Spot. There are no showable results yet (aside from some paper sketches), but I am very impressed with what came out of this session: a clean and powerful experience for organizing photos. Best of all: it’s not the obvious programmer solution. Having designers in the conversation (in this case a lot of them) allows you to think beyond the obvious. It brings in a lot of design creativity which we developers sometimes lack.

Hylke made a very correct observation: every project should ideally have a code maintainer and a design maintainer. I’ve come to agree with this.

Jakub Steiner

Jakub Steiner (jimmac) working on awesome designs.

Take-away points
What to take away from this:

  • Get the goals and vision of your project straight. This greatly helps the focus and makes it so much easier to make decisions.
  • As a developer maintainer, talk to designers, they will make it so much better. This is often a problem, where maintainers see their projects as their pets. Letting someone else co-decide on the design won’t diminish your merit but it will often greatly improve your project.
  • Credit in open-source projects is usually given based on code contributions / documentation / translations. We need to value design more and show them love too.

Fortunately, most of these points are already common practice in parts of the GNOME community.

As for the changes to F-Spot: these are coming, along with massive improvements (in terms of performance, code quality, stability, etc). That’s the subject of another blog post in the near future though.

Tagged , , , , | 6 Comments

F-Spot 0.6.2 Released!

After a long period of silence, it is my pleasure to announce that a new version of F-Spot has been released: 0.6.2.

Notable changes in this release are:

  • We no longer embed Mono.Addins. The distribution copy should be used from now on.
  • A ton of bugfixes and usability improvements, part of them coming from the Ubuntu One Hundred Papercuts effort. Many thanks for everyone involved!
  • Lots of cleanups and small performance improvements.
  • The screensaver code has been migrated from old and slow to new and fast.
  • A stop-gap fix for the long standing issue of timestamps being changed on import. The default policy is now to not touch them. This should lead to the least confusion among the majority of our users. If desired, additional techniques can be developed for those who want it otherwise.
  • A pile of translation updates.
  • As of this release, we’re switching to a versioning scheme where even version numbers denote stable versions and uneven versions denoting development versions. There’s also a stable branch which can be tracked. More info on this will come in a separate email.
  • 573 files changed, 81197 insertions(+), 85122 deletions(-)

All of this has been made possible by our contributors. While I have the honor of announcing it (being the new maintainer), it should be noted that most of this was made possible by Stephane Delcroix, our previous maintainer.

People with code contributions to this release:

Alex Launi, Dave Neary, Gabriel Burt, Jeffrey Finkelstein, Jeffrey Stedfast, Lorenzo Milesi, Matt Perry, Michal Nánási, Pascal de Bruijn, Paul Wellner Bou, Ruben Vermeersch, Stephane Delcroix, Wojciech Dzier

Tagged , , | 10 Comments

UDS Brussels & F-Spot

Tomorrow, Thursday, is a national holiday in Belgium which means that I have time of to go to UDS.

As I am now the maintainer of F-Spot, I’d like to talk to anyone interested. I’ll be around for most of the conference day, come and see me.

We’ve got big plans lined up, more on that later!

Tagged , | 1 Comment

The Quest for Housing (Leuven)

Over the past few weeks I’ve been looking for an apartment in Leuven and I’ve noticed a few curious things:

  • There is no apparent correlation whatsoever between size and price. You can pay EUR 450 for 20 squared meters, but you can also find the same for EUR 200. At the same moment, you can find stuff as large as 100 squared meters for EUR 700
  • The photography on real estate websites is often extremely horrible. Is it that realtors have no taste, or is this intentional concealing of the truth through horror?
  • Why is it that it’s not the norm to have a floor plan available? I’ve spent quite some time trying to puzzle together photos to figure out the layout of some places, but even then, why not make it easier for future renters?

I can readily see an opportunity for a good informative real estate website, focused on the potential rentors. Where are the designers?

Note: If you’re not from the Leuven, Belgium area, you might want to skip the second half of this post.
A call for help
So far the search has not given us a suitable result. Therefore I turn to the lazyweb! I would really appreciate tips for (E-mail):

  • A nice two-person apartment,
  • Totalling at around EUR 700 rental per month (ideally costs included),
  • If possible with two bedrooms, such that we can turn one of those into a small office,
  • Available from August 1,
  • Obviously with all the standard requirements: the larger, lighter, …. the better (no suprises here),
  • Preferably located in this area:

South-East + Center

I’m still thinking on how to reward good tips, but I’m fairly certain that the joy of finding a new place will bring me into a sufficiently happy and creative state to come up with something :-).

Tagged | 2 Comments

GNOME GSoC 2010 Students

Earlier this week, the GNOME students for Google’s Summer of Code 2010 were announced. Below you can find a sneak preview of what we can expect to see. We’ve had a ton of good proposals and as such a really though selection process.

In the end the selection was made based on a number of factors , which include the quality of the proposal, the usefulness for GNOME, the potential stick-around-after-gsoc-factor and others.

Also, some of the titles and abstracts below might not fully represent the actual projects, as we’ve asked some students to adjust their projects. More info will come over the coming weeks (mostly from the students themselves). Stay tuned!

A more useful Now Playing source for Banshee
Student: Alex Launi, Mentor: Alexander Kojevnikov, Abstract

Anjuta Snippets Plug-in
Student: Dragos Dena, Mentor: Johannes Schmid, Abstract

BuilDj: A build definition format for GNOME
Student: Emel Elvin Yildiz, Mentor: Albeto Ruiz, Abstract

Clutter screensavers
Student: William Hua, Mentor: Thomas Wood, Abstract

DACP support in Rhythmbox
Student: Alexandre Rosenfeld, Mentor: W. Michael Petullo, Abstract

Ease : presentation authoring tool for the GNOME desktop
Student: Stephane Maniaci, Mentor: Nate Stedman, Abstract

Enhance the operation of GNOME Shell LookingGlass
Student: Christina Boumpouka, Mentor: colin walters, Abstract

Extending Jokosher to Include a Musical Score Editor
Student: David Williams, Mentor: Michael Sheldon, Abstract

Flesh-Out the Message Tray in Gnome Shell
Student: Matthew Novenstern, Mentor: Marina Zhurakhinskaya, Abstract

gedit multiviews
Student: Ignacio Casal, Mentor: Jesse van den Kieboom, Abstract

Getting Things GNOME! integration with online GTD services
Student: Paul Kishimoto, Mentor: Lionel Dricot, Abstract

Getting things GNOME! integration with online services
Student: Luca Invernizzi, Mentor: Lionel Dricot, Abstract

Getting Things GNOME! Web Service and API
Student: Karlo Jez, Mentor: Bertrand Rousseau, Abstract

GNOME Project Mallard online
Student: Sergio Infante Montero, Mentor: Shaun McCance, Abstract

GTK+ refactoring to make possible GTK+ 3
Student: javier jardon, Mentor: Carlos Garnacho, Abstract

Improving the desktop experience with the “Task” and “TaskMonitor” D-Bus API
Student: Salomon Sickert, Mentor: Danielle Madeley, Abstract

Make a Tracker based ORM
Student: Adrien Bustany, Mentor: Juerg Billeter, Abstract

Proposal for completing Jokosher Telepathy support for recording VoIP calls and extending it with Tubes support
Student: Peteris Krisjanis, Mentor: Michael Sheldon, Abstract

Rhythmbox: Improved Last.fm Plugin
Student: Jamie Nicol, Mentor: Jonathan Matthew, Abstract

Spicing up Cheese – Sexier Form and More Function
Student: Yuvaraj Pandian, Mentor: daniel siegel, Abstract

Totem Markers/Chapters Support
Student: Alexander Saprykin, Mentor: Bastien Nocera, Abstract

Zeitgeist: Libzeitgeist wrapper around DBus API
Student: Michal Hruby, Mentor: Seif Lotfy, Abstract

Tagged , | Leave a comment