Two threads running concurrently

The Staggering Complexity And Subtlety Of Concurrency

If you’re gonna be a hacker eventually you’re gonna have to write code. And if you write code eventually you’re gonna have to deal with concurrency. Concurrency is what we call it when parts of our program run at the same time. That could be because of something fairly straightforward, like multiple threads, or multiple processes; or something a little more complicated such as event loops, asynchronous or non-blocking I/O, interrupts and signal handlers, re-entrancy, co-routines / fibers / green threads, job queues, DMA and hardware level concurrency, speculative or out-of-order execution at CPU-level, time-sharing on single-core systems, or parallel execution on multi-core systems. There are just so many ways to get tied up with concurrency.

In this video from [Core Dumped] we learn about The ’80s Algorithm to Avoid Race Conditions (and Why It Failed). This video explains what a race condition looks like and talks through what the critical section is and approaches to protecting it. This video introduces an old approach to protect the critical section first invented in 1981 known as Peterson’s solution, but then goes on to explain how Peterson’s solution is no longer reliable as much has changed since the 1980s, particularly compilers will reorganize instructions and CPUs may run code out of order. So there is no free lunch and if you have to deal with concurrency you’re going to want some kind of support for a mutex of some type. Your programming language and its standard library probably have various types of locks available and if not you can use something like flock (also available as a syscall, to complement the POSIX fcntl), which may be available on your platform.

If you’re interested in contemporary takes on concurrency you might like to read Amiga, Interrupted: A Fresh Take On Amiga OS or The Linux Scheduler And How It Handles More Cores.

Continue reading “The Staggering Complexity And Subtlety Of Concurrency”

The Fourier transform

The Unreasonable Effectiveness Of The Fourier Transform

A talk, The Unreasonable Effectiveness of the Fourier Transform, was presented by [Joshua Wise] at Teardown 2025 in June last year. Click-through for the notes or check out the video below the break for the one hour talk itself.

The talk is about Orthogonal Frequency Division Multiplexing (OFDM) which is the backbone for radio telecommunications these days. [Joshua] tries to take an intuitive view (rather than a mathematical view) of working in the frequency domain, and trying to figure out how to “get” what OFDM is (and why it’s so important). [Joshua] sent his talk in to us in the hope that it would be useful for all skill levels, both folks who are new to radio and signal processing, and folks who are well experienced in working in the frequency domain.

If you think you’ve seen “The Unreasonable Effectiveness of $TOPIC” before, that’s because hacker’s can’t help but riff on the original The Unreasonable Effectiveness of Mathematics in the Natural Sciences, wherein a scientist wonders why it is that mathematical methods work at all. They seem to, but how? Or why? Will they always continue to work? It’s a mystery.

Hidden away in the notes and at the end of his presentation, [Joshua] notes that every year he watches The Fast Fourier Transform (FFT): Most Ingenious Algorithm Ever? and every year he understands a little more.

If you’re interested in OFDM be sure to check out AI Listens To Radio.

Continue reading “The Unreasonable Effectiveness Of The Fourier Transform”

A photo of the various parts for this MSLA 3D printer

Build A 2K Resolution MSLA 3D Resin Printer For Cheap

Have an old Android device collecting dust somewhere that you’d like to put to better use? [Electronoobs] shows us how to make a Masked Stereolithography Apparatus (MSLA) printer for cheap using screens salvaged from old Android phones or tablets.

[Electronoobs] wanted to revisit his earlier printer with all the benefits of hindsight, and this is the result. The tricky bit, which is covered in depth in the video below the break, is slicing up the model into graphics for each layer, so that these layers can be rendered by the LCD for each layer during the print.

The next tricky bit, once your layer graphics are in hand, is getting them to the device. This build does that by installing a custom Android app which connects to a web app hosted on the ESP32 microcontroller controlling the print, and the app has a backchannel via a USB OTG adapter installed in the device. [Electronoobs] notes that there are different and potentially better ways by which this full-duplex communication can be achieved, but he is happy to have something that works.

If you’re interested in resin printer tech, be sure to check out Continuous Printing On LCD Resin Printer: No More Wasted Time On Peeling? Is It Possible? and Resin Printer Temperature Mods And Continuous IPA Filtration.

Ken Shirriff working on the Commodore PET

This 8-Bit Commodore PET Was Hard To Fix

