I Didn’t Git It

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I tried adding a Git server to my Bitwarden server, and blew most of my time on a detour. Let’s get started!

Git

Git is an open source version control platform, not to be confused with GitHub, a website and hosting service implementing the software. Git is sort of like an Undo/Redo history, but you can switch off old changes and put the new ones on. It will be very useful –if not project saving– while building my social robot. The only problem is that I need to learn how to use it from a developer’s point of view.

I want to install a Git server. My target is my Raspberry Pi 3B+ hostname: BlinkyPie operating system: Raspberry OS lite. It’s already running my Bitwarden server to host passwords, and has plenty of space on its SD card for starting out and ample room in its CPU cycles.

Failed installation

As always, the first step in installing any piece of software in Debian family Linux distributions (distros) is to update repository information. sudo apt-get update The log put up a warning about the locale. I didn’t think much of it until Git didn’t install.

Logs are not always the easiest things to understand. They’re also not the easiest for search engines to decode when nobody has made attended to the exact wording. Even now, I have no idea what’s going wrong. What I do know is that when I tried messing with the locale configuration settings under raspi-config, the whole system would stop responding to any command I sent remotely logged in over SSH other than exit (ending the session). Further attempts to connect would fail until I rebooted from the physical switch and I would repeat the cycle.

System Failure and Backup

Things got really messed up to the point where I started worrying if I’d ever get my passwords back. I mentally went into recovery mode, trying to salvage what I could. I started by using dd to Duplicate the Disk onto the NAS so I could restore it if I messed it up worse. I also observed that my Bitwarden plugin has a limited-time retention of my password vault in case it can’t reach its host server. My vault was soon exported, where it would be safe in case of a total system wipe and reset.

With the only irreplaceable nugget safely tucked away, I unsuccessfully turned my attention to extracting the Docker image hosting Bitwarden, and settling for the contents of the home directory. This whole time, I was also researching what operating system I was going to replace Raspberry OS with. I seriously looked at Arch, Manjaro, and Apache, though that’s not something I can just do in a single day and expect satisfactory results: I gave repairing what I had one more chance.

Net Work: Nothing

After sifting through the tons of free tools for checking SD card integrity, I landed on linux.goeszen.com/how-to-test-an-sd-card-on-ubuntu. It tells of a tool that “comes with most debian based *nix systems” called dosfsck (also present on Manjaro). I told it to repair the SD card and test for bad clusters. It found a “dirty bit.” I won’t pretend to understand, but it appears to involve the computer’s CPU tracking modified data in RAM.

There was another error it found and repaired I wasn’t able to understand myself, but when I booted it back up, everything was back to the way it was before. The next step is to make another image and do some research before hacking another OS in there.

Takeaway

In retrospect, I probably should have checked if GoldenOakLibry, my Network Attached Storage (NAS) unit, can do Git easily. I’ll probably need more than the 64 GB of storage in the server’s card. Besides, I’m asking for trouble if I don’t at least schedule regular backups for something as important as passwords, even if I weren’t thinking in terms of potentially faulty SD card.

Final Question

On a scale of annoyed to paralyzed, if you had to roll a many sided die and yank that hard drive as if it were now destroyed, how much pain would you be in?

Let’s Build Robotics…

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I have a very exciting project announcement, one I’ve been looking forward to working on since I started this blog. Let’s get started!

Introduction

I’ve always dreamed of having my own social robot, and while I’ve spent the past few months researching the subject in my spare time, I still feel like I don’t know the second thing about actually building one. Way back when, I heard Linux was the operating system of choice for the craft, and I’ve been here ever since, and I’d like to move on.

I want to make an open-source, ambulatory social robot that can hold on a conversation, operate independent of a host computer, and be buildable/affordable by an avid robotics hobbyist. I know I don’t have the skills, and technology may need to march on before all my goals are feasible at once, but I fully expect this project to take over ten years. I respect the open source community, and I want to start giving back.

Background

The field of robotics is about as developed as computers were in the 50 to 60 years ago: large, clunky models confined by their price tags to businesses or universities; commercial applications cultivate a public awareness in the commercial sector leading up to early adoption in the home with the number of use cases blossoming as the technology develops.

