Don’t Let Endianness Flip You Around

Most of the processor architectures which we come into contact with today are little-endian systems, meaning that they store and address bytes in a least-significant byte (LSB) order. Unlike in the past, when big-endian architectures, including the Motorola 68000 and PowerPC, were more common, one can often just assume that all of the binary data one reads from files and via communication protocols are in little-endian order. This will often work fine.

The problem comes with for example image formats that use big-endian formatted integers, including TIFF and PNG. When dealing directly with protocols in so-called ‘network order’, one also deals with big-endian data. Trying to use these formats and protocol data verbatim on a little-endian system will obviously not work.

Fortunately, it is very easy to swap the endianness of any data which we handle. Continue reading “Don’t Let Endianness Flip You Around”

Patent Law And The Legality Of Making Something Similar

When [Erich Styger] recently got featured on Hackaday with his meta-clock project, he probably was not expecting to get featured again so soon, this time regarding a copyright claim on the ‘meta-clock’ design. This particular case ended with [Erich] removing the original blog article and associated PCB design files, leaving just the summaries, such as the original Hackaday article on the project.

Obviously, this raises the question of whether any of this is correct; if one sees a clock design, or other mechanisms that appeals and tries to replicate its looks and functioning in some fashion, is this automatically a breach of copyright? In the case of [Erich]’s project, one could argue that at first glance both devices look remarkably similar. One might also argue that this is rather unavoidable, considering the uncomplicated design of the original. Continue reading “Patent Law And The Legality Of Making Something Similar”

Myst ‘Demake’ For The Apple II

Making certain games run on systems which were never designed to run such games (or any games at all) is a favorite hobby of some, with [deater] being no exception. His latest creation involves porting Myst to the Apple II, or ‘demake’ in his own words. This means taking a game that was released in 1993 for MacOS and later for Windows 3.1 and the original PlayStation, and creating a version that works on an 8-bit system from 1977.

Obviously the graphical fidelity has been turned down some compared to the 1990s version, but at this stage much of the game’s levels have been implemented. For anyone who has ever played the game before, much of the visuals will be instantly recognizable. According to [deater], the game should run on any Apple II/II+/IIe, with at least 48 kB of RAM, but 64 kB needed for sound effects. If a Mockingboard sound card is installed, it will even play the intro theme.

On the project page the (currently) three floppy disks can be downloaded, with the source available on Github. While one is there, one can also check out [deater]’s ‘Another World’ port to the Apple II which we covered last year.

Continue reading “Myst ‘Demake’ For The Apple II”

Enjoying Some Exothermic Welding, With Thermite!

There probably aren’t many people out there who aren’t aware of what thermite is and how it demonstrates the power of runaway exothermic reactions. Practical applications that don’t involve destroying something are maybe less known. This is where the use of thermite for creating welds is rather interesting, as shown in this video by [Finn] that is also embedded after the break.

In the video, one can see how [Finn] uses thermite charges to weld massive copper conductors together in a matter of seconds inside a graphite mold. Straight joints, T-joints, and others are a matter of putting the conductors into the mold, pushing a button and watching the fireworks. After a bit of cleaning the slag off, a solid, durable weld is left behind.

The official name for this process is ‘exothermic welding‘, and it has been in use since the 19th century. Back then it was used primarily for rail welding. These days it sees a lot of use in high-voltage wiring and other applications, as in the linked video. The obvious advantage of exothermic welding is that the resulting joint is strong and durable, on account of the two surfaces having been permanently joined.

Continue reading “Enjoying Some Exothermic Welding, With Thermite!”

Hands-On: Wireless Login With The New Mooltipass Mini BLE Secure Password Keeper

Remembering passwords is one of those things which one just cannot seem to escape. At the very least, we all need to remember a single password: namely the one for unlocking a password manager. These password managers come in a wide variety of forms and shapes, from software programs to little devices which one carries with them. The Mooltipass Mini BLE falls into the latter category: it is small enough to comfortably fit in a hand or pocket, yet capable of remembering all of your passwords.

Heading into its crowdfunding campaign, the Mooltipass Mini BLE is an evolution of the Mooltipass Mini device, which acts as a USB keyboard by default, entering log-in credentials for you. With the required browser extension installed, this process can also be automated when browsing to a known website. Any new credentials can also be saved automatically this way.

Where the Mooltipass Mini BLE differs from the original is in that it also adds a Bluetooth (BLE) mode, enabling it to be used easily with any BLE-capable device, including laptops and smartphones, without having to dig around for a USB cable and/or OTG adapter.

I have already been using the original Mooltipass Mini for a while, and the Mooltipass team was kind enough to send me a prototype Mooltipass Mini BLE for evaluation and comparison. Let’s take a look.

Continue reading “Hands-On: Wireless Login With The New Mooltipass Mini BLE Secure Password Keeper”

Beyond Printf(): Better Logging Practices For Faster Debugging

All of us who do some programming know that logging is a time-tested way to output messages about the internal state of our code. With varying degrees of adjustable granularity, these messages allow us to keep track of not only the state of the application, but also its overall health. When things do end up going FUBAR, these log messages are usually the first thing we look at as a software equivalent of a Flight Data Recorder in an airplane.

Spending some time and care in not only designing the logging system, but also in deciding what should be logged and at what level, can make our future self appreciate life a lot more. We’re all familiar with the practice of ‘printf-debugging’, where logging is added as part of the usual post-crash autopsy as one tries to figure out what exactly went wrong. It’s one way of doing it, and eventually it works, but we can do much better.

People are lazy, and you’re only going to stick to good logging practices if they are at least as easy if not easier than sprinkling printf() statement throughout the code. Yet at the same time we want to be able to handle things like log levels and newlines without too much extra typing. The most successful logging libraries are built with this

Continue reading “Beyond Printf(): Better Logging Practices For Faster Debugging”

Changing System Architectures And The Complexities Of Apple’s Butterfly Approach To ISAs

Apple computers will be moving away from Intel chips to its own ARM-based design. An interesting thing about Apple as a company is that it has never felt the need to tie itself to a particular system architecture or ISA. Whereas a company like Microsoft mostly tied its fortunes to Intel’s x86 architecture, and IBM, Sun, HP and other giants preferred vertical integration, Apple is currently moving towards its fifth system architecture for its computers since the company was formed.

What makes this latest change possibly unique, however, is that instead of Apple relying on an external supplier for CPUs and peripheral ICs, they are now targeting a vertical integration approach. Although the ARM ISA is licensed to Apple by Arm Holdings, the ‘Apple Silicon’ design that is used in Apple’s ARM processors is their own, produced by Apple’s own engineers and produced by foundries at the behest of Apple.

In this article I would like to take a look back at Apple’s architectural decisions over the decades and how they made Apple’s move towards vertical integration practically a certainty.

Continue reading “Changing System Architectures And The Complexities Of Apple’s Butterfly Approach To ISAs”