Family Photo Chest Part 5: Opening the Vault

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I started organizing the chestful of pictures. Let’s get started!

But first, I have a new area in the house to call my lab — for now at least. We have a spare bedroom we call our art room and it has been recently made available for use. I’m working off the same folding table as before, but with the extra space –and the ability to close off the area from our four legged friends– there was enough room for my father and me to move the old sea chest from our garage to the art room.

The goal in this phase of this branch of the project is to get a general census of what we have so we know how much storage to buy. Color photos take three times the space as their Black and White or Sepia counterparts, and many pictures have their original negatives stored in there as well. The general guidelines I received was to sort everything into large, medium, and small piles, with separate piles for color images.

We opened the chest and started pulling out various prints. I about have no words for the level of entropy I found. Collections of photos were haphazardly strewn about inside, while other prints were floating free in the photo paper soup. As I excavated, I found where at least a few photo envelopes had lost at least partial containment while in at least one case, a small photo of a motorcycle frame found its way inside a package of my father’s school photos. If it were any more organized, sorting would have been trivial. If it were not at all organized, I could be a lot more mechanical. As it stands, I am choosing to preserve obvious collections and incorporate them into my eventual file system.

Not all collections are bound the same. The most secure collection is a cardboard box stuffed full of envelopes. I all but left that one alone, moving it into a plastic bin along with several other obvious sets. I also had a special place in that bin for less organized sets of photos, such as one series that only had a rubber band. Several loose sets of pictures were obviously taken together, especially if they were together in a stack. Those ended up in yet another folder.

I still ended up with a few surprises. I had to make a pile for non-picture documents and envelopes with their contents lost to the soup. A lot of old mail ended up in there. I even found a lock of hair, presumably from someone’s first haircut. There must be no fewer than four or five languages represented in there.

Eventually, I ended up taking a bunch of sandwich bags and stuffing the loose groups in. I actually found a small picture within a minute while writing this post — in part because of this very tactic.

I owe a big thank you to my father for sorting out ambiguous sets. A lot of the memories in the trunk are his or are from people I never overlapped with. I can see this project taking quite a while. Hopefully, things can get moving sooner rather than later.

Final Question: How do you bring order to semi-chaos?

Minecraft Server, Week 6: Press Start

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I almost posted one of my backlogged posts, but I managed to pull together something to continue this project one more week. Let’s get started!

I don’t know where to begin on this one. Last week, I left off with reinstall after reinstall, trying to fix some error I kept seeming to get. I gave up after wrecking my bootloader during one last attempt to fix everything, forcing the machine to depend on booting to live media, such as my Puppy Linux CD. I stuck around to determine that Ubuntu wasn’t accidentally nuked alongside Micro Core, so I was at least partially appeased on that front.

Sunday came and I thought I would try one more time. I had done some research on GRUB 2 (GRand Universal Boot Loader). Boot loaders are programs that take charge after the BIOS select a drive to boot to. They are in charge of starting the operating system. GRUB is designed for environments with more than one OS, like the one I seem to have ended up with. It is worth noting that GRUB and GRUB 2 are two different boot loaders that serve the same purpose, they both refer to themselves as GRUB, but some places say you can get in trouble if you use support for one on the other. From what I can tell Arch Linux is one of the few distros that use the first one.

I started up Puppy Linux and suffered while trying to find the terminal. That little distro does not follow many of the conventions I’m used to as is! Bad dog! I researched how to repair GRUB and when I looked in my MineOS drive, I found… what looked like a fully functional boot loader.

Annoyed, I told the BIOS to boot to the old SSD before the HDD with the bricked GRUB install. It worded. I was able to boot to MineOS, but I still got a corrupt terminal pseudo-window interface: the configuration console. Sometime after I seemingly bricked my machine, I had the thought that I might not have really had an error to fix all along. I was hoping everything was just one unknown away, and that was it.

MineOS is fairly minimal on the host machine. It really shines in its Web Interface. You connect to its IP with https at port 8443 and sign in using the account you set up during your first boot. I tried that and got a page that got stuck loading. Different computers didn’t help either. I gave up and resolved to put the finishing touches on a stand-alone post I have written after pinging my contact with a picture of the error message and corrupt-looking screen I was having trouble with.

Hours passed, and I eventually got a celebratory reply of all things. I decided to humor him with one last attempt on connecting to the previously tried IP and port. It worked. I seemingly didn’t do anything differently, but it worked on me. I went over to the other towers I had previously tried it on, and it worked on those. It did not, however, like Android Firefox on my tablet, but the browser built into LastPass was accepted.

About this time, I investigated one of the features of MineOS inherits from its parent distribution, Turnkey Linux: Let’s Encrypt. Let’s Encrypt seems to be a free SSL certificate authority, if I got my terms all correct. If you already know what you’re doing or are following a set of instructions and don’t care about learning, you can reportedly have one within ten minutes. The only issue for me was that the application script gave me a bit of a head scratcher. It wanted a domain, and I didn’t know what to put. In the end, I figured I wouldn’t be exposing the login port to the Internet anyway, so I can wait on setting that up.

The web interface itself is well polished. I still don’t know what all I am looking at, but it is a whole lot easier to behold than a command line. Exploration is also much easier. I set up a test server, trying to get something going on a port other than 25565, the default Minecraft port, but some diagnostics and research later, and it looks like part of the Web Interface’s design principals exclude it from being able to open additional ports, mainly that not all operating systems it can possibly be installed on keep track of open ports the same way. I suppose that keeps the dabblers contained in a field of relative protection, leaving advanced use to more seasoned computer users.

I moved my test server to the default port and had a volunteer try again. It worked, and this time when I expected it to work.

MineOS has an import feature that’s supposed to be fairly smart when it comes to importing archived servers. .ZIP files were confirmed, but I wanted to feed it a tarball and see what would happen.

I took the server of interest offline and –very important– made a copy separate to any backups I may have had. I then started weeding out things that wouldn’t make it over to MineOS, such as the WorldBackups folder, the start script and its backup, and copies of the datapacks we are running. The tarball came out to 1.9GB.

Transportation was a hassle. I didn’t have the patience to set up SSH correctly, so it gave me a warning if I tried to copy. The old host machine, my father’s computer running Linux Mint, didn’t have an SSH server on by default, so I couldn’t grab it from the new server. I tried my 1TB external drive, but when I finally got it mounted, it was read only, likely because of the way it was formatted. Two additional USB sticks were too small, but I could get it onto an external hard disk drive we have around with plenty of room.

Issues persisted. The MineOS terminal did not want to mount my storage device, and when it did, it wasn’t polite about where it put it. I still don’t know where it was hidden, but one search did turn something up I know for a fact was on the external HDD. For a few actions, like mounting/umounting or listing the contents of some directories, I required root access, but sudo doesn’t look to be a thing here. I used the su (substitute user) command to switch to root, something that should never be done lightly. I even tried booting to Ubuntu and manually copying the .tar.gz file over, but I had some kind of error I have no clue how to address.

In a frustrated fit of doubt, I suggested I may just move the hard drive over to my father’s machine and copy it over to the import directory manually. It actually sounded worth a shot, so I did it. It worked.

I booted the server machine and found a file all ready to import. I set it up, and had a volunteer log in to a brand new world– It was supposed to be the preexisting world. I ended up moving the drive back over to my father’s computer only to discover that it had basically unpacked my improperly compressed tarball and stuck a new server at the root.

I was not pleased. I manually moved the different elements over to the new hard drive and saved each piece. Not all parts had counterparts. I kept the MineOS exclusive files intact, while grafting in the original server’s files. The World file was spelled world (lower case w), but the hardest element was the properties file. For that one, I actually had to evaluate it line-by-line.

Finally, after six weeks worth of work, I had the server on its own dedicated server. I started it back up, and had my volunteers examine the world. So far, all systems appear normal. I plan on keeping on its original Minecraft version for at least a day and I want to make a restore point or backup or whatever they call it. I just need to learn the MineOS Web Interface.

I learned a lot in this project. If it weren’t for this blog, I would likely have given up long ago and just hosted it from my own machine. If it weren’t for my time in MicroOS, the last push I made could have easily have taken two or three more weeks. I’m glad it’s over in time for New Year. And now, I present the newest member of my little computer family: ButtonMash!

Final Question: There are a few details left to polish, but I do not plan on covering them. Do you want me to change my mind?

Two Small Projects

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I did a couple housekeeping projects. Let’s get started!

Things are still settling from the fire. I did a followup to last week’s post on FimFiction, but I was able to come up with separate content for the two this week. Check it out if you’re interested: Post Evacuation Shakes.

Also of note: the workshop I’ve mentioned every so often is now officially open. They’re called The Third Workshop. I’ve been going there regularly for quite a while, working on whatever project I want.

Finally to the topic for today. I went to Third Workshop today while some strong-smelling chemicals were being used as part of the smoke cleanup. My stated goals: write a Bash script to setup Blinkie for testing code related to my OrbitCam project, and to get Blinkie to connect to any familiar WiFi network while headless.

My first project was almost trivial to write. I’d include it here, but I still haven’t figured out how to do a block of code.

The first line told the OS what interpreter to use. The second and third lines prepare the virtual environment, and since I was feeling adventurous, a fourth line changes directory to the folder I’m working in.

I added execute permissions to my script and went to test my script at the command line with “./OrbitCV”. It ran for a few seconds, then spat me back out to the exact same place I was in before.

