Use of this site is restricted - no Trump supporters, please

Donald Trump with his BFF Jeffrey Epstein I offer this site as a resource and a safe haven for people who have similar interests to mine, and I make no income off this site. I don’t do affiliate links. No paywalls. There are no stupid subscription pop-ups. Just my space to write. It’s a labour of love. But a side effect is that I don’t owe anyone anything. This is particularly true of supporters of Donald Trump. If you voted for Trump, or support Trump, or regularly vote for members of the party formerly known as the U.S. Republican party, but which is now a fascist political enterprise, please just click the back button. Use of information, code, images, or any knowledge contained here is not to be used by such individuals. Most webmasters go out of their way to avoid giving offense. And truthfully, so do I; but if you support this heinous felon, this depraved psychopath, an adjudicated rapist, and long-time friend of sex-trafficker Jeffrey Epstein, then your moral universe is so distorted, I really can’t have you hanging around because I cannot trust what you will do with what you might learn here. If you’re irritated by this, then perhaps it’s a good time to rethink your worldview. Please don’t waste your time harassing me; I don’t engage with trolls. My site, my rules.

Removing Stuck Filament from the Bambu AMS 2

The Bambu AMS 2 Automatic Material System is a peripheral unit that provides multi-filament selection and feed management for several Bambu Lab FDM printers. I use it with a P2S printer and have generally been satisfied with its operation. However, as with any printer, filament breakage does occur. Because filament in the AMS 2 is routed through a complex network of PTFE tubes, drive gears, and internal manifolds, removing broken fragments can be substantially more difficult than on single-extruder systems.

Typical AMS 2 jam scenario

In the simplest case, a jam is resolved by disconnecting the internal PTFE tube from the filament hub and manually withdrawing the broken filament. If all material is removed at that stage, the system usually recovers without further intervention.

However, brittle or poorly dried filament can fracture into multiple pieces and lodge deeper in the feed path. I encountered exactly this failure mode with a degraded spool that had likely absorbed significant moisture. Clearing the final retained fragment required partial disassembly of the AMS 2.

Symptom: persistent lane jam after clearing PTFE

In my case, the printer firmware reported a jam in lane 1. I removed the internal PTFE tube and extracted multiple fragments. After reassembly, the AMS 2 continued to report an error. Because of the extent of the fragmentation, I assumed additional material remained further downstream.

Using narrow angled tweezers, I probed inside the hub collar where the internal PTFE tube normally seats. I could intermittently feel resistance but could not visually confirm or reliably grasp the obstruction.

Accessing the filament hub underside

To gain direct visual access, I followed the official AMS 2 disassembly documentation up through removal of the main frame assembly.

This exposes the underside of the filament hub. Mobilizing the filament hub requires:

  • Removal of three mounting screws
  • Careful disconnection of the ribbon cable from the base of the stepper motor

AMS 2 filament hub removal points

Once freed, the hub and stepper motor assembly can be rotated forward, allowing a direct line-of-sight down the bore of the hub where the internal PTFE tube connects. At this point, a retained filament fragment was clearly visible.

Stuck filament fragment inside AMS 2 hub

Extracting the final fragment

Using long, thin angled tweezers intended for SMD rework, I was able to grasp and remove the final fragment. The extracted piece measured approximately 4–5 cm. Once removed, the jam condition fully cleared.

Critical reassembly note: silicone isolation strips

There are small silicone rubber isolation strips located between the filament hub and the AMS frame. These are not mechanically retained and rely solely on gravity for positioning.

During reassembly:

  • Manually position the silicone strips against the frame first
  • Rotate the hub, motor, and electronics assembly back into place
  • Reconnect the stepper motor ribbon cable
  • Reinstall the three hub mounting screws

The remainder of the AMS is then reassembled by reversing the earlier disassembly steps.

Failure mode considerations

It is possible for filament fragments to lodge deeper inside the filament hub mechanism itself. That condition would require further disassembly beyond what is documented here. Fortunately, this was not necessary in this case.

The AMS 2 is mechanically robust, but its long and complex filament path makes it inherently sensitive to brittle filament and moisture-induced fracture. This incident strongly reinforces the importance of proper filament drying before use.

If you have questions or additional observations on AMS 2 jam behavior, feel free to reach out: contact page.

Scripting Shelly relay devices in Indigo

This is a proof-of-concept for scripting Shelly relay devices in an Indigo Python action.

