Family Photo Chest Part 14.3: Into Production, Right?

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I’m making the first official scans for this project. Even then, I might have farther still to go. Let’s get started!

False Starts and Setbacks

I’ve wanted little more all month than to finally get some momentum going on this project — to actually have some results I can point to and say, “This is a sample of my finished product.” I want to know tangible progress is being made. Unfortunately, I still have much to learn.

I wrote a series of instructions on how to use XSANE scanning software with the setup I’ve assembled. I started with a set that covered opening the program and making sure it was configured correctly. A second batch of instructions covered what to do to prepare for a new batch of scans — how to name the directory and reset the name counter. Finally, a third and most important set covered actually scanning each set of pictures working through the envelope, rubber band, album, or whatever constitutes a manageable grouping. I got through the instructions the first time and my trainee went back to open XSANE fresh again.

While attempting to push into production, I quickly found the DivideScannedImages script doesn’t do so well with picture backs. I don’t even know how I want to display such pictures with their backs. It’s a topic for some time after I’ve reverted to monthly updates. I’ll probably end up scanning and retouching such pictures manually.

I decided narrow the focus of eligible batches to scan. If you have the negatives, that’s all the detail there ever was to capture right there. I was going to save batches containing the original data for another week, but the archive has way more negatives than I anticipated and my focus was now too narrow.

One of the scanners I’m working with came with a slide/negative holder and XSANE has a host of negative presets. I ran some numbers, and I figure I’m capturing about the same level of detail scanning prints at 1200 dpi vs maxing out the scanner on negatives at 6400 dpi (XSANE does not appear to let you access interpolated resolution in the scanners’ specifications).

But the process was way more involved than I thought. The colors were way off once inverted, and there was some pretty bad speckling that overpowered the filter on XSANE’s post-scan viewer. My father and I tried again on a more recent and hopefully less faded negative, and the color sort of came through… after I had poked at it with GIMP, but it wasn’t something I would put on display.

My shortcomings don’t end there. I have albums wider than scan bed to consider. There was a time when photos were available on CD and I might be able to harvest metadata from there. Duplicate detection and CD metadata harvesting.

A Footnote on UI

On a more positive note, I’ve been learning more about other aspects of using retro hardware. The division script in GIMP is too tall to display on this old monitor, even when hiding the panels (“start bars”) at the top and bottom of my screen. This is more a desktop environment problem, but by digging in my settings, I found that Alt + Drag (optionally Super/Window + Drag) moves windows around without the need to grab the title bar. I put the script up and out of normal bounds, and it failed spectacularly (see above).

Takeaway

These setbacks are the very reason you would pay good money for a professional who already knows how to scan. Besides, properly scanning negatives illuminates from one side and scans from the other, and I’m working with a purely reflective system. Suffice it to say, negatives are beyond the scope of this project, and I’ll be focusing on prints until otherwise stated.

Final Question

What project have you tested your patience with? How is it coming along?

Family Photo Chest Part 14: The Tracks are Built, Bring on the Locomotive

Good Morning from my Robotics Lab! This is Shadow_8472, and today I am technically ready to start my first batch of scanning photos. Let’s get started!

Early Start

I am tired of this project going seemingly forever. Whatever I’m getting done, I want working this week. My plan has been to scan directly into the DivideScannedImages script for GIMP, and for that I need the XSANE plugin (Scanner Access Now Easy for Xorg GUI server). Every version I found was ancient and obsolete. Turns out installing the plain XSANE included its own GIMP plugin, as confirmed by xsane -v and looking for a line about GIMP. Just know that if you’re trying to check the version over SSH, that it really wants an Xorg server: export DISPLAY=’:0′ worked for me.

GIMP has a powerful scripting language built in. With it, you can automate most anything, all be it with a little difficulty. You can even use it to script events when launching GIMP with the -b flag (b as in batch). I took a look at it. It doesn’t look that bad to learn. It’s heavy on the parentheses, but I’d hesitate to directly call it LISP.

I got as far as calling the XSANE plugin on boot from within the DivideScannedImmages script. I was a little short on time to struggle through getting it just right, so I reached out for help on a GIMP Discord, but then I began to reconsider everything.

Progress Rejected

I’ve been a bad programmer. So many dead ends. So many side projects distracting from the main goal. I have an unknown deadline for this project, and I really need to cut the fancy stuff I’ve been working on and do something that actually works.

I also got to thinking, Who am I designing this for? I had been working on a command line setup for me, and my mother has graciously offered to help with scanning a little bit at a time. She doesn’t do the command line outside Minecraft. As a good programmer, I need to consider my end user’s needs, and she needs a graphical workspace.

Thinking like my mother would think, I made a directory on my desktop for shortcuts related to this project. So far, I’ve made launchers for XSANE, the network share for the pictures, and GIMP. I may develop it later.

My new vision is to just use the tools I have: XSANE to scan and save locally and GIMP to separate and deskew pictures automatically and store them in the digital archive before someone either deletes or offloads the original scans. I can make a text file with miscellaneous metadata for each batch. A manual review can flag photos that will need additional touchup.

Testing the Workflow

I used a couple pictures from when I was little to test my workflow. I laid them on the scanner with a bit of tweak. I spent several attempts learning about the limits of the scanner. The scan head doesn’t actually reach the full scan bed. If I’m not careful, pictures will get pinched under the edges. It’s very easy to accidentally overlap pictures. All good reasons for finding a preview of each scan.

Deskew isn’t a miracle, but when I did a side-by side comparison on a sample size of my two test pictures, it got one almost perfect and reduced the the tweak from the other, but my sister said the deskewed one might be a little fuzzier.

Takeaway

I cannot emphasize this point enough: good programmers build software for end users. It’s fine to hack together a piece of software you understand, but if you want to share your creation with someone else, you’ve got to make a relatable front end.

Final Question

What elements of a project have you given up for the sake of an end-user?