I’m Incompatible Because Policy?!

Good Morning from my Robotics Lab! This is Shadow_8472 with a side project of the week. Let’s get started!

I’ve been interested in having the basics of a smartphone again for a while now. I was planning on diving into Android Debug Bridge for this month’s large project, but my PinePhone showed up again after a couple years. For the unaware, the PinePhone is basically a Linux computer in the profile of a smartphone.

My PinePhone is the second edition released: it understandably has early adopter issues like slow load times and needing to about live on a charger when not in use. It came preloaded with Ubuntu Touch; while I could see myself using it (should it actually work), I’m not particularly impressed. I need text, call, and picture capabilities. It’s not able to do any of those right now.

I installed my current SIM card. Now, this SIM was sold locked to an LG Stylo 5 smartphone for the duration of the initial contract (now expired). My PinePhone sees the name of my provider, but anything involving data over the cellular network escapes me for the time being. I will need to contact my mobile service provider.

Aside from mobile data, something is off with my camera app. Pair that with my mediocre response to Ubuntu Touch, and now I want to try a different OS. I’m a fan of KDE, so I went to the Pine64 PinePhone OS index [1] and downloaded/flashed one marked KDE to a microSD card (one of my good ones; rest in peace abandoned project PiCore – I’ll do better next time). I totally missed that the image was a factory test, but at least I was able to verify that both my cameras work but cellular data is still a bust.

Take 2: postmarketOS is a mobile distribution with an option for Plasma Mobile. I was tossed between multiple websites before locating the actual download link. Dolphin file viewer calculates Shasums, flashing SD cards has almost become second nature at this point, and then it’s a matter of booting for the first time.

Plasma Mobile imitates Android about as well as KDE imitates Windows. It felt almost like coming home. Response time was improved, the camera worked, and the layout felt more familiar than not. The system time zone settings were a little harder to find. Overall, it offers a bit less stability than Ubuntu Touch, but the upsides more than make up for it.

I spent a day or so with tech support. Phones these days come with multiple locks and they can often be confused for each other. There is the lock that binds the phone to its original carrier. There is the lock screen to authenticate the user. There is also the lock binding the SIM to the phone body. My phone was locked, but the SIM must have noticed it was in a strange host and blown some sort of digital fuse. I can’t say I wasn’t warned.

Takeaway

I’m mad. My phone should be technologically compatible with their network. I have the skills to self-support my local hardware, but tech support won’t work with me on the equipment beyond my control. I’m hoping it’s the fuse hypothesis and that someone in-store can service the SIM without dumping me for the sake of the phone.

Final Question

What tech support disaster have you experienced or observed?

Works Cited

“PinePhone Software Releases,”wiki.pine64.org, July 24, 2022. [Online]. Available:https://wiki.pine64.org/index.php/PinePhone_Software_Releases [Accessed Aug. 15, 2022].

I Printed A Filament Duster

Good Morning from my Robotics Lab! This is Shadow_8472 with a side project of the week. Let’s get started!

My 3D printer has been stubborn at finishing prints since I was finishing up a Chess set for a kid spending his summer in the hospital. Just as it finishes up, it stops extruding material. Since then, I have tried a few times to print a combined filament guide and duster from Thingiverse [1]. It’s time to take another crack at it.

When last I lost patience with my printer, I left its corner adjustments fully tightened down. Needless to say, filament doesn’t stick the best when this happens. I also had a .gcode file loaded with a few changes: the part was in another spot in the bed because of visible wear on the bed, a little cap was omitted as I already have a couple good ones, there is a rectangular structure inspired by a purge block used by multi-filament printers because maybe it’s getting lazy toward the end of the job or something (good luck if nothing else). And as if that weren’t enough, I installed one of my defective filament guides and tied a microfiber to the filament using strings of filament from previous bed level tests.

One more thing –and this is probably the one that actually did it– the print head apart and gave the e-step motor as good of a cleaning as I could get with another microfiber cloth, the long end of an Allen wrench, and a bit of creativity. Once I was convinced I was well past the point of diminishing returns, I put the printer back together and it came out first try.

Weary of a lame sendoff to a project I’ve had multiple weeks ending in failure, I did a bit more background research on 3D printing:

Additive manufacturing caught popular attention in the early 2010’s. Advice shared among 3D printing hobbyists from this period should be followed with caution as widely spread advice, like oiling your filament for lubrication, may have come out as a bad idea in more recent years (for example: oil burning in extruder, making bed adhesion more difficult, and soaking into/destroying filaments). It is for this reason that I am using a dry sponge to dust my filament.

Takeaway

This part took way too long to fabricate. It is my hope that it will silently do its work in preventing so many jams in the long run. I may never know if it is actually of any use. I’d need to alternate between using two identical machines in the same room. That’s not likely to happen unless the one I have is already constantly busy, which would give less time for dust to settle on open spools of filament to begin with. I’m just glad the device is finally in place.

Final Question

What projects have you completed where you may never know how beneficial or useless they are in the end?

I look forward hearing your answers on in the comments below or on my Discord server.

Work Cited

For my initial post, I was been unable to locate a link to the part I used.

[1] Sleven67, “Dust filter plus filament guide monoprice maker select plus,” Thingiverse.com, Oct. 23, 2020. [Online]. Available: https://www.thingiverse.com/thing:4632282. [Accessed Aug. 11, 2022].

I Made Copies of Archived Floppies

Good Morning from my Robotics Lab! This is Shadow_8472 with a side project of the week. Let’s get started!

The process of archival maintenance can be tedious and repetitive. As disk formats change, it becomes harder to locate adapters for disks with old connection standards. For today’s project, I worked with a USB floppy reader.

It all started when my mother’s Designer Ruby embroidery machine wasn’t as broken as she thought. The machine is quite old by this point, and while discussing what thumb drives we might have that aren’t too big for it to see, my father and I were quickly able to trial an SD card over an adapter (didn’t work) and an external 3¼ floppy disk reader. It wasn’t long before we were pouring over a stash of floppies from a previous embroidery machine and rediscovering old patterns.

My mother spent an afternoon copying the archive to a thumb drive, but a few files were appearently corrupt. I tried to access them on Linux, but the floppy drive was making an unusual pattern of sounds as it accessed the first trouble file. Instead, I very carefully crafted a dd command to dump the contents to an image in my Downloads directory. I repeated the process for each floppy, then mounted it into my file system for extraction.

Out of curiosity, I looked up how it was possible for a user to mount a USB stick if Linux is running mount, a privileged command, underneath the graphics. Long story short, I saw it before while researching an open source driver for our uninterruptible power supplies. Daemons are a type of privileged program that can act on behalf of an underprivileged program without giving it wide, open access to root level permissions. Udisksctl is one such command line utility.

Mounting the disk images proved problematic, producing several errors. Assuming they were permissions related, I tried using udiskctl to mount them as myself instead of root, but instead renamed them with .img and mounted them with Dolphin, a graphical file manager. Turns out the errors really were badly corrupted files, and they still refused to copy out of the disk images, even with the correct permissions. At least it was cleaner this way.

I originally thought I had saved around three of the nine missing files, but one or two of the recovered ones turned upon inspection. I am happy to report that I was able recover the one pattern my mother wanted most. The entire archive will soon end up on GoldenOakLibry, my family’s network storage.

Takeaway

The possibility remains that further attempts at recovery may be viable. Given that the bulk of the collection was archived successfully before I got involved, I will have to ask her if the last few patterns are worth it. In any case, it was nice seeing some of those patterns I remember being stitched out by machine all those years ago. It reminds me of 3D printing in the present day.

Final Question

Have you ever dealt with aging technology to move an archive forward in terms of technological time?

I look forward hearing your answers on in the comments below or on my Discord server.

My Phone is Sadly Not ROM-Flashable (Stylo 5)

Good Morning from my Robotics Lab! This is Shadow_8472, and today I am exploring my options when it comes to making good on Degoogling my LG Stylo 5 smartphone. Let’s get started!

Not a Feasible Project?

I tried. I really tried. The plight of someone awakened to Big Tech’s abuses of power is near-hopeless in the face of Android and iOS. Google and Apple’s duopoly is thanks to their extensive walled gardens. Google’s open gates admit smartphone manufacturers the world over who all but worship the search giant for money. Users who wish for an existence free from the oppressive “quality control” rules of these gardens are left to brave a harsh, digital wilderness.

Unlike the more traditional desktop platform, the smartphone wilderness is still in its pioneer days. Special preparation must be undertaken before embarkation. Like the wagon trains of old, safe passage is limited to groups. There simply aren’t enough people interested in a free (as in freedom) smartphone experience for groups with technical experience to blaze trails for every model. Few people are talking about the Stylo 5.

