Cornering A Bug

I have a Pro, my trusty old circa 2013 model, somewhat on the old side, running MacOSX Big Sur 11.7.10. It works well enough for everything that I need it for, a basic daily driver for work, most of all.

I spotted a great deal at , a 1 terabyte SSD device for a song and so I got it. Then after I unpacked it and setup on it, so it would serve as a backup for my MacBook I noticed a curious bug. Once I had the drive mounted, it worked well, but when I ejected the drive, sometimes it would give me a error that it couldn’t be mounted. I went off to to search, and came across a bunch of people who were experiencing very similar errors with their SanDisk devices. I found that after I rebooted my MacBook, the problem seemed to go away.

With complicated bugs, often times the trigger is either complicated or multi-step, and for a brief while, the problem with this drive returned. It would come and go, seemingly at random. Sometimes when I plugged it in, it would without issue, and other times it would simply not, and off to , where when I tried to force the mount, it refused with the cryptic error and only clear after a reboot.

I started to really concentrate on all the things I was doing, all the little mindless actions that I do at the start and end of the day, because something was causing this seemingly random bug to appear. One day, last week, I caught myself doing the very thing that triggers this bug!

I have my MacBook Pro, it’s plugged into a standard powered USB 3.0 hub, and then I have a 2TB standard external HDD and the 1TB SDD backup drive plugged into the USB Hub. When I eject the drives at the end of the day, and then unplug them both from the hub shortly afterwards, the drives will both re-mount without an issue. Every single time.

When I eject the drives, and instead pull the USB Hub off the side of the MacBook, after that, the standard HDD will mount without a problem, but the SanDisk SDD drive will always fail to mount with the cryptic error.

I don’t know for certain where this bug actually is, but my educated guess is that it has something to do with USB Bus Enumeration or perhaps some sort of flag that doesn’t get set properly either in my MacBook Pro, the USB Hub, or the SanDisk SDD device.

If you have a SanDisk SDD like I have, and it tosses random mount errors on Big Sur, give this a shot. Eject and then unplug the device, see if that doesn’t clear it up, because it did for me.

Kludgey

This post was written on Mastodon so it has an informal writing style with jargon and a manner for a specific audience. All the spelling and grammatical errors are intended.


I love creating my own problems and then finding a rabbit hole and chasing it until I have a geek solution that is likely foolish. If I load too many tabs on my Macbook, it gets sluggish. So, can I start xQuartz? Sure! Update however…

Okay, that done, can I SSH with the -X flag to my little Raspberry Pi? Yes! Sluggish. Wah.

How about to my “Security” laptop, running Linux? Yes. Sluggish still.

Google Search, find x2go, install it. MUCH BETTER.

So I’m using x2go, running Firefox-esr and connected to my not-work-tabs, including this one. Not seamless, but it works acceptably well enough.

Sitting here, marveling at all this exceptionally complicated computing technology before me, everything has “multiple cores” yet you really couldn’t tell. So instead of running everything from one single computer, we’ve got serious work stuff on one, then a remote desktop window to another running “fluffy stuff”, and then playing Spotify from my !@#$ iPhone. HAHAHAHAHAHA.

Shitty apps, each written by devs that believe that their app is the “King Of The Realm” and you can malloc() forever without having to fret over anything at all. Leaks? Who cares! Look how pretty it is! So, multiple computers, multiple OSes, failures aren’t less, but they are spread out so they don’t block real work quite as badly.

Of course, there is also I/O Blocking to contend with. When the filesystem is doing anything, everything stops. Because I/O is super smexy.

So we contend with shitty development choices by simply throwing entire chunks of technology at the problem. Two laptops, a Raspberry Pi, an iPhone, and an iPad. Each device is good at individual things, but no, we can’t do everything on one single device. Watch that device just chug right to the fucking ground. Ah well. The modern response is “throw a hypervisor on it” and that, wow, what a great way to make an even bigger mess of things.

Bullshit hypervisors make for hilarious blown-out-afternoons. So, Windows 10 on an HP Elitebook laptop, install Hyper-V from the OS, and the Radeon display driver commits hairy suicide. Not only does the driver break, but it cannot be “upgraded” or “fixed”, the only thing you can do, is remove HyperV and… poof, uh, there was a problem? No! No problem! So, you shrug and chuckle and look at the icon for VirtualBox. Yeah, hey buddy…

There are some situations where I start thinking that I should buy a cheap $200 Chromebook just for some things. More technology. SMH. Of course.

Two days ago I remembered the glory-promise of X-Windows and SSH tunnels, with the Display being sent elsewhere. Oh my god, the promise of that… so glittering. So… disappointing.

