Retrotechtacular: IBM’s The World Of OCR

Optical Character Recognition (OCR) forms the bridge between the analog world of paper and the world of machines. The modern-day expectation is that when we point a smartphone camera at some characters it will flawlessly recognize and read them, but OCR technology predates such consumer technology by a considerable amount, with IBM producing OCR systems as early as the 1950s. In a 1960s promotional video on the always delightful Periscope Film channel on YouTube we can get an idea of how this worked back then, in particular the challenge of variable quality input.

What drove OCR was the need to process more paper-based data faster, as the amount of such data increased and computers got more capable. This led to the design of paper forms that made the recognition much easier, as can still be seen today on for example tax forms and on archaic paper payment methods like checks in countries that still use it. This means a paper form optimized for reflectivity, with clearly designated sections and lines, thus limiting the variability of the input forms to be OCR-ed. After that it’s just a matter of writing with clear block letters into the marked boxes, or using a typewriter with a nice fresh ink ribbon.

These days optical scanners are a lot more capable, of course, making many of such considerations no longer as relevant, even if human handwriting remains a challenge for OCR and human brains alike.

Continue reading “Retrotechtacular: IBM’s The World Of OCR”

Hackaday Podcast: 2025 Holiday Placeholder Edition

This week the Hackaday Podcast is on vacation, but we’d like to wish you all happy holidays and a great 2026.  Thanks for tuning in!  We’ll be back next week.

This wasn’t a real show, but that doesn’t prevent you from downloading it as an MP3 anyway.

Continue reading “Hackaday Podcast: 2025 Holiday Placeholder Edition”

3D Printed PC Case Focuses On Ease Of Access

There are all kinds of fun, glowing PC cases on the market these days. However, if you want something that focuses on serviceability over flash while still looking stylish, you might like the Makeyo MK01. It’s a PC case that you can print yourself, and [Marst_art] has published a video on what it’s like to whip one up at home.

The MK01 is assembled from lots of smaller parts, so the components can be made on any 3D printer that has a print area of 210 x 210 mm or more. All the outer panels are affixed to the main chassis with magnets, which makes servicing easy. You can just pop off panels when you need to get inside without undoing any fasteners or clips.

Plus, the cool thing about the MK01 is that since you’re printing it yourself, you can easily make whatever mods you like prior to printing it out. [Marst_art] notes that he threw in a USB-C port to the front panel for easy access, and a few internal mounts for 2.5″ SSDs. He also made some mods to the power switch assembly. It also bears noting—you get to choose your own color scheme when you make one of these. This level of customization is something you simply don’t get when you buy off the shelf!

[Marst_art]’s video is a useful guide if you’re planning to undertake such a build yourself. It outlines what it’s like to actually print one of these things on a consumer printer, and how the settings will influence the final look and feel. It’s worth noting that you’ll probably want to print this in ABS or another filament that can handle high heat, unless you’re building a very cool running machine.

It’s not just a great looking case, it’s a highly functional one, too. Files are available on Printables if you’d like to make your own. We’ve featured other printed cases before, too.

Continue reading “3D Printed PC Case Focuses On Ease Of Access”

NVIDIA Drops Pascal Support On Linux, Causing Chaos On Arch Linux

It’s no surprise that NVIDIA is gradually dropping support for older videocards, with the Pascal (GTX 10xx) GPUs most recently getting axed. What’s more surprising is the terrible way that this is being handled by certain Linux distributions, with Arch Linux currently a prime example.

On these systems, updating the OS with a Pascal, Maxwell or similarly unsupported GPU will result in the new driver failing to load and thus the user getting kicked back to the CLI to try and sort things back out there. This issue is summarized by [Brodie Robertson] in a recent video.

Here the ‘solution’ is to switch to a legacy option that comes from the Arch User Repository (AUR), which feels somewhat sketchy. Worse is that using this legacy option breaks Steam as it relies on official NVIDIA dependencies, which requires an additional series of hacks to hopefully restore this functionality. Fortunately the Arch Wiki provides a starting point on what to do.

It’s also worth noting that this legacy driver on the AUR is being maintained by [ventureo] of the CachyOS project, whose efforts are the sole reason why these older NVIDIA cards are still supported at all on Linux with the official drivers. While there’s also the Nouveau driver, this is effectively a reverse-engineering project with all of the problems that come with such an effort, even if it may be ‘good enough’ for older GPUs.

Continue reading “NVIDIA Drops Pascal Support On Linux, Causing Chaos On Arch Linux”

PC Watercooling Uses Everything But CNC Machining

