Room for New Projects

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

I live in a typical middle class, American home in suburbia: master suite, a few bedrooms, shared bathrooms, assorted living spaces, front lawn, back yard, driveway, and a garage. The same or similar goes for each of my hundreds to thousands of neighbors living within walking distance. Some houses are larger or smaller. My family’s cars occupy the driveway, and our garage is brimming with storage buckets to sort through.

The State of Our Garage

We already have a workshop in the garage, but it would be a nice place to house some projects. My robotics lab may have and the still-unfinished photo trunk project have admittedly taken over the art room, and I have been invited to help clean out a space where my stuff can be better consolidated for managing things like excess heat, sound, and/or fumes.

This project is one I’ve been particularly unenthusiastic about whenever it’s come up over the years growing up. We have roughly 100 clear, plastic storage buckets per a brief and incomplete inspection, especially if you start counting the odd cardboard box. While many of them are used for things like holding Christmas decorations, games/puzzles, or sentimental treasures, around a third to half of them are the Big, Bad, Clutter Bucket.

I hate the Clutter Bucket just as much as my parents. I’ve had favorite toys slammed into them wholesale when a parent got frustrated with a messy room; it was so loud and painful, my Autism registered it as yelling despite getting reminded that not a word was being said (parents didn’t have Container Analogy or even a good predecessor). Their cleanup has been [unsuccessfully] used as a condition of engaging in preferred activities (read: chores before play). Threats of outright dumping their miscellaneous contents in the garbage still cause triggering echos when I remember them to this day. And the worst part is that whenever I was sent to find stuff to put away, I honestly never knew where most of it belonged!

Cleanup In Progress

The above back and forth played out for years until Clutter Buckets became an uncomfortable fact of life lurking in the background. It wasn’t until I had a good, parental talk a little over a week ago that my worst anxieties were addressed: a lot of the Clutter Buckets are mostly trash: treasured memories were not being planned for disposal.

This assurance paired with a clear, long-term goal in mind has done wonders for my motivation. It’s still mostly not my mess to clean up, so I cannot be the one sorting things for disposal. What I can do is move buckets and boxes around for my parents to identify and carry out their subsequent instructions.

With teamwork, the empty buckets started to pile up. When we ran out of Clutter Buckets along the walkway through the garage, I spent some time sorting out low-priority buckets, and stacking them in a less accessible area while taking care of some easy boxes and cuing buckets for parental sorting.

A great hunt was made to locate the CD bucket in the hopes of finding a piece of software crucial to a surprise project. I paced the garage for a whole day, checking most buckets at least five times, inspecting the difficult to access ones at least twice, and providing our garage cat to give scritchies over twenty times. The VIP bucket was legit the last one available to lay my eyes on – it was by the pathway all along, hiding at the bottom of our stock of toilet paper packages. The software I wanted wasn’t in it.

I spent a significant portion of Sunday pacing the garage again. Odd pieces of laundry, corroded batteries, and stray CD’s/CD cases were all taken care of, but I felt less productive overall. The highlight of the day was working out provisions to home CD and floppy disk buckets where they can more easily be found: in the network closet. The paper soup in the first box they’re replacing got split between the shredder and recycle, with my father setting a few aside to sort later.

Takeaway

This is an ongoing project. During my survey late Sunday night, I included ten empty buckets – most of which were full two weeks ago. And in case there is any doubt, I love my parents and trust that they were doing the best job of raising me they could. Mistakes were made and trauma was had, but lessons were learned and forgiveness was had.

Final Question

I’ve had a Podman project stuck for months just trying to mount a volume hosted on a drive mounted over NFS. Have you ever had success in this apparently niche department?

I look forward to solving this issue with someone either in the comments below or on one of my Socials.

Autism Month: Container Analogy

Good Morning from my Robotics Lab! This is Shadow_8472, and I have a very special post this week where I explain what it’s like for me living with Autism and meltdowns. Let’s get started!

Preamble

