{"id":740,"date":"2020-09-28T14:48:17","date_gmt":"2020-09-28T21:48:17","guid":{"rendered":"http:\/\/letsbuildroboticswithshadow8472.com\/?p=740"},"modified":"2020-09-28T14:48:17","modified_gmt":"2020-09-28T21:48:17","slug":"family-photo-chest-part-10-sane-front-ends","status":"publish","type":"post","link":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/2020\/09\/28\/family-photo-chest-part-10-sane-front-ends\/","title":{"rendered":"Family Photo Chest Part 10: SANE Front Ends."},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Good Morning from my Robotics Lab! This is Shadow_8472, and today, I&#8217;m trailblazing the next phase of this project. Let&#8217;s get Started!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ten months now, I&#8217;ve trickled on with this project. All so I don&#8217;t burn out on it. And as always, just as I crest one peak, another valley of research to explore awaits me on the other side. Hopefully, I&#8217;ll get around to scanning the first photo before this project&#8217;s first birthday.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">My goal for this project is preservation. I&#8217;m obsessed with not losing any details and getting the cleanest image possible, and even I don&#8217;t fully understand what that means yet. In theory, that could mean grabbing the best scanner on the market and cranking it up to max. That&#8217;s more or less what happens to old movies when they&#8217;re being digitally remastered for use on HD or 4K big screens. But once something has been digitized, the amount of captured information is locked (barring AI upscaling, but that&#8217;s a topic for another time), and I want this project to be able to stand up in a generation or two, even if all physical originals are lost.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Early Research<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This week&#8217;s research focused on the one known missing link, the software. I would like to have a feature to keep front and back scans together, and that probably means either writing my own interface or modifying an existing program. I went to find the source for the scanner software for Linux I otherwise have a minutia of experience with, and I can&#8217;t find it. The closest I can find is an RPM package for Arch, and I read that that&#8217;s not a guarantee: such packages can contain precompiled machine code, and editing that would be a bit above my skill level.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I started thinking about the chain of software that accomplishes the task of getting anything scanned. Down at the bottom, just above the operating system, there&#8217;s the driver controlling the scanner. Higher up, there&#8217;s a middleware layer called SANE. On top of that is a front end in either a GUI or the terminal. If I am to write my own program from scratch, it would be tailored for only this one scanner and be feeding commands to the terminal front end.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I dug up a few alternate front ends for SANE with the intention to attempt modification. Options include XSANE, a program I gather works, but is a little generic, and SwingSane, a project that aims to unlock all options for any compatible scanner, but hasn&#8217;t been maintained in five years.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">GIMP<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">I was a little surprised to hear that GIMP has a plugin for scanning pictures directly in for prompt, user-guided restoration works to correct scratches, dust, fading, or other problems without a potentially over-aggressive fully automatic algorithm giving you &#8220;scans that look worse than the original&#8221; (<a rel=\"noreferrer noopener\" href=\"https:\/\/howtoscan.ca\/photo-scanning\/gimp-photo-scan-tips.php\" target=\"_blank\">Link to citation<\/a>). As an added bonus, a picture can believably be scanned in as multiple layers and easily saved to file as front and back with no extra modification needed. Same goes for if I want to scan a whole album.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Where Are the Bottlenecks?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Scratch that last detail. My whole robotics blog here has turned into being more about how I&#8217;m using Linux to keep aging computers out of the e-waste bin, often with a touch of Frankenstein thrown in. If I want to go preserving every little detail I can down to the grain, these pictures WILL be packing away the RAM, and chewing through any remaining swap space, probably crashing any machine I have to throw at it. I&#8217;m afraid a more modern machine will need to be specced out.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Such a machine would be built for the task, and intended to have a nice, long retirement as a regular gaming rig. I&#8217;d like this thing to still be in service ten years from now. As I understand it, we&#8217;re at the relative beginning of Intel&#8217;s LGA 1200 slot, so late-life, second hand upgrade isn&#8217;t out of the question, and M.2 is still fairly new in terms of how long PATA and SATA lasted. For all I know, I&#8217;ll be running out its final clock cycles in some kind of cluster or a cloud computing application twenty or thirty years from now.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Final Question<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">What is the longest project you&#8217;ve ever persevered at before any results started showing?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Good Morning from my Robotics Lab! This is Shadow_8472, and today, I&#8217;m trailblazing the next phase of this project. Let&#8217;s get Started! Ten months now, I&#8217;ve trickled on with this project. All so I don&#8217;t burn out on it. And as always, just as I crest one peak, another valley of research to explore awaits &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/2020\/09\/28\/family-photo-chest-part-10-sane-front-ends\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Family Photo Chest Part 10: SANE Front Ends.&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_forum_subforum_count":0,"footnotes":""},"categories":[2],"tags":[],"class_list":["post-740","post","type-post","status-publish","format-standard","hentry","category-linux"],"_links":{"self":[{"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/posts\/740","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/comments?post=740"}],"version-history":[{"count":1,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/posts\/740\/revisions"}],"predecessor-version":[{"id":741,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/posts\/740\/revisions\/741"}],"wp:attachment":[{"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/media?parent=740"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/categories?post=740"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/tags?post=740"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}