Page 1 of 7 123 ... LastLast
Results 1 to 10 of 67

Thread: So I made a new "programmer font."

  1. #1
    Join Date
    Oct 2008
    Location
    Wisconsin
    Beans
    Hidden!
    Distro
    Ubuntu 12.04 Precise Pangolin

    So I made a new "programmer font."

    Current version: 0.9.2 (download below) changes

    pic:
    (left to right: sample with code, Latin charset examples, Hebrew charset samples + gtk widget)




    Note: there is a tl;dr version at the bottom for the incompetent. There are also pictures and downloads down there, but first, I've got a lot to say, and I'm going to say it, even if nobody reads it.

    Programmers tend to have very specific needs and strong opinions when it comes to fonts. Because they spend so much time looking at text, they need fonts to be very readable with good distinction between each number and letter. Fonts for coding generally need to be monospaced as well. Finally, many programmers also like very small fonts, so they can see a lot of lines at once without scrolling.

    Small and "easy to read" don't tend to go hand in hand. Normal vector fonts (such as OTF and TTF) get very blurry or sometimes distorted at small sizes (though good hinting can help). However bitmap fonts do not get blurry. The pixel is either on or off. Though bitmap fonts are not as pretty as vector fonts, they are ideal for readability in a small package.

    Though not a professional programmer, as someone who spends a lot of time working with text myself, I eventually came to appreciate these features in a font, after some coaxing, but I couldn't get over how jaggy bitmap fonts tend to be, so I set out to create my own.

    Initially, my main inspiration was one of my favorite fonts, the old OCR-A font that they used when computerized character recognition was just getting started. At first, I just used this font in the terminal for fun, cause it's quirky and looks cool, but I had another profile setup with a different font for serious work. I eventually ended up switching all of the profiles to this font. The Characters are designed to look different so that a computer can read them correctly, but it turns out that this also helps Humans read them too.

    I started out trying to copy the OCR font as closely as possible. Sometimes it looked good. Other times it looked downright bad. I eventually realized that the shapes I didn't like were happening around diagonal edges. Two undesirable things happen with diagonal lines on a bitmap: First, you see the sharp edge of every pixel. It's impossible to give the illusion of smoothness without anti-aliasing on anything other than a strait line up or down. The other problem is that diagonal lines get extremely thin when they are one pixel wide, appearing much thinner than strait lines. This lead me to embrace the fact that the pixel is a square, and to try to use strait lines as often as possible. I did use some diagonals to produce greater variation of shape in the letters (and thereby improve recognition), but when I have used diagonals, they are, as a rule, two pixels wide instead of one. This makes them a little bit thicker than the normal vertical and horizontal strokes, which isn't ideal, but I find it to be better than thinner, and you have to choose one of the two when working with a bitmap.

    I've ended up with a font that is rather different than the OCR-A font, but some letters still look quite similar (almost all of the numbers), and I've tried to retain a similar sort of feeling, even when the actual glyphs are quite different.

    So that's the story of the font. Now on to the files. There are two files. One, the one that I expect most people will have more use for, covers all characters for western encoding (aka: iso-8859-1, ascii 256, Latin-1). This means it will work with just about any program as an XFT font or a X core font, and is also suitable for most western European languages. The "bitocra-full" file contains all of these glyphs, plus a lot more. As of version 0.9.2, it contains all of the Latin Extended-A charset, which means it should work for every living language with a latin-based alphabet (as far as I know).

    It also many extra characters that I need for my work (grad student in Biblical and Ancient Near Eastern Studies; refer to pic for listing). In addition, it has a complete Hebrew character-set with niqqud (vowel points). These things are not especially interesting unless you happen to be involved in semitic linguistics, or are Israeli.

    BUGS: The extra Unicode characters in bitocra-full seem to make programs that are expecting a normal X core font freak out sometimes. If you use rxvt-unicode as your terminal, you will need to call it with an xft code to take advantage of the extra glyphs.

    There is no bold yet. If you call it as an xft, freetype will automatically generate bold characters. Sometimes they look bad, but they don't mess up the alignment (except maybe Æ and Œ, the two widest glyphs. I haven't tested them).

    I guess that's about it. Constructive criticisms are welcome. Inversely, complements are also welcome. I hope to get some of both.

    TL;DR VERSION:

    I made a very small, readable bitmap font. It supports full Western encoding. The "full" version also has a complete set of Latin Extended-A glyphs, Hebrew glyphs and characters for the transcription of Semitic and Ancient Near Eastern languages.

    Pics:

    v0.9.2 (Current)



    v0.9.1



    v0.9




    bitocra and bitocrafull are now licensed under the SIL Open Font license v1.1. Font freedom for all!

    Latest version is now available at github - https://github.com/ninjaaron/bitocra


    Files:
    Attached Files Attached Files
    Last edited by not found; September 25th, 2011 at 02:34 AM. Reason: There was a comma in the middle of a word in the title.

  2. #2
    Join Date
    Dec 2010
    Beans
    940

    Re: S,o I made a new "programmer font."

    When you think it's ready for production use, do you think you'll make a ppa for it?

  3. #3
    Join Date
    Oct 2008
    Location
    Wisconsin
    Beans
    Hidden!
    Distro
    Ubuntu 12.04 Precise Pangolin

    Re: S,o I made a new "programmer font."

    Quote Originally Posted by IWantFroyo View Post
    When you think it's ready for production use, do you think you'll make a ppa for it?
    I don't know how to do that. I don't even know how to build a package. I'll probably need help.

    Anwyay, I think it's ready for production use now. I probably should have slapped a CC licence in that archive.

  4. #4
    Join Date
    May 2010
    Location
    Scottsdale, AZ
    Beans
    295
    Distro
    Ubuntu 10.10 Maverick Meerkat

    Re: S,o I made a new "programmer font."

    Quote Originally Posted by ninjaaron View Post
    I don't know how to do that. I don't even know how to build a package. I'll probably need help.

    Anwyay, I think it's ready for production use now. I probably should have slapped a CC licence in that archive.
    If it's a ttf you shouldn't need to package it, unless you plan on updating it.

  5. #5
    Join Date
    Jan 2011
    Beans
    Hidden!

    Re: S,o I made a new "programmer font."

    downloading, will get back to ya tomorrow.

  6. #6
    Join Date
    Apr 2009
    Beans
    35
    Distro
    Ubuntu 10.04 Lucid Lynx

    Re: S,o I made a new "programmer font."

    The font is unreadable.

  7. #7
    Join Date
    Oct 2008
    Location
    Wisconsin
    Beans
    Hidden!
    Distro
    Ubuntu 12.04 Precise Pangolin

    Re: S,o I made a new "programmer font."

    Quote Originally Posted by Legendary_Bibo View Post
    If it's a ttf you shouldn't need to package it, unless you plan on updating it.
    It's a bdf. Still shouldn't require packaging, but I don't really know what the point of a PPA is without a packages that automatically install in the correct directory.

  8. #8
    Join Date
    Jun 2010
    Beans
    181

    Re: S,o I made a new "programmer font."

    I would say that the most important factors affecting readibility are color and contrast - font / background and monitor / ambient. Next is syntax highlighting and then finally the font.
    I'm using vector fonts in editors if it's only possible, because this allows me to easily zoom-in/out when I want to focus on some portion of text or when I'm getting tired. Currently I'm using Monospace8 as sytem default and Monospace9 Bold for window captions, subpixel smoothing, hinting=none.

    For long time I've used black bg and green-gray fonts, but now I prefer dirty-yellow bg (like: 0xFFFFDD) and black font.

  9. #9
    Join Date
    Oct 2008
    Location
    Wisconsin
    Beans
    Hidden!
    Distro
    Ubuntu 12.04 Precise Pangolin

    Re: S,o I made a new "programmer font."

    I just realized that the Hebrew letter zayin is backwards.

    /facepalm

    Will upload the fix tomorrow, not that anyone is going to be using the Hebrew. In related "nobody cares" news, I also fixed the proportions on ḥ.

  10. #10
    Join Date
    Jan 2011
    Location
    Kansas City, KS
    Beans
    1,274
    Distro
    Ubuntu 13.10 Saucy Salamander

    Re: S,o I made a new "programmer font."

    In related "nobody cares" news,
    This is one of the most appealing segues I've ever experienced.

    I have nothing else to add - I don't code. = )

Page 1 of 7 123 ... LastLast

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •