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?

BitWarden Operational and SSH Housecleaning

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I am giving my BitWarden server a bit of a shake down, and since that didn’t take as long as expected, I have a story or two from rearranging my SSH keys. Let’s get started!

Server Fully Operational

Picking up from last week, I installed a BitWarden home server on BlinkiePi and set it up with a static IP making sure it had a unique hostname. To test it, I plugged it directly into my home router. I had to generate and install a self-signed security certificate so the browser plugin could recognize my server once I had directed its traffic appropriately.

I started early this week, expecting the firewall to be crazy complicated and maybe an exercise in futility, but that wasn’t the case. I found a package literally named “uncomplicated fire wall” (ufw). It installed no problem and I was easily able to reject unrecognized traffic by default, then allow ports for SSH and BitWarden.

I then went ahead and installed BitWarden plugins on my remaining computers, trying and failing to follow all the important steps from memory until I gave in and looked up the tutorial again. Later on in the week, I wanted to ensure my setup could withstand a power blink, so I cut power and and later restored it. I expected I’d need to spend a few hours trying to figure out how to get it auto started, but it’s almost like this project wants to short me of content, because I was able to reach its web interface no problem.

SSH Keys Between My Computers

I don’t like entering passwords every time I want to log into a system. SSH keys are way faster and more secure because the host machines are essentially letting you in as you essentially scan an ID instead of stopping to perform a secret handshake that can be more easily faked.

I did some research a while ago, and I found questions as to if the rsa method of making keys was still okay to use. To be honest, if it wasn’t, OpenSSH would probably push an update blocking its usage or at least notifying users that it’s been cracked wide open.

Nevertheless, when I redid my SSH easy access network, I used ed25519 to make my keys, and I transferred them over with ssh-copy-id to move them from one computer to another. I have three workstations I flip flop between, as well as my new password server and my Pi400 hack router. Now that I think about it, I could include the NAS and the Pi4 serving as our entertainment center, but that will wait for a later date.

One nice surprise I found was when I was copying a key from my main desktop on the 400’s subnet to one of my machines on the wider home network, and when my desktop didn’t recognize the computer, but the Pi400 did, the router vouched for the host I was reaching out to.

Takeaway

I suppose I could improve my setup with auto updates. That will mean another hole punched in the firewall, but in all reality, that’s a topic across my network for another day.

Final Question

If you were to spend a week in space, what games would you feel obliged to play along the way?

Raspberry Pi 400: Another Chance

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I am re-evaluating my Raspberry Pi 400 unit I covered last week. Let’s get started!

The Story So Far…

Raspberry Pi 400, is the Pi 4 rearranged and built into a Raspberry Pi keyboard unit, available with multiple standard keyboard units from around the world… but not quite. I already knew about some changes they made to the CPU, but in theory, that shouldn’t have affected the 400’s wireless abilities like I was observing on my 64 bit installations: LibreELEC and ManjaroARM.

But a sample size of 3 (32 bit Raspian images work properly) is too small to claim manufacturer defect. If I was going to pay for warranty shipping, I wanted to see the failure on their own software. That is why I went looking for the elusive Raspberry OS 64 bit. I kept finding the 32 bit version, and had to call it quits last week.

Installation and Testing

But this week, I tried an official card imager with a list of 1st and 3rd party images to install; none were 64 bit Raspberry OS. There’s plenty of stuff out there about Raspberry OS 64, but the download link is well hidden from people who won’t understand what beta software is all about. In the end, I located the correct image, and between downloading, flashing, and testing, it took half an hour of low engagement.

Finally, I booted the Pi 400 using that chip, and it worked unexpectedly. I went ahead with the setup ritual — telling it the country, time zone, passwords, and the like. Options for making Wi-Fi connections came up before I even got around to asking it how many bits it was running on (see last week’s post): 64.

Further Testing

