Git Good, By Playing A Gamified Version Of Git

What better way to learn to use Git than a gamified interface that visualizes every change? That’s the idea behind Oh My Git! which aims to teach players all about the popular version control system that underpins so many modern software projects.

Git good, with a gameified git interface.

Sometimes the downside to a tool being so ubiquitous is that it tends to be taken for granted that everyone already knows how to use it, and those starting entirely from scratch can be left unsure where to begin. That’s what creators [bleeptrack] and [blinry] had in mind with Oh My Git! which is freely available for Linux, Windows, and macOS.

The idea is to use a fun playing-card interface to not only teach players the different features, but also to build intuitive familiarity for operations like merging and rebasing by visualizing in real-time the changes a player’s actions make.

The game is made with beginners in mind, with the first two (short) levels establishing that managing multiple versions of a file can quickly become unwieldy without help. Enter git — which the game explains is essentially a time machine — and it’s off to the races.

It might be aimed at beginners, but more advanced users can learn a helpful trick or two. The game isn’t some weird pseudo-git simulator, either. The back end uses real git repositories, with a real shell and git interface behind it all. Prefer to type commands in directly instead of using the playing card interface? Go right ahead!

Oh My Git! uses the free and open-source Godot game engine (not to be confused with the Godot machine, a chaos-based random number generator.)

A finger points at a stack of yellow plastic plates sandwiched together like on a bookshelf. A grey metal rectangle holds the top together and black plastic sticks off to the left. The top of the pack has copper and nickel (or some other silver-colored metal) tabs pointing up out of the assembly.

Tearing Into A Sparky Sandwich

We’re still in the early days of modern EV infrastructure, so minor issues can lead to a full high voltage pack replacement given the lack of high voltage-trained mechanics. [Ed’s Garage] was able to source a Spark EV battery pack that had succumbed to a single bad cell and takes us along for the disassembly of the faulty module.

The Spark EV was the predecessor to the more well-known Chevy Bolt, so its nearly ten year old systems might not reflect the state-of-the-art in EV batteries, but they are certainly more modern than the battery in your great-grandmother’s Baker Electric. The Li-ion polymer pouch cells are sandwiched together with cooling and shock absorbing panels to keep the cells healthy and happy, at least in theory.

In a previous video, [Ed’s Garage] takes apart the full pack and shows how the last 2P16S module has assumed a darker color on its yellow plastic, seeming to indicate that it wasn’t receiving sufficient cooling during its life in the car. It would seem that the cooling plates inside the module weren’t quite up to the task. These cells are destined for other projects, but it doesn’t seem like this particular type of battery module would be too difficult to reassemble and put back in a car as long as you could get the right torque settings for the compression bolts.

If you’re looking for other EV teardowns, might we suggest this Tesla Model S pack or one from a passively-cooled Nissan Leaf?

Continue reading “Tearing Into A Sparky Sandwich”

Linear Feedback Shift Registers For FPGAs

If you want to start an argument at a Hackaday meeting, you have only to ask something like “How much does this weigh?” or “What time is it?” But if you really want to start a street brawl, you can always say, “Are these numbers random?” Making random numbers that are actually random is actually a tough nut to crack. Most of what we do is, technically, pseudo-random (but we’ll say random number and assume you know what we mean). One way to generate seemingly random sequences is to use a linear feedback shift register or LFSR. You can use LFSRs in software, but they are also very useful in hardware design and [Adam Taylor] takes us through his use of them on FPGAs in a recent post. Continue reading “Linear Feedback Shift Registers For FPGAs”

A Single Transistor Solid State Tesla Coil

Tesla coils are one of those builds that capture the interest of almost anybody passing by. For the naïve constructor, they look simple enough, but they can be finicky beasts—beasts that can bite if not treated with respect. [Mirko Pavleski] has some experience with them and shares it with us over on Hackaday.io. One of the first big improvements of this build style is the shift from the originally used spark gap commutator to that of a direct AC drive via a MOSFET oscillator. This improves the primary drive power for its size and eliminates that noisy spark gap. That’s one less source of broadband RF noise and the audible racket these produce.

A hand holding a secondary coil for a Tesla coil build
You can buy ready-wound secondary coils from the usual CN suppliers

