Hardware Vs Software: Fight!

It’s one of the great cliches in the hacker world: the hardware type and the software type. You can tell which of these two you are quite easily. When a project is actually 20% done, but you think it’s 90% done, and you say to yourself “And the rest is a simple matter of software”, you’re a hardware type. Ask anyone who has read my code, and they’ll tell you, I’m a hardware type.

Along with my blindness to the difficulties of getting the code right, I’ve also admittedly got an underappreciation of what powers lie in the dark typing arts. But I am not too proud to tip my hat when I see an awesome application of the soft stuff. Case in point: this Go board sequencer that we ran last week. An overhead webcam parses players’ moves as they put black and white stones down while playing the game of Go, and turns this into music.

The pure software type will be saying “but there’s a webcam and a Go board”. And indeed, that’s true. There are physical elements to this project that anchor it in the shared reality of the two people playing. But a hardware project this isn’t; it’s OpenCV and Max/MSP that make it work.

For comparison, look at the complexity of this similar physical sequencer. It’s got a 16 x 16 array of LEDs and switches and a CNC milled, primed, and painted surface that’s the size of a twin bed. Sawdust and hand-soldering: that’s a hardware project.

What I love about the Go sequencer is that it uses software just right. The piece is still physical. It could have just as easily been a VR world, where the two people would interact with each other only inside their goggles. But somehow that’s not quite as human as putting stones on a wooden board, sitting across from, and maybe even looking at, your opponent. The players aren’t forced to think about the software. They don’t feel like they’re playing a video game.

But at the same time, the software side of things makes all of the horrible hardware problems go away. Nobody is soldering a rat’s nest of 169 switches. There’s a webcam plugged into the USB port of a laptop. There’s a deep simplicity there.

Should you always trade out arcade buttons for OpenCV? Absolutely not! But is it worth considering the soft side when doing it in hardware is just too, well, hard? I’m open.

Hackaday Podcast 088: Flywheel Trebuchet, Thieving Magpies, Hero Engines, And Hypermiling

Hackaday editors Elliot Williams and Mike Szczys riff on the hardware hacks that took the Internet by storm this week. Machining siege weapons out of aluminum? If they can throw a tennis ball at 180 mph, yes please! Welding aficionados will love to see the Hero Engine come together. We dive into the high-efficiency game of hypermiling, and spin up the polarizing topic of the Sun Cycle. The episode wouldn’t be complete without hearing what the game of Go sounds like as a loop sequencer, and how a variable speed cassette player can be abused for the benefit of MIDI lovers the world over.

Take a look at the links below if you want to follow along, and as always, tell us what you think about this episode in the comments!

Take a look at the links below if you want to follow along, and as always, tell us what you think about this episode in the comments!

Direct download (60 MB or so.)

Continue reading “Hackaday Podcast 088: Flywheel Trebuchet, Thieving Magpies, Hero Engines, And Hypermiling”

This Week In Security: Code Scanning, Information Gathering, And Seams In The Cloud

GitHub has enabled free code analysis on public repositories. This is the fruit of the purchase of Semmle, almost exactly one year ago. Anyone with write permissions to a repository can go into the settings, and enable scanning. Beyond the obvious use case of finding vulnerabilities, an exciting option is to automatically analyse pull requests and flag potential security problems automatically. I definitely look forward to seeing this tool in action.

The Code Scanning option is under the Security tab, and the process to enable it only takes a few seconds. I flipped the switch on one of my repos, and it found a handful of issues that are worth looking in to. An important note, anyone can run the tool on a forked repo and see the results. If CodeQL finds an issue, it’s essentially publicly available for anyone who cares to look for it.

Simpler Code Scanning

On the extreme other hand, [Will Butler] wrote a guide to searching for exploits using grep. A simple example, if raw shows up in code, it often signals an unsafe operation. The terms fixme or todo, often in comments, can signal a known security problem that has yet to be fixed. Another example is unsafe, which is an actual keyword in some languages, like Rust. If a Rust project is going to have vulnerabilities, they will likely be in an unsafe block. There are some other language-dependent pointers, and other good tips, so check it out.

Continue reading “This Week In Security: Code Scanning, Information Gathering, And Seams In The Cloud”

Linux Fu: The Linux Android Convergence

The Android phone that you carry in your pocket is basically a small computer running Linux. So why is it so hard to get to a usable Linux environment on your phone? If you could run Linux, you could turn your cell phone into an ultra-portable laptop replacement.