One future of robotics under development has robots built for socialization. Where robots of today may feel like little more than computers personified, social robots can bring a character to life in the real world. Imagine: an automated service may benefit from a relatable face. One robotic puppy now on the market is aimed at forgetful seniors who might be at risk of neglecting a living therapy animal.

Who says a robot must have a riged frame, run on servos, or use other parts that boost their cost? A number of artificial muscle designs are cheaper, lighter, and simpler to make. I’ll go into more detail in future posts, but the kind I’ve been studying offers a world of design possibilities motors struggle to replicate.

Finishing Thoughts

It is my hope that I can work on this mega project as I can, and post video updates every three months or whenever I reach a major milestone. I will still have other topics as projects come up, and I may even do side projects directly intended to practice/develop skills for this project. For this reason, I won’t be using my usual numbering system. The parts for this robot are mostly out there. I just need to assemble them and make up the difference.

Final Question

What would you do with a personality robot you could take anywhere?

Family Photo Chest Part 14.4: Assembling a Scanning System

pricingGood Morning from my Robotics Lab! This is Shadow_8472, and today, I’ve studied another photo scanning system available on the web. Let’s get started!

Introduction

Scanning seems evermore a topic I’m learning about without entering production. I’ve lost count of how many workflow iterations I’ve come up with, yet each time I feel closer than ever to that most elusive batch #0001.

I’ve now studied the free portions of two workflows from people who claim years of experience: scanyourentirelife.com and howtoscan.ca, but howtoscan is my favorite between the two. Both give enough of their respective systems away to be functional, but they each offer additional, step by step, click by click training affordable to anyone rich enough to afford a dedicated scanner as is recommended when scanning thousands of photos at home.

My outline today is based on what I’ve gleaned from freely available sources, though influences of the above two are more prominent in my mind.

1. Have a System

Anyone can throw a few prints in a scanner and share them online. Hundreds or thousands of pictures taken and organized by people spanning generations mandates some form of structure.

My system at this point looks like it may be sorting pictures by immediate family of origin and further sorting by year. Eventually, each item will end up in one of several 10-12 gallon buckets that can be scanned and moved to a neat “completed” stack.

2. Select Hardware Wisely

You don’t need a $50,000 professional scanner if you don’t know how to use the $150 one intended for home use you may already have lying around, like me.

If, on the other hand you are buying a scanner new and already have scanner software piked out, like XSANE, you should make an effort find a fully compatible model. Remember: marketing for home grade scanners doesn’t always have quality results in mind; they’re there to sell a product to the general public. This probably isn’t you if you’re taking the time to research.

Thought should also be given to storage. You may choose to store your photos on a cloud or locally, but if you’re planning your digital archive lasting another 3 to 5 generations, I would recommend some form of protection against hardware failure, such as a RAID configuration featuring redundancy.

3. Assemble a Workstation

Less important is the workstation you’ll be scanning at. In my experience so far, RAM is a limiting factor. Right now, I’m working with a keyboard, mouse, and monitor are straight out of the 90’s. Other than that, your average workstation should be fine.

I will note that since I have animals in the house, I have a room with a door to keep them out. I will also note that I feel safe enough leaving the door open when I’m in the room with all the pictures in the buckets mentioned above.

4. Capture Natural Scans and Fix in Post

Again, standalone scanners aimed at households will have modes invented by the marketing department to sell scanners. Scan at your final resolution, dust and all. Anything you do to a scan preview is permanent to your scan proper. Take advantage of automatic numbering in names. Work on a copy in a program designed to manipulate images, not one intended to sell scanners. Scan in batches with similar settings to save time fiddling with software settings.

My setup uses GIMP. I’ve taken a class on the basics in Photoshop, and about the only thing I miss is something like the Quick Select tool, but GIMP beta has an early version out for testing before their big 3.0 release. I also plan on using a script called DivideScannedImages so I can scan multiple pictures in a single pass.

Now this last part will hurt, but not everyone will be interested in his or her 8th grade school photos or the backside of a motorcycle frame. Pay the most attention to the pictures people will want to see.

5. Manage Your File System

Whatever file system you learn, learn it. Metadata is your friend. Learn how to add tags, dates — for all I know you can add whole pictures (would be nice for photo backs annotated in foreign scripts, but probably not). HowToScan recommends learning how to use batch handling, and the Linux command line usually has it baked in.

Takeaway

I can see why people might spend years figuring this stuff out and valuing it at X hundred dollars to sell the specifics. Some people need step-by-step, click-by-click instructions, but I don’t feel the need for me. I had a class in Photoshop, and most of the important points in one of the howtoscan free ebooks was all about using the “healing brush,” a technique I once used to remove a power line from a church building photo — the line art of which is still used in the directory to this day.

This has been a hard push of a month. I expect to return to assorted topics next week.

Final Question

How much would you pay to learn how to scan?

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.1: A Workstation From the Parts I Have at Home

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I am setting up my second scanner workstation. Let’s get started!

Prologue

As seems to be my new tradition when getting/assembling a new workstation, I am recording this week’s observations from said machine. It’s been interesting. Especially since I don’t have a budget for new hardware.

The Tower

Once upon a time, I set up a Minecraft server for my family to play on. I named it ButtonMash. I did a lot of maintenance to keep it running, but eventually, we stopped playing on our own family-owned servers. Ever since, ButtonMash has been running in the background, catching dust.

With a renewed effort towards finally starting production on scanning, ButtonMash is the perfect fit for a workstation. It’s presently running on 16 GB of RAM, and while I thought it might benefit from an old graphics card I found lying around, a quick test proved it to be a downgrade from integrated.

The Hard Drive

A long time ago, I talked my laptop into scanning without sudo. So long ago –in fact– it was before I cloned Debian to run internally, so it would still be on the external SSD on USB 3.0.

ButtonMash’s motherboard lacks a USB 3 port, so we ordered up a card special. Unfortunately, it straight up refuses to boot from either of the card’s USB slots. No configuration works. lspci will detect the card once booted, but not even my GRUB disk can find my Debian external drive. I could get lost trying to troubleshoot, but for now, the bootable USB 2 slots must suffice.

The Keyboard and Mouse

There must be about seven wireless keyboards hovering about my house, each of which is orphaned from its dongle and paired mouse. Each of them always seems to have some sort of buffering problem.

On the other hand, I managed to spot a keyboard from when I was little hanging out in our treasure trove of old tech stored in the garage. It’s in relatively good shape — most likely because its from the days before USB became king. Fortunately, ButtonMash is old enough to have not one, but two PS/2 ports: one for keyboard, one for mouse. On the other hand, the integrated tickle pad uses a different standard I don’t have the proper port for.

My greatest gripe is that it’s a little hard to write on because it has the pipe and backslash key to the right of the Right Shift key. My computing habits have evolved since using this keyboard. When selecting text, I move my right hand so my thumb presses Ctrl and Shift, and my other fingers operate the arrow keys. On this model, I have to angle my hand at awkward angles to not hit a key I never use outside the command line.

The mouse was a little harder to find, but I managed to pull up a trackball with three less-than-perfectly-reliable buttons. It too is on a PS/2 connector, and so wasn’t designed for “plug and play.” However, I have tested it, and ButtonMash’s motherboard was able to pick them up after unplugging them without rebooting when I tested it for myself.

The trackball is different to use. I’m a lefty, and while I can normally manipulate the thumb buttons with my ring finger, I don’t have the dexterity to spin a sphere in the same place with my pinkie. I’d also have to contend with more extreme button placement, in addition to said buttons being unreliable. I’m finding I get a more consistent click if I press near the base of the button, though click and drag requires a particularly good streak of luck. Either way, it’s pretty fun to spin the ball super fast and watch the pointer not know what to make of it until things slow down.

The Display

ButtonMash has been running headless, only sharing a monitor with my father’s tower when needed. However, I found another treasure from the garage from when I was little: an old CRT monitor I remember being amazed with because of how flat the surface was. It’s just an extra panel of glass in front of the tube.