I honestly was expecting to cover the Pi 400’s exchange before this point. I just so happened to have updated my Manjaro card in an attempt to fix a problem keeping us from streaming my church’s Christmas program on Sabbath (turns out https was complaining about system time being set manually, and a couple months behind at that). The freshly updated card worked as well.

At this point, I was convinced it was just a matter of software. I booted into LibreELEC, which amusingly requires inserting the card part way through booting, and ran into the same problem as before. I even tried with an Ethernet cord we used to download the service, and saw no evidence of the clock updating.

Conclusion

The Raspberry Pi 400 is a relatively new product. With a better idea on where to look, I landed on this LibreELEC forum post. It states that the Pi 400 has a “somewhat different [Wi-Fi/Bluetooth] chip,” but by manually updating the kernal somehow, it is possible to hack something together. Honestly, I have other projects I’d rather do, and according to the same post, they’re already planning on supporting the Pi 400 in the next major release. I can wait.

Final Question

Have you ever looked at something as you were about to replace it just to poke at it a bit, only to find there was nothing wrong with it in the first place?

Family Photo Chest Part 11: Workflow

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I am conceptualizing a workflow for scanning the family photo trunk. Let’s get started!

I don’t have any hard figures, but I’m fairly sure that half the project is getting to the first definitive scan. It’s been a year now, and I have yet to save a single photo to disk, but at least I have answered most of the questions that need asking and have an idea for the remaining questions I still need to look up.

Dots Per Inch

Probably the single biggest unanswered question is what dpi to scan at. Everyone has a variation on the same answer: it depends. Zoom in close enough to any picture, and you run into the individual grains making up the image. Pictures with a slight blur have a more than fair share of redundant data here, so it’s okay to ease off on the disk space they’ll forever occupy. On the other extreme, it may be preferable to scan negatives near the grain threshold to mine out as much of the original content as possible.

The process of printing can only ever lose detail. The same goes for digital image manipulation. There is research into AI’s that can believably upscale an image, but once original detail is lost, it’s gone, and you’re left with purely guesswork. The worst case scenario is to find that all scans to date are low quality, and work on the payload needs to start over.

I hear good things about 600 dpi for general use. I’ll need to experiment for myself though, but I’ve come to think about it from both ends toward the middle. Start with how much detail you need to end up with and adjust for how big of an item you are scanning. You’ll can calculate the appropriate resolution to scan at from there, barring any of the above limitations cited in the above paragraphs.

File Format

My initial impulse was to go with PNG. It’s familiar, it’s lossless, but apparently it doesn’t come enabled by default. It’s grayed out it Image Scan! for Linux, but most software doesn’t even list it. If I want to continue down that path, I’ll need to either brute force a utility to scan it directly, or I will need a converter.

But PNG may not be the proper tool for the job. Digital archivists have been using the TIFF (interchangeably TIF) standard for longer: almost three and a half decades. Still, PNG has its merits. I do intend to put the archive online. TIFF apparently handles metadata more safely and more uniformly though, and metadata is something I intend to research further and learn to manipulate.

Workstation

Next, I’ll need to ask myself exactly what hardware/software I’ll be using. At present, I am most seriously considering scanning directly into GIMP and using a plugin or script to crop multiple pictures on a page at a time. Lightweight repairs should be possible on the spot, then the extracted photos can be saved to network storage.

I have two scanners at my disposal, I’m planning on driving one with my laptop. For the other, I’m considering experimenting with a Pi 4, though if that’s not powerful enough, I can always move a tower like Button Mash, my home Minecraft server, over to the project workspace to drive the second scanner.

My dream setup is to have one workstation controlling all the scanners using some kind of remote login software (to be researched). All parts should be in the same general area and be connected by hard wires and a switch, since I have the equipment.

Workflow

I’m including this section since it is important, but it’s also something that will get refined even after I start the scanning proper. Using two or more scanners, I can keep one or two people busy, even if the computers being used are a tad on the slow side. An organized directory acknowledging preexisting relationship of similar photos, such as an album or original sleeve, can address any automatic numbering schemes.