I struggle with Autistic meltdowns. As early as I can remember, I’ve been asked why I behave certain ways (usually as punishment for misbehavior perceived to be intentional), and just as long, I’ve been coming up with different –sometimes contradictory– explanations of my mental processes. Few were memorable except possibly a school essay circa around 2008-2009 comparing myself to a squishy energy ball with situationaly dynamic properties.

My analogies grew in complexity as I tried to build one unifying theory. It grew so many rules neither I nor anyone else could keep everything straight for a predictable model of my reactions. I could be fine after a loud noise one day and in terrible pain from a quieter one the next. In self-preservation, I would sometimes force myself into the worse reaction to afford others’ understanding when I needed it.

Then one evening in or around 2016 (wild guess), I penned the first draft of my container analogy as a frustrated message to a long-time friend over Discord who had sent me into a bad meltdown. It overflowed the 2,000 character limit, comparatively grew into a Calculus-grade explanation of how the rules change to my previous brute-force, Algebra-like rule sets, and was ultimately never sent after pending review by a trusted family member in case it was too hot a take. Instead, I put it into a document which had my entire Autism support group nodding, impressing our psychologist, who encouraged me into researching how to copyright it.

Since then, I’ve re-imagined it a time or two, and I’m ready to share it as part of Autism Month. If you or someone you know is on or is a caregiver for a member of the Autistic spectrum, it is my hope and prayer that this analogy can be a tool of healing and understanding.

Container

If I were to ever depict the control room of my brain, it would feature a container with an inlet and an outlet – a buffer between all incoming sensory information and my ability to process it. When fluid arrives faster than it can drain, the level rises and will eventually overflow in a chain reaction known as a meltdown, where all the fluid is spilled across the floor of BrainHQ. Higher thought processes –including evaluation of probable consequences– are impeded as base instincts attempt to clean up.

Processing generally happens over time, but a particularly suitable environment can reduce the amount of incoming fluid, freeing up resources for additional processing capacity. A meltdown in progress can go from raging to manageable simply by retreating to a designated space.

The most important difference about this container is its dynamic and invisible volume. Only its relative fullness, processing speed, and state of meltdown are known by its owner at any given time. By mentally tracking how full it’s been over time, its current capacity can be estimated. Involuntary or uncontrolled meltdowns dramatically shrink the container’s capacity to the point where even small stimuli can instantly overflow a post-meltdown container. Similarly, the expectation and execution of a particularly good time or special event can expand the container’s capacity to temporarily cope with volumes a neurotypical brain automatically can filter through.

A trigger is a stimulus that fills this container more than it should – either when compared to similar stimuli or had the same stimulus been experienced by most anyone else. One or two large ones can easily “trigger” a meltdown. Small, normally ignorable triggers in rapid succession can leave fluid sloshing around for subsequent triggers to splash fluid out of the container, causing a meltdown over several otherwise nothings.

In one unpublished telling of this analogy, I visualized the container and fluid as a barrel with apple cider so as to relate to a fictional character of mine I was role playing against an avatar of myself in a story format. In one scene, the cider spoiled, soaked into the wood of the barrel, and leached back into future thought processes at semi-random intervals. These echos are a particularly nasty kind of trigger where each echo comes back as an individual trigger joining its all its previous peers at once for an amplified effect. Individual instances generally fade over time, but re-exposure to memorable triggers has a way of inciting instant recall.

Strategies

Everything brought up so far has been passive. You can’t expect me to scrub toilets and tell me to have a mindset of going on vacation to cope. That doesn’t mean there aren’t things to do to optimize the container’s performance.

The container has some elasticity. When needed, it can be stretched, but extra fluid has to be dealt with as maximum capacity rebounds below normal. This holds true for both big, stimulating event as well as when a meltdown would be obviously and immediately dangerous, like while driving. Overuse of this strategy can damage the container’s maximum capacity long-term.