The long standing standard of VGA means that ButtonMash has no problem outputting to this old monitor. Honestly, it has no business lasting as long as it did.

I started the monitor for the first time in what must have been around 10 to 15 years, give or take, and cringed, thinking it was burning itself out as it crackled to life. It’s probably just thermal expansion. The picture still looks good, though there is noticeable flickering in large patches of white. I calibrated the screen so I’m using the full usable area, but I noticed it drifting a little after a while. My particular monitor has a degauss option hidden in its menus, and in addition to making everything go funny for a few seconds, it removes latent magnetic interference that builds up over time. It also produces a satisfying TWANG! After a few days of regular use, the picture appears to have mostly stabilized.

One thing I was sure to enable is a screensaver. This art form isn’t as important with the Liquid Crystal Displays permeating the market these days, but on old Cathode Ray Tubes, they would prevent a static image from burning itself into the surface of the vacuum tube if left alone too long. The pickings were a little slim on Debian, so I installed the xscreensaver package and picked one called Galaxy.

Using this older aspect ratio brings to light a few design decisions I’ve called into question on a few older pieces of software, namely XSANE, GIMP, and the default panel settings on GNOME2/MATE. On a wide screen, XSANE feels needlessly skinny and lost. GIMP looks silly with its tools detached from the main program body to the point where it doesn’t look like a cohesive program. And panels in MATE flat out waste space when hogging both the top and bottom.

But with a narrower aspect ratio, I find I’m only paying attention to the middle strip of the screen. XSANE windows can be rearranged with the important one taking up roughly half the screen and the others put where needed on the other. While I’ve yet to try GIMP in fragmented mode, I expect it too makes more sense this way. I even found myself restoring MATE’s upper panel to alleviate the icon traffic jam my one panel at the bottom was suffering from.

The Internet Connection

The Internet Connection was about the one part I had already figured out months ago. I grabbed my Pi 400 router from where it has been serving a more permanent workstation. I already copied the card and assigned it one a different IP address.

I tried going straight from Pi to tower without a switch in-between. I wasn’t expecting it to work because of the way I understand network cables to work, but it would seem one system or the other has figured the arrangement out.

Takeaway

The nineties… I can hear them calling… but no, they can’t have their workstation back because I have enough of an anchor in the twenties that spontaneous, meme-powered time travel will not be happening in the foreseeable future. I’m just excited to finally see the last bits of hardware fitting into place after over a year of planning.

Final Question

Have you ever amused yourself by spinning a trackball faster than the computer knew what to do with it?

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?

BitWarden: My New Password Manager

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I am switching my password manager from LastPass to Bitwarden. Let’s get started!

Introduction: Password Strength

It’s almost comical when a digital security expert starts a talk in a packed auditorium and asks, “How many of you use the same password everywhere you go?” and half the people raise their hands. A facepalm or two later and the speaker may start comparing it to how that’s like a company keying all their locks to the same key, regardless of department or security level. It’s a stupid, stupid, stupid idea, and I am guilty of doing it up until two or three years ago.

The absolute worst password you can use is one someone else has without permission. The next worst password is one someone else can quickly guess. Web Comic XKCD – Password Strength gives a concise explanation: long, simple passwords are easier to remember and harder to guess than short passwords butchered by special characters.

But you could have the strongest password in the world, and still be vulnerable if you’re using that password for all your accounts. If just one of your sites is compromised, an attacker now has a key ring to go try all the popular sites to try and let himself in, and you will need to spend a long time cleaning up.

Password Managers

But then, convenience. The human mind would rather not remember tens or hundreds of passwords that may be up to date or replaced. That is where a password manager comes in. You log in with your one master password, and it automatically fills in passwords as you go. Set up properly, it’s even faster than entering your one password each time everywhere you go, and a basic setup isn’t all that hard to do.

At this point, a password manager should sound like a major security vulnerability, akin to a nicely organized key cabinet in the lobby, but a properly designed password manager never knows your passwords except when and where they’re needed. Your master password is used to help scramble and unscramble your passwords on your own computers. The rest of the time, it’s a bunch of otherwise meaningless garbage to anyone trying to poke at it.