Oh it works. But it’s like watching slugs have a romantic dinner. Maybe I should just read a book while you request that website, hmmm?

Obviously you turn to Google, the eminent sage and eternal junkie for answers. Ah yes, X-Windows over SSH is a ping/pong nightmare, half the traffic is consumed by just making sure that all the lower layers are functioning properly, constantly. Fine. But then you spot things like x2go, give that a shot, eh… it’s somewhat better.

In the end, the promise bends to tools you already have. Like TeamViewer connected to Windows 10 on a different laptop.

Heh, assuming TeamViewer stays functional that is.

Technology is bittersweet. We have such command of so many wonders. I can’t shake the feeling that it’s all an immense house-of-cards. I suppose I’ve seen too much, I know too much, “I’ve seen things you people wouldn’t believe” kind of running through my head. Like looking at Layer 1 connections secured by… chewed bubble gum.

And all the various cheats and hacks, because you naturally want something, but you can’t get it because the people who provide the thing, won’t provide the tools for the extra things you want. They aren’t going to write the code, their codebase is secret, you can’t submit code yourself, and so you just sit there, google searching and finding kludgy-as-fuck solutions to your headaches.

Yeah, that’s fine, be a prat. I’ve got a python script that scrapes your shit and does what I wanted to do.

Case in point, Signal. I love Signal. I will always love Signal. But I want to search on metadata within the Signal app. No. Like the soup nazi, no metadata for you! Only search on stuff in primary stream. Fuuuuuuuu.

So I have a group chat, it’s all my friends, in Signal, and we use it as a blazing-bright thread, it connects us all, geographically spread throughout the United States. It made the COVID-19 Pandemic less lonely. It was a community of dear friends and we could be together without risk.

So, I journal, have an app for that, but obviously Signal doesn’t work with the journal app, so I can’t just hoover all the Signal content into the journaling software. Sometimes I forget to review everything we said in Signal, so the date-of-chat just slides off primary display. You could scroll, but wouldn’t it be nice to search on metadata? Like take me to the first thing shared on Sep 01, 2021? That would be nifty! NO. NO SOUP FOR YOU.

So, no metadata searching. Fine. So, enter the raw kludgy “fuck it, this is also a solution, damn you all” solution. Can’t search on metadata, but just on raw data, so, lets add the data markers we want to the stream! At 6am, write the date into the stream, every day. Then you can use the tools in the app to search on what was shared, and since the metadata you want is “shared”, now you can search on it! Well, okay! “Sep 01, 2021” look! YAY! That’s what I wanted!

Obviously this creates a “Forking House Of Mirrors”… one bullshit kludgy solution leads to a new problem. I don’t want to wake up at 6am to put the date into Signal stream. OK. Lets automate that. Enter Signal-CLI. shakes head fine. So, lets try to connect to the service, that was a hard climb. Okay, now it’s as group, what groups are there? No groups. What? No. Send something to someone, then ask again. Okay. <<send>> how about now? OH YES, THIS GROUP!? You need a special hex code for this.

If you have this hex code, you’d think you could use that without having to ask going forward. No. New install? You can’t just simply use what you know to peek around the corner, no. You need to run around Robin Hoods Barn all over again, and now you can use it! HUZZAH. FUUUUUUUUUUU.

So, finally, we can send signal data from the CLI. Next, lets figure out the date commands picky-picky formatting rules. How to get Sep 01, 2021?

We’ve got that! YAY! Okay, so lets write a Bash script! Get the date, and at 6am write it out to the Signal group. Write script, change mode on script so it can execute, plumb the foggy memories you have of crontab, and boom. Failure.

FUUUUUUUUUUU

Ah yes, cardinal sin, I didn’t explicitly declare the specific paths to signal-cli, echo, mv, fuck, any command at all. Call the script yourself, works, cron calls? Lost. Fixup. Dive into vim. Find your cheatsheet. Gah.

Finally, good god watch it work. 6am every day, a machine you “rescued from the landfill” with some half-forgotten linux distro you can’t remember is actually working and that’s fine. Now, when it’s Sep 03, 2021, you can search on Sep 01, 2021, to get back and manually journal what you remember telling people, because there it is. Click-drag.

All because metadata isn’t searchable. I got what I wanted. Everyone can benefit from it too. But it is complete mess.

This is why entire afternoons are incinerated on the pyre of “Fuck, I wanted XYZ, but the devs don’t speak English, their angel investors aren’t interested, and nobody but me would ever want this feature… so… fuuuuuuuuuuu”

