Hackfest, A New Event For Your European Calendar

Our community’s events are something special, bringing as they do an opportunity to meet and mingle with other hackers whether their field be hardware, software, or security, to share ideas, and to see some very cool projects. Here at Hackaday aside from our own Supercon and Hackaday Europe events we try to take in as many as we can over the year, and thus it’s always interesting to sot a new one. If you’re in north-west Europe next weekend, consider dropping by Hackfest, in the Dutch city of Enschede, right on the German border.

Looking at the program and the projects and workshops  listed on the website we can see robotics, lockpicking, demoscene, retrocomputing, and plenty of open source. There are quite a few names which have featured at times here on these pages, something which certainly piqued our interest. Finding that it’s only 15 Euros for a weekend’s admission sealed the deal, and thus it’s time for Hackaday to break out the trusty Interrail pass once more and make the trek. Sadly many of Hackaday’s community will be too far away to join us, but if you’re close enough to make it then it’s one to consider.

This is a part of the world it’s fair to say isn’t often featured on Hackaday, but some of you might remember the city as being at the centre of a Wi-Fi tracking scandal.

Where Did The Japanese Computers Go?

If you are a retrocomputer person, at least in North America and Europe, you probably only have a hazy idea of what computers were in the Japanese market at the time we were all buying MSDOS-based computers. You may have heard of PC-98, but there were many Japanese-only computers out there, and a recent post by [Misty De Meo] asks the question: What happened to the Japanese computers?

To answer that question, you need a history lesson on PC-98 (NEC), FM Towns (Fujitsu), and the X68000 (Sharp). The PC-98 was originally a text-only MSDOS-based computer. But eventually, Microsoft and NEC ported Windows to the machine.

The FM Towns had its own GUI operating system. However, it too had a Windows port and the machine became just another Windows platform. The X68000, as you may well have guessed, used a 68000 CPU. Arguably, this was a great choice at the time. However, history shows that it didn’t work out, and when Sharp began making x86-based Windows machines — and, of course, they did — there was no migration path.

[Misty] makes an interesting point. While we often think of software like Microsoft Office as driving Windows adoption, that wasn’t the case in Japan. It turns out that multitasking was the key feature since Office, at the time, wasn’t very friendly to the native language.

So where did the Japanese computers go? The answer for two of them is: nowhere. They just morphed into commodity Windows computers. The 68000 was the exception — it just withered away.

Japanese pocket computers were common at one time and have an interesting backstory. Japanese can be a challenge for input but, of course, hackers are up to the challenge.

FreeCAD Is Near 1.0

The open-source parametric 3D modelling software, FreeCAD, is out in a release candidate for version 1.0.  If you’ve tried FreeCAD before and found a few showstoppers, it might be a good time for you to test it out again because the two biggest of them have been solved in this latest version.

First, version 1.0 finally implements a solution to the “topological naming problem”. Imagine you want to put a hole into a surface. The program needs to know on which surface to put the hole, and so it refers to this surface by name / number. Now imagine you subdivide the surface, and both subsections get new names. Where does your hole go now?  If you want to dig into the issue, the inimitable [MangoJelly] has a great video about the topo naming problem. Practically, there were workarounds, like only adding chamfers after the main design has stabilized, but frankly it was a hassle to remember all of the tricks. This is a huge fix.

The second big fix concerns assemblies.  Older versions of FreeCAD were great for making single parts, but combining them all together inside the CAD program was always janky.  Version 1.0 combines the previous two patchwork assembly workbenches into one, and it’s altogether more pleasant to use. The constraints of how two parts move when held together with an axle just works now, and this is a big deal for multi-part models.

If you’re coming from any other parametric CAD program, most of FreeCAD will seem familiar to you, but there will also be workflow differences that will take some getting used to. In trade, what do you get? Scriptability in Python, real open source software, and all of the bells and whistles for free. Now that its two biggest pain points have been addressed,  FreeCAD has become a lot easier to love. We’re looking forward to some good V1.0 tutorials in the future, and we’ll keep you posted when we find them.

The Surprising Effects Of Fast Food Kiosks

For as long as there have been machines, there have been fears of machines taking your job. One of the latest incarnations of this phenomenon is the fast-food ordering kiosk. No longer will you have some teenager asking you if you want fries with that. These days, you are more likely going to find the question on a touch screen. So, are those poor kids out of an entry-level job? Apparently not, according to a recent CNN story.