Pacing is another element here. Had I dedicated this entire blog to this project until I was done, I would have lost interest long ago. I don’t want to be scanning all alone, so I’ll need to coordinate schedules.

Digital repair is a fact of life in such projects because a microfiber cloth can only remove so much dust. Damaged photos that require special attention will need a way to be flagged or edited on the spot. On the whole, I believe the pictures have been well preserved, though we did find one torn photo to practice on.

Takeaway

I won’t pretend to be the definitive guide for digitizing your photo archive. To do the job properly, you may need to spend on reading materials or membership in a community like Scan Your Entire Life. A lot of my research this week came from what is freely accessible from his site, but key details are behind a pay wall. However: a prominent –but unofficial– theme of this blog is using the open-source model whenever possible, and as good as his stuff looks, I don’t have the funds to invest in a paid community.

Final Question

How long have you put off scanning your old family photos?

Kerberos: the Three Headed Authenticator

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I believe I finally have the key holding back a number of my projects. I haven’t finished this week’s research as of starting writing, so I have no idea of how it turns out. Let’s get started!

Critical Path

Right now, my immediate long-term goal is getting photo archive pictures scanning, preferably with a custom script to streamline the process. For that, I need a reliable computer for processing photos — my laptop would work, but I’d feel a lot better if I had its long-term memories inside the case instead of hanging out for the world to snag. I would clone them inside with dd, but I’ve been holding out until I can perform a backup to the NAS. And that is where I’ve been stuck for a month or two: authentication to the NAS instead of by individual IP… until recently.

Kerberos

I often work on topics in parallel, switching on the last day if I don’t complete something. Last week, someone brought up Kerberos, an authentication protocol that’s been around since the mid-80’s, and if the Computerfile video, “Taming Kerberos,” is to be believed, it’s resistant to quantum attacks. And here is another video explaining Kerberos while addressing its weak points, something that most explanations overlook.

Named after the three-headed dog of Greek mythology, Cerberus, Kerberos follows a three-part model for authentication: client, host, and a mutually trusted authentication server. In simplified terms, you and the authentication server has two steps, one that uses cryptographic keys so both client and authentication server are sure they know each other, and another that issues tickets, or temporary passes, for desired hosts. Given a ticket, the host then does some final checks before conducting its normal business with the client.

Kerberos has more practical applications than just NAS authentication. It would appear OpenSSH is perfectly happy authenticating with it. I already have around 7 to 9 SSH-enabled devices and I don’t care to manually generate and distribute keys amongst everyone. And then there’s conflicting host keys when not everything is tied down to its own static IP and my Pi 4 I’m now swapping MicroSD cards on. I’ve resolved to just having one machine I SSH into that holds most of the keys I need and then SSH into the appropriate machine from there. In the future, I may even apply this technology for that website I’ve been working towards for almost a year now.

Compiling Kerberos

There are plenty of explanations of how Kerberos works out there. So many to the point where they clogged up my searches for actually finding an implementation of the method to use as a server. I eventually found what I believe to be the preferred download over at MIT. It does, however, come with a warning about exporting cryptographic source code from the US without permission, and that it’s illegal for it to go to a short list of countries or their nationals, though I did see some possible leeway for Canadians.

I intend to set my PackMan ghost-themed Raspberry Pi 3 (Codename: BlinkyPie) up as the host for this authentication server. With a significantly more powerful Pi in the house, it’s no longer my go-to for small scale computing, but since this is a very small scale job, processing speed and Ethernet bandwidth shouldn’t matter so much. I pulled it out of storage in plain sight and set it next to the NAS, near where I’ll need it for another project I’ve been putting off for years now. Of course, I’ll be wanting to lock that thing up tight once I have it going long-term. For now, I’ve set it up with a static IP where such a future system will go — right in there with our other network services.