I suppose I could attempt to ask for whatever it is I think would be good, but devs live on the moon, or as much as would be useful, they do. So no. We don’t tell devs anything. We just muck about, finding fragments on GitHub, trying not to get sick that Microsoft owns them now.

So you find gists, you find forked projects, you find python code fragments. The dependencies aren’t circular-misadventures-into-the-fog, you try to remember basic linux stuff because you haven’t had to screw around with any of it for decades and crontab went off to the same Elysium Fields that Trigonometry went off to…

Google Fu. Another worrisome “house of cards” right there too, but lets not look too closely at it, lest it collapse. Or sell our identity to Belorussians.

It doesn’t take much at all. Fragile houses of cards built on other fragile houses of cards. People mobbing on top, like hapless Eloi sitting down at the picnic tables and never having a single bright shiny thought in their pretty little heads because food is always right there, on the table, same time every day. Meanwhile, underneath, the Morlocks are banging on pipes, and every once in a while grabbing an Eloi for a snack.

That’s the Internet. Humanity on top of the Internet. The rot in Layer 8.

And all you really do is shrug. You hope for a better world. Every once in a really long while you stumble blindly over something truly elegant. It’s like tripping over Rivendell and spotting an Elf walking along a curated beautiful path of perfectly carved scrollwork.

And it’s only momentary. The pile of constantly shifting wreckage we call the modern world continues to shudder and throb. It all works, and you marvel that these people manage to continue to live in all of this… wreckage.

COVID-19 and Temperature Checks

I see a lot of companies starting to “open up” during our running COVID-19 pandemic. Right at the top, almost invariably I find the line item that, paraphrased “All employees are temperature checked before they start work.” and then it goes on and on from there.

I think it is worthwhile to start a conversation to illuminate understanding on what temperature checks really are. They are not quickie medical tests to determine if someone is infected or not with COVID-19. They are simply a very easy diagnostic tool to isolate vectors of COVID-19 transmission. Remember, that COVID-19 can infect you without your knowledge, it can replicate in your body without your knowledge, and by the time your immune system calls for a fever, to begin work on fighting the infection, COVID-19 has already been in your system and active and spreading the entire time, back to a standard period of about two weeks.

What temperature checks that fail do, is show you that you have a vector in your midst. Save your bus fare, because when someone is showing a temperature elevation they have been sick for at least a week if not two. These people should be interviewed to see where they have been so that those who have come in contact with them can be tested and quarantined.

So, while companies want to re-open because of economic pressure, which I do fully understand, a temperature check, a good thing to do mind you, is pretty much just identifying a bomb that has been slowly going off for two weeks. It is not testing, it is not contact tracing, and it is not quarantine. You haven’t found a sick person as much as you have found a Typhoid Mary or a Typhoid Marv.

We need to test everyone. We need a vaccine. We need masks, hand-washing, and social distancing. Everything else is just a carefully monogrammed pillow invitation for COVID-19 to spread and kill more people.

Ugly White People, Wearing Masks, and Leaving Facebook

So earlier today, after leaving our local megamart, which in this case is Meijer I was beset by wave after wave of ugly white people not wearing masks. I just cannot stand it, the absolute gall to put the public health at risk all because you want to be a dick about it. It is just beyond acceptable, even in our broken world, so I wrote a Facebook Post. I called them for what they are. Ugly White Pig Fuckers.

The Facebook AI flagged it as “Hate Speech” and so, since I have a long track record of calling out Russians for their shenanigans along with I’m sure other infractions that I have long since forgotten, I have been put in a time-out corner for three days on Facebook.

Almost everyone that I care about is on a shared Signal group, it’s a virtual pub where all my loved ones are also there and I can vent, and listen to my loved ones vent, and we can laugh and share things and because Signal is end-to-end encrypted, there is nobody there to tell me what I can or cannot say.

Very much like this blog too. I always mean to write more here on the blog, and this time-out from Facebook for 3 days is actually not a punishment but rather an invitation I think, to fully abandon the platform. The toxic people, the toxic stories, the endless and sensationalized bottom-of-the-barrel scrape that the wall has become. If I want to visit a wreched den of scum and villainy, at least Reddit doesn’t pretend that it is anything else than just another cultural latrine. Facebook is just a lemon-scented cultural latrine.

I pay for this blog and the service, so I can say whatever I please here without an obnoxious censorship AI locking my account out. Plus, it’s like TV, if you don’t like what I write on this blog, you are very much invited to forget all about it. Just don’t point your browser here, I will not be offended.

