Lars Wirzenius: Lodju, 2003

Contents

Sunday, December 14, 2003

Lodju: 2.1

Released version 2.1, after hacking on it most of the day. I have the feeling that things are again progressing nicely. The current code base is good enough, even if certainly not pretty, and I can concentrate on hacking new stuff rather than rewriting everything.

Also, the new customizable gallery support hopefully means I don't have to worry about HTML code again for Lodju.

Sunday, December 7, 2003

Lodju: Exports originals

Lodju can now export the original image files to a directory. I was somewhat tired today and not up to hacking more. I think I'm in need of a bit of vacationing.

Saturday, December 6, 2003

Lodju: 2.0

I have today released Lodju 2.0

After the release, I hacked a bit on it. I didn't want to add the new features into the release, in case I broke something. Two new features: it is now possible to edit the attributes of several photos at once, and if there is only one photo selected, it is drawn from the original file (as soon as it has been loaded in the background) rather than the thumbnail. I've also fixed a few bugs, so I'll have to make a new release soonish, though it can wait a week or two.

Next I will probably implement additional exports and a way to choose gallery styles for the web export. If all goes well, I should be able to finish at least some of these tomorrow.

Sunday, November 16, 2003

Lodju: 1.99.7

Made a new release, 1.99.7. It should now be feature complete with regard to a 2.0 release, and hopefully there aren't any showstopper bugs, either. I'll make the actual 2.0 release in a week or so. This should give me time to update the web site, e.g., with new screenshots and stuff.

Monday, October 27, 2003

Lodju: Nearing release

Having now used Lodju for a while, I think the current development branch really is ready to be released. It should be about as useful as any previous version. The only big missing thing is a tool for converting old databases to the new format. No-one else has written one, so I guess I'll have to do it myself. Shouldn't be more than an evening's worth of work, but not exactly the kind of work I like.

After I have the conversion script, I'll make a beta release, and upload to Debian, possibly to experimental. After a week or two has passed without major complaints, I'll be ready to put out an official, stable release named 2.0. I don't know when that will happen: this development branch hasn't had very much use from other people than me, so probably a pile of bugs will be found as soon as someone else uses the program.

I have some plans for stuff that can be done after 2.0. There's all sorts of usability improvements, and also major new features. The TODO file in the release contains some of them. I don't have a roadmap. I tend to work on whatever annoys me most, or whatever I want most next.

Monday, October 20, 2003

Lodju: Ropecon pictures

Yesterday I imported all the pictures from this year's Ropecon into a single folder in Lodju. At about 560 pictures, the process size was over 160 megabytes, which is quite big, but possibly not unreasonably big. Lodju was still quite fast enough. Happy thoughts.

Wednesday, October 15, 2003

Lodju: Bug fixes

Spent a few moments making a release of Lodju with fixes for bad bugs. There's a bunch of more benign bugs, including some in display updating, but those can wait for later. I'm still happy with the current situation, though I'm now thinking I want more advanced user interface features, such as searching. Ah well, after I get 2.0 out, I'll start working on those.

Tuesday, October 14, 2003

Lodju: I'm using Lodju!

Spent half an evening organizing my photos with Lodju. Great fun. I should have been at this stage two years ago...

Fixed yet another small, but disastrous bug. Will have to make yet another release soon.

Monday, October 13, 2003

Lodju: New release: drag and drop

Made a new release yesterday. The primary focus was to fix the drag-and-drop behavior. I think it now works in all situations, unless the hard disk fills up. On the other hand, it is awkward, in that the program blocks until it has copied files (if it needs to copy), and this will have to be dealt with somehow.

Perhaps as importantly as a new release, I'm now ready to start trying to use Lodju for real, for myself. Let's see.

(Time passes.)

Well, I made a gallery of photos I took of a new client project at work, and only found one bug. Related to drag and drop, no less, which I thought I had tested thoroughly. Silly me. At least it was an easy one line fix. Otherwise, things are looking good.

Saturday, September 27, 2003

Lodju: Drag and drop struggle

I continue to struggle with implementing drag-and-drop properly in Lodju. I'll have to concentrate on it for a day to get, this is getting ridiculous.

Sunday, September 7, 2003

Lodju: Killed cut/copy/paste, dnd trouble

Hacked some on Lodju today. Ripped out the cut/copy/paste code, since it was a kludge, and had broken as well. It needs to be replaced with something that supports the Gtk clipboard API.