I may have enough experience to produce a working custom ROM, but it’s been an exhausting topic to research. Even if I did produce a working ROM, keeping it updated would monopolize the rest of my time. This project direction is not for me. For the experience I really want, I need to pick a ROM and buy hardware based on that.

Just because I’ve abandoned hopes of ROM flashing the Stylo 5 doesn’t mean I can’t re-evaluate my short and medium term plans. Whatever I do, I will need a tool called Android Debug Bridge (ADB) for administrative access to the unit.

I teased an update issue last week on my Manjaro workstation. It looks like there were some significant changes to package names. I had to uninstall a conflicting package to proceed [1], but I lost Prusa Slic3r in the process and had to reinstall it from another source. Afterwords, I found the packages for ADB had already been installed. I played with them a little, but nothing conclusive has come of it yet.

What Do I Actually Want?

I took my project to Reddit’s r/degoogle and got a reality check [2]. User Bubba1601 confirmed my researched suspicion that the Stylo 5 cannot be flashed. Between users Lisse2000 and cd109876, I learned that updates are secure against custom ROM’s for security reasons. Others recommended a Google Pixel as a way to get away from Google because it’s the only line GrapheneOS supports – again for a good reason: the Pixel is one of the few phones that lets you re-lock your boot loader, reducing the possible attack surface.

I was additionally cautioned against thinking too much of the Librem 5, an open-hardware/software Linux phone with an American-made option. Follow-up research showed that while it’s well on the way to being a viable alternative, it’s only enthusiast grade at best so far as I can tell. The premium $2,000 price tag is a bit above what I can afford with pocket change, so this is one project for the long-term dream board once I finalize monetization without compromising my values.

Given that I have to work with the Stylo 5, what CAN I do? User qUxUp was the only one to actually stay on the original topic – and I quote:

1. Use as many as possible FOSS apps instead of google play apps (you can get most from fdroid).
2. Disable what you don't need with adb.
3. Use nextdns to block the services that you don't want to interact with your phone.

I have heard of all of these in one shape or another. ADB is a bit more invasive than I want to wield on a system I care about, but the DuckDuckGo Privacy App (not sponsored) has a VPN to stop unwanted trackers from leaving the device. I’ve been fairly careful since growing sour towards Google, but DuckDuckGo’s app has helped me identify and remove an innocent-looking app or two when they phoned home despite me not interacting with them anymore.

r/degoogle moderator BlueJayMordecai gave the following advice in a pinned post:

“It's okay to change [how you want to DeGoogle] at a later time if you feel you want to go further into repalcements [sic] or go lighter if you realize there's that one tool that can't yet be replaced. [3]”

My threat model is shaped by my understanding of how Biblical end-time prophecy is playing out. I see large companies developing schemes to mistreat their positions for profit. Left unchecked, I can see these being used to more efficiently persecute Christians who disobey future civil laws requiring worship contrary to what the Bible plainly teaches. That and the 2020 political ads on YouTube were aggressive enough to move me to action. In short: I am wary Big Tech intrusion in the short term, but I expect government abuse of the same or similar technologies to slowly grow in the coming decades.

I also know that technology shifts can be disruptive. If I focus primarily on new hardware and software before relying on it, my preexisting technology becomes an already deployed backup when the new stuff breaks. If I do not understand something and it’s my only copy, I leave it as status quo. This has led to the awkward situation of using a tablet I know has junk left deep in its OS, while being downright paranoid of a phone over the same exact junk with maybe only minor differences.

My main focus has been on restricting Google from my desktop experience because that is what I have had the resources to experiment with enough to understand. I am rapidly approaching the point where I will need to accept those bitter terms of service before further study will be of benefit to me. It’s just a matter of time before I’m out of excuses.

Takeaway

While researching big or important topics, I sometimes find myself with topics that stall, take sharp turns, or any one of an array of surprises that result in an unsatisfactory state when it comes time for my writeup. I took my phone to the carrier’s store, and while they are more than willing to unlock a phone so it can go to a different carrier, they either don’t have the tools or aren’t allowed to unlock the boot loader or assist in enabling Developer Mode (needed for ADB) without consenting to Google Services’ terms. At least the store was mostly empty, because I had to try.