My first thought was that it didn’t work for some reason. I tried renaming it to include the .sh name extension, but changed it back when I read the “hashbang” comment at the beginning already took care of that.

A relevant article had a couple typos, one involving a snip of code. The article was aimed at beginners. I sent some feedback.

My eventual theory was that stuff was actually happening, but it was being thrown away afterword, giving me a net of zero progress. Further reading and a couple tests confirmed that Bash scripts start new “shells” within one another like Russian nesting dolls. Reading a little further, I read about sourcing a script with “. ./OrbitCV” so it would run in the same shell.

My conclusion for now is that shells can be pictured as a computer streams of thought as managed by sets of parentheses. Likely not ideal, but I’m working with it for now.

My other mini project promised to be more difficult, but was similarly simple in the end. Blinkie, or at least Blinkie’s SD card the operating system is running off of, travels back and forth, but I’ve had difficulty getting it to automatically connect to a single WiFi network at once.

One of the great things about Third Workshop is that you aren’t often alone alone in your projects. If you are doing something new to the workshop, certain toys tend to appear. One such toy was a counterpart body for my BlinkiePie computer. Skill sets of those around you tend to expand to help you as well.

This time, I ended up on a small bit of a chase. I looked into solutions involving prioritizing what network to connect to. Two or three possible solutions later, I took a look at /etc/wpa_supplicant/wpa_supplicant.conf. What I saw reminded me of NBT data from Minecraft.

I saw each WiFi network Blinkie had ever connected to represented with a name, plaintext password, and another line I don’t know much about. The fourth line on most of them was what interested me the most: disabled:1.

Based on my own observations in the past, events in the present were not making sense. If what I was seeing was what I thought I was seeing, I should just be able to comment out the lines and have it work. I tried just that, and set Blinkie up at home, sans head (the glue didn’t hold the head) and without tightening the screws holding the board in place. Would you believe it just worked like I wanted for once?

Final Question: Have you ever taken on a tiny project you knew you could finish just because it would help with self-esteem?

My Week as a Fire Evacuee

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I’m covering something a little different. This post is cross posted on my Fimfiction writing blog. Let’s get started.

Fuel. Air. Spark. Master any one of these elements during a combustion process, and you have one of man’s most important tools. Neglect them together, and you have a recipe for a destructive force of nature.

Last time we went through a nearby fire, we spent a week under evacuation warning. Our two cars and van were loaded with our most irreplaceable positions: pictures from growing up, souvenirs from trips we’ve been on, computers we’re basically paralyzed without nowadays.

Day 1

It was Sabbath morning. I was getting ready for a special church service to celebrate a major anniversary with a speaker from the North American Division and planned activities all afternoon. I was looking forwars to helping on sound.

I was still at home when I got an Emergency Alert System warning on my phone. At first, I thought it was a sick joke. Wilefire had come nearby a couple years ago, so I sort of had an untouchable mentality. Another alert came through. I was desperately hoping it was basically a “never mind” type thing. No luck. Spanish translation of same alert.

Needless to say, the church service was canceled. I mentally shut down, scared, while others around me hurried to pack for who knows how long. After asking for prayers from different Christian groups online, I was able to help with some things, but not others. After wrangling the computers, I started collecting sentimental items as impulse grabs, ignoring restrictions on bringing both Derpy and my other Linux server.

The idea that I may be coming home to a pile of charcoal and ash felt unreal. With only two operational vehicles, the massive photo trunk from my grandparents’ house had to stay behind. People, critters, and basic necessities tend to trump things like that when faced with a knapsack problem like this.

With our payload set, we set off down south toward San Francisco in heavy traffic as literally everyone fled along with us. It took hours longer than usual to reach the city.

We heard from a friend to save any and all reciepts. Insurance may cover “loss of use,” basically anything extra we spend because of being evacuated, we can get reimbursed, but only if we have the reciepts. We missed one tank of gas, but after that, if we got a paper documenting a purchase, it got stuffed away for later.

Saturday night, we crashed at our grandparents’ house (not the ones with the chest) with four cats and three dogs, two of whom are service dogs. We spent the night safe in relative discomfort.

Day 2

I normally sleep until 10 AM. My grandpa likes to get up early for a walk. I like spending time with Grandpa when I can. I got up earlier than usual, setting a pattern for the next several days.

Sunday evening, we spent looking for a place to sleep that accommodated all our special needs: three beds with at least one in another room. There weren’t any available; everywhere was already filled up with fire evacuees. We even shared a couple sodas with a fellow evacuee family with small kids.

One place said no vacancy, but they were converting to more of an appartment model. They might have worked, but we would have shared a wall with someone who’s scared of dogs, and we have two service dogs.

We eventually crashed into this “newly refurbished” motel. It was clean. If first impressions were everything, they would have had my stamp of approval.

We ate out for most meals on the road, and supper was actually a pretty tasty potato-based lasagna from a Greek restaurant, at least for me.

Night 2

This one gets its own section. Remember that motel? While we were first evaluating it, my sister had a few concerns. Even the tail end of my first impression before supper was a bit sketchy when one of the comforters had a little oil on it from when it fell on the parking lot, or so said Rose, the lady working the place (name changed to protect her identity and because I honestly don’t remember).

also gave us a hard time about an extra $10 for having dogs in the room. “That charge is illegal,” we told her.

We went back and forth a few times. From her point of view, Rose had a boss who would be ticked if she dropped the charge, and as my sister put it, she “took the moral high ground” saying we should be grateful they were accepting our dogs for just a low cleaning fee.

I looked it up while this was going on, and I found something I was not expecting. According to the document I found on ada.gov, service dogs MUST be accepted and MUST be exempted from any animal fee, but a cleaning fee is permissible, so long as a non-disabled person would be charged the same fee. I was not expecting that one.

NOTE: later in our trip, I took a closer look at that document, and found it was replaced by legislation that exempts service dogs from normal cleaning charges as well.

We had to book two rooms, but the more time we spent there, the less sure we felt. The kitchenette refrigerators made a horrendous noise. The outside doors felt as light as an interior door, and had half a key and chain lock system between the two rooms.

Things only got worse after lights out. For reference, I was in the single bed room alone. I found my bathroom door wouldn’t close for getting stuck on the tile floor. Back in the main room, the front door was warped, letting in a ribbon of light. I lost count at five times checking to make sure it was actually latched.

With everything adding up, I didn’t feel safe enough to even get undressed for a shower. I didn’t really want to trust the sheets either, so I planned on just wrapping up in my polar fleece space quilt. Comet, my service dog, had his mat from home, and I moved it closer to the door.

Comet, is usually a good boy. He must have noticed I was feeling scared, so he about insisted on doing a “Jump on” to the bed as I was working on last week’s robotics blog post. And no, he wasn’t going to settle for anything less than full body cuddle when I normally have to insist. Normlly, I’d correct barks at strange noises, such as someone else checking in, but that night, I didn’t. I actually found it a bit comforting.

Day 3

A car alarm woke everyone up around 5:00 am. I made it back to sleep for a couple hours. I found out later that I was the only one.

Comet had stayed cuddled the whole night. Even though the place looked warm and inviting again with the morning light, I would not be caught re-entering my room after leaving it. I rejoined my family to regroup while things were packed after our one night there.

I would not consider staying there again. Eventually, the fridge got to me or something, and I left that room as well, opting to study some of the succulent hedge plants they had growing. Different buds of even the same plant were at different spots in a cycle of growth. I found the fractals interesting to look at.

We ate out for breakfast, and traveled for a place to stay the next night. Most of our travel time, I was riding in the car with my father. I had recently gotten this exponential numbers game on my tablet, and I have a really weak spot for those. Normally, it would have been a bad thing for me, but a simple game that’s remarkably battery friendly was just what I needed.

That night, we found a two bedroom suite in a hotel chain we like. For some reason, we only booked one night there and made reservations in a similar place nearby.

We heard on the way to the first proper hotel that one of the pools was out of service. We were a little relieved when our one-night place didn’t have its pool open. Wouldn’t want those three swimsuits I ended up with to go to waste! Impulse grabs.

Supper, we went to a Siam/Thai place just as they were finishing for the night. Minutes remained until the cook was going to leave, and I made a recommendation we all have my favorite dish from when I went on mission trip to Thailand: pad thai. I didn’t get too good of a look at the menus, but I think I would have gone for an option other than orange sauce. But that food sure tasted authentic!

One of the other patrons had a problem with dogs, and the owner asked us if we could move outside making for another ADA surprise. I decided to take that closer look later. It didn’t come to anything, but the owner was much more diplomatic than Rose.

NOTE: While I later found that when someone with a service dog and someone with dog problems must be in the same area, such as for a work setting or an evacuation center, they should be placed in separate rooms or opposet ends of the same area if possible.

Day 4

I got myself up for the hotel breakfast in the lobby full of stuff I rarely get at home. Personally, I had a big waffle on one plate, and two English muffins with scrambled eggs, cheese, and salsa on my other.

Travel details get a little fuzzy as to which day what happened, but I think this day was the day we went shopping. I stayed in the van, and a backup alarm really messed with me to the point I had to get out of there. I had planty of time to dash away from there so I wouldn’t have to keep getting overloaded by that painful noise.