Drag and drop also has some trouble: it loses the actual image and the thumbnail, and only transfers the meta data. It works within the same document, since the identifier for the image stays the same. I think. It needs to be investigated.

My current plan for transferring the image data when drag and dropping to another document is to base64 encode and put it inside the XML part that is transferred through the drag-and-drop protocol. This means huge amounts of data transfer, but I can't see a way around it, since the source and the target may run on different computers. (I'll optimize it for the more common case of things happening in the same instance of Lodju, of course.)

Sunday, August 31, 2003

Lodju: Some progress

There is some progress on Lodju. I've made releases a week ago on Sunday, on Thursday, and again today. Even if progress is not as fast as I would like, it still feels good. There is very little feedback, though, which is a bit discouraging. Perhaps it has been vaporware for too long and people have tired of it.

Monday, August 25, 2003

Lodju: 1.99.2

I released Lodju 1.99.2 yesterday, but there seems to have been little reaction so far. Ah well.

Thursday, August 21, 2003

Lodju: Feature complete for 2.0

My employer moved to a new office about six weeks ago, and this meant my commute grew to be about an hour. Since I can't read on the bus -- I get car sick easily -- this leaves me with plenty of time to daydream and to think about my hobby projects. Today I though about Lodju.

I'm now pretty convinced that the current development version of Lodju (1.99.0 plus changes I've made since) has enough features to replace the 1.1 version as the official and stable version. There is only one major feature missing: backwards compatibility. There are lots of bugs, mostly minor, and those need to be found and fixed, of course. I suspect I'll more easily get feedback if I make a proper list of dependencies and a proper Debian package, so I'm making those my priority for this weekend.

Tuesday, August 12, 2003

Lodju: Ropecon gallery with Lodju

I created the Ropecon gallery with Lodju. Whee!

Lodju is nowhere near good enough for the whole task of processing pictures from a photo shoot. For example, it is impossible to look closely at photos with it, since it only shows a thumbnail scaled to the desired size. This is very inexact and you can't even see if the original is in focus or not. There are also lots of minor bugs. But I'm getting there, even if slowly.

Tuesday, August 5, 2003

Lodju: Almost a release

Made the first semi-real release of the current development tree and posted about it to the Lodju mailing list. Probably no-one will care, but just in case...

Saturday, July 26, 2003

Lodju: Simple web gallery export

I made a simple web gallery export for Lodju today. It makes a really ugly gallery, but it is good enough for now and lets me concentrate on the architecture of the thing rather than getting the web design nice.

I should make it easy to add new styles of galleries, and other types of exports. One of these days.

I think that Lodju is now more or less feature complete enough that I can start showing it to other people. This is rather satisfying. On the other hand, it means I will have to start fixing bugs that irritate other people. I know the workarounds, but that's obviously not good enough for real use. Small things like having to check with top whether gallery creation has finished.

The rest of today has been sunk into figuring out a way to rotate a GdkPixbuf an arbitrary amount. Gtk+ does not have a standard routine for this. Lodju therefore uses a Python subroutine for this, and it is awfully slow. Really, massively slow. Unusably slow, in fact.

I first tried to find a way write a C extension to Python that would manipulate a GdkPixbuf directly and rotate it. This failed, because I did not find a way to access the actual Gtk+ object from C, only the wrapper PyGTK creates.

Therefore, my old plan stands: I will write a generic pixmap rotation function for Gtk+ and send it as a patch to the developers, and hopefully one day this will be accessible from PyGTK. It will probably take a year or two, and in the meanwhile I will have to do something ugly and evil to make Lodju be acceptably fast. Ugh.


Lodju: Progress and screenshot

I seem now to have progressed far enough that I can do simple organizing with it, save stuff to disk, quit, restart, and continue from where I left off. That is, except for a zillion bugs, Lodju should have enough features now to make it possible to use it as a photo organizer. The user interface has a large number of rough edges that will have to be ironed out, but those tend to be fairly small things that don't affect the architecture of the program.

Lodju screenshot.

This is what Lodju looks like now.

The next step is to make a gallery export. After that I can start using Lodju for real, maybe to make a gallery of the few pictures I took at Debcamp and Debconf3.

Thursday, July 24, 2003

Lodju: On-disk data structures

