Luminescent Dreams

Weekly Ramblings for November 17th, 2019

January 01, 0001
Barnaby Castle, 2019-09

This is Barnaby Castle in Providence, Rhode Island. Some of my friends live here, and it is currently undergoing incredible rennovations. The castle was apparently neglected for many years, and fell into disrepair, but it is still a very recognizable landmark that apparently everybody in Providence knows about. Currently it consists of something like five separate apartments, with signs of room for several more as the owner progressively continues with improvements.

I rather like my visits there, but I could really not live in the middle of a construction site.

Photography

Those who know me know that photography has been a significant part of my life for eight years now. Three cameras, many thousands of photos, and a bit shy of 1000 photos fully developed.

Photography on Linux, especially HDR photography, is definitely a trial. Five years ago I tried to build an HDR processor for Linux, but I never actually succeeded. I always ended up with a result that didn’t look like it could even be tone mapped correctly.

Sadly, the state of photography on Linux really hasn’t changed in that time. Digikam is still the best tool for the organization job, but it’s incredibly clunky with a 2000’s user interface when we’re about to enter the 2020’s. HDR photography exists in Luminance HDR, which is still very user unfriendly in that it presents the tone mappers to the user with just the names of the people who created them, and doesn’t allow the user to apply multiple different tone mapping operations to the same file.

Since I want to be doing my photography now, I’ve updated and rebuilt some old applications that chain together Hugin’s align_image_stack tool, RawTherapee, and pfstools into a semi-coherent whole. But since pfs-tools is batch mode only, there is no interactivity for me to run some tone mappers and view the results.

This is a hard problem. There is no way that I would ever say that it is not. It saddens me that the Linux tools have not advanced since 2011, though it saddens me more that I failed to actually build a tool myself.

At this point, these tools do the job, but it appears that Photomatix now exists for Linux, and I’ll need to see how to rebundle it for NixOS.

Though I have not given up the dream for building an entire excellent toolkit for doing photo editing on Linux.

Fitnesstrax and GTK

I spent a few hours reworking Fitnesstrax to be a GTK application, and had some interesting results. By interesting, I mean that I can get data to appear on the screen, but not in good format and certainly not in an interactive way.

Terrifyingly, I have learned that GTK 3 uses CSS for actually styling components. While this may make some things easier for me, I am terrified of doing CSS-style programming without all of the DOM-tree examination that is available in the browser. I will learn more about that in the upcoming week and will write more next time.

I will also need to learn how to handle state and its interactions with components. I have gotten very accustomed to React, Redux, changing the properties of a component to have it automatically update, making the Redux store look like properties. If I understand things correctly, React and Redux basically amount to Functional Reactive Programming. Rust has Carboxyl, but not really anything else comes up in Google. On the other hand, when I did Haskell programming I never fully understood functional reactive programming, so I may end up building something terrible, or I may hand-roll something more naive. In the very distant past, I set up a Mediator pattern where different parts of the application would listen to application events. I could possibly do something similar here, where state updates trigger mediator events.

But, likely, I should start by looking more deeply at Carboxyl, because FRP is generally a good tool.


And, that’s it for this week.

As always, I keep my nixos configuration and my nix shell on Github, so if you see anything Nix-related that interests you, that is where to see how I accomplished my tasks.