Names and labels are difficult. Take this “3D Printed” water-cooling loop by [Visual Thinker] on YouTube. It undeniably uses 3D printing — but it also uses silicone casting and laser-cut acrylic, too. All of these are essential parts, yet only 3D printing gets top billing in his thumbnail. At least the version we saw, anyway; the A/B testing game YouTubers play means that may change.

Perhaps that’s simply due to the contrast with [Visual Thinker]’s last build, where the “distro plate” that acts to plumb most of the coolant was made of layers of CNC-routed acrylic, held water-tight with O-rings. Not wanting to wait for his next build to be fabricated, and not wanting to take up CNC machining himself, [Visual Thinker] fell back on tools many of us have and know: the 3D printer and laser cutter.

In this project, the end plates of the cooling loop are still clear acrylic, but he’s using a laser cutter to shape them. That means he cannot route out gaps for o-rings like in the last project, so that part gets 3D printed. Sort of. Not trusting the seal a 3D printed gasket would be able to give him, [Visual Thinker] opts to use his 3D printer to create a mold to cast a seal in silicone. Or perhaps “injection-mold” would be a better word than cast; he’s using a large syringe to force the degassed silicone into the mold. The end part is three pieces: a 3D printed spacer holding two acrylic plates, with the cast-silicone gasket keeping the whole thing water-tight to at least 50 psi, 10x the operating pressure of his PC.

After that success, he tries replacing the printed spacer with acrylic for a more transparent look. In that version only temporary shims that are used to form the mold are 3D printed at all, and the rest is acrylic. Even if you’re not building a water-cooled art PC, it’s still a great technique to keep in your back pocket for fluid channeling.

In some ways, this technique is the exact opposite of the copper-pipe steampunk builds we’ve featured previously. Those were all about pretty plumbing, while with a distro plate you hardly need pipes at all. Like any water-cooled project, it’ll need a radiator, which could be a hack in and of itself.

Continue reading “PC Watercooling Uses Everything But CNC Machining”

Cookie Launcher Makes You Catch Your Own Snack

Holiday cookies are a joy, and to make things a bit more fun, [The Skjegg] created the Cookie Launcher. At the touch of a button, a door opens and the tin launches a cookie (and perhaps a few crumbs) skyward. Catching it is up to the operator, but since the tin can hold up to 40 cookies at once (39 in a magazine and 1 in the launcher), there’s enough to get some practice in.

The design is a real thing of beauty, from the rotary cookie holder to the ejector. Individual cookies are held in a pan-style magazine that rotates until a tasty disk is lined up with the ejector. The red separators aren’t just for show, either. The little inward protrusion on each one interacts with an optical sensor to ensure the system always knows when things are lined up.

The launcher design is pretty neat, too. There’s a platform that uses two smooth bolts as guides, and elastic bands to store energy. A motor cranks it downward, where it locks into place. The rotary magazine then turns to line up a cookie, which gravity feeds into the launcher by rolling down an incline. When a cookie is in place, a door in the lid opens and the launcher platform releases, sending the cookie skyward.

The original concept for the Cookie Launcher involved voice activation, but training the voice module to trigger on custom Norwegian commands wasn’t very reliable. Luckily, a button is far more obedient. It may be a bit less magical to use, but in our opinion the physicality of a button push meshes perfectly well with the requirement to catch your own cookie.

You can get a good look at the operation and a detailed tour of the insides in the video, embedded below. Thanks to [Rohit] for sending in the tip!

If airborne cookies aren’t your bag, check out one a very different approach to hands-free cookie dispensing.

Continue reading “Cookie Launcher Makes You Catch Your Own Snack”

Treating Functions As Vectors In Hilbert Space

Perhaps the most beautiful aspect of mathematics is that it applies to literally everything, even things that do not exist in this Universe. In addition to this there are a number of alternative ways to represent reality, with Fourier space and its related transforms being one of the most well-known examples. An alternative to Euclidian vector space is called Hilbert space, as a real or complex inner product space, which is used in e.g. mathematical proofs. In relation to this, [Eli Bendersky] came up with the idea of treating programming language functions as vectors of a sort, so that linear algebra methods can be applied to them.

Of course, to get really nitpicky, by the time you take a function with its arguments and produce an output, it is no longer a vector, but a scalar of some description. Using real numbers as indices also somewhat defeats the whole point and claim of working in a vector space, never mind Hilbert space.

As with anything that touches upon mathematics there are sure to be many highly divisive views, so we’ll leave it at this and allow our esteemed readers to flex their intellectual muscles on this topic. Do you think that the claims made hold water? Does applying linear algebra to every day functions make sense in this manner, perhaps even hold some kind of benefit?