Opposite the first strategy is to prematurely trip a controlled meltdown-like state where some input is ignored as a triggering stimulus passes by. This can be as mild as mentally blanking out a loud car as it passes to full-on turtle mode, where all input bypasses the container and gets dumped. A sampling of random input can be retained to determine if it’s safe to bounce out, but the better the sample, the less effective the bypass strategy will be.

Sometimes, more fluid is expected than will ever fit or can be bypassed. This is when clumsy base impulses in charge of cleanup seize the controls meant for the higher functions now stepping back into a bunker. Senses –though heightened– aren’t as immediate a concern as the autopilot guides a melted individual to safety. This perceived degree of separation feels similar to controlling a video game character or navigating a choose-your-own-adventure style dream. Consequences are still harder to conceive of, but the higher functions have a veto in this mode if the path of least resistance is reasoned to be more dangerous than wading through the trigger-infested fluid.

The last strategy is a cry for help. Petition another person for aid. Depending on the situation or individual, it may be as simple as explaining the situation verbally with words to as vague as acting “off” for someone to notice and ask. Embellishment may be used sparingly to convey a sense of magnitude or urgency, but over-outlandish comparisons run the risk of rejection.

Extensions

I’ve tried to integrate as much of my analogy into a single narrative as possible, but I’ve found it to be easily extendable. Even so, some details don’t fit in well elsewhere.

Fluid spilled in a meltdown –if not cleaned in a timely manner– will harden and take even longer to recover from.

There is a strategy called masking I personally am not a fan of relying on, but it works for some people: a foreign pattern of behavior is emulated using extra mental resources. Overuse leads to burnout.

Burnout is where the brain unwires potentially needed skills from speech to social skills to computer programs. Burnout may last anywhere from a day or two to long enough to re-learn the skills from scratch.

Another way to look at base instincts/impulses is as an idiot doppelganger at the brain’s controls. One of my notes from the cider version of this analogy visualizes this doppelganger as being made of spilled fluid. But it was competing with imagery of my character’s shadow separating out to wade through the fluid to operate the controls. I loved both illustrations so much, I couldn’t pick a single one, and eventually lost interest in the project. They may work in a fused for thoug.

Misconceptions

There is a distinction between triggers and meltdown vs anger and temper tantrums. The two sets may appear similar and occur concurrently, but one is a type of fight, flight, or freeze sequence, while the other is a basic human emotion driven by perceived injustice allowed to degenerate into bad behavior. This is why I have taken to making a distinction between triggers and Autistic triggers when talking with people outside my inner circle.

Autism is said to be a spectrum: no two people with it are the same. Once you’ve met one person with Autism, you’ve met one person with Autism, and the next one will be different. A stimulus or deprivation thereof may be soothing for one person and a supermassive trigger for another.

Takeaway

Autism is a lifelong challenge, but by the love and grace of God, my family loves each other. It breaks my heart knowing there exist members of the spectrum locked in a state of perpetual meltdown and masking as a matter of survival. The quality of life the Almighty has blessed me with I definitely would wish on those who would make assumptions about me based on their own experiences [particularly those with Autism], make hurtful or degrading judgments, and leave without a second thought. I believe this post has the potential to help.

Further Reading

Instead of a Final Question, I’d invite you to review a couple pieces that have been influential in my journey with Autism.

The first is a book: Managing Meltdowns: Using the S.C.A.R.E.D. Calming Technique with Children and Adults with Autism by Deborah Lipsky and Will Richards. I haven’t read it for myself, but I found even the outline, and chapter summaries to be powerful tools to compliment my understanding of what goes in within my own mind.

The second is a video by YouTuber Mark Rober: The Truth About my Son. In it, he has a vivid demonstration in a park about life without filters. Even in the relatively low-stimulus environment of my own home, I have distractions I have to purposefully ignore. The computer fan beside me is making a constant sound, the sound of the keys as I type, the slight squeaks of my decently lubricated chair – occasional noises from upstairs as a Star Trek episode finishes up, my dog vibrates the room with his snoring if he’s not looking up at me, my cat keeps coming around to visit, there’s a vacuum cleaner sitting by my desk I sometimes rest my foot on. Even the fabric of my shirt is registering.

