There is a huge variety of hardware out there with a font of some form or other baked into the ROM. If it’s got a display it needs a font, and invariably that font is stored as a raster. Finding these fonts is trivial – dump the ROM, render it as a bitmap, and voilà – there’s your font. However, what if you’re trying to dump the font from a vintage Apple 410 Color Plotter? It’s stored in a vector format, and your job just got a whole lot harder.
The problem with a vector font is that the letters aren’t stored as individual images, but as a series of instructions that, when parsed correctly, draw the character. This has many benefits for generating characters in all manner of different sizes, but makes the font itself much harder to find in a ROM dump. You’re looking for both the instructions that generate the characters, as well as the code used to draw them, if you want a full representation of the font.
The project begins by looking at what’s known about the plotter. The first part of any such job is always knowing where to look, of course. It’s quickly determined that the font is definitely stored in the main ROM, and that there is no other special vector drawing chip or ROMs on board. The article then steps through the search process, beginning with plaintext searches of the binary dump, before progressing to a full disassembly of the plotter firmware. After testing out various assumptions and working methodically, the vector data is found and eventually converted into a modern TrueType font.
In the end, the project is successful, and it’s a great guide on how to approach similar projects. The key is to lay out everything you know at the start, and use that to guide your search step by step, testing and discarding assumptions until you hit paydirt. We’ve seen similar works before, like this project to dump the voice from an ancient Chrysler Electronic Voice Alert.
In the open-source world, there are two main choices for PCB design: KiCad and gEDA. But if you’re tired of the boring Hershey fonts telling you which resistor is which, or if you need to comply with ISO 3098, there’s one clear choice: PCB-RND, the improved fork of gEDA’s PCB tool. Why?
Because PCB-RND now supports osifont, which supports a ridiculous number of languages. In addition to the usual suspects, like Azerbaijani through Vietnamese, support has also been added for legacy users, including those of Middle Earth, who build PCBs that can only be read when the thrush knocks by the setting sun of the last light on Durin’s Day.
And they haven’t stopped there. Looking forward to the Treaty of Organia in 2267, you can now create PCBs that are fully plqaD-HaSta compliant.
We’re glad to see these important steps made toward reaching out to underserved PCB-constructing communities. However, we’re appalled at the continuing lack of support for Rihannsu. This will have to be rectified by anyone who wants to push their projects in the Beta Quadrant.
After hour and hours spent in front of a terminal or IDE, a user begins to build a list of infuriating little things. That one pop-up box that happens every time you press that button by mistake. The noise the software makes when the compile fails. Or the horrible reality that your code just crashed because there wasn’t enough difference between uppercase ‘O’ and a zero. In comes the programming font.
The typical way to find a programming font is to troll forums for a user with a similar problem and see if they have a workable solution. [Koen Lageveen] went out and found nearly all of the free programming fonts out there and compiled a list. He then took one more step and wrote a web app that lets you test them out. Hopefully this will help those in the very real struggle for the perfect programming font. You can try out the tool for yourself, and if you really like it [Koen] has all the code up for it on his GitHub.
[via Hacker News]
They say your handwriting is as unique to you as is your fingerprint. Maybe they are right – perhaps every person adds a little bit of his or her personality to their penmanship. Just maybe there are enough ways to vary pressure, speed, stroke, and a dozen other almost imperceptible factors that all 7 billion of us have a slightly different style.
The study of handwriting is called Graphology, and people have been at it for a quite a long time. Most experts agree that a person’s handwriting can reveal their gender, where it starts to get fuzzy is that others claim they can tell much more including age, race, weight, and even mood. Going further down the rabbit hole, some employers have tried to use handwriting analysis to determine if an applicant is a match for a position. That seems a bit of a stretch to us.
Now, if you want to digitize a tiny bit of what makes you, you – then all you have to do it to fill out this (PDF) form and upload it to the interwebs. Out the other end will pop a true type font that you can save for yourself or share with the world. Why would you want to do that? This hack caught our eye as a way of adding annotations to our work in a more informal, yet still personal manner. Or maybe we just wanted to upload it to the cloud in hopes it would live forever. Either way, if you want to see some really amazing style, head on over to the “Penmanship Porn” subreddit where you can find some amazing chicken scratch.
We’ve recently noticed two different fonts aimed at programmers, each with a different approach to editor customization. The first, Fira Code, transparently converts common programming digraphs into single characters. For example, <- becomes an arrow and != (or <>) becomes a proper not equal sign. The other font, Hack (can’t argue with the name), aims to make commonly confused characters distinct. For example, the zero glyph has a very distinct appearance from the letter O.
It is pretty easy to understand how Hack works, but Fira seems a mystery at first. Your C++ compiler expects <- not an arrow, right? Fonts support ligatures–sequences of two symbols that run together (like æ). Clever use of these ligatures means that the compiler still sees -> but the screen displays an arrow.
Continue reading “Hack an Editor: Fonts for Programming”
An old book – the smell, the texture of the slowly rotting paper, and the smudges and margin notes accrued over decades – is one of the finer points in life taken for granted much too often. We’re bombarded with high precision vector typefaces all day, but [Dan]’s Avería font is beautiful in its irregularity. [Dan] made a font that is the average of all the fonts installed on his computer, and the result looks surprisingly great.
[Dan] started his journey down the generative font path by making images of every letter of all his fonts and mashing them together with a PHP script. The result was a terribly blurry font, and unfortunately this had been done before. [Dan] wanted a font with clearly defined edges, though, so the obvious solution would be to take the grayscale result of his first experiment, set a threshold, and make a monochromatic image. This plan didn’t pan out, and [Dan] needed a cleverer way to go about things.
The solution to the problem is astonishingly simple; [Dan] took the perimeter of each font glyph and divided it into hundreds of points. These points could then be averaged in 2D space making a real ‘average’ font.
Even though this project isn’t the usual ‘Arduino doing something’ fare, [Dan] came up with a really clever way of doing something that produced something really cool. It’s enough of a hack in our books. Tip ‘o the hat to [Aleks Clark] for sending this one in.
[Windell] developed an Inkscape extension called Hershey Text that helps you process fonts into vector representations. If you’ve tried to 3D print, plot, or mill text in the past you may have run across the problem of generating vector paths that deal with the outline and fill of the text appropriately. The problem stems from how fonts are defined; either by the area that they enclose, or by the path that is used to draw the outline. Check out [Windell’s] tutorial for this extension where he explains each of these issues and shows how to overcome them.
The image above illustrates the stroke options, which allow you to vector multiple paths to best fill in the correct parts of each character using path-based hardware. The package includes a wide variety of interesting font sets that are in the public domain, and includes tools such as a glyph map generator that make it very user friendly.