My sister kept me safe, pointing out that the vehicle backing into the spot next to us could possibly have stepped on the gas instead of the break. She convinced the driver to park in a nearby spot. I don’t remember much else, except that the driver didn’t seem to understand and I was playing my game, like usual.

We got to the hotel we were planning on staying at for the foreseeable future. I made myself at home as best I could. My room had a small desk, but that didn’t keep me from squeezing my dual monitor computer setup onto it. I didn’t ever get a good mouse pad, so I was always fighting it. I set my moon lamp I got last year as a birthday gift on a bedatand. My quilt really brought everything together.

The pool was closs here as well, but there was a weekly grill by the courtyard firepit. It was quiet, not too many people were there at once, and the lady grilling enjoyed her job at the hotel where she could meet people.

As a vegetarian, I didn’t gorge myself on the grilled chicken, but the potatoe salad and barbecue chips were tasty. I had a good time.

Supper was a homemade soup. The bowls that came with the room were tiny, but it was all good.

Day 5

This was a much needed down day. We still weren’t sure if we’d be coming home to a pile of ashes, but I still got myself up for a similar breakfast with four small waffles. My sister and I took food up to our mother since she wasn’t feeling the best.

This day was very much needed. With the decor I imported, I could easily see us living there for anywhere up to a week, as some estimates were landing us.

I pretty much spent the day watching YouTube I could use for trivia fodder later. I also caught up with the protests Hong Kong is having over the premature erosion of their democracy. Eventually, I even managed to write a sentence or two toward my next FimFiction story about Cheerilee.

For once, I don’t remember supper! Probably because it was a disorganized jumble involving cheese, crackers, and leftovers.

Day 6

Halloween. Breakfast was the same fare as before. They had a skeleton in a scrub working the front desk. I was informed “Slim” wouldn’t be working there for too much longer because didn’t meet the dress code.

It was also the day we returned home, as insurance wouldn’t likely cover anything that wasn’t part of the mandatory evacuation. I was supposed to ride shotgun with my mother as she was feeling a little better, but not so well as to not want a backup driver.

Remember when I said I usually sleep in? Well, at the university, Ilearned that I can get up early for breakfast, but doing so for long periods tends to make me fall almost asleep for an hour or two; I was useless for packing, especially when a stereo on wheels parked itself outside our window.

We split up for fetching our critters. While I really wanted to help with our cats, I ended up with the car, picking up our pet dog. She came back all nice and groomed and her sitter gave us the nnews that our little diva held out for the raw beef the other dogs were having. So much for kibble ever again.

Smoke. We got home hours before the van. The firefighters saved the vast majority of the town, but the smoke was terrible, and I didn’t know which N95 mask was mine, nor did I know where an unused one was.

Inside the house was about twice as smoky as outside, so we aired it out. Seemingly long stretches of time are reduced to two single words: unpleasant, and smoke.

Our next objective for the evening was to obtain air improvement devices. While I would have rather personally joined in on the search, I stayed home in case the utility company came by to turn our gas back on.

I ended up orchestrating some smoke-quality furnace filters and a few HEPA filters for in-room use. Coudos to the store manager who ordered extra furnace filters in anticipation of the sudden spike in demand. We got six. When they arrived, I decided to layer one with a lower quality filter so the good one could do its job of catching finer particles better.

Supper for my mother and me was a nicely sized pizza. I called no fewer than three or four places before I found an open one, and when I did get one, it was a 45 minute wait. Turns out they had the orders of three locations being forwarded to their place, and a bunch of hungry evacuees were returning.

We did get one ser of trick-or-treaters. After I had to turn them away, –the porch light was on for the utility guys– I made a sign explaining things.

The gas did not appear that night, so I was double glad I had a shower that morning.

Aftermath

We spent the night with filters going on max in our bedrooms. When we got up, the smoke was pretty bad in the rest of the house. Ever since then, I’ve been scared of smoke damage seeping from the walls and ruining our lungs. I can’t wait until a professional comes through and tells us what needs to happen of if we are all good. I doubt I’ll be able to rest fully until then.

Throught the whole week, I don’t think anything really felt real. Not until I saw a map of the burn zone reaching within walking distance. The evacuation gave the firefighters the room they needed to save everything they did. Maybe it still isn’t real to me even now. All I know now is that since getting home, I haven’t been able to get the initiative to get fully set up again in case we have to leave for any reason.

Just because there’s a disaster going on doesn’t mean your whole life just takes a pause. Sure, I wasn’t able to meet up with a friend who otherwise would have come through on Sunday, but I still made contact with people I normally do online, just not as frequently. I’d like to thank everyone who prayed for us and the first responders. God really took care of us this week. As of noon the following Monday (daylight savings time is over, by the way), the evacuation warning is over, but not all the fires are out.