The source code came in a tar file. I extracted it, but then remembered that it’s good practice to verify the download when possible. MIT provides a PGP signature. I’ve only worked with Shasums before, but it’s a similar idea: protect against corruption and tampering.

The PGP implementation I found to read about is called GPG. I had to look no farther than Blinky’s own Raspian operating system to find it was already included. It’s usually nice when a little tool you learn about is already within arm’s reach. I struggled around with reading the manual, its internal help page, and looking up use-cases online. I found their missing public key, tracked down an instruction set under “documentation” on how to compile from scratch, and was finally able to manually verify the signature for the tarball. Trying to verify the signature in a separate directory failed to produce the key, as expected.

My first attempt at building Kerberos failed. I stepped back to research details in the instruction set I previously glazed over, such as requiring ANSI C compliance.

At this point, I started to get some direct answers from members on the EngineerMan discord server. EngineerMan himself personally explained how ANSI C is just a longer name for the C language, but mostly older standards. He named c89, but said, “you won’t hear people call c18 ansi c though.”

My understanding of the situation is so: Imagine I have a big program I intend to maintain for 50+ years. I can write it to the standards present here in 2020. But if a new standard comes out in the meantime, I can either go through the bother of updating EVERYTHING each time –leaving myself open to any bugs that might crop up as a result– or I can just keep using the 2020 standards. If someone needs to compile it, the newer compiler can always be manually configured to run the older standard. Now just backdate the situation to 1989 or so and October 2020.

I tried recompiling a few times without changes, trying to sift through the overabundant console output. I think it was my third attempt where I stretched my terminal across two screens and beyond that I noticed several messages referencing missing files.

One iteration, I redirected the first phase’s output to a log file using the > operator, but two warnings about missing files went to the console anyway. One was for something called Tcl, and the other for OpenSSL. OpenSSL showed up when I looked for it, but Discord user jeffz popped in and talked me through getting the developer version. Additional packages had to be added, preferring development versions when available.

Eventually, I stabilized the configuration script (I think), at which point I copied the whole build directory to a backup. With help, I worked on brute forcing the actual compilation. Every time, a huge error log would plague me, sometimes with lines so long, it would take four screens to show the full line in tiny text. User yemou on the Nixhub Discord server spotted a tiny typo in the command fragment make CFLAGS=-std=c89. Most, but not all log activity went away after that. Oh, and jeffz pointed out some MIT Kerberos compilation instructions tailored for Debian-based distros.

Installing Kerberos From a Repository

I got close —real close– to successfully compiling. I learned a lot to file away, but when I explored that link jeffz gave me about MIT Kerberos installation on Debian, it went straight to the apt repository. I installed it and promptly messed up the admin-server package configuration.

Initial MIT Kerberos 5 configuration is unforgiving. I tried removing the packages and putting them back, but they found some other remnants to lock on to. I used the page linked above to track down and remove more mentions, but each time I plucked something out, it broke even worse. I saw someone in a similar situation asking for help. I quickly figured out how to purge when dealing with the repository, and was soon greeted with the configuration screen, though it still must have found something because it didn’t ask everything again. I read farther, and found where they were suggesting a clean install. Not what I wanted to hear, but it’s probably for the best.

This is where I sprouted off to work on last week’s topic, where I arranged for a personal master image of Raspberry Pi OS. On taking another look at the install script for Kerberos, I feel like I’m trying to install an engine to a horse and buggy — in theory it could work, but I’m getting asked questions about where the intake manifold or the gas tank are going to go. I’m spending more effort dodging the work of setting up static IP’s than I am just doing the original work.

Kerberos needs to go wait out in the dog house for a while. Who knows? Maybe I’ll revisit it in five years or so and play ball then.

Final Question

While exploring available Kerberos downloads, I happened across a development branch. They warned multiple times against the wrong people using it with decreasingly relevant warnings. They finally skill gated it by giving a set of instructions to keep the hopeless beginners out of trouble. Have you ever run across any skill gates?