I look forward to discussing this topic in the comments below or on my Socials.

My Homelab Report, 2023

Good Morning from my Robotics Lab! This is Shadow_8472 with a snapshot of my different computers as of mid-March, 2023. Let’s get started!

I have felt a need for a page detailing my so-called “homelab” detailing the computers and other equipment I personally maintain. I didn’t finish any big projects this week, so here’s a first draft of that page. It’s listed in roughly the order I took ownership/responsibility for each piece. I’ve tried to gather each computer’s base model/modified configuration plus a list of its presently bootable operating systems. Warning: unexplained technobabble ahead.

Red Laptop

Dell Inspiron N7110
1 TB SSD

Debian 11

As the oldest operational computer in my fleet, this laptop has been with me for almost 12 years, though most every part was replaced while it was under extended warranty. Shortly after I started this blog, I installed Debian 10 on a USB external drive. I nuked its Windows drive one week by formatting the wrong disk, and later replaced it with a 1 TB SSD, cloned Debian inside, and it served as a get-me-online machine until the screen bezel cracked, threatening to shatter the screen the next time I’m not careful. It’s now serving as a backup home server, and it’s desktop environment has proven vital to rebounding from at least one network emergency since.

Upstairs Workstation

Custom Build

Intel Core i7-3770K (3.50GHz)
NVIDIA GeForce GTX 970 (rev a1)
24 GB RAM (2×8+2×4)

Windows 10
Manjaro
EndeavourOS (WIP)

“Upstairs Workstation” also predates when I started naming my computers. I got it for university when laptop turned up as bit underpowered. I went from Windows 7 to Windows 10 with this machine, narrowly avoiding an online tech support scam (10 didn’t support a Wi-Fi cart I was using at the time and later finished burning out when I put it back in after switching to Linux).

Derpy Chips

Custom Build
Intel Core i7-2600K (3.40GHz)
16 GB RAM

PopOS

Derpy was named for its tendency to give power kernel errors during its first service life until its retirement. When I adopted it, I gave it a new hard drive and inadverantly diagnosed the one lowballed part: its 2 TB HDD. I’ve also had issues with a stick of RAM from it, but I’ve had it running smoothly for a few years now as a secondary workstation.

ButtonMash

Dell Optiplex 7010
16 GB RAM
1×60 GB SSD
1×1 TB SSD (external)

Debian 11
Rocky 8

ButtonMash has been my main x86 experiment machine as well as my home server. I bought it from a church member who was upgrading his dental office computers. I My was host to my first Linux install: Ubuntu, but I’ve put it through a parade of distros including MicroCore (where I learned the command line), MineOS, Debian (originally from “red laptop”), and finally Rocky. Today, it serves as my primary home server, where I am setting up several Podman containers including Vaultwarden, PiHole, Nextcloud, and Minetest – each on a separate account for further isolation.

If and when we need to scan pictures, ButtonMash is dual booted with an external SSD I originally used with my Red Laptop.

GoldenOakLibry

Synology NAS

4x7TB HDD RAID 5 share
1 TB SSD share (external)

GoldenOakLibry is our home NAS intended for picture scanning. If nothing else, it’s exposed me to using a computer that’s meant to do nothing but serve files. I have a long way to go before I master it.

Raspberry Pi’s

1xRpi3B+
2xRpi4B
1xRpi400

My collection of super-flexible Raspberry Pi computers has served me well. At the moment, the Pi 4’s are serving as OpenWRT router firmware configured as Wi-Fi-to-Ethernet adapters for my upstairs workstation and my sister’s desktop. My Pi 3B+ has been inactive since its 3D printed PacMan ghost case got smashed, and my Pi 400 shares a monitor at my upstairs workstation.

Other/Misc computers

3D printer