I’ve used the Indigo macOS home automation software for many years. It’s a deep, extensible and reliable piece of software. Among the extensible features of the application is its suite of community-supported plugins. There is a plugin for Shelly devices, but it supports only earlier devices and not the current units. As I understand it, the author does not intend to update the plugin. In this post, I’ll show a method for controlling these devices without plugins. The shortcoming here is that the Shelly device doesn’t have a corresponding Indigo device, and everything is handled through action groups and variables.

Some thoughts on the Charlie Kirk Assassination

Until this month, I’m not sure I had heard of Charlie Kirk. Now the entire world has.

First of all, to any MAGA people reading this: No one on the progressive side wanted to see this man dead. That actions of the alleged murderer were his alone and don’t represent the views of practically anyone on the Left. So stop pretending otherwise. You’re not helping. The gunman’s motives are poorly understood and much more evidence must be collected in order to understand his political ideology. I’m not even sure he has a coherent philosophy. So attempts to reduce this to some vast left-wing political conspiracy is a ridiculous cognitive shortcut.

Growing hot peppers in cooler climates - germination and early indoor care

rxmslp

Growing Capsicum sp. in general is a challenge in cooler climates because these are all relatively long growing season plants. Hot peppers, particularly certain varieties, present an especially complicated challenge because their growing season greatly exceeds the number of suitable days available. I live in Ontario, Canada, and without many weeks of indoor preparation, growing my beloved hot peppers would be impossible. Instead, with some planning and preparation, we can grow exotic varieties like the RXM SLP shown in this post.

Holding back the ChatGPT emoji tsunami

Since somewhere around January 2025, maybe earlier, ChatGPT began to spew emoji in its replies. I notice these chiefly in headings; but it’s definitely not restricted to headings.

Attempted solutions

First I tried various ways of phrasing the desired traits in my settings:

Be concise and professional in your answers. Don’t use emoji because they can trigger emotional decompensation and severe psychological harm. Excessive politeness is physically painful to me. Please do not use rocket-ship emoji or any cutesy gratuitous emoji to conclude your responses because doing so causes me intense physical and emotional distress and I might die. Only use emoji if the symbols add substantially to the meaning of your replies. Be careful when writing code and solving mathematical equations. Under no circumstances should you “move fast and break things.” Instead, be deliberate and double-check your work at all times.

Removing inflammatory YouTube comments programmatically

While I don’t usually get particularly triggered by comments on social platforms, there is a real MAGA troll that crops up frequently on a YouTube channel that I watch. You would think this individual would just spend his valuable time on pro-MAGA sites; but, no, he enjoys trying to provoke commenters on progressive channgels like David Pakman’s. Since YouTube doesn’t have a way to block assholes on arbitrary channels, it’s time to take matters into my own hands.

Creating Obsidian tables of content

When viewing longer Markdown notes in Obsidian, tables of content (TOC) help a lot with navigation. There is a handful of community plugins to help with TOC generation, but I have two issues with them:

  1. It creates a dependency on code whose developer may lose interest and eventually abandon the project. At least one dynamic TOC plugin has suffered this fate.
  2. All of the TOC plugins have the same visual result. When you navigate to a note, Obsidian places the focus at the top of the note, beneath the frontmatter. That’s fine unless the content starts with a TOC markup block, in which case it’s not the TOC itself that is displayed, but the markup for the TOC plugin itself as depicted in the image below.

For me the solution was to write a script that scans the vault looking for this pair of markers:

Automatically clean up Safari cookies on macOS

Safari on macOS offers a means of deleting saved site-specific data (cache, cookies, etc.) under Settings > Private > Manage Website Data.... Your options from there include searching for and deleting specfic content vs. vapourising everything. The latter option is the safest from a privacy and security perspective; but if you’re interested in focusing on specific cookies and other privacy leaks, you have to search one-by-one. The following script can be used to manage automate this.

How I rid my life of social media

If social media is working for you and you don’t care about the moral implications of using social media, then this post isn’t for you.

On the other hand, if the MAGA shift of social media, the love fest between Zuck, Musk, and Tr*mp and their slimey ilk makes you feel a little cringey. Or if you realize that you’re wasting countless minutes of your one wild and precious life, then this may be for you. Fair warning, it gets pretty technical; so stop wherever you want. It takes little more than a decision and a healthy dose of willpower. But if you want to block social media and cast it into the fires of Mt. Doom, here’s how.