My First Online Scam

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I am telling the story of my first experience with a 419 scam. Let’s get started.

I’m writing this during a time of many projects, and if this post appears randomly, it probably means I need a week off, or I’m stuck and need extra time with next week’s project. Even now, it’s been a few weeks, so parts are already slipping away.

It all started when I received a computer related Discord message announcing a giveaway to help with the hard times of the pandemic going around. I had won .81 bitcoin! Huzza! How much was a bitcoin worth? I looked it up, and it was floating around the $9200 mark. I was staring down about $7000 if I could go claim it. The message gave me a code and a link to a cryptocurrency exchange where I could redeem it.

I was suspicious, as I should have been. Red Flag 1: I never entered any giveaway. Red Flag 2: The account giving away this freebee had only just now joined the only server we had in common. I decided to check out the link, but not as myself just yet. I decided to install TOR browser to make it look like I was somewhere else. One problem: Debian’s repositories only allow old, proven software. That’s when I learned about backports.

According to the Backports page on the Debian Wiki, “Backports are recompiled packages from testing (mostly) and unstable (in a few cases only, e.g. security updates), so they will run without new libraries (wherever it is possible) on a stable Debian distribution.” It goes on to say you should only use what you need without using every backport in the whole of Creation, at which point, I’d think you’re better off using the testing version of Debian Sid, the “unstable” version.

TOR went on without too many additional problems. I followed the link, and the site looked professional enough. I revisited it with regular, old Firefox and made myself an account using a unique password, as you should. Red flag 3: I didn’t get a notification e-mail. I noted it, but chose to ignore it for the time being. The site also went out of its way to point out that it was using https for encrypted login.

Redeeming the code went smoothly as you’d expect. I figured there’s no point in spending the money until I had gotten something tangible off this exchange. I mean, $7500 or so is enough for a very nice desktop computer — maybe even a couple just nice ones, even after paying a 10% tithe to my church. I even contacted their online giving section and was a little sad they didn’t accept Bitcoin. The most impressive part of the exchange was how it was already Friday afternoon, and they still got back within about four minutes.

I decided to try making a small purchase, but there was a small matter of the exchange saying there would be an equivalent of a flat, $5 charge for every transaction. Yellow Flag: While this business model is entirely reasonable, it discourages testing them out with small payments. It’s easier to ignore $1000 +$5 than it is to ignore $1 +$5. Switching things around, I found a way to purchase from NewEgg using a service that accepts Bitcoin and decided it would be good to pick out some hard disks for a future project.

In parallel with that project, I learned a bit more about the mechanics of Bitcoin payments. I tried making an anonymous account on a more reputable cryptocurrency exchange, but they wanted personally identifiable information. Red Flag 4: This other site I was working with was only 3 days old, according to domain name records, yet it had articles dated before that.

Another tidbit I learned from a third party was that there are laws forbidding cryptocurrency exchanges from making cash payments until the account has already received payment from a verified bank account, and then it can only pay to that bank account. Turns out that’s to prevent money laundering.

I continued on with trying to buy the hard disks by moving the Bitcoin off the exchange and onto my phone. I generated a code, moved it over to the exchange, and… Error: new account, please deposit about $200 to unlock your account. Bummer! I had been warned about this, but I chose to go learn about it anyway.

A sliver of faint hope was finally dismantled when I talked with one of the mods on the Discord I was on. Turns out multiple people had gotten targeted, but I was the first to report this particular individual. After a screenshot of the PM he sent, he was banned from the server.

Final Question: Have you ever been targeted by a 419 scam and come out the other side with an interesting story?

Beowulf Cluster: Part 1: Sum of Its Parts

Good Morning from my Robotics Lab! This is Shadow_8472 and today, I am planning a model supercomputer. Let’s get started!

I feel swamped with projects right now. They end up stacking up and with different priorities, so I’m glad I can finally do something with this lockdown care package I recieved from Third Workshop several weeks ago.