So instead of sharing things on Facebook, I’ll share them on this blog. The activity will pick up, maybe if I’m very lucky there will be a new community like Imzy, or perhaps something like LiveJournal before the filthy Russians got their grasping little fingers all over it. Everyone who reads the blog should know, I’m left AF, and while I am not Antifa, I am Antifa sympathetic, especially with the notion that anyone of good standing and solid heart will not hesitate to punch Nazi scum in the face.

So don’t look for me on Facebook. Look for me here. To Hell with Facebook.

Also… WEAR YOUR !@#$ MASKS IN PUBLIC!

Ulysses 18.7 and WordPress 5.4

Aside

I just had a devil of a time with my Ulysses to WordPress integration. Something underhanded happened on the way to the Forum. Either it was something that WordPress tweaked in 5.4, or my host did something clever to get in the way and didn’t tell me. Someone left a very important bit out, which broke Ulysses, my editor of choice for blogging.

The solution was to be found in these two sites:

David Bosman’s Blog – Ulysses and WordPress and

Hans Bruins’s Medium Post – Ulysses and WordPress

So if you were using Ulysses all along, and it suddenly crapped out on you with WordPress, these instructions seem to do the trick, it did so for me!

YubiKey NFC 5 – Disappointing & Useless

Aside

It doesn’t take much for a technology to excite me and then subsequently fail me. Case in point, a YubiKey 5 NFC security key. I bought it on November 6, 2019 for $51.94. I was excited to use this new bit of technology, thinking that it would at least be a valuable experience for me when it came to 2 factor authentication and honing my security skills. The NFC bits were very attractive and the website clearly displayed iPhone as compatible, so why not? Chip in all the way, it’s only $50!

What I got did not at all match my expectations. The NFC doesn’t work, or at least required at the time a different kind of iPhone than the one I had, which was an iPhone 6S Plus, so that was deceptive advertising leading me nowhere. The NFC part works nowhere, so it’s just marketing mumbo-jumbo for me. I then plugged it in to my USB port on my MacBook and was dismayed to see that it doesn’t really do what I thought it would, no way to get any of my TOTP settings onto the device, no applications to make it convenient to use on my MacBook Pro, but there was a way that I could put my GPG Key for my main account on there. So I did that. Then after doing that I realized that the private key had been moved onto the Yubikey and a stub left on my MacBook Pro, meaning any time I wanted to decrypt anything I needed the YubiKey. I didn’t have a choice when it came to having it in both places, and I accepted that because I rarely if ever use my GPG key since it’s a dead-on-arrival technology itself.

All of this was an immense flash in the pan. I did learn a lot, and I guess it was worth the $50 I spent on it. Maybe I can return it to the manufacturer, as I have returned it to factory specs. If they don’t allow that, then I’ll likely put it up for sale on Facebook, Craigslist, or eBay.

What I got out of Yubico and their Yubikey is that it is like a lot of other security tools, pretty much meant for a very niche marketplace where people who would buy into these sorts of things are sold on the how, just looking for the what. I wouldn’t recommend Yubikey to anyone, it is not easy to use and completely unreliable. A little sidebar to mention here as well, if you wanted to use a YubiKey to secure your desktop or laptop computer, which you could do, they strongly recommend you buy two of them, in case you lose one or one gets stolen. The all-or-nothing deal is a huge cold shower.

Hidden Killer

While working on Scott’s Thermal Cap, the brim, the band around the head, involved 32 discrete stitches per row. The pattern I was using demurred on chaining up the side and instead relied on the natural height of the SCTS to provide the height required as rows were added. Because the chain was omitted, every stitch requires attention, because usually when a chain appears on the side, it “uses up” whatever stitch was next in line, and so you customarily have to skip “where you should go” for the “next spot”. Without the chain on the side, progress is slower, the weave is thicker, and counting becomes rather picky. You want to make sure you have 32 in each row, lest you have decreases where there shouldn’t be any, and your hat comes out looking obviously wrong.

There are a lot of tools for maintaining counts in Crochet. Little plastic barrel counters, clickers, and a few apps for the iPhone. There was one of these apps, that among all the other features also had a verbal input mechanism. The app was updated and the verbal input mechanism was deprecated for Voice Control in iOS.

I have another app, called MultiTimer, in it are counters with audio feedback when you tap them. I had been using this app to count stitches in my work, but its a little annoying to have my hands on the work and then reach over to tap the phone. So I did a little poking around:

  1. Settings
  2. Accessibility
  3. Voice Control (turn it on, it downloads extra iOS components)
  4. ON: Show Confirmation, Show Hints, Overlay: Item Numbers. OFF the rest.
  5. Back to Settings, then to Control Center
  6. Customize Controls
  7. Add Accessibility Shortcuts
  8. Out to Home Screen