I've been hacking on Lodju this week. Not very efficiently: my brain seems to be in a vacation mode, which is good and proper, since I am on vacation. I've been working on issues related to storing data on disk. My decision to use a directory to represent a Lodju "document", rather than a plain file, is hopefully better for the user, but leads to some complications at the implementation stage. On the other hand, if I had opted for the plain file, it wouldn't have contained the photos directly, but rather only pointers to them, and then operations such as copying a Lodju archive with all photos to another computer would have been complicated. With my chosen approach, I need to do some extra work now, but then things should be simpler later on, both for me and for users.

Saturday, June 21, 2003

Lodju: Happy hacking session

Another day of happy Lodju hacking. The user is now warned when he tries to close a document with unsaved changes. I even managed to avoid a usability glitch that some applications have: if there are many unsaved documents without names when the user wants to quit the application, they put the user into an unbreakable loop where they ask for a name for each one (without indicating which one, of course). Lodju now tells the user about this situation and lets them quit without saving or cancel the quit. If they cancel, they can go on and save (or close) each document as they wish.

There were also a number minor improvements, mostly of the refactoring kind. Not a whole lot of visible progress, in other words, but I did manage to get rid of one item in the to do list without writing a single line of code. I went out for a walk and pondered about whether to implement linking of photographs between folders, that is, whether the same photo could exist in several folders. I decided against this, since it is a somewhat complicated and confusing idea (I know I get confused by symlinks at the filesystem level). I may implement it later if it seems necessary, but let's see what life is like without it.

Two major features remain on the to do list: exporting a web gallery, and searching for photos based on meta data. I'll probably not be able to finish either of them tomorrow, since I'm arranging a pancake party, but then, there's no hurry. I want to have Lodju usable before Ropecon in August, but there's plenty of time before that.

Friday, June 20, 2003

Lodju: Progressing nicely

Lodju has progressed more today than EoC. I have added proper File/Save, File/Save as, and File/Open behavior, and fixed many cosmetic bugs in the user interface. I've also made it possible for the user to open several folders at the same time: all the photos from all the folders are shown together in the thumbnail area. This will eventually make it possible for the user to search effectively.

Right now, my to do list for the first real release of this development branch contains four items, but I suspect I'll think of more after I've slept a bit.

Sunday, June 8, 2003

Lodju: Semi-release of rewrite

The rewrite of Lodju has progressed far enough that I have made a tarball and posted about it to the Lodju mailing list. Let's see if I get any reasonable feedback. I've today implemented a simplistic thumbnailing approach and saving of metadata (but not thumbnails) to a file (name hardcoded as save.lodju so far).

Sunday, June 1, 2003

Lodju: Some progress

Today and yesterday I have implemented a simplistic import and display of thumbnails (which can be scaled freely). Thumbnail drawing is really slow, and uses huge amounts of memory, since it loads in all the images and scales them and rotates them every them they're drawn. The thumbnails are of pretty good quality this way, but it's nowhere near fast enough, so I'll have to add some caching. But time enough for that some other day.


Lodju: Screenshot

Work being hectic, I haven't had much energy to put into development of Lodju. It is rather annoying, since I have a few thousand photographs that need to be organized. Also, people keep asking me about its status. I hope to spend much of this weekend on Lodju, but we'll see how much I get done. I don't intend to become stressed over it; stress comes from work, stress is relieved by leisure hacking.

In the mean time, I'll put in a screenshot from a bit over a week ago.

Lodju screen shot

Screenshot of my unreleased development version of Lodju, from May 22. It has a functional folder tree, and it's possible to drag and drop thumbnails between folders and within a folder. The lower left corner has an area for editing photo properties. Thumbnails aren't actually displayed yet, that's yet to be implemented.

I admit an Apple iPhoto influence. While I haven't used it myself, I've looked at screenshots and had friends with Macs say good things about it.

Before I make the first public release of this rewrite of Lodju, I need to implement importing of photos, display of thumbnails, and a way to store data in files. These shouldn't be too hard to do, but they might take time, since I want to be careful and write clean code. The previous rewrite failed in part because I cut too many corners.

(Insert sounds of leisurely hacking.) I've now played around with letting the user select files to be imported, and creating photo objects for them. The photo objects' properties are filled in in the background. I've also played with some Python code for reading EXIF headers. Together, all this should become most of an import feature pretty soon.