There is much to be said about having hardware sitting on your desk, staring you in the face every day. The Stylo 5 has driven me to at least think about custom Android every couple months or so. Perhaps one of these times, I will finally allow this project to rest in deployment.

Final Question

What are your choices when it comes to reducing Big Tech’s influence on your life?

I look forward hearing your answers on in the comments below or on my Discord server.

Works Cited

[1] A. Rojas, “wxWidgets 3.2 update may need manual intervention,”archlinux.org, July 14, 2022. [Online]. Available:https://archlinux.org/news/wxwidgets-32-update-may-need-manual-intervention/ [Accessed: July 25, 2022].

[2] u/Shadow_8472 and others, “No known degoogled ROM for my phone and I’m not ready to maintain one. What CAN I do? (LG Stylo 5),” reddit.com, July 22, 2022. [Online]. Available:https://www.reddit.com/r/degoogle/comments/w5hmq2/no_known_degoogled_rom_for_my_phone_and_im_not/ [Accessed: July 25, 2022].

[3] u/BlueJayMordecai, “Why You Should DeGoolge & Intro DeGoogleing Techniques,” reddit.com, July 20, 2020. [Online]. Available:https://www.reddit.com/r/degoogle/comments/huk4rp/why_you_should_degoogle_intro_degoogling/

My Manjaro Melted Down

Good Morning from my Robotics Lab! This is Shadow_8472 with a side project of the week. Let’s get started!

Surprise! Bad Manjaro update. I seem to be getting them once a year. I rebooted some time last Wednesday, seemingly to a black screen. My first thought this time wasn’t, “Oh, no! What am I going to do?” so much as, “Ugg, I need to refresh my memory on chroot and manual updating with pacman, skills I’ve only used once or twice before.”

No need to go through all the trouble if it’s not actually necessary. Manjaro has a feature where you can boot from one of an installed list of kernels, and I was seeing that list. Every option failed though – the most I ever got was an emergency shell that didn’t aknowledge the keyboard enough to toggle number or caps locks. This install wasn’t going to fix itself.

My first thought was to grab the Debian drive from ButtonMash, but I’d rather not mess up the only known working drive for scanning pictures. Instead, I riffled through my thumb drive collection and located one with Debian 11 install media. I got on Derpy Chips, my other daily driver workstation, and installed balenaEtcher special to safely make a new Manjaro live USB/install media.

During this time, I was researching the problem. Other people were talking about it within the past month, but I didn’t pick up the actual reason – just something about most Linux kernel 5.x versions being incompatible with a change. Do not cite me on this. I also learned a bit about the command:

manjaro-chroot -a

This command came in handy. The actual repair consisted of me booting to the live media, mounting my main Manjaro drive (graphically, even), going over to it in terminal, changing root directory per the above command, and updating with

pacman -Syyu

If it actually did anything, I didn’t discern anything. I rebooted to confirm it was still broken to find things seemingly repaired. Was it ever broken? Did I actually fix it? I may never know. In either case, I installed a 4.x kernel listed under KDE’s system settings program on the off chance my successful reboot was a fluke. A further reboot held true.

Takeaway

This fix was only done within 24 hours and no interactive help because I’ve already knew all of the needed skills already. Unfortunately, as I finish writing this post, more update shenanigans appear to be inbound. It appears a new package conflicts with one called wxgtk-common but doesn’t satisfy wxgtk2’s requirements for it.

Final Question

Were you affected by these or a similar Manjaro update?

I look forward hearing your answers on in the comments below or on my Discord server.

I Installed Android (Again, Pi 400)

Good Morning from my Robotics Lab! This is Shadow_8472 with a side project of the week. Let’s get started!

Free, but not Free

Mobile computers are decades to years behind desktops, and usable free (as in freedom) and open source experiences lag behind accordingly. Android may be branded as open source, but Google did not build their Play Store into the platform’s primary draw by allowing a “free” experience. OEM’s (Original Equipment Manufacturers) making Android devices must play by the search giant’s rules or be prepared to start from scratch.

That iron grip on Android –tight as it may be– still affords room for hobbyist level projects. LineageOS will get compatible devices booted to Android without the need to compile AOSP (Android Open Source Project) yourself. Another project, the difficult-to-search-for /e/, takes the concept farther by removing many of the lingering hooks back to Google infrastructure and making an attempt at a cohesive end-user experience.

Raspberry Pi 400 (Tablet Edition)

