It's been a long time baking…

Back when I started doing photography more seriously, I settled for Lightroom as a RAW processor and image catalog solution. It works, but it's not perfect.

The main issue that I had over time with Lightroom is that while on the technical (hard) aspects of RAW processing, editing, etc. it is doing a good job, on the catalog aspect… it leaves things to be desired. Thus, over time I started using more and more of Jeffrey Friedl's plugins for Lightroom, which makes it better, but still it is hard get a grasp of your entire collection, besides just of the RAW sources. And even for the RAW files, Lightroom's UI is sluggish enough that I try to avoid as much as possible, outside of image development.

On top of that, ten years ago most of my image viewing (and my family's) was on the desktop, using things such as geeqie reading the pictures from the NAS. In the meantime, things have changed, and now a lot of image viewing is done either on desktop or mobile clients, but without guaranteed file-system access to the actual images. Thus, I wanted something to be able to view all my pictures, in a somewhat seamless mode, based on various global searches - e.g. "show all my pictures that contain person $x and taken in location $foo". Also, I wanted something that could view all my pictures, RAW or JPEGs, without the user having to care about this aspect (some, but not all, viewing-oriented programs do this).

So, for the last ~5 years or so, I've been slowly working on a very basic program to do what I wanted. First git commit is on August 19th, 2013, titled "Initial commit - After trying to bump deps to Yesod 1.2.", so that was not the start. In an old backup, I find files from April 27th that year, so that's probably around when I started writing it.

At one point I even settled on a name, with commit 3c00458, which was the last major hurdle for releasing this, I thought. Ha! Three years later, I finally was able to bring to a shape where there is probably one other person somewhere who could actually use it and have it be of any help. It even has documentation now!

So, without further ado, … wait, I already said everything! Corydalis v0.2.0 (a rather arbitrarily chosen version number) is up on GitHub.

Looking forward to bug reports/suggestions/feedback, it's been a really long time since I last open sourced anything not entirely trivial.

P.S.: Yes, I know, there are no (meaningful) unit tests; yes, I feel ashamed, this being 2018.

P.P.S.: Yes, of course it's Haskell! with a sprinkle of JavaScript, sadly. And I'm not familiar with best JavaScript practices, so the way I bundled things with the application is probably not good.

P.P.P.S.: If you actually try this, don't try it against your entire picture tree—for large trees (tens of thousands of pictures), it will take many hours/maybe days to scan/extract all; it is designed more for incremental updates, so the initial scan is what it is.

P⁴.S.: It's not slow because of Haskell!!