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 Discord Bot Part 3 (of 4 for sure)

Good Morning from my Robotics Lab! This is Shadow 8472, and today, I am excited because I recently got a working prototype on my “preemptive” ban bot. Let’s get started!

First of all, I won’t claim to understand most of the stuff I’m working with, just that it isn’t as closely related to security as my last side project. If someone working all day every day could have done this project as easily as walking through a room, I would be crawling through a hole just barely my size. I’ve had a lot of help drilling that tunnel, and now widening it looks like it will be a whole lot faster.

A lot of what I did was trying to understand how Discord thinks, not quite fully getting it, getting help, and only understanding it until I needed another reminder. The long story is that I couldn’t repeat most of the details from memory. Guess what I’m basically doing right now.

I’ve been using PyCharm on my laptop as my IDE. On one of my previous trips to the workshop, Headcrash showed me how to use the debugger, but the neuances didn’t really stick. Before I went in this week, Damaged, the person who’s been helping me over Discord, helped me get through multiple hurdles, some of which should be obvious, others not so much. I was working up until right before sundown Friday, when I stopped for Sabbath.

The next night, I spent not two minutes before bed so I’d actually work on it in the morning, and got the early prototype working: I had someone on my a ban list who had never even been invited. Of course, I made a backup.

The next phase involved disarming the ban function’s “warhead” with a long comment and having it pull the target’s ID from the audit log. The function to loop over the audit log is even pretty user friendly at first glance. It was at this time I reached for a tool I wasn’t familiar with: the debugger.

A debugger is no doubt a valuable tool to know once you know how to use it. I came to a point where I had been introduced to it, but when I tried to use it, I tripped up on a small detail and took it in to the workshop. No sooner had I recreated my error and started explaining my problem than I poked around a little and figured out the answer on my own; the debugger has its own tab. I still learned a lot about how exactly this debugger works and how its interface is different than the ones I played with in the past.

At present, I have an untested/unproven candidate for my final bot before setting it loose on the real server. Right now, it can be told a bad mod’s ID and target logged unban events made by that account. When I’m done, I plan on having it tell me the names and numbers of all the people who were maliciously kicked.

Final Question: The filter for the audit log was not as user friendly as I had hopped., but not as bad as I feared (with the power of the debugger to view all active variable names and values at key points in the program). Have you ever come across a problem where the solution was on the path to that problem?

Programming a Discord Bot Part 2 (of 3? hopefully)

Good Morning from my Robotics Lab! This is Shadow_8472, and today I can taste victory on this mini-project, but as you can tell from the title, it shall be denied for this week. Let’s get started!

Last week, I talked about getting the PiCharm IDE running, and how it’s only as useful as the person maintaining it; as long as someone in the room knows what’s going on, things can get repaired when they break.

This week was another one where I went around building up my knowledge without feeling like I made any tangible headway. I keep telling people, “If I knew exactly what I was doing, I’d be done in two minutes,” and I still stand by that statement. Most of programming is figuring out how you want things to work overall, how your component parts were designed to work, and how the incomplete product actually works, then reconciling all three.

I spent most of my time studying how the async/await model of computing works. Before this week’s project chapter, I knew about multithreading and hyperthreading. All three are models for working on more than one thing at once in a CPU, and each has advantages and challenges. Imagine a computer thread as a guy at a workstation. Multithreading would be adding another guy at another workstation. Hyperthreading would be convincing two guys to share parts of the workstation they both aren’t using at the same time. “Coroutines” would be the first guy stepping aside from the workstation while he waits for more work to do and lets the next guy have a turn.

Other than that, I explored Redbot, some sort of bot to program for Discord. I ended up giving up on it for this project because it was a little expensive on the learning curve for me right now, and I’m not entirely sure it will suit my needs for now.

In the meantime, I’ve made the slightest of “outreach progress,” (yes, I just made that up to talk about when you aren’t ready for something, but try it anyway). I don’t know what’s going on, but hopefully I will know soon.

On the whole, a lot of my projects remind me of a few stories from doing trail work in Pathfinders, a youth club run by my church. One of our annual events involves working on trails at a local State park. While flattening the trail, everyone runs into rocks. Usually, they can just be relocated to somewhere nearby for drainage purposes, but every year, it seems, someone finds a rock in the way that just keeps going until it takes four or five teens to properly move it around once loose. Most of my projects feel like one of these boulders.

On the sad end of the spectrum, I was irresponsible with Blinky’s case. I ended up crushing it. Hopefully, I will get around to seeing to its repair.

Final Question: Windows recently updated. Among a bunch of stuff I didn’t bother reading, I spotted a Dark Mode feature I’m taking advantage of. Do you prefer to keep using the standard, bright theme, or will you be switching over to the dark theme?

Infrastructure Update

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I am going over a few changes to my immediate setup. Let’s get Started!

I’m afraid I have some sad news to start with. I’ve been shuttling BlinkiePie around in my backpack, and it’s finally caught up with me. Some time, some how, I wasn’t careful enough, and the case broke. Some time in the near future, it will likely be getting a dose of super glue, but I’m afraid the base will need to be reprinted. If it does, I will be modifying the case so the screw holes actually line up. If I’m feeling especially adventurous, I may even make it accept multiple models of Pi’s.

I otherwise had a few adventures this week. Neighbors were having work done on their house, and I needed to go out and about. I took Blinkie with me, and tethered it to my phone, as well as my laptop. PuTTY wasn’t fully happy. I spent a long time chasing down the supposedly different server key fingerprint, but I didn’t actually find for 100% sure. Since this is a security issue, I’m not going to share my best guess I’m about 90% sure on.

On Friday, I was expecting to spend a couple hours working on my project while my mother was working at the church, but my laptop politely asked to update like I told it to. I didn’t pay close enough attention, and I found myself stuck there for four hours so I could press F1 about three times during the massive update. I’m thankful I stayed, otherwise I was within a minute of having to leave it over Sabbath, and there are always a lot of people in the church office on Saturday morning.

I won’t say I like the update, but I won’t say it isn’t all bad. On the plus side, Windows now has a system-wide dark mode, a feature I personally find appealing. On the minus side, my laptop’s fairly old, and each new line of code it must run to keep up is that many operations not servicing the programs I want to run.

Speaking of programs to run, I went into the workshop and set up for working on Blinkie over SSH and the command line, but I was advised to install an IDE (Integrated Development Environment). I was even there an hour, and Headcrash, the guy running the place, replicated my present progress while we were talking. He talked me into installing PyCharm.

I came up with the comparison that the difference between IDE’s and command line work is the difference between a graphing calculator and a pencil. The pencil is simple, easy to pick up, and important to understand how to operate before using an IDE. IDE’s on the other hand, take care of a lot of things for you. It blasts you with so much information you don’t know what to look at at first. And the scariest part is setting the thing up. There’s a lot of help out there for my “pencil,” but there’s a lot more to break with an IDE. It felt like I was slipping into a commercial airliner cockpit with only a driver’s license. I’m just glad I had someone there to figure out what was happening when something misaligned.

This week felt like a lot of learning curve walls.

Final Questions: Have you ever used a graphing calculator (outside school)? Do you have any other suggestions for comparison?