A while back, I installed an unofficial build of LineageOS on my Raspberry Pi 400 as a precursor to installing a custom AOSP ROM on a phone. This first attempt was accidentally AndroidTV edition, leading to confusion and sadness. I re-installed it for last week’s blog, but even seeing it ask more phone/tablet-type questions than before didn’t feel like enough to base even a short blog on.

I hesitated when sideloading the F-Droid appstore last week. I couldn’t find their GPG keys to verify the download against, but I learned something in the process. Additional research this week still hasn’t yielded their keys, but I’ve learned that it might involve adding a key repository – sort of like how I couldn’t just start downloading images when I installed Podman on my laptop. However, I want to end up with /e/ instead, so I don’t feel the need to be as careful learning how to add a trusted key repository. Instead, I’ll just keep it offline.

About the only large challenge I solved was getting F-Droid’s install file onto LineageOS. Normally, I would just mount it and drop a file where it needs to go. That wasn’t an option here because I didn’t know where it belonged and the directories above it had locked down permissions. The simplest solution was to just move it over with a USB drive. It installed cleanly from there, and I ran out of time from working on long-term projects and shorter projects bloating beyond this week’s scope.

Takeaway

If you ever hit a road block learning to a safety measure, listen to it. Take reasonable alternate actions to remain safe and try to learn a bit about how to pass it correctly each time.

Final Question

What subjects have you had to conquer a chip at a time?

Happy 4th of July, 2022!

Happy Birthday, America from my Robotics Lab! This is Shadow_8472, and my side project for this week would have involved installing F-Droid, but it hit a last minute dead end.

I stubborned gpg long enough to [re]learn how to verify the F-Droid .apk download. In short: private key, download, and (optionally) detached signature. While searching for F-Droid’s public key, I found multiple places talking about their public key expiring some time during or before 2019. I expect my larger writeup will instead involve a section where I weigh different alternative app stores against each other.

Between last week’s marathon project and starting this month’s larger project, I’m a bit burned out. Praise God for affording us a measure of freedom here on Earth in the form of America – and that only a wavering flicker of the freedom in the world to come He’s planning for us.

Happy 4th of July and God Bless!

I Survived Self-Hosting a Wiki With Podman!

Good Morning from my Robotics Lab! This is Shadow_8472, and today I am setting up not one, but two personal wikis on my home network. Let’s get started!

A Personal Wiki

Wikis are the reference material of choice for the casual researcher in this day and age. The content of the subject encyclopedia is turbocharged by the power of the hyperlink when compared to a volume/page reference that can take minutes to weeks to “load” depending on circumstantial accessibility. Community contributions allow for information to be updated in a timely manner, while built-in version control helps admins quickly repair sabotage.

This technology can easily be deployed to a closed-off environment for personal, group, or enterprise use. I know I could use one to organize my role play games, and my sister is after one to help with her writing. My goal for this month’s large project is to get both these wikis operational within our home network.

Wiki Planning

The first list of open source wiki software listed Wiki.js as supporting deployment on Docker. If my Rocky Linux 8 experience with ButtonMash has taught me anything, it’s that OCI containers are good for easy cleanup of botched installations, though challenges can arise when using Podman instead of Docker.

I spent a day studying Wiki.js off and on. My basic understanding is that you need three things for a wiki: the web server, the database, and the wiki software itself. I already understand a bit about the relationship between website and web server. Database vs. website is a similar relationship to website vs. browser. It is an independent process that serves data a website garnishes before presenting to a browser. It’s even possible for multiple websites to share a common database. While Wiki.js currently supports a few SQL (Structured Query Language) databases, PostgreSQL is the only database they will support in future versions.

Sparing a thought for my photo trunk project, I believe a wiki has potential for distribution once we learn more about how to use one. ButtonMash is configured to use the scanner though on its Debian install and not the Rocky 8 one, so I’ll need a different machine to host. GoldenOakLibry comes to mind as its primary function is to host and serve files.

My First Operable Prototype Wiki

GoldenOakLibry is a Network Attached Storage (NAS) by Synology running a custom version of Linux called Disk Station Manager. I found MediaWiki, the wiki software powering Wikipedia.org, in its package manager and chose the easy route. I did not know what I was doing for the most part – just that I was glad I re-enabled the old Vaultwarden container to store new passwords I made as I passed through Password Purgatory: database, wiki root, wiki admin (a user), database user – and then I had to make names for them all before I understood what each one did or how many more were needed.