So, when I am working on a project, I plug the phone in (since Voice Control is a battery pig), start MultiTimer, switch to my Crochet panel where I have set up all my counters. Then I swipe up from the bottom, tap Accessibility Shortcuts icon, tap on Voice Control, then swipe down to hide the Control Center panel. Overlaid on top of all the screen items are little shaded numbers, so I focus in on the counter that I care about, “Stitch Count” and then I can say “Single Tap” to advance the counter, or “Tap 6” to clear the counter, or “Tap 4” to decrease the counter. That enables me to keep my hands on my work, and my eyes, and just say clearly what I want and the phone makes a little click sound when it does what I want. That way I can concentrate on the work, and then look at the display for the count. When my work session is done, I swipe up from the bottom, tap the Accessibility Shortcut icon, turn off Voice Control, and exit the MultiTimer app. Done and done. This way I can keep my mind focused on the work, I don’t lose count due to interruptions or cats, and it makes my phone do one singular task really well. After I started using this feature, I took back a little bit of the gripes I had previously issued against iOS, just a few. 🙂

We’re Always Shufflin

Yesterday I came home and like many precursors to the weekend we talk about what sort of meal plan we would like for the coming week. Along with that, we put together the shopping list for our weekend supply chores.

Ever since Apple released iOS 13, we’ve had nothing but headaches with their Reminder app. So the two places we usually go are named lists in the Apple Reminders app. My partner rattled off that there were four items in one list, and I saw none of them. After we wasted an hour resetting and screwing around with Reminders I went to look for alternatives. I found one, an app called “Remember The Milk” and I chiuckled as I had seen it before. Apparently I had an account there a long time ago, so instead of creating a new account, I reccovered the old one. I invited my partner to the app, he installed it, and then I created two lists for our two spots we usually go to, and then I shared them both out to him. Then we sat back and chuckled because with this alternative, proper sync was happening, which was everything we wanted. So we have turned our backs on the Reminder app.

As I started to look through Remember The Milk, I noticed that it had grown up a lot in the time I had been away from it. I’ve been having a headache with the ToDo App from Microsoft, which is actually Wunderlist rebranded. I had split some of my work tasks into ToDo from Microsoft because it was free with my work email, an Office 365 account. ToDo from Microsoft was having serious problems, mostly whenever I had to check off a task, a zombie task would reappear and I’d have to check each task off twice. There were only a few tasks there, so converting them over to Remember The Milk was really easy.

Then as I was working with Remember The Milk, I thought that I might finally leave Toodledo, so I bought a yearly subscription to Remember The Milk, which gave me parity features with Toodledo, and then backed up my Toodledo account and imported the entire thing over to Remember The Milk.

So now all my tasks live in one place again, instead of Reminders, ToDo from Microsoft, and Toodledo, now it’s all Remember The Milk. We’ll see how it goes.

Done with Higher Ed

I haven’t had a University dream in a long while. We were moved to new offices and I went exploring. Trying to find the vending machines I end up on a service elevator that heads to a basement. I don’t have the oddly shaped key that lets you return so I leave and discover that I’m in the middle of service corridors and I start to try to get outside. I end up in another one way hall in the library with an odd platform that seems to have only one function, to crush people. Like a compactor. I get out of there and end up in a sub-basement and eventually find my way out through a construction area with metal and glass doors allowing only exit, not entry. A student looking terrified actually gains entry and runs the other way. I make my way out to a courtyard and run into a younger student fleeing an older man who is chasing him with a machete. Then I wake up.

I can say that the part of my life where actually being inside University buildings is well and truly over. Here’s a dream exploring that awful place. I woke up and laughed, “Yeah, not going there ever again. You don’t have to wrap it in symbolism.”

Higher Ed, hah. Done with that.

White Christmas?

Today in Kalamazoo Michigan we have a high of 43 and a low of 28. There is no snowpack on the ground, the ground is bare. Again we have a no-snow Christmas. We’ve had these for a few years now, and looking at the forecast, by Sunday we’ll have a high of 57 degrees and it’ll rain.

Things that used to be aren’t any longer, the seasons are shifting around, and even our USDA zone is changing and has over the past few years. More than that, you can feel that something is terribly wrong with the world. You can see it in the people, you can see it in the sky, the weather, the birds, and the remarkable and tragic lack of any sort of insect out there.

This is the season of hope and wonder, so I won’t harsh it, but we all know deep down what I would write if it wasn’t the holiday season.