Maker Select Plus
Added braces+feet

I am no master at 3D printing, but I know enough of the basics to scrape together most everything I try. At present, my printer needs a new fan and a printbed that isn’t warped.

Pine Phone

UBPorts Edition

The average smartphone these days spies on you. Its parent company is allowed to by the terms of service you need to accept before use. I resolved to not blindly accept any new EULA’s without knowing what I’m getting into and learning enough to be confident I’ve done something to mitigate the worst of these violations of privacy. As a consequence, I don’t have a usable phone ever since we switched providers a while back.

UPS’s

I have three uninterruptible power supplies directly under my supervision – one serving the network closet, one serving my upstairs workstation, and the other ButtonMash’s area. As of yet, I have not figured out the open source NUT driver.

My Father’s workstation

Dell Optiplex 7020
15 GB RAM

Linux Mint 20.3
Debian 11

15 GB RAM

After I bought ButtonMash, I got another used workstation out of the same dental office, replaced Windows, and gave it both sets of RAM. I later talked my father through installing Debian 11 on ButtonMash’s original hard disk

Ventoy USB (32 GB)

Not technically a computer, but easily one of my most versatile tools. Ventoy makes Linux media creation as simple as dragging and dropping a .ISO. Even better is that I can still put normal files on it!

Takeaway

Each part of my lab serves its function. There’s a certain joy when I get something new working and get to show it off.

Final Question

Which of your projects are you most proud of?

The Relatability of Christmas

Merry Christmas from my Robotics Lab! This is Shadow_8472 with a few thoughts on what Christmas means for me. Let’s get started!

Many a Christmas tale stars a jolly, old man who lives at the north pole making toys to hand out every year using his sleigh and team of magic reindeer, but even Santa is rarely portrayed as anything more than a steward of the holiday attributed to the birth of Jesus Christ.

How does a self-existent God relate to His created beings? How CAN He relate? The Old Testament records a long line of flawed human beings locked in a try/fail cycle when it comes to obeying God, starting with our choice to reject God by eating the forbidden fruit. For around a millennium and a half of history, God is seen in story after story, book after book at work in the background connecting with people by framing his love through contemporary imagery. He fashioned one chosen family into a powerful nation, preserved them from extinction at the hand of the undefeated Assyrians and through Babylonian exile, and ensured their reinstatement into the land He had promised to their ancestors even as a parade of foreign empires conquered their territory.

It is one of the darkest chapters in human history. Israel has been without God’s prophets for hundreds of years, and the religious leaders are corrupt and self-important teachers instructing their students in falsehoods. Furthermore, the region is clutched by the iron fist of Rome. Soldiers from the occupation force can order you to carry their packs for up to a mile, enemies of the state are publicly executed nailed to wooden crosses along the highways, which are left in place as reminders not to rebel. Meanwhile, a movement of zealots work in secret to liberate their homeland, storing up supplies for when the pharisees’ messiah would show up in the temple and permanently reestablish Israel as a sovereign kingdom. If ever there were a time it appeared God had abandoned the world, this would be one such time.

Amid this landscape, Jesus set aside whatever job perks come with being Creator God and Master of the Universe to relate to one of us AS one of us. He was born as an otherwise normal baby into poverty. In a town crammed to the walls with people, the only visitors who took note of Him were lowly shepherds who received a special invitation and some unknown number of scholars from the east who were paying attention. His earliest memories would have been from living as a refugee from a regional king who murdered His peer group looking for Him. When He moved back home, his family landed in the regional ghetto, where He grew up with the stigma of being an illegitimate child learning carpentry.

If anyone were ever entitled to everything, it would be Jesus; if anyone ever went to the most extreme lengths to be relatable to everyone who’s ever lived – again, Jesus. He went through the absolute worst humanity had to offer and didn’t back down. Many details of the analogies He used to reach people in 1st century Judea are lost on us today, but the core message shines on. And it started in a town called Bethlehem just over 2,000 years ago, where God took on human form to experience our worst and to carry our end of the contracts He made with us where we failed.