There was a slight snag when the wiki wanted the database password and I wanted a new one, but someone blissfully using the same password for everything wouldn’t have noticed. A less tech savvy individual wouldn’t have thought to try looking for where to copy the wiki’s configuration file via command line. Once I figured that out though, I landed on a fresh wiki.

The snag that caught me was the mission-critical “What You See is What You Get” editor. Whenever I tried saving changes I made with it, it returned “[<RANDOM HEX NUMBER>] Caught exception of type Error.” A help topic on MediaWiki.org [1] reported fixing his wiki by installing a package called php7-zlib. This package is not in the Synology-approved repository, and I found no other package managers I’m familiar with when I connected over SSH. That’s… understandable, I suppose. The product is aimed at homes and small business too small for dedicated IT, after all.

An Alternative MediaWiki Host

A couple weeks ago, I had the misfortune of breaking one of the hooks securing the bezel around my laptop’s screen. Without it, I have to be extremely careful opening and closing the lid. I’m in the market for a new laptop, but in the meantime, the machine’s mind as it were is intact and I can’t use it for computing just anywhere anymore.

I learned a lot on my first successful prototype wiki. Database-website distinction and multi-site databases come to mind as relevant to my use-case. I’m imagining a system where I run each website in an OCI container with Podman on my laptop, then they go to a database on GoldenOakLibry for content.

…Podman isn’t in the Debian 10 repositories. There is a way to install it that involves a lot of hububaloo, but https://pkgs.org/ says it is on Debian 11, and I’ve had the computer upgrade bug as of late. My recent experience upgrading Mint primed me to locate a tutorial and upgrade to Debian 10. The process was the same (Timeshift, shift repositories, upgrade), just a bit less automated [2]. I took the opportunity to clean up after a failed project or two that involved repositories, but I think I ran into issues with Lutris’s repository GPG key (it updated later so I’m not sure). I’m leaving it for now.

The packages podman, cockpit, and cockpit-podman went on easily. Getting a static IP for the laptop was another story. Its official position within the house is under the TV, out of range of any free Ethernet cables we have laying about. After a few hours trying to understand how its Wi-Fi is even connected, I chose to move it next to ButtonMash and configure a static IP that way.

I started and enabled Cockpit with systemctl. It complained without a proper config file, but a browser on another computer made it to laptop’s Cockpit login screen. I told ButtonMash to link Cockpits, and it gave me a command I’ve been looking for for years.

ssh-keyscan -t ecdsa-sha2-nistp256 localhost | ssh-keygen -lf -

Admittedly, this only hints at a formula, but I saved it to a special directory on GoldenOakLibry anyway.

My Second Operable Prototype Wiki

With a more malleable host than GoldenOakLibry that wasn’t ButtonMash, I scrapped what I could of my first setup and started over. MediaWiki lists four packages as dependencies, and I removed three of them that related directly to serving web pages. MariaDB 10 stayed because I know for sure that it is compatible.

Unlike my experience with Rocky Linux 8, Podman on Debian 11 did not come with any unqualified registries configured, so I was getting fast searches with no results when pulling an image in Cockpit. I took a break for Sabbath, even though I felt I could keep the progress coming. When I got back, I about immediately found a tutorial that recommended a couple Red Hat container registries to add in addition to docker.io [3]. I spotted registry.centos.org in ButtonMash’s registries.conf; with the warnings in the file headers about who you trust, I removed it over the slim chance it gets compromised in the future. Worst case scenerio: I have to re-add it later.

Acquiring docker.io’s official image was easy next to telling MariaDB to let it in. I spent around seven hours inching through assorted tutorials tangential to setting up MediaWiki in a Podman container with [important keywords here:] remote access to a MariaDB database on a Synology device. It was slow, I could have written a post about just this paragraph, but I learned enough to understand the provided instructions (key tutorial: [4]). I braved Vim to write a needed config file and learned about MySQL database CLI client to make a pseudo-root account. And of course this was after locking things down to the static IP addresses I set up earlier.

Once MediaWiki was happy with its access to MariaDB, setup was similar to my first time, though I paid a little closer attention this time around and included all the editors, the mistake that send me on this side quest in the first place. The containerized setup will still come in handy, so it was not all for nothing. As a final, problematic sendoff, MediaWiki’s setup file, LocalSettings.php, remembers the port number it was installed to: future wiki installation attempts will happen in the containers they’re meant to run in, not some baseline I’ll be keeping around.