Furthermore: don’t “log in with <Platform X>”. Ever. Only if there’s no other way, and even then: take pause. Merged accounts are worse than using the same password because they are by definition using the same username as well. A break-in to one is a break-in to all linked accounts.

From LastPass to BitWarden

I am displeased to announce that LastPass today is chasing off a lot of their free users by making them choose between types of devices: desktop/laptop and mobile. I personally only use a tablet for one or two things, like reading my Bible or viewing PDF’s. This won’t affect me but maybe once a month or two when I’m not bothering to walk to a desktop. Still, I don’t like it. It’s not like they’re getting any of my money anyway.

I chose BitWarden because it kept coming up as a good alternative. Not only is it open source, but their code has been audited, and I can self-host it as well: all are highly desirable features whereas LastPass is -at most- only audited.

The actual switch once I had my personal server up was easier than getting the dogs ready for a walk. All my passwords were moved in a single transaction, categories and all.

Personal BitWarden Server

First of all, IF YOU DON’T KNOW WHAT YOU’RE DOING, JUST SET UP A REGULAR ACCOUNT! That said, I want to challenge myself, and I believe this is reasonably within my grasp. I closely followed sensiCLICK’s Full Guide to Self-Hosting Password Manager Bitwarden on Raspberry Pi on my BlinkiePie, my Pi 3B+ using a fresh, minimal install of a Raspberry OS.

I don’t really have much to say here because I don’t understand a lot of the new stuff I did. There were some instructions that had changed in the months since the video was released, but there were notes in the chapter titles. The tutorial ironically didn’t encourage its viewers to change the default password of ‘raspberry’ as you should. I changed the hostname, gave it a static IP, and not much else. I’ll need to save locking it down for another week when I have more time to propagate BitWarden across the rest of my devices that need it.

Takeaway

Passwords, like locks, are a balance between how badly people want in vs how badly you want to keep them out. Short passwords are easier to enter (if they can be remembered), long passwords keep attackers out longer.

Final Question

How many unique passwords do you use?

Family Photo Chest Part 13: Early Prototype Workflow

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I am merging a couple projects into one and hoping they stick. Let’s get started!

Overview

I’ve been piecing bits of my photo trunk project workflow together now for way too long. Right now, the architecture is looking like I’ll be scanning sets of pictures to a directory on a Network Attached Storage, then I can use a cluster of dedicated microcomputers from another unfinished project to separate and deskew the raw data into individual files. These files will then live permanently on the NAS.

Progress is rarely linear though. My end goal for this week hopped around quite a bit, but in the end I felt like I did nothing but figuring out how not to proceed: ground work with no structure. Routers are hard when you’re trying to learn them on a schedule!

Lack of Progress

In a perfect world, I would have been well on the way to configuring a cluster node by now. In a less unreasonable one, I would have had my Pi 4 OpenWRT ready to support the cluster. Late-cycle diagnostics chased me into an even more fundamental problem with the system: Wi-Fi connectivity.

During diagnostics, I’m learning about how different parts of the system work. Physical connection points can be bridged for a single logical interface, and Ethernet cables can support separate ipv4 and ipv6 connections. I can’t configure the Ethernet (on either logical interface) the way I want because that’s how I’m connecting to the Web UI and SSH. I end up stuck using two computers besides the two router Pi’s (OpenWRT and a Raspian hack router that actually works) because I don’t like switching my Ethernet cables around on the switch, but I need to do that anyway when I have to copy a large block of text. In short: the sooner Wi-Fi gets working, the better.

I understand I am essentially working with a snapshot. It’s been tidied up a bit, but bugs still exist. Wi-Fi is apparently one of those things that’s extra delicate; each country has its own region, among other complexities. On the other hand, I don’t know if that’s actually the case, as diagnostics are ongoing.

Takeaway

I’m probably going to work on this one in the background for a while. The OpenWRT help forum’s polish at least in part makes up for routers being dull to learn. If it takes too long, I do have other projects, so I may need to replace the cluster with a more readily available solution.

Final Question

Have you ever had upstream bugs that kept you from completing a task?