Where | Bay Area, CA |
Where | Bay Area, CA |
Wow... email from Bass Pro Shops (of all places) (!!)
Glad they are speaking out.
Hello, Fediverse. I'm looking for embedded experts to help save #LEGO MINDSTORMS!
Background: https://pybricks.com/project/saving-lego-mindstorms/
I've made major progress, but I'd love to get some help! If writing an SPI flash driver or USB device implementation is your thing, I would love to hear from you 😀
I'll gladly donate an EV3 set for this. We can do this as a paid project too if that's a better fit. Let's discuss!
#foss #retrocomputing #ewaste #getfedihired #FediHire #fedijobs
BREAKING NEWS
Orcas seen grooming each other with kelp, in a first for marine tool use
https://www.theguardian.com/environment/2025/jun/23/killer-whales-kelp-grooming-tool-use
The opening of Jerry Maguire got me thinking about Thanos' plan in Infinity War.
Thanos wants to kill half of all sentient life in the universe. Right now, Earth is at a bit over eight billion people. The population was four billion in 1974. That means that his plan would set the world back by a half-century or so. Doesn't seem like much on a cosmic scale.
Here is some code I am going to merge soon into a widely used open source project, relied on by many very large corporations:
```
def noop():
pass
import threading
threading._after_fork.__code__ = noop.__code__
```
Some interesting things about this:
1. Just in case you don't understand what this is doing (this is a good thing, you're better off not knowing): this is a terrible terrible crime against abstraction. I am changing the code of a function so the function does nothing when called.
2. I doubt any LLM coding tool would generate this code without a human doing all of the heavy lifting to figure out why _this_ is the fix, however hideous. That's good! You really don't _want_ code like that.
3. Except that sometimes you _need_ code like this. Due to technical decisions made 20 years ago (monkeypatching the Python stdlib to implement green threads), compounded by many bad decisions made hither and yon for decades (fork() without execve() is the worst - https://pythonspeed.com/articles/python-multiprocessing/), this is the most straightforward way to proceed.
4. Which is to say, part of being an good engineer is knowing when the rules need to be broken. In this case, it's what I've dubbed "transgressive programming", a thing you really don't want to do... except when you have to. https://pythonspeed.com/articles/transgressive-programming/
This is, thankfully, a stop gap as we work towards sunsetting the project; we already have an off-ramp, but there's still a large userbase that depends on it. So for now bugs need to be fixed, one way or another.
And if your organization needs some help with open source maintenance, I might have a little free time in my consulting schedule. In addition to helping migration off projects, I've also revived a project, which is now happily puttering along without my help, and more broadly done decades of maintenance.