Punycodes Explained

When you’re restricted to ASCII, how can you represent more complex things like emojis or non-Latin characters? One answer is Punycode, which is a way to represent Unicode characters in ASCII. However, while you could technically encode the raw bits of Unicode into characters, like Base64, there’s a snag. The Domain Name System (DNS) generally requires that hostnames are case-insensitive, so whether you type in HACKADAY.com, HackADay.com, or just hackaday.com, it all goes to the same place.

[A. Costello] at the University of California, Berkley proposed the idea of Punycode in RFC 3492 in March 2003. It outlines a simple algorithm where all regular ASCII characters are pulled out and stuck on one side with a separator in between, in this case, a hyphen. Then the Unicode characters are encoded and stuck on the end of the string.

First, the numeric codepoint and position in the string are multiplied together. Then the number is encoded as a Base-36 (a-z and 0-9) variable-length integer. For example, a greeting and the Greek for thanks, “Hey, ευχαριστώ” becomes “Hey, -mxahn5algcq2″. Similarly, the beautiful city of München becomes mnchen-3ya. Continue reading “Punycodes Explained”

Spray-On Keyboard Is As Light As It Gets

We’ve all seen those ‘nothing’ keyboards, where the keys themselves are not much more than projected lasers, and users are asked to ritually beat their poor fingertips into the table — which has little give and even less clack. Well, a team at the Korea Advanced Institute of Science and Technology have come up with a way to eschew the keyboard altogether.

Essentially, the user wears a thin, breathable mesh of silver nanowires coated in gold, which is then embedded in a polyurethane coating. The mesh is sprayed onto their forearms and hands on the spot, and the mesh terminates in a small enclosure that is also worn on the skin. This contains a small Bluetooth unit that beams data back to a computer, a machine, or potentially another user wearing the same type of unit.

As the skin stretches and contorts, the mesh senses small electrical changes within. These changes become meaningful with applied AI, which maps the changes to specific gestures and manual tasks. To do this, the team started with teaching it to distinguish between patterns from tasks like typing on a phone, typing on a regular keyboard, and then holding and interacting with six differently-shaped simple objects.

The team isn’t stopping there — they plan to try capturing a larger range of motion by using the nanomesh on multiple fingers. In addition to facilitating communication between humans and machines, this could leave a huge fingerprint on gaming and VR.

Grass Gauge Tells You When The Lawnmower’s Catcher Is Full

If you’re not mowing your lawn regularly, you’re probably familiar with the hassle of overfilling your catcher. Grass clippings end up scattered everywhere, and you end up with a messy yard after all your hard work. [Dominic Bender] designed a mower fill gauge to eliminate this problem which shows you when your catcher is getting full.

The concept behind the gauge’s operation is simple. Catcher-based mowers rely on airflow from the spinning blades to carry grass into the catcher. That airflow is, in this case, also used to push up a flap mounted in the top of the catcher. As the catcher fills with grass, that airflow no longer reaches the flap, which sinks down, indicating the catcher is getting full. The basic design is a simple 3D printed flap and housing that uses a short piece of filament as a hinge. There’s also a small mesh guard to stop the flap getting clogged by the incoming grass clippings.

If you’re the forgetful sort, or your enthusiastic children aren’t always emptying the catcher when they should, this gauge might be a useful tool for you. Alternatively, consider robotizing your mowing in the vein of other builds we’ve seen, including one by yours truly. If you’ve got your own nifty gardening hacks, be sure to drop us a line!