What’s Your Favorite Kind Of Hack?

Talking with [Tom Nardi] on the podcast this week, he mentioned his favorite kind of hack: the community-developed open-source firmware that can be flashed into a commercial product that has crappy firmware, thus saving it. The example, just for the record, is the CrossPoint open e-book reader firmware that turns a mediocre cheap e-book into something that you can do anything you want with. Very nice!

And that got me thinking about “kinds of hacks” in general. Do we have a classification scheme for the hacks that we see here on Hackaday? For instance, the obvious precursor to many of Tom’s favorite hacks is the breaking-into-the-locked-firmware hack, where a device that didn’t want you loading your own firmware on it is convinced to let you do so. Junk-hacking is probably also a category of its own, where instead of finding your prey on AliExpress, you find it on eBay, or in the alleyway. And the save-it-from-the-landfill repair and renovation hacks are close relatives.

The doing-too-much-with-too-little hacks are maybe my personal favorite. I just love to see when someone manages to get DOOM running in Linux on a computer made with only 8-pin microcontrollers. Because of the nature of the game, these often also include a handful of abusing-a-component-to-do-something-it’s-not-meant-to-do hacks. Heck, we even had a challenge for just exactly those kind of hacks.

Then there are fine-art-hacks, where the aesthetic outcome is as important as the technical, or games-hacks where fun is the end result.

What other broad categories of hacks are we missing? And which are your favorite?

Re-Learning How To Run

As I write this, four astronauts are on their way around the moon for the first time in 50 years. A lot us have asked ourselves just exactly why you’d send people out that far when the environment is so hostile and we have increasingly competent robots that could do the jobs in their place. If anything, that’s even more true now than it was back in the day of the Apollo program, when the remote operations capability was a lot more constrained. But having people, potentially in the near future, on the lunar surface remains qualitatively different.

I was recently re-watching some of the footage from Apollo 16 when the astronauts were driving around in the Lunar Roving Vehicle, and the discussions that they’re having about the lunar geology that they can see for the first time with their own eyes is very convincing. Having people in situ tightens the loop of “hey, that’s interesting”, “let’s take a closer look”, and “I wonder what that means” in a way that minutes or hours of transmission time, and sterile observation of photos on a computer monitor just break. In comparison, our Mars rovers move excruciatingly slowly, the data comes back through a very thin pipe, and it takes months or years to analyze.

Of course, there is danger to human life; it’s a lot more expensive to get people safely to, and importantly back from, the moon than it would be with a disposable robot. Comparison with the Mars rovers is also unfair because travel to Mars is another scale entirely. Even if it does make sense to send humans for exploration on the moon, it may not make sense to do the same on the red planet, in the near future or ever. Given all that, I’m stoked that we can see through the robots eyes, but if all else were equal, I’m sure that we’d learn more from human explorers.

While in a lot of ways the Artemis I and now the Artemis II missions are underwhelming in comparison to the many “firsts” of Apollo, I absolutely appreciate them for what they are: a shakedown trial of a set of technologies and practices that we used to grasp, but which have atrophied over the last five decades. If a new generation of scientists is to put feet onto regolith, we need to learn to walk before they can run, or rover. In that spirit, I’ll be crossing my fingers for the future of manned spaceflight over the next week and a half.

Choice, Control, And Interruption

We were talking about [Maya Posch]’s rant on smartphones, “The Curse of the Everything Device”. Maya’s main point is that because the smartphone, or computer, can do everything, it’s hard for a person to focus down and do one thing without getting distracted, checking their whatever feed, or getting an important push notification about the Oscars. She was suggesting tying your hands to the mast by using a device that can only accommodate the one function, like a dedicated writing tool or word processor.

[Kristina Panos] compared the all-singing, all-dancing black rectangle to an everything-device of old: the all-in-one stereo receiver with built-in tape player, record player, and not just FM, but also AM radio receiver. The point being, the hi-fi device also does a whole lot of things but isn’t similarly cursed. The tape player never interrupts your listening to the AM radio station. When the record is over, it doesn’t swap over to FM. Your agency is required.

Similarly, it’s probably not intrinsically problematic that the smartphone has a camera, a web browser, text messages, and heck even a telephone built in. It’s how they interact with each other and the user, each vying for user attention, and interrupting with popups and alarms. It’s maybe a simple matter of software! (Says the hardware guy.)

Where would a distraction-free, but fully featured, phone begin? With the operating system? It would be perverse to limit you to one app at a time, or to make switching between them more cumbersome. How about turning off notifications, and relying on changing context only when you think about it? Maybe that’s a middle ground. How do you cope with the endless distractions offered to you by your smartphone? By your main computer?

For The Fun Of It

I was off at the Chaos Communication Congress last weekend, and one of the big attractions for one who is nerdily inclined is seeing all of the personal projects that everyone brings along with them. Inevitably, someone would ask me what my favorite is. Maybe it’s my decision paralysis, maybe it’s being forced to pick a favorite child on the spot, or maybe it’s just that I’m not walking around ranking them, but that question always left me drawing a blank.