Of course, the obvious approach is just to root the phone and clean-slate install a Linux distribution on it. That’s pretty extreme and, honestly, you would probably lose a lot of phone function unless you go with a Linux-specific phone like the PinePhone. However, using an installer called AnLinux, along with a terminal program and a VNC client, you can get a workable setup without nuking your phone’s OS, or even having root access. Let’s see what we can do. Continue reading “Linux Fu: The Linux Android Convergence”

Gesture Controller For Roku And Universal Keyboard Built By UCPLA Dream Team

The coolest part of this year’s Hackaday Prize is teaming up with four nonprofit groups that outlined real-world challenges to tackle as part of the prize. To go along with this, the Dream Team challenge set out a two-month design and build program with small teams whose members each received a $6,000 stipend to work full time on a specific build.

The work of the Dream Team project is in, and today we’re taking a look at United Cerebral Palsy of Los Angeles (UCPLA) project which not only designed and built a universal remote for those affected with this condition, but also went to great lengths to make sure that “universal” was built into the software and user experience just as much as it was built into the hardware itself. Join us after the break for a closer look a the project, and to see the team’s presentation video.

Continue reading “Gesture Controller For Roku And Universal Keyboard Built By UCPLA Dream Team”

Art of 3D printer in the middle of printing a Hackaday Jolly Wrencher logo

3D Printering: Wash Parts Better And Make Solvent Last Longer

SLA printing in resin is great, but part washing can be a hassle. The best results come from a two-stage wash, but that also means more material and more processing steps. Fortunately, there are ways to make it easier and more effective. One such way is to use a part washing machine, and I’ll cover a DIY option to make your own, but despite what the advertising implies for the commercial ones, a wash machine isn’t a cure-all.

Let’s go through how to get the best results from part washing, how to make the solvent last as long as possible, and how to dispose of the eventual waste.

Resin-Printed Parts Need Washing

All parts printed in resin emerge from the printer coated in syrupy, uncured goop. This needs to be removed completely, or the print ends up sticky and no amount of drying or additional UV curing will change that. (There is a way to fix sticky prints, but it’s better to avoid the situation in the first place.)

Simple part washing can be done with nothing more than a jar in which to rinse and soak a small part for about ten minutes, but agitation and a secondary wash will go a long way toward better and more consistent results. As mentioned, part washing machines like to present themselves as a one-appliance solution, but best results still come from a two-stage wash, and that means some additional steps.

Continue reading “3D Printering: Wash Parts Better And Make Solvent Last Longer”

DIY Lasers Hack Chat

Join us on Wednesday, October 7th at noon Pacific for the DIY Lasers Hack Chat with Les Wright!

It’s not too much of a reach to say that how we first experienced the magic of lasers sort of dates where we fall on the technology spectrum. For the youngest among us, lasers might have been something trivial, to be purchased for a couple of bucks at the convenience store. Move back a few decades and you might have had to harvest a laser from a CD player to do some experiments, or back further, perhaps you first saw a laser in high school physics class, with that warm, red-orange glow of a helium-neon tube.

But back things up only a few decades before that, and if you wanted to play with lasers, you had to build one yourself. It was a popular if niche hobby with a dedicated following of amateur physicists who scrounged around for the unlikely parts needed: ruby rods, quartz-glass tubes, and exotic dyes. Couple them together with high-voltage power supplies, vacuum pumps made from converted refrigerator compressors, and homemade optical benches, and if the stars aligned, these parts could be coaxed into producing a gloriously intense burst of light, which as often as not hooked its creator as a lifelong laser addict.

We’re not sure which camp Les Wright falls into, but from the content of his growing YouTube channel, we’d say he’s caught the laser bug. We recently took a look at his high-performance nitrogen laser, which he’s been having fun with as the basis for a tunable dye laser. Along the way he’s been necessarily mucking around with high-voltage power supplies, oscilloscopes, and the occasional robot or two.

Les will stop by the Hack Chat to talk about everything going on in his lab, with a focus on his laser experiments. Join us with your questions on DIY lasers, and stop by to pick up some tricks that might help you catch the laser bug too.

join-hack-chatOur Hack Chats are live community events in the Hackaday.io Hack Chat group messaging. This week we’ll be sitting down on Wednesday, October 4 at 12:00 PM Pacific time. If time zones baffle you as much as us, we have a handy time zone converter.

Click that speech bubble to the right, and you’ll be taken directly to the Hack Chat group on Hackaday.io. You don’t have to wait until Wednesday; join whenever you want and you can see what the community is talking about.

Continue reading “DIY Lasers Hack Chat”