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.2: Prepared to Scan At Last

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I am bringing my workstations online. Let’s get started!

Calibration

Last week, I detailed a workstation I assembled using found parts. I’ve gotten used to the trackball mouse, but click and drag is next to useless.

Also, just now while writing, I was looking for a place to put my tablet — between two scanner workstations, the desk is full– and thought it would be a good idea to slap it on this monitor from a more cubic era. Moments later, I’ve switched to dark mode, and it appears to be messing with the colors on some of my icons in the upper left part of my screen. Turns out it was magnets in the tablet. Degaussing fixed it, but when I removed the tablet, the colors went off again. I have since degaussed again and everything is normal.

Workflow And Training

I’d rather look back wishing I had done a better job than look back I had done any job. For this reason, I am shelving a lot of research and deliberation I got myself lost in. Perhaps in a few years, I can redo the master digital archive with better-supported equipment. In the meantime, I’ve selected a resolution that should be good enough to enlarge, yet small enough to store.

I wrote a set of instructions detailing my prototype workflow and started training family members in how to operate the scanner. As I went, I noted where they got confused and adjusted the instructions accordingly.

My first set of instructions is in how to start a work session. Make sure the scanner is on, start XSANE, set the resolution correctly and check that the persistent settings are correct.

Structure in the analog archive I’m digitizing is sporadic, but when it’s present, I’d like to respect it. Work will be divided into batches. My instructions detail how to name each batch and to make a metadata file describing the batch and the container it was found in, like B&W vs color and print sizes.

Finally, a third set of instructions is all about individual scans. Line things up, don’t go over the scan area, get a preview, and don’t bother with zooming in on that preview because there’s no sideways scrolling and no way to quickly alternate between zooming in and out. A final inspection checks for dust or hair/fur, and I have a little something in there for when pictures have notes on the back.

Challenges

I’m scanning to TIFF files, but I want the ability to include the backs of prints too. Ideally, I would just add .front or .back to the filename, but XSANE’s automatic numbering is stubborn. It wants a four (or more) digit number at the end of the file name, and refuses to recognize multiple file extensions. I’ve resolved to manually setting the file type to TIFF and using the front/back extensions.

XSANE has a preview feature. I am using it to select occupied parts of the scan bed to reduce scanning time. But that doesn’t work without click and drag. I’ve since added a wireless USB mouse, and the trackball is good for 2D scrolling.

Speaking of scrolling in all four directions, while setting up my laptop for the same procedure, I had to get into the touchpad settings. It was something I had found a little annoying, but it was an easy fix when I bothered to look for it.

Final Question

Have you ever needed to write instructions for others to follow? How much did you need to change, even though you thought you thought everything out ahead of time?

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?