UTF-8 – “The Most Elegant Hack”

While it may not look like much, the image above is a piece of the original email where [Ken Thompson] described what would become the implementation of UTF-8. At the dawn of the computer age in America, when we were still using teletype machines, encoding the English language was all we worried about. Programmers standardized on the ASCII character set, but there was no room for all of the characters used in other languages. To enable real-time worldwide communication, we needed something better. There were many proposals, but the one submitted by [Ken Thompson] and [Rob ‘Commander’ Pike] was the one accepted, quite possibly because of what a beautiful hack it is.

[Tom Scott] did an excellent job of describing the UTF-8. Why he chose to explain it in the middle of a busy cafe is beyond us, but his enthusiasm was definitely up to the task. In the video (which is embedded after the break) he quickly shows the simplicity and genius of ASCII. He then explains the challenge of supporting so many character sets, and why UTF-8 made so much sense.

We considered making this a Retrotechtacular, but the consensus is that understanding how UTF-8 came about is useful for modern hackers and coders. If you’re interested in learning more, there are tons of links in this Reddit post, including a link to the original email.

Continue reading “UTF-8 – “The Most Elegant Hack””

Classic PDA Finds Second Life As A Network Touch Screen Display

pocketviewer

[Tomas Janco] had an old Casio Pocket Viewer PDA collecting dust. Rather than throw it away, He decided to re-purpose it as a display for time, weather, and the current status of his garage door.

The Casio Pocket Viewer was a competitor to the Palm Pilot. The two systems even shared the same LCD resolution – 160×160 monochrome. [Tomas’] particular model is an S660, sporting 6 megabytes of ram and an NEC V30MZ (Intel 8086 compatible) processor. Similar to Palm, Casio made an SDK freely available.

The SDK is still available from Casio, and [Tomas] was able to get it running on his PC. Development wasn’t without pitfalls though. The Pocket Viewer SDK was last updated in April of 2001. Software is written in C, but the then new C99 standard is not supported. The SDK does include a simulator and debugger, but it too is not as polished as todays systems – every simulator startup begins with setting the clock and calibrating the touch screen. Keep reading after the jump to learn about the rest of the hurdles he overcame to pull this one off.

Continue reading “Classic PDA Finds Second Life As A Network Touch Screen Display”

The Nibbler: A 4-bit CPU Built With 7400 Logic

nibbler-schematic

Maybe we shouldn’t say “built” since [Steve Chamberlin] hasn’t actually heated up his iron yet. From the finished schematic above that is puzzling at first, until you realize the scope of the project. His Nibbler implements a 4-bit CPU using 7400 logic chips. Because he’s come up with the architecture himself he’s taking a lot of steps to check all of his work before committing to a PCB.

We linked to his category for the project which is still in progress. Most recently he wrote a program to prove that it’ll run on the hardware. That’s a feat considering this is still just a design idea. It was made possible because he wrote a simulator based on the design. The C++ tool simulates data and control buses and features a full set of debugging tools.

Careful testing of the design before the build is the best possible way to go. The simulator and debugging tools will be useful for software development even after the hardware is built. And testing before wiring is a must as these things get out of control quickly in terms of soldering complexity.

[via Dangerous Prototypes]

Make Your Treadmill More Entertaining For $0

Treadmill Computer

Treadmills can often be found on the side of the road, after someone gave up on their running regimen and found that the machine was taking up too much space in their basement. This is great for hackers, since they have some useful parts in them.

However, if you’d like to actually use a treadmill for running, some entertainment would certainly help. [KingJackOff] decided to roll his own treadmill entertainment system out of things he had lying around, bringing the total cost to $0.

He took an old laptop and mounted it in a piece of rigid foam using a gratuitous amount of duct tape. With the screen and keyboard mounted, he added speakers and a slot for the DVD drive. Then a printed graphic was taped to the front, with a nice motivational message.

Lots of people have old laptops lying around with mechanical issues. Broken hinges and frames make them unusable, even though the electronics are fine. Some foam and paper could be all you need to bring one back to life.

[via Reddit]

A PC Rig That Belongs On The Wall Of An Art Museum

When Overclock.net user [Show4Pro] decided to upgrade his “old dusty rig”, he eschewed the conventional PC form factor and instead built an incredibly sexy custom wall-mounted case.

The six sticks of RAM, quad HDD/SSDs, and dual Radeon HD7970s are enough to make all but the most hard core gamer blush, but that was only the beginning here.  Using a Dremel tool, Show4Pro cut the frame from a piece of hardboard and coated it with a mock-carbon fiber vinyl sheet.  This backdrop acts to both hide the (many) cables and provide structural support to the components.  Custom light guides cut from an acrylic sheet are back lit with LEDs and serve as a border for each of the components.

Laying all of the boards flat on the frame required the use of PCIe risers to move the video cards away from the mother board.  Long PCIe connectors are very susceptible to EMI though, and Show4Pro ran into a few stability problems that he eventually had to resolve with some high-end shielded risers.

Besides that one minor hiccough, the project went off without a hitch and it looks like his 100+ hours of work have really paid off.

Via Reddit.

Browsing The Web One Step At A Time

After modifying his new manual treadmill to fit under his standing desk, [Brian Peiris] found a way to let him stroll all over the internet.

After removing the treadmill’s original time/distance display, [Peiris] reverse engineered the speed sensor to send data to an Arduino and his PC.  We’ve seen a number of projects that interface treadmills with virtual worlds, but what really makes this project stand out is a simple script using the Throxy Python library which allows the treadmill to throttle his machine’s internet connection.

The end result is a browsing experience that reacts to how fast the user runs.  In the demonstration video, you can see Peiris tiptoe through images or jog through YouTube videos.  A minimum bandwidth setting keeps the connection live, so if you can’t make it all the way through that HD Netflix movie, taking a breather won’t time out the connection.

It’s certainly a great way to get in shape, or at the very least, it’ll make your ISP’s bandwidth cap feel a lot bigger.

Video after the jump.

Continue reading “Browsing The Web One Step At A Time”

How To Debug A Faulty Memory Board

ram

While this is not exactly a hack or a fail, it definitely is an inspiring example on how to debug a faulty card.

[Quinn] is one of the very few hobbyists out there that designed her own 6502 based computer. For the young readers of Hackaday, the MOS 6502 was introduced in 1975 and has been used in the Aple // line, the Commodore 64, the Vic-20, the Atari computers, the Nintendo Enterntainment System and others.

[Quinn]’s homemade new RAM board had been working for many weeks until it started to show some weaknesses by only sporadically passing the boot RAM test. Assuming the RAM was the problem, she started by making a more advanced memory test, which showed errors at random addresses.

She didn’t have any more of the same memory chips on hand which could be used with a fresh PCB. Determined to power through the issue, she etched a new board with a new memory design. Unfortunately it also gave memory errors at boot. Only one culprit was left, which is shown in the picture above. It’s a small sizing error in the board artwork which was just enough to cause a misalignment on the connector.

The article contains many details about her debugging process, so it definitely is worth the read.