Takeaway

While the date of December 25 was originally chosen to displace one or more Pagan celebrations, today it represents a unique opportunity for Christians as it is in this season that a general audience is primed to hear about Jesus’ most relatable story. He was born.

Final Question

What does Christmas mean to you?

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

On the Specification of State Machines

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

I’m learning Godot, a free/open source game engine. My chosen project is a Sonic fan game where Cream the Rabbit overhauls a wild chao garden overrun with pollution. Previously, I coded up a cube I could move around in 3D.

What I didn’t cover was how everything flopped when I introduced delta, a variable to adjust calculations to account for the time between frames. While I dream of posting this game as Wii homebrew (3rd party shareware), I understand that most people interested in Chao these days are on PC. Even if this were an exclusive title to a locked-down platform, lag would still need to account for framerate drops. I tried adjusting my jump related constants so many times, but since I missed a delta or two, I was never going to get it right. When I initially gave up, I directed my efforts towards designing a state machine.

It’s almost silly how many states a 3D platformer player character can be in. Walking, running, sprinting, standing still, holding an item – and that doesn’t even touch the number of jump states I can expect Cream or other characters to find themselves in. I used a massive if-else structure to decide what string to describe state. At a certain point, I studied the character movement and animations of Sonc 3 & Knuckles (Sonic Megacollection for GameCube, run on a Wii) and Sonic Adventure 2: Battle (SA2B) as inspiration. In both games, holding jump powers you upwards until you either release or reach a maximum height; it just happens so fast (unless you’re in a low gravity section) that it feels natural. I had to re-think my state machine a few times, but I settled on a 32 bit number to chop up into a mixture of 1 bit flags and other data as needed. In particular, I focused on the least significant byte (the last 8 bits).

I went through several iterations over a couple of days, but the two rightmost bits were consistently used to denote a character’s vertical (Y) and horizontal (XZ) movements as I figured they would be most useful for telling other aspects about a state. Moving left, the next four bits are for progressively more detailed information about what a character is doing “environment” – you can be walking.on_ground.skidding, swimming_underwater.bottom_walking.normally, or using a character’s special move assigned to a reserved set of states.

A good chunk of thought went into representing all these states in a visually digestible format. It wasn’t until I began thinking of the XYZ motion flags as dependent on my environment states that I reduced them to four columns in a chart of sixteen rows that I was readily able to count my vacant states. As of writing, my environment variable uses two bits for “rough” and one each for “fine” and “special.”

The 128’s and 64’s bits are penciled in as a counter for idle animations or how many double jumps a flying character has remaining. Beyond that, I have 24 bits remaining as the game grows. For example: eight bits affords up to 255 unique held items plus a reserved id for when a character holds nothing.

Takeaway

I did not write a single line of code while working on the main event today despite it being a programming project. I did start on the next part where I began implementing this standard, but that felt like I was starting a whole new section, so I’m saving it for later.

Programming programs and composing literature (in the broadest sense) are more similar than people realize. What happened here today is analogous to a novelist making an outline ahead of a first draft. An important puzzle was solved and in important internal standard established.

Final Question

How many basic states are there for an average character in your favorite game?

A Thought of Incomplete Towers

Good Morning from my Robotics Lab! This is Shadow_8472 with a small thought for the week. Let’s get started!

As much as I hate to admit it, scope is important when working on a project. Luke 14:28-32 bids anyone who wants to build a tower first assess its cost and compare against personal treasury. The advice truly applies to non-monetary resources as seen in the following illustration of a king going to war with an army twice the size of his own. Even if you are the only witness to the foundation you laid, incomplete projects are a constant source of annoyance when you lack the resources to complete them.

I am in such a situation in pursuing a Linux phone. Even this post is an example. I was going to observe how I probably should have focused my attention on a tablet. It’s basically just a phone without a dialer, right? Alas, as I began writing this paragraph, I figured I should do some background research on Linux tablets… If phones are wanting, tablets are even farther behind.