Lessons we’ve learned this past week: first, keep all receipts during an evacuation if you even think you have loss of use, and second, call your insurance adjuster on your way out. They can help you find space for you and boarding for any critters.

Final question: have you ever lived through a natural disaster? Ever been evacuated for one?

Haystack of Activity

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I seemed to do a little bit of a lot of stuff related to working on with a Raspberry Pi. Let’s get started!

Stated project goal: Develop a tool so I can code with my laptop, but execute on Blinkie.

I went into the workshop relatively early today (Sunday) with my stated objective. In light of my fragile case being fragile, I elected to just take my SD card “solid state drive” in to see how my setup reacts to different hardware running things would act. There were some interesting results. The following sub-projects happened concurrently.

The first project was setting up the new Raspberry Pi 3 B+ the workshop has to mirror my setup. It came with a metal case —titanium if I remember correctly— and I got to assemble the ting. There’s just something about a proper case that just feels right. As soon as I slid the board in, so satisfying with it fitting perfectly.

The case doubles as a heat sink, complete with thermal paste. While I want to do that eventually, I decided to wait a while until I’m ready to seal the case for good. I have two ports I intend to use within the foreseeable future: the camera port and the GPIO port. Both have slots in the case to accommodate the relevant cables.

The GPIO port was the first to go on. Since I really didn’t want to mess anything up, I didn’t use enough force to seat the ribbon cable connector correctly, and couldn’t close the case. I tried looking for a way to test for an electrical connection, but ended up probing the female connector with another part and verifying it could take the whole length of the pins. I pushed a bit harder and managed to get it in there.

The camera port was more straightforward. Same as before, I just lifted the little plastic piece, inserted the comparatively narrow ribbon cable, and pushed down to have the port bite down. On the other end, I sat a Pi camera for testing purposes.

In the best case scenario, the cables would barely poke out of the case with maybe an inch or two to spare, and I could just connect to external ports like they were on the board itself. No such luck here. In testing, the camera failed to take a picture because it wasn’t detected.

My second project was backing up my SD card. I found a utility to make an image of my card. It wasn’t the best coded piece of software; it refused to make a new file to save to, but I renamed a new .txt file and got it to work. It took half an hour, during which I worked on the other projects. I did not have a spare SD card to test the image on, but there was a warning about similarly sized cards being slightly different sizes when they’re from different companies, and not to try applying a larger image onto a smaller card.

My third project was testing how the workshop’s Pi handled running my SD. I expected the MAC address to be different, but otherwise nothing else. I was close: PuTTY warned me about a different host key, and had me log in with the password the first time, but otherwise didn’t have any other software problems. I had to let it to connect to my phone, but that gave me an idea for my next mini-project.

My fourth pseudo-project was just some general knowledge base maintenance. I had a few questions, and not all were answered. I connected both Blinkie and my laptop to my phone, where I would expect them to work similarly to a local area network. I used traceroute from Blinkie to my laptop, but ended up with over 30 hops. Yikes! Honestly, I have no clue what’s going on with this one just yet. I still need to look up the difference between a hotspot and a more conventional router. For all I know, it could just be no discovery turned on or that it acts more like a gateway to a larger router. Possibly both.

Final Question: What do you do while code is compiling or otherwise waiting on a computer to finish?

Blinkie Pie Case Repair: Stage 1, Part 2 (of 1.5)

Good Morning from my Robotics Lab! This is Shadow 8472, and I am never using Stage/Part sections again. Let’s get started!

Last week, I tried super gluing Blinky Pie’s base back together with unpromising observations. After two successful runs gluing segments of an interrupted print to its own raft that I somehow still had around, I went on to the main event, but it failed hard with the broken tab springing away from its base.

I hardly touched my project all week.

Sunday came and I forced myself to work on it. I was expecting to clean it off with some acetone and start over again, this time with the baking soda method that gives the super glue something to latch onto.

I pulled my project out and took inventory. I was surprised to find that not only had the broken piece returned to its proper seat, but it was holding up to a semi-reasonable amount of pressure. No way am I stress testing it, but I’m hopeful this case will continue to serve me for a long time to come as will be.

I set the base aside, then had help from my father tending to the top half. I took the camera out last week, so it wasn’t attached to any electronics or anything. As it stands as of writing, the glue is not quite to the 24 hour mark needed for full strength.

Next week, I expect to do a little sanding and painting on Blinkie’s dome head, but only if there’s glue oozing out the back.

I’ve also had a vague thought that I’ll need to get into soldering some day. It’s no time soon, but I really hope it’s not too much of a challenge.

Final Question: If you were a real-life spacecraft, what would you be, and why?

Blinkie Pie Case Repair: Stage 0, Part 1

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I can’t find my underscore key! I must have tried at least ten touch type attempts trying to find that stickler before I hit it. Today, I am actually planning out a new project: repairing my Pi case. Let’s get started!