The primary side of a Tesla coil is usually a handful of turns of thick wire to handle the current without melting. This build runs at two or three amps, giving a primary power of around 150 Watts. However, this is quite a small unit; with larger ones, the power is much higher, and the resulting discharge sparks much longer. On the secondary side, the air-coupled coil is formed from 520 turns of much thinner wire since it doesn’t need to convey so much current. That’s the thing with transformers with large turns ratios — the secondary voltage will be much higher, and the current will be correspondingly much lower. The idea with Tesla coils is that the secondary circuit forms a resonant circuit with the ‘top load’, usually some hollow metal can. This forms an LC circuit with a corresponding resonant frequency dependent on the secondary inductance values, the object’s capacitance and anything else connected. The primary circuit is designed to resonate at this same frequency to give maximum power coupling across the air gap. Changing either circuit can spoil this balance unless there is a feedback circuit to keep it in check. This could be with a sense coil, a local antenna or something more direct, like in this case.

To ensure the primary circuit doesn’t melt, it needs to be able to drive a reasonable current at this frequency, often in the low MHz range. This leads to a common difficulty: ensuring the switching transistor and rectifying diode are fast enough at the required current level with enough margin. [Mirko] points out several components that can achieve the operating frequency of around 1.7 MHz, which his top load configuration indicates.

For a bit more info on building these fascinating devices, you could check out our earlier coverage, like this useful guide. Of course, simple can be best. How about a design with just three components?

Continue reading “A Single Transistor Solid State Tesla Coil”

This Week In Security: Peering Through The Wall, Apple’s GoFetch, And SHA-256

The Linux command wall is a hold-over from the way Unix machines used to be used. It’s an abbreviation of Write to ALL, and it was first included in AT&T Unix, way back in 1975. wall is a tool that a sysadmin can use to send a message to the terminal session of all logged-in users. So far nothing too exciting from a security perspective. Where things get a bit more interesting is the consideration of ANSI escape codes. Those are the control codes that moves the cursor around on the screen, also inherited from the olden days of terminals.

The modern wall binary is actually part of util-linux, rather than being a continuation of the old Unix codebase. On many systems, wall runs as a setgid, so the behavior of the system binary really matters. It’s accepted that wall shouldn’t be able to send control codes, and when processing a message specified via standard input, those control codes get rejected by the fputs_careful() function. But when a message is passed in on the command line, as an argument, that function call is skipped.

This allows any user that can send wall messages to also send ANSI control codes. Is that really a security problem? There are two scenarios where it could be. The first is that some terminals support writing to the system clipboard via command codes. The other, more creative issue, is that the output from running a binary could be overwritten with arbitrary text. Text like:
Sorry, try again.
[sudo] password for jbennett:

You may have questions. Like, how would an attacker know when such a command would be appropriate? And how would this attacker capture a password that has been entered this way? The simple answer is by watching the list of running processes and system log. Many systems have a command-not-found function, which will print the failing command to the system log. If that failing command is actually a password, then it’s right there for the taking. Now, you may think this is a very narrow attack surface that’s not going to be terribly useful in real-world usage. And that’s probably pretty accurate. It is a really fascinating idea to think through, and definitively worth getting fixed. Continue reading “This Week In Security: Peering Through The Wall, Apple’s GoFetch, And SHA-256”

2024 Hackaday Europe: Workshops Announced, Get Your Tickets

There are only a few weeks left until Hackaday Europe takes place in Berlin on April 13th and 14th. With only one full day of programming, we simply can’t run as many workshops as we do at Supercon, but what we do have should tickle your fancy. As if that weren’t enough, there will be at least a few other impromptu workshops and activities to distract you from the talks.

If you’re thinking of attending, get your tickets now for both the event and the workshops of your choice. There are only a few left, and workshops sell out like hotcakes.

Continue reading “2024 Hackaday Europe: Workshops Announced, Get Your Tickets”

Hackaday Links Column Banner

Hackaday Links: March 24, 2024

Way to rub it in, guys. As it turns out, due to family and work obligations we won’t be able to see the next Great American Eclipse, at least not from anywhere near the path of totality, when it sweeps from Mexico into Canada on April 8. And that’s too bad, because compared to the eclipse back in 2017, “Eclipse 2: Solar Boogaloo” is occurring during a much more active phase in the solar cycle, with the potential for some pretty exciting viewing. The sun regularly belches out gigatons of plasma during coronal mass ejections (CMEs), most of which we can’t see with the naked eye because not only is staring at the sun not a great idea, but most of that activity occurs across the disk of the sun, obscuring the view in the background light. But during the eclipse, we — oops, you — might just get lucky enough to have a solar prominence erupt along the limb of the sun that will be visible during totality. The sun has been quite active lately, as reflected by the relatively high sunspot number, so even though it’s an outside chance, it’s certainly more likely than it was in 2017. Good luck out there.  Continue reading “Hackaday Links: March 24, 2024”