According to McDonald’s, a business that embraces the kiosks, the new technology increases sales and creates more jobs, albeit more jobs further behind the counter. Part of the reason is that while “Do you want fries with that” is a cliche, it is also a sound business practice. Cashiers should try to upsell but don’t always do so. The kiosk always remembers to offer you an apple pie or whatever else they want to move today.

Continue reading “The Surprising Effects Of Fast Food Kiosks”

When Raw Network Sockets Aren’t Raw: Raw Sockets In MacOS And Linux

Raw network sockets are a curious beasts, as unless you have a strong urge to implement your own low-level network protocol, it’s a topic that is probably best left to the (well-paid) experts. That said, you can totally use raw sockets in virtually every operating system, but one should be aware of a few things, the lack of portability being one of them. This is what tripped [Swagnik] up while trying to write a low-level network ping (ICMP) utility, by reading the Linux socket documentation while testing on MacOS. It’s all BSD-style sockets, after all, right?

As it turns out, the network stacks in Linux and MacOS have some subtle differences, which become apparent when you read the friendly manuals. For Linux, the raw(7) man entry for IPv4 sockets make it clear that the IP_HDRINCL socket option is default by default for IPPROTO_RAW sockets. This is different from MacOS, which is effectively FreeBSD with glossy makeup. Like FreeBSD, the MacOS man page makes it clear that the IP_HDRINCL option is not set by default.

So that’s easy, right? Just fire off a setsockopt() call on the raw socket and that’s done. Not quite. The Linux man page notes that it cannot receive all IP protocols, while the FreeBSD/MacOS version makes no such exceptions. There is also the issue of endianness, which is where [Swagnik]’s blog post seems to err. The claim is that on MacOS the received IPv4 raw socket header is in host (little endian) order, while the documentation clearly notes that these are in network (big endian) order, which the blog post also shows.

Where things get really fun is when moving from IPv4 raw sockets to IPv6 raw sockets, as [Michael F. Schönitzer] covered for Linux back in 2018 already. IPv6 raw sockets drop IP_HDRINCL and requires a whole different approach. The endianness also changes, as IPv6 raw sockets under Linux must send and will receive data in network byte order, putting it in line with FreeBSD raw sockets.

Linux, Now In Real Time

Although Linux runs almost every supercomputer, most of the web, the majority of smart phones, and a few writers’ ancient Macbooks, there’s one major weak point in the Linux world that will almost always have developers reaching for a different operating system. Linux is not a real-time operating system (RTOS), meaning that it can’t respond to requests in the real world within a set timeframe. This means that applications needing computer control in industry, medicine, robotics, and other real-world situations generally need a purpose-built RTOS. At least, that was true until recently when an update to the Linux kernel added real-time capabilities.

The feature, called PREEMPT_RT, forces the Linux kernel to respond to certain request within a set limit of time. This means that a system with this support built into the kernel can “preempt” any current task, stopping everything else a computer is doing in order to execute that task right away. There are some existing solutions to getting a functional equivalent system working with Linux now, but they can be clunky or inelegant, requiring the user to install patches or other software to get it to work. With the support built directly into the kernel this will become much less of a pain point for anyone who needs this functionality going forward.

This feature has been in the works for around two decades now, so with this entering general use now we would expect to start seeing it show up in various projects as well as in commercial offerings soon, especially since other RTOS solutions can be pricey. Don’t recompile the kernel in your desktop for this feature just yet, though; real-time function can cause some unintended consequences with normal use you’ll need to account for. There’s some more discussion on this in the /r/Linux subreddit and there are some other real-time operating systems available for computers not typically capable of running Linux to take a look at as well.

Jumperless Breadboard V5 Readies For Launch

When are jumper wires on a breadboard entirely optional? When it’s the latest version of [Kevin Santo Cappuccio]’s Jumperless, which uses a bunch of analog crosspoint switches (typically used for handling things like video signals) to create connections instead of physical wires. There’s even an RGB LED under each hole capable of real-time visualization of signals between components.

If this looks a bit familiar, that’s because an earlier version took second place in the 2023 Hackaday Prize. But things have evolved considerably since then. There are multiple programmable power rails, ADC channels, a rotary encoder, and much more. The PCB design itself is fantastic, including the probe which acts like a multi-function tool for interacting with the whole thing. The newest version will make its debut on Crowd Supply in just a few days.

It’s open source and made to be hackable, so give the GitHub repository a look if you want a closer peek. You can watch it in action in a brief video posted to social media, embedded below.

Continue reading “Jumperless Breadboard V5 Readies For Launch”