I’ve taken a few days to think about it. When given a choice between a phone or a tablet, the typical user will choose the phone. With the bias towards phones, limited development efforts are focused accordingly. From personal experience, I have observed how apps designed without the larger screen in mind sometimes do strange things if they even install. The same thing happening with an entire operating system is not something I’m prepared to deal with.

In other news, I’m now active on Twitter @Shadow_8472. I’m still considering my balance of priorities: digital privacy vs. free speech, so at most I’ll be adding around here is a traditional link on my socials page. However, I believe the new direction Elon Musk is taking the platform is an improvement from what it was doing prior to his buyout.

Final Question

What projects of yours would have benefited from an evaluation beforehand?

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

I Replaced My Android Keyboard and You Can Too!

Good Morning from my Robotics Lab! This is Shadow_8472 and today I have a side project of the week while I work on something larger. Let’s get started!

My journey to replace the default Android keyboard on my tablet started with the need for an up arrow. I already had left and right (a massive improvement over tap, check, and revise), but no up or down – which would be extremely helpful when using an SSH program I rarely use.

As a note to the unaware: Google collects as much data on you as it can get away with, and they use it for their own profit. Their word suggestions as you type works by sending them your keystrokes and memorizing you well enough to predict your most likely next words. Symbiotic or parasitic relationship? I don’t need this feature, and it is a privacy concern. For me, the answer is parasitic.

Switching to a new keyboard was as easy as installing any regular app. Note that I am preferring F-Droid over installing through a Play Store client. My first find was Unexpected Keyboard, a keyboard with a dark mode and four-way arrows. If only it wasn’t designed around key swiping, I’d be more than content with the ability to hold Ctrl+Shift+left/right to select text.

Shortly afterwards, I found Open Board, a fork of the AOSP (Android Open Source Project) keyboard. It too has a dark mode, but its visual familiarity despite lacking enhancements such as the left/right keys has kept it relevant to my search. My biggest complaint is that the backspace doesn’t play well with Collabora Office, an open source document editor I used this week to write about a page of fiction.

Much later, I tried out AnySoftKeyboard. Where I’ve had a chance to form a full opinion on the first two, AnySoft appears as though it could be a compromise for a “just chilling” type of keyboard. It has the left/right keys I’m so fond of, but auto-correct is a slight bit too aggressive.

Most importantly, I learned that each keyboard is handled as a separate “language” by Android. All three keyboards have the option to quickly switch to another, and that makes the goal of finding the perfect keyboard less important than defying the monopoly by straying from the gold standard for its deal breaker. My tablet is one of two operable portable devices I own with one being purely experimental. I don’t want to lose the other because I didn’t know enough of what I was doing.

Takeaway

I wish I had a pie chart data the typical smartphone collects on its user. How useful to its masters is each piece? How hard is it to mitigate each slice? The hardest part of replacing a keyboard has been finding a single one that works, and I cannot always tell right away because they often require time to explore any configuration options. For now, any issues I have with each board are not so important when I can easily access a menu to switch boards. This is more of a progress report than anything final. However, I am glad to report that I’m well on the way to a solution without breaking non-redundant functionality.

Final Question

What on-screen keyboards have you tried out?

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

My Sister’s Computer Hates Me!

Good Morning from my Robotics Lab! This is Shadow_8472, and today I am starting a series on installing Linux on my sister’s desktop. Let’s get started!

The Plan

My sister has expressed an interest in digital privacy and switching to Linux. She showed interest in installing Linux on her computer this week, and I just got a pair of new SSD’s on sale while shopping for my Arch installation, so I’m using one of those for this installation.

To the best of my experience, PopOS has been the distro of choice to use in terms of compatibility and privacy – by that I mean it has access to the Ubuntu library while System76, the company that makes it, advertises itself as being more privacy aware. While I’ve had problems with it in the past, they weren’t too difficult to sort out. It has a straightforward installer, and then their website has a selection of commands to install a preferred desktop environment. In short: it’s my favorite distro for beginners.