It was cause for celebration when I made the first edit and it stuck.

Project Notes

Given the right circumstances, I would have to say it’s possible for about anyone to bumble his or her way into a working self-hosted wiki on a Synology NAS, as I sort of did. Don’t get me wrong: even this is not an impatient beginner’s project! This week I learned that databases stand alongside websites, not inside them – a very important distinction for a sysadmin to know.

I’ve seen the Cockpit functionality to switch hosts since first installing Rocky 8 on ButtonMash. It was a pleasant surprise to find it worked over SSH and had a ready command for generating SSH host key fingerprints. DSM sadly does not have that functionality.

My opinion of Synology’s DSM began strong after a slow start, but it’s been fading. Stray one command outside their intended use case and it has DON’T TOUCH THAT! signs waiting everywhere. It’s still production grade, and that I can respect. I just won’t be asking for a similar system in the future.

The database password was extremely difficult to get right. No errors were ever thrown when entering 100+ character jibberish from Bitwarden, but 79 appears to be the maximum MySQL can swallow.

Takeaway

My progress this project does not represent a production-ready environment. I fully expect to have to tweak things before I have each wiki sequestered to its own user while still running happily. Website administration will be a whole other matter to conquer, but that is an exercise for another week.

Final Question

What kind of information might you organize with a wiki?

Works Cited

[1] Winel10, “Caught exception of type Error when saving changes in VisualEditor,”MediaWiki.org, Feb. 4, 2019 and June 8, 2022. [Online]. Available: https://www.mediawiki.org/wiki/Topic:Uuk96xjvh0ukaci2. [Accessed June 27, 2022].

[2] AM, “How to upgrade to Debian 11 from Debian 10,” AtechTown.com, 2022. [Online]. Available: https://www.atechtown.com/upgrade-debian-10-to-debian-11/. [Accessed June 27, 2022].

[3] J. Arthur, “How to Install Podman on Debian 11,” LinOxide.com, Sept. 20, 2021. [Online]. Available: https://linoxide.com/install-podman-on-debian/. [Accessed June 27, 2022].

[4] TechNotes “How to run Mariadb in Docker and Connect Remotely,”YouTube.com, Dec. 15, 2020. [Online]. Available: https://youtu.be/OabTOPOU2RU. [Accessed June 27, 2022].

I Upgraded Linux Mint Two Whole Versions

Good Morning from my Robotics Lab! This is Shadow_8472 with a side project of the week. Let’s get started!

Linux Mint is known for being one of the easiest distributions to use when switching from Windows, so that’s why I chose it when I assembled a desktop for my father. The only catch –or so I heard– was that you’re basically stuck reinstalling every time you need to upgrade. Or are you?

Clues here and there hint otherwise. Long story short, I found a few guides. The gist of them is generally to update/upgrade packages, backup, then system upgrade. The Mint 18.x repositories are shut down, but the underlying Ubuntu ones still work. I went on to backup the home directory, then use a recommended utility called Timeshift to create another time-consuming backup.

I tried following one to upgrade to Mint 20, but 18.3 insisted on Mint 19 and 19 on 19.3. The jump to 20 was a lot longer, requiring the sudo password multiple times along the way. A couple days later, after things were starting to settle, I spotted Mint 20.3, and struggled upgrading to that trying to follow the same principals as before. Turns out there are multiple ways to upgrade, and not all of them work for each upgrade. The Linux Mint User Guide has a page linking to blog posts about each step in the upgrade path from Mint 17 to present [1].

Takeaway

I doubt I would trust someone who only knows how to update/upgrade/install packages unless he was up to failure/frustration/learning cycles. On the other hand, that is why using a utility like Timeshift is important.

My recommendation for Mint users who haven’t learned the command line is to back up their home directory and restore it after a clean install.

Final Question

Do you schedule backups for your computer systems?

I look forward hearing your answers on in the comments below or on my Discord server.

Work Cited

[1] Linux Mint Revision 52875d62, “Docs >> Upgrades,” The Linux Mint User Guide, 2020, [Online]. Available: https://linuxmint-user-guide.readthedocs.io/en/latest/upgrade.html. [Accessed June 19, 2022].

I Broke My 3D Printer Making a Gift

Good morning from my Robotics Lab! This is Shadow_8472 with a side project of the week. Let’s get started!