Update on the bot: Project Canceled. Everything –and I mean everything– I saw said Discord audit logs would be available until 90 days after the incident. They vanished, and a screenshot I had of the logs the day of was only 55 days old. I contacted their support, but they eventually told me, “The team has confirmed that it is an intended behavior with audit logs. And we can’t offer troubleshooting steps to fix it,” and to “Please update us here [Discord feedback] if you have further inquiries.”

…

I really need to pay closer attention before I say something to the effect that they are doing a terrible job. The support was friendly, and usually got back to me within a day. It was only after I replied to that last one and expected a reply that my opinion tanked. I might be coming back to it yet.

Moving on to the subject I actually did my research for today:

I crushed my Pac-Man Ghost case while transporting it a month or so ago. I want to repair it. I went into the workshop to brainstorm. I learned a about techniques for joining PLA pieces, but I can tell this will take a lot longer than I had hoped.

Both the top and bottom are damaged. The head piece only has a crack going even through the paint, while the bottom has a broken tab piece hanging by a few lines of filament.

The quick and obvious solution is super glue. I’ve been warned against it, but I think that may be the way to go for the head piece because it’s otherwise mostly structurally sound. The bottom piece will require a little more creativity.

I read about two other repair techniques, one of which I was already speculating about. Friction welding, would be if I heat it up with a small motor and quickly press it back together. Soldering would also work, and hopefully not lose any material, but will require additional dexterity.

Worst case scenario: I botch a repair of the bottom and end up printing a new bottom. If that were the case, I’d want to get in there with Blender and adjust the inside to actually match my Pi 3B+ model instead of the Pi 2 it’s designed for. I’m expecting this project to last at least until Christmas, even if it’s not interrupted by something more worthy, like picking up on that bot project again.

Final Question: What PLA repair techniques should I research?

A Seemingly Complete and Utter Waste of a Blog Post

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I’m finishing my discord bot! and today, I’m getting back into my Pi Spy Feline Edition and today I’m solving — exploring the pseudo science behind a chapter in a book I’m writing. It’s not quite on topic, but let’s get started anyway.

I was supposed to have 90 days of the audit log. They dissipated after 55 days. I took screenshots the day of, and the file will be 56 days as of this posting. I’m a tad annoyed, but at least I learned something along the way.

I would have been interested in getting back into dealing with Blinkie and the kitty caller, but the case is broken and it still needs to be repaired. I’m hoping I don’t have to reprint the whole thing. Maybe I will see about using a soldering iron… I might actually try that one.

OK, onto business. About two years ago, I was in a role play set in the world of My Little Pony: Friendship is Magic where I took the role of two characters: a little Unicorn foal by the name of Applesauce, and an elderly Crystal Pony by the name of Professor Stone W. Jay PHD. I eventually settled on calling him Dr. Stone. I later found out about the manga of the same name. There is no relation between them.

At the end of the first big section of the game, Dr. Stone is in a small town when a dimensional rift opens up and starts spewing enemy soldiers. Having had military experience in the past, Dr. Stone takes command and MacGyvers a temporary victory.

In my novelization, I decided I wanted to add a nod to Physics without kowtowing to it. Since this is a magical setting, I decided I wanted a time dilation field so that as you approach the rift without the proper spells on you, your personal clock slows down, but you don’t suffer the tidal effects one would normally expect from several solar masses crushed to a point mass and placed in the town square.

My original question was along these lines:

  • Dr. Stone is at 50 <= r <= 150 feet from the rift.
  • Dr. Stone experiences 15 <= t(observer) = t(o) <= 30 minutes.
  • The world outside the significant effects of the time dilation field experience 3 <= t(fast) = t(f) <= 6 hours.
  • The rift in the town square respects time dilation as if it were a singularity with enough mass to dialate Dr. Stone’s frame of reference by the factors given.
  • The rift’s opening is no bigger than a pickup truck, but no smaller than a human.
  • Does Dr. Stone see an Einstein’s Ring?

I’ve researched by posting in forums and over Discord. I’ve gotten a whole array of people responding from one or two overly blunt Discord users who wouldn’t buy into my fantasy to an Oxford professor who unfortunately didn’t know anything either.

I did manage to get the attention of a few helpful individuals; one suggested lighting effects while another got me thinking about temporal gradients internal to the body. One individual going by Needling Haystacks has been particularly helpful as someone who knows a bit more than me in the topic. Turns out, the air around the singularity would mess with any Einstein’s ring in the first place.

In the search for an equation to work, I found one for stationary satellites above a non-rotating sphere, then I spent whole evening learning about the universal gravitational constant “big G” and not finding it expressed in Imperial units, likely because 99.99 percent of all people with any business even trying to understand equations with big G are already familiar with the SI system.