Over on [Ken Shirriff]’s blog is a tricky Commodore PET repair: tracking down 6 1/2 bad chips. WARNING: contains 8-bit assembly code.

The Trinity of 1977 which started the personal computer revolution were the Apple II, the Commodore PET, and the TRS-80. In this project it’s a failing Commodore PET which is being restored.

Continue reading “This 8-Bit Commodore PET Was Hard To Fix”

A photo of the PiStorm68K circuit board

PiStorm68K Offers Supercharged Retro Amiga Experience

[AmiCube] has announced their new PiStorm68K special edition MiniMig accelerator board. This board was developed to replace the 68000 CPU in a MiniMig — a recreation of the original Amiga chipset in an FPGA allowing a real genuine 68000 CPU to operate.

The PiStorm68K itself can host a real genuine 68000 CPU but it can also host various Raspberry Pi models which can do emulation of a 68000. So if you combine a PiStorm68K with a MiniMig you can, at your option, boot into an emulated environment with massively increased performance, or you can boot into an original environment, with its reliable and charming sluggishness.

In the introduction video below, [AmiCube] uses the SYSINFO utility software to compare the CPU speed when using emulation (1531 MIPS) versus the original (4.47 MIPS), where MIPS means Millions of Instructions Per Second. As you can see the 68000 emulated by the Raspberry Pi is way faster than the original. The Raspberry Pi also emulates a floating-point unit (FPU) which the original doesn’t include and a memory management unit (MMU) which isn’t used.

If you’re interested in old Amiga tech you might also like to read about Chip Swap Fixes A Dead Amiga 600 or The Many-Sprites Interpretation Of Amiga Mechanics.

Continue reading “PiStorm68K Offers Supercharged Retro Amiga Experience”

Illustration of Chladni's technique for producing his figures, from John Tyndall's Sound (1869)

Popular Science Experiments In Sound During The 19th-Century

Check one, two; check one, two; is this thing on? Over on The Public Domain Review [Lucas Thompson] takes us for a spin through sound, as it was in Britain around and through the 1800s.

The article begins by introducing the Father of Acoustics, German physicist Ernst Chladni. After placing grains of sand on a thin metal plate and drawing a violin bow along one edge Chladni figures appear, making manifest that which previously could only be heard, that is, sound waves.

It’s fun to think that it wasn’t so long ago that the physics of sound was avant-garde. Middle class Victorian society was encouraged to reproduce cutting edge experiments with equipment in their own homes, participating in a popular science which was at the same time part entertainment and part instruction, for young and old alike. Throughout the rest of his article [Lucas] lists a number of popular science books from the period and talks a little about what was to be found within.

See the video below the break for a demonstration of Chladni figures from The Royal Institution. Of course the present state of the art regarding sonics is well advanced as compared with that of the 19th century. If you’re interested to know more check out Building A Wall-Mounted Sound Visualizer and Seeing Sound For Under $200.

Continue reading “Popular Science Experiments In Sound During The 19th-Century”

Are We Ready For AR Smart Glasses Yet?

In a recent article from IEEE Spectrum, [Alfred Poor] asks the question what do consumers really want in smart glasses? And are you finally ready to hang a computer screen on your face?

[Alfred] says that since Google Glass was introduced in 2012, smart glasses haven’t yet found their compelling use-case. Apparently it looks like while virtual reality (VR) might be out, augmented reality (AR) might be in. And of course now we have higher levels of “AI” in the mix, whatever that means.

According to the article in the present day there are two competing visions of what smart glasses might be: we have One Pro from Xreal in Beijing, and AI Glasses from Halliday in Singapore, each representing different design concepts evolving in today’s market. The article goes into further detail. The video below the break is promotional material from Halliday showing people’s reactions to their AI Glasses product.

[Alfred] talks with Louis Rosenberg, CEO and chief scientist of Unanimous AI, who says he believes “that within five years, immersive AI-powered glasses will replace the smartphone as the primary mobile device in our digital lives.” Predicting the future is hard, but what do you think? Sound off in the comments!

All in all smart glasses remain a hot topic. If you’d like to read more check out our recent articles Making Glasses That Detect Smartglasses and Mentra Brings Open Smart Glasses OS With Cross-Compat.

Continue reading “Are We Ready For AR Smart Glasses Yet?”