Hardware Installation 1

My sister left me a note inviting me to start work at my convenience, only for a Windows update to pop up while her system was unattended. I got her message before it was obscured, but I still found the irony funny.

For reference, I am working with a 1TB SATA SSD. About as soon as I had the case open, I was scavenging the technology pile for a SATA cable and a power connector from the supply I replaced a while back. The computer screws I found gave me too much trouble attaching it to her computer’s bracket, so I left it loose, later securing it with electrical tape several hours and “learning moments” later.

PopOS Install 1

Computer motherboards have what’s known as firmware, often referred to as BIOS, though recently replaced by UEFI. For the rest of this post, BIOS refers to the old, limited firmware exclusively. My sister’s computer boots with UEFI, and it was displaying on her WACOM graphical tablet where I missed it for playing around with HDMI connections on the graphics card so I could override boot to a USB drive with the latest PopOS install media.

I forget how, but the tablet-monitor went unnoticed until it was the sole output with the installer. I took special care to make sure I was installing to the blank drive, and not over her Windows installation. This was especially important because the system already had a 1 TB hard drive. After that, I put on the KDE desktop environment.

A minor, still-unresolved nuisance was the main monitors constantly being swapped. You can swap cables, or physical devices. Somehow, they always end up swapped. I also noticed some sort of U/I ghosting and horizontal line flickering I solved by removing the WACOM tablet entirely (it was mirrored to one screen – possibly both directions).

I finished up my first day arguing Minecraft into working (barely). I installed MultiMC and GraalVM, only for her modded world to require Java 8 (not an option at present for GraalVM). I was able to link up OpenJDK 8, which came preinstalled. I had to duck back into Windows to disable fastboot so Linux could mount the Windows drive and she can play the same world in either operating system using a symbolic link (shortcut) there. Despite Minecraft only launching around 1 in every 30-50 attempts, we were able to leave her world running “overnight” – which turned out to be only a few minutes after walking away. We found Linux in a mess in the morning. Very little worked, but it all pointed to hard drive failure. It wouldn’t even boot after requiring a forced shutdown. We ended up trying a SATA cable from an old church office computer in our stock – praise God, it cleared up the issue! It still didn’t solve Minecraft from arguing with video drivers:

java: ../nouveau/pushbuf.c:730: nouveau_pushbuf_data: Assertion `kref' failed.

or throwing SIGSEGV errors I haven’t begun to investigate yet.

All this time, I was thinking about how GRUB (Grand Universal Boot Loader) was never able to see Windows, like in the other systems I’ve dual booted. To my dismay, I found PopOS was running in legacy BIOS mode, where Windows was in UEFI mode. The two will never be able to see each other. A reinstall was in order.

PopOS Install 2

Dual booting is no joke if you don’t know what you’re doing. If it were my system, I’d have just taken the hit and accepted the need to select an operating system at the firmware-level. But no, I want an intuitive menu my sister can use. Unfortunately, this meant reinstalling in UEFI mode. To help with that, the folks at r/TechSupport pointed me to Ventoy and instructions on how to set it up with a GPT (General Partition Table for UEFI) instead of an MBR (Master Boot Record for BIOS).

I used my new Ventoy USB to reinstall PopOS, being sure to select the NVIDIA drivers version of the install disk image and choosing the more KDE-native display manager sddm over GDM3 when prompted.

UEFI is a pain to dual boot.

GRUB did not come installed this time. I tried installing grub-efi, but was never able to get it to work correctly, even after installing something for it to /dev/sdX. After much reading, I concluded that a simpler alternative to GRUB may be more suited to this application as the last of my stamina for the week depleted.

Takeaway

I thought this would be a nice, little side project done in a couple hours with a tough issue here or there. WRONG!

Final Question

Have you ever had a project fight you every. step. of. the. way?

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].

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!