At this point, I managed to plug in all the variables in and my graphing software gave me a shape I wasn’t expecting. I’ll need to run some more tests.

Final Question: Have you ever gotten overzealous over what’s supposed to be a small detail, but ended up with something much different?

Programming a Pi With a Discord Bot Part 1 (of 1 hopefully)

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I’m inching back into actual programming with the skills I’ve built up with SSH over the past month paving the way with a bit smoother workflow. Let’s get started!

A few weeks back, I was made an admin on a Discord server after an unsavory character I shall only refer to as Z nuked it majorly. He took advantage of the owner’s weakened state after constant raids, unbanned pretty much everyone, and kicked about two thirds of the total population. Z’s rampage went on for around 10 minutes, but he caused massive damage.

As an admin, I’m helping rebuild the server. One of the tasks is rebanning everyone Z unbanned. Oops. Discord only gives you the option to ban someone if they have some sort of presence on the server by way of being a member or having a message.

When Discord bans someone, it offers to permanently delete a few days of messages from them. Troll tactics often involve getting a bunch of alt accounts on at a time for wide-spread harassment. When the server staff is doing a good job, alt accounts get banned quickly, and all traces of them are incidentally removed from the server. Bad news for me when trying to reban.

The good news is that Discord have a little more access to Discord’s full feature set, and one of those tools is banning accounts without needing a membership or a post. However, with a new goal in a slightly unfamiliar field, that implies new learning to be had.

The first step was defining what exactly I want it to do: Reban the unreachable. Next, I settled on hard coding each name that still needed banning. I’ve had issues with bot stability when running someone else’s dice bot myself, but I don’t need to worry since the finished bot need only run once and it’s done, ready to archive.

The hardest part would have been getting Python3 on. Lucky me, I have the earliest version of Python supported by Discord’s Python wrapper already installed on Blinkie from my naughty kitty project. I just had to install a few dependencies.

I met someone on Discord by the handle of Damaged who I got the majority of my assistance from. They actually pointed me in the direction of programming my own bot instead of just trusting someone else’s. “What I can say is that you need to be very careful of any bot you want to get to [ban people]. You’re effectively going to give them the keys to the castle.” Security is of concern. I once hacked a new bot (with permission from an admin) into pinging everyone when a normal account doesn’t let you do that. The last thing I want to do is let possible trolls have devastating tools I left laying around.

Banning doesn’t sound like anything too fancy to program, and the skills and tools I develop for this project should be useful later. I learned how Discord bots log into bot accounts with some kind of token. I learned how to tell the bot to print its account ID to the command line and use that to add its account to a server. As of the writing of this post, I have gotten a sample bot debugged and running and responding to a simple command.

The next step was a little revision in plans. I have about 50 names to reban or so in total, and bots can theoretically easily do the deed quickly and more thoroughly than I can. I figured it was likely somewhere around a wash, so I’m going to program a bot to look for all Z’s unbans and reban them.

Other possible bot features I might like are the ability to nuke someone’s entire history with the server. Another person who left now has a crude name I wouldn’t mind if it were gone.

Final Question: Not all bots need potentially dangerous permissions to run. What are some niche moderation bots you’ve seen/used?

Programming a Pi to Deter Cats: Part 9.3

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I’m off on another tangent away from my main goal of Kitty-Cam security. Let’s get started!

Last week, I went over the basics of logging in securely without a password. This week, I tried practicing my skills and setting up a SSH key pair. Somewhere, I messed up royally, and I messed up the connection for the laptop as well.

It feels like my knowledge in computers is growing like a pile of sand, with the goal being to reach some arbitrary height. Each grain of sand higher means another shell of grains around the outside, and if one falls in just the wrong place, I have to learn how to fix it. For monolithic goals, this is bad news, but in a wider scope, it’s not so bad. If I set a new goal in a similar field, a lot of my grains of knowledge will still be applicable to this new task. I suppose that’s why they call it a learning curve, though right now, it feels like a learning slope.

I went into the workshop and spent a while banging into a learning wall. My progress from last week had seemingly broken, and I could not recognize how for the longest time, even until closing time. Apparently, in addition to SSH public and private keys, there’s this thing called a host key. From a little more research, it looks like a host key is a number you trade over a separate communication line to make sure you don’t have a man-in-the-middle attack where someone is passing all the traffic between you and the server and taking notes on your otherwise private conversation.

I still haven’t gotten my side project working, but now, I think I know the correct direction. I’d like to get this working, because an interesting robot platform I’ve been following for a number of years, Sweetie Bot Project, finally made their code open source. With any luck, I’ll have my skills refined to where I can build one when they release the hardware as well.

Final Question: What projects have you looked forward to working on?