But after a week of thinking about it, I’m pretty sure I know why: I don’t actually care what I think of other peoples’ projects! I’m simply stoked to talk to everyone who brought anything, and bathe in the success and failure, hearing about the challenges that they saw coming, and then the new challenges they met along the way. I want to know what the hacker thinks of their project, what their intention was, and how their story went. I’m just a spectator, so I collected stories.

The overwhelming, entirely non-surprising result of listening to a couple hundred hackers talk about their projects? They’re all doing it for the fun of it. Simply for the grins. And that held equally well for the supremely planned-out and technical projects as well as their simpler I-bought-these-surplus-on-eBay-one-night relatives. “We were sitting around and thought, wouldn’t it be fun…” was the start of nearly every story.

That’s what I absolutely love about our community: that people are hacking because it makes them happy, and that the amazing variety of projects suggests an endless possibility for hacker happiness. It’s hard to come away from an event like that without being energized. Some of that comes from the sharing of ideas and brainstorming and hanging out with like-minded folks, but what I find most important is simply the celebration of the joy of the project for its own sake.

Happy hacking!

User Serviceable Parts

Al and I were talking on the podcast about the Home Assistant home automation hub software. In particular, about how devilishly well designed it is for extensibility. It’s designed to be added on to, and that makes all of the difference.
That doesn’t mean that it’s trivial to add your own wacky control or sensor elements to the system, but that it’s relatively straightforward, and that it accommodates you. If your use case isn’t already covered, there is probably good documentation available to help guide you in the right direction, and that’s all a hacker really needs. As evidence for why you might care, take the RTL-HAOS project that we covered this week, which adds nearly arbitrary software-defined radio functionality to your setup.

And contrast this with many commercial systems that are hard to hack on because they are instead focused on making sure that the least-common-denominator user is able to get stuff working without even reading a single page of documentation. They are so focused on making everything that’s in-scope easy that they spend no thought on expansion, or worse they actively prevent it.

Of course, it’s not trivial to make a system that’s both extremely flexible and relatively easy to use. We all know examples where the configuration of even the most basic cases is a nightmare simply because the designer wanted to accommodate everything. Somehow, Home Assistant has managed to walk the fine line in the middle, where it’s easy enough to use that you don’t have to be a wizard, but that you can make it do what you want if you are, and hence it got spontaneous hat-tips from both Al and myself. Food for thought if you’re working on a complex system that’s aimed at the DIY / hacker crowd.

Keep Reading, Keep Watching

I’ve been flying quadcopters a fair bit lately, and trying to learn some new tricks also means crashing them, which inevitably means repairing them. Last weekend, I was working on some wiring that had gotten caught and ripped a pad off of the controller PCB. It wasn’t so bad, because there was a large SMT capacitor nearby, and I could just piggyback on that, but the problem was how to re-route the wires to avoid this happening again.

By luck, I had just watched a video where someone else was building up a new quad, and had elegantly solved the exact same routing problem. I was just watching the video because I was curious about the frame in question, and I had absolutely no idea that it would contain the solution to a problem that I was just about to encounter, but because I was paying attention, it make it all a walk in the park.

I can’t count the number of times that I’ve had this experience: the blind luck of having just read or seen something that solves a problem I’m about to encounter. It’s a great feeling, and it’s one of the reasons that I’ve always read Hackaday – you never know when one hacker’s neat trick is going to be just the one you need next week. Indeed, that’s one of the reasons that we try to feature not just the gonzo hacks that drill down deep on a particular feat, but also the little ones too, that solve something in particular in a neat way. Because reading up on the hacks is free, and particularly cheap insurance against tomorrow’s unexpected dilemmas.

Read more Hackaday!

From Good Enough To Best

It was probably Montesquieu who coined the proto-hacker motto “the best is the mortal enemy of the good”. He was talking about compromises in drafting national constitutions for nascent democracies, of course, but I’ll admit that I do hear his voice when I’m in get-it-done mode and start cutting corners on a project. A working project is better than a gold-plated one.

But what should I do, Monte, when good enough turns out to also be the mortal enemy of the best? I have a DIY coffee roaster that is limping along for years now on a blower box that uses a fan scavenged in anger from an old Dust Buster. Many months ago, I bought a speed-controllable and much snazzier brushless blower fan to replace it, that would solve a number of minor inconveniences with the current design, but which would also require some building and another dive into the crufty old firmware.

So far, I’ve had good enough luck that the roaster will break down from time to time, and I’ll use that as an excuse to fix that part of the system, and maybe even upgrade another as long as I have it apart. But for now, it’s running just fine. I mean, I have to turn the fan on manually, and the new one could be automatic. I have only one speed for the fan, and the new one would be variable. But the roaster roasts, and a constant source of coffee is mission critical in this house. The spice must flow!

Reflecting on this situation, it seems to me that the smart thing to do is work on smoothing the transitions from good enough to best. Like maybe I could prototype up the new fan box without taking the current one apart. Mock up some new driver code on the side while I’m at it?

Maybe Montesquieu was wrong, and the good and the best aren’t opposites after all. Maybe the good enough is just the first step on the path toward the best, and a wise man spends his energy on making the two meet in the middle, or making the transition from one to the other as painless as possible.