The package contained five Minus Forum Fanless Mini PC’s, model N40. After carefully removing and discarding the wrapper, I pulled one out and hooked it up. It booted to Windows 10 setup. Nice that they included something, but for a number of reasons, I will be installing some version of Linux on these tiny machines. What annoyed me was that the screen where Windows wants me to accept the EULA did not have a reject button.

What annoyed me more was how I never received an answer from support about a partial refund per the Windows EULA. Honestly, I did that more on principle, and I don’t know how it would work. I am not the original purchaser, and they were already on sale. Token effort. Their support website didn’t have a security certificate for protecting login details, so I didn’t prioritize pursuing a couple dollars per machine any further. In the meantime, I turned my attention to booting Linux from my Debian install stick. Let me tell you: the BIOS on these things is about as user friendly as their tech support.

By default, it priorities internal boot devices over removal media, and it only gives a tiny window of opportunity to enter the boot menu, or it’s off to Win10. it’s almost like the original manufacturer didn’t want people looking at the BIOS at it’s almost like the original manufacturer didn’t want people looking at the BIOS at; I had to look up what key to press, and it was either F2 or DELETE, and when I got to the BIOS menu, it was the ugliest one I’ve ever seen. The aesthetics were on the low end for terminal style menus, but the real kicker was how they handled moving the boot order around. I wasn’t able to figure it out except that it felt like swapping items in an array instead of moving things up and down a list. Despite the challenges, I was able to boot the way I wanted to.

Assembling a supercomputer though, that is a whole other story. There are two kinds of supercomputers: distributed, like what Fold@Home is using to combat the CCP Virus Pandemic (which I intend to add these goodies to), and clusters, like what I’m trying to build. At present, I am pursuing the term Beowulf Cluster in my searches.

I just wanted to touch on another reason not to go with Windows for this project, besides me transitioning to Linux whenever possible. Windows charges per instance of their OS. Supercomputers need one OS per node, and practical supercomputers will often have at least five or six nodes working in parallel. Couple that with the already sparse number of applications for supercomputers, and you end up with virtually no supporting software to use Windows for a Cluster computer.

The biggest challenge I faced in this part of the work was knowing what to order. I had to ask someone on my family’s Minecraft server before I knew for sure that a switch would serve just fine. Then came the rest of the support system.

These little computers support Gigabit Ethernet, so that’s what I’m aiming for all along the system, primarily the network cabling. There’s a lot to know about wiring. Modern data transmission builds on the twisted pair technique originally invented by Alaxander Gram Bell. Since then, we’ve found ways to reduce noise, such as insulating the wires from each other, shielding them from each other with foil, shielding the whole set of wires from their environment with more foil, and so on and so forth. There are specs on fire safety if the cable is installed horizontally, vertically, or even in the ventilation system.

More relevant to my project is how the cable’s wires are made. One kind is made with lots of strands, making it easy to bend around and is often used between computers and the wall. The one I want uses solid wires; the wires won’t be moving around much after installation.

Rounding the computation side of things off, I have a Raspberry Pi 4B on order. That was a small adventure. Turns out the B in Pi XB just means it has an Ethernet port, and a model A doesn’t have it. Since they aren’t making Pi 4’s without Ethernet at present, all cases made for plain “Pi 4” should work for my purposes. I went for one that doubles as a large heat sink. Neither have arrives as of writing.

The final hardware challenge is power. While I’d like to just slap a strong enough power supply on the mounting board, different parts of my system will be running three unique voltages. The only ones I’d have any chance of combining are the original minicomputers, and their power supplies are matched pretty well with what they need. They also take up too much real estate on the power strip. I researched over and out of my price range, landing on the conclusion that more research would be needed to combine transformers. The plan now is to grab a couple angled three-way splitters and use the original transformers.