The Game Quilt

My mother is made a quilt for a kid who will be spending his summer in the hospital this year recovering from a painful procedure. An accompanying game board has Chess/Checkers quilted onto one side and Tic-Tac-Toe on the other. The idea of paper Chess pieces glued inside some bottle caps grossed me out. I demanded to make something a bit nicer. I browsed the available Chess sets on Thingiverse and settled on a short “travel” set [1].

The Black Army

My printer started the week loaded with black filament, so I printed the black army first. I scaled the pieces up to 150% to match the board and made the bases solid to lower pieces’ center of mass. I tested these changes with a queen and the result needed a larger crown topper that wasn’t so sharp and fragile-looking.

With those changes in place, I started printing, but pieces kept peeling/detatching, resulting in some… spectacular failures that often involved massive misalignments. I made it through four usable batches of two pawns each, but a couple were damaged during removal (my sister and I had similar ideas involving channel locks on batches 3 and 4, respectively).

I printed a bishop, knight, rook triplet and the 10% infill I had been using did not support their flat tops. The bishop was usable, but a little warped on the base. Nevertheless, all three had performed decently, so I bumped it up to 15% infill and tried printing the back row pieces minus knights. Print failure after print failure. Small brims curled on the first layer, even with a high temperature first layer trick I tried.

Finally, I programmed some brims so big they would touch, I also tried wiping the bed with some acetone. Another print failure, but this time only because it stopped extruding after a beautiful, no-curl first layer. I took the printhead out and cleared out a clog, only for it to clog at least one more time. Eventually, I traced the source of the crud not from my spool of filament, but to the e-step motor assembly and even fashioned some tools out of my failed prints to navigate the tight quarters in the mechanism to clean it out. The next print came out nicely.

I knew from the beginning I wouldn’t be happy playing with K’s for knights. Where most of the pieces were just the heads of a more traditional set those knights – YUCK! I appreciate the need for a simpler geometry for small prints, but K is for king in Chess notation where N is for knight. I found my way around Thingiverse to a decent knight designed to be printed without supports [2]. It was a slight adventure putting its head onto a base like the other pieces, but a doable challenge nonetheless. I printed two up to complete the army.

Filament Change and the White Army

I stayed up late to get the knights off as soon as possible and get the white army printing so they would be done before my writeup (an estimated 14 hour printjob). I should have slept on it. Mistake 1: using the firmware’s unload feature; the plastic overheated and stretched off inside the printhead, denying the cleaning filament admittance. Mistake 2: disassembling the printhead while it was on, in a shadow – I snapped two fan blades in successive attempts to engage with a bolt. Within ten minutes, I had found a replacement set of fan blades [3] and quadruple checked the counter clockwise variation was the file I needed. I printed it, enduring the much louder fan as it choked out one last print.

In the morning, my father advised we pass on gluing the original blades back on in the hopes of printing a better set of replacement blades. I clipped the remaining blades and used the fan itself to sand the nubs smooth. My father glued the blades on and we had to squish the fan’s housing to correct for Mistake 3: clipping one of the fan’s three spokes. I printed a Benchy tugboat to satisfactory results.

After all that drama, the white army came out usable with one knight warping a little and one pawn nicked during removal. I plan on adding a couple extra queens in each color because I know from experience that they make for more exciting endgames.

Takeaway

Don’t work on machines while tired, or in the dark. The fix I found is only a patch job until I can buy an upgraded replacement. It’s not as balanced as one made to factory standards, but it is good enough for decent prints on a temporary basis.

Final Question

What self-inflicted accidental damage have you caused by a series of dumb mistakes?

I look forward hearing your answers on in the comments below or on my Discord server, where I sometimes share exclusive nuggets that didn’t fit into the main post.

Works Cited

[1] Raukk, “Travel #chess,” thingiverse.com, March 22, 2012. [Online]. Available: https://www.thingiverse.com/thing:19754/comments. [Accessed June 13, 2022].

[2] Zarlor, “OpenSCAD Chess Simple Printing,” thingiverse.com, Jan. 26, 2019. [Online]. Available: https://www.thingiverse.com/thing:3381939/files. [Accessed June 13, 2022].

[3] CreativeTools, “Cooling fan replacement blades,”thingiverse.com, Nov. 19, 2013. [Online]. Available:https://www.thingiverse.com/thing:186979. [Accessed June 13, 2022].