I haven’t even gotten to assembling the system, and it’s already a formidable challenge. Nevertheless, there is one more good reason for combining all these machines in one “casing:” I believe my family is near capacity with the number of computers our router can physically address at once, and that this project would otherwise put it over. The way it’s planned out, as the controller. the Pi 4 will be the only node to talk to the outside.

Final Question: What would you use a supercomputer for?

Loss

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I am working on upgrading ButtonMash to a decently sized hard drive. Let’s get started!

I am humbled to know that Creepers_n_Cream has been a well-loved server. I’m actually impressed at how well God has blessed my efforts given I put it together on a budget of nothing but what I had laying around. We’ve had somewhere between twenty and thirty unique accounts stop by, and we have about ten regulars in our community.

With abundant use comes abundant taxation on the hardware. Even though the RAM situation has been stable since I implemented G1GC not all the bottlenecks are fully addressed yet. The CPU gets pegged if more than a couple people are on at a time, and 60 gigabytes of hard drive space only goes so far when you aren’t deleting old weekly backups.

A few weeks ago, I woke up to the server crashing royally. It had finally finished topping off the tiny hard drive I gave it to start with. My family discussed it, and we eventually ordered a one terabyte solid state drive to install.

The first step is to get the operating system installed. Unsure where my original MineOS installation media went, I located a thumb drive and it mounted as sdd. It had a bunch of old Minecraft servers I could offload.

With the drive void of contents, I pulled up a tutorial on burning .iso disk images to thumb drives from the command line in Linux. As soon as I saw the dd command, I remembered a warning that it might as well stand for “disk destroyer.” Its actual name is Data Duplicator. Aside from working in the command line, there was nothing new about this situation.

Following the tutorial, I wrote a vFAT file system to sdb. Oops, I spelled it “sufo” instead of “sudo.” Correcting my typo, I tried again…

…

…

sdb…

…

…

I used the lsblk (list block) command to bring up all partitions of any disks connected to the drive. I felt the color drain from my face as I inspected the table.

I had heard the warnings. I had double checked. Years worth of memories –gone– in only a minute. This is why you always isolate potentially destructive work by using a computer you can easily rebuild; always minimize the chance of damages with an air gap! Always!

I had goofed. At least I hear this is the mistake you only ever make once. In the fallout, I checked around for a backup, and I found something from last December. It doesn’t have much, but at this point, I just have to trust my past self that I got the stuff that’s most important. As luck would have it, of my three most important personal drives, that was the only one I actually have any sort of backup for, and it’s the only one that wasn’t still in daily use.

I continued with putting MineOS on the terabyte SSD. I used my main tower, but its external Wi-Fi card didn’t register, so I put the project down for now while I focus on recovering my hard drive.

As of writing, I still don’t fully understand the damage, but I’ll try explaining it as best I can. Most of the data is still there. All that really happened was that I shredded the hard drive’s internal map and laid out a fresh one, marking everything ready for redevelopment. If I can somehow survey the abandoned data, I should be able to rebuild the original map.

Fortunately, there are recovery tools I can try. The one I’m trying to work with right now is called TestDisk. I believe it should be able to achieve a full recovery, if used correctly.

But that’s the thing. I don’t know how to use it correctly. I’m terrified that I’ve only got one shot, and if I miss, it’s possible the failed recovery process will cause farther damage, and I won’t be able to try again.

I’m hardly the first person to nuke a hard drive by accident. There are other options around, but I’m still scared that I won’t get a second chance once I try any one of them. The best case for me would be if I found someone else who had written a vFAT filesystem over an NTFS filesystem and replacing two visible partitions, but the creation of such a tutorial would be pointless, as there are way more possible combinations to the point that there isn’t enough demand to justify the supply.

I need to put this project down for a while. I’ve reached out to the Third Workshop, but with the pandemic on, “after school” STEM programs are online only. Otherwise, I have a couple topics I can develop for the next couple weeks. I really want my drive back.

Final Question: What was the biggest computer blunder you’ve ever made?