Planet Open Fonts

OSP (Open Source Publishing)Relearn 2015

Relearn is back for 2015! We’re very happy to see the summer school continue and morph into a new being again this year, with a new set of people taking care of the organization. Quick recap: OSP set up the first edition of Relearn, in 2013. Come 2014, Relearn was a jointed venture with all […]

Ben MartinAbide the Slide

The holonomic drive robot takes it's first rolls! This is what you get when you contort a 3d printer into a cross format and attach funky wheels. Quite literally as the control board is an Arduino Mega board with Atmel 2650 MCU and a RAMPS 1.4 stepper controller board plugged into it. The show is controlled over rf24 link from a hand made controller. Yes folks, a regression to teleoperating for now. I'll have to throw the thing onto scales later, but the steppers themselves add considerable weight to the project, but there doesn't seem to be much problem moving the thing around under it's own power.

The battery is a little underspeced, it will surely supply enough current, and doesn't get hot after operation, but the overall battery capacity is low so the show is over fairly quickly. A problem that is easily solved by throwing more dollars at the battery. The next phase is to get better mechanical stability by tweaking things and changing the software to account for the fact that one wheel axis is longer than the other. From there some sensor feedback (IMU) and a fly by wire mode will be on the cards.

This might end up going into ROS land too, encapsulating the whole current setup into being a "robot base controller" and using other hardware above to run sensors, navigation, and decision logic.

CraftingType workshopsCrafting Type: Barbados

Crafting Type: Barbados

July 13—17th

Early Bird rate: get 15% off our full prices until June 29th!

Sign up →

CraftingType workshopstypedesignersatwork: Mike Abbink checking stuff.


Mike Abbink checking stuff.

OSP (Open Source Publishing)ASBL Print party outcome

When you mix travel stories with non profit association elation, within the zero boundary format of a print party, what do you get? We came up with a mix of different things we wanted to share and show, and mixed them in with some more down to earth writing extracted from our Statutes. One article […]

OSP (Open Source Publishing)Article III: Goal, social object, field of action

This is an extract from our association statutes. Links at the end of the page. The association OSP has as its main goal to propagate Free and Open Source culture in Brussels and internationally. More specifically, OSP asbl aims to stimulate the social movements of Free Culture and Free Software in the field of graphic […]

Pravin SatputeMinutes of first Globalization meeting of Fedora

Today we had first ever Fedora Globalization (g11n) meeting.  Members from 4 groups Internationalization, Localization, Fedora language testing group and Zanata participated. To get background regarding this meeting see g11n proposal.

Due to less time we decided to discuss FLTG and UTRRS topics in next meeting. We are going to have our next meeting on 17th June 2015 same time @ 04:30 UTC.


Zanata feedback survey

We are using Zanata as a official translation platform in Fedora. We need to do survey to take feedback from both translators and package maintainers. It will help us to understand need and missing feature from these different user groups. We agreed to do survey around end of august 2015. 
By the next meeting we will have further updates on how we are planning to do it.
ACTION: mkim and apeter followup with lukebrooker. 

L10N sprints based on F23

We discussed number of things under this topic. i.e. Minimum percentage of translations to declare particular language is supported or not. Discussed on language coordinator status.
ACTION: apeter to draft sprint proposal and send on mailing list for discussion.

Translation deadline around Beta

This was most debated topic. There is definitely need to look into this issue. Since after string freeze number of packages get updated. Its good to have some realistic and working deadline for Translation freeze.  We got lots of suggestions. 
ACTION: noriko to prepare draft for extending Translation deadline and send to mailing list.

G11N Infrastructure (IRC, Wiki and Ticket etc.)

We agreed to create g11n mailing list. May be we can simply add other list into g11n mailing list. Traffic on g11n mailing list will be not that high though. Also soon we will have #fedora-g11n channel.  
ACTION: pravins to create g11n mailing list.

G11N FAD - proposal

Quickly we discussed idea about Globalization FAD. Requested everyone interested in attending FAD to add there name. We need to further work on budget before pushing this to Fedora council.

Next meeting

With the lots of good discussions we dropped our earlier plan of meeting once in each month. Decided to meet in 2 weeks.
Click to get full meeting log and minutes

CraftingType workshopsVideo

CraftingType workshopsPhoto

OSP (Open Source Publishing)HTML sauce cocktail

We just finished a great workshop week @HEAR Strasbourg on the topic of printing HTML. Printing HTML is not a new idea, but in the last few years we’ve been compiling sets of tools and scripts to properly use HTML as a base for proper layout. This idea has taken on several flavors over different […]

OSP (Open Source Publishing)OSP ASBL VZW Celebration Print Party

We are happy to announce an OSP ASBL/VZW* celebration evening and Print Party. Back from our yearly travel to the Libre Graphics Meeting, full of Toronto stories, and soon to be tattooed with a VAT number, OSP welcomes you in their transit tavern. Join us in cutting, plotting and browsing recent works. Come to celebrate […]

CraftingType workshopsCrafting Type instructor Aoife Mooney’s presentation at...

Crafting Type instructor Aoife Mooney’s presentation at TypeCon 2014

Pravin SatputeFUDCon APAC 2015 - 19th May planning meeting minutes

We had 14 members in the meeting. Following are key points:
  • Started with scheduling. Most of the scheduling work done on paper. By this 22nd May we will get first draft of schedule.
  • Travel side: Remaining tickets will be mostly get booked on Wed. 20th May. Work on invitation letter is going on.
  • Outreach:
    • We voted on two drafts and decided to choose Dark background poster. Standee need further work. We decided to use more generic FUDCon standee.
    • Social media post going well. Need to keep this up. If you have any tweets in mind feel free to edit wiki.
    • Soon contacting speakers and ask them put missing details in portal. Also asking to speakers for bogging about there topics,we can use those to spread news about FUDCon.
    • Ticket for T-shirt design.
    • June 1st and 2nd week we will plan F22 release party in few colleges and use this opportunity to promote FUDCon. This points also reminder regarding F22 DVD's.
    • Video series: Few clips are ready now, work is going on to compile it and make short video.
  • Website:
    • Redesign done. Its now in production. For more info read post.
    • We need some volunteer to add topics for "News & Updates" section.
  • SWAG
    • We reviewed few swag. Will finalize mostly in next meeting.  Most of the quotes and ideas are available in
  • Video recording of talks. Trying for self recording with
For more details visit piratepad page

Pravin SatputeMinutes of FUDCon APAC 2015 planning meeting

We had our weekly planning meeting today. Comparing to earlier Fudcon planning meeting with today's, we have done lots of progress. Most of the things are already in good shape including Travel, Accommodation, FUDPub, Website and Scheduling etc.

Updates are as follows:

    All sponsorship request tickets  are resolved now. Prasad (PJP) yesterday commented decisions on all the tickets. We have clear picture now how many are joining us At Pune for FUDCon :)
   Same time hoping others to whom we not able to sponsor will also join us.  Mostly we will have one more meeting for traveling coming Friday and that will be last one.

Accommodation     We still have 12 more slots remaining for stay. We are planning to talk with colleges to allot/provide few rooms in hostel for students traveling from other places. Will get update on that soon.

    Storage, Containers and  OpenStack track leaders are ready with schedule. It will be nice if track leaders can blog regarding highlights of there tracks, what to expect. We can use those stuff later for marketing FUDCon.
    Niranjan, PJP and Parag are working on scheduling main tracks. Will have some more update by this Friday.

     Going good. Planning to send invitation email by this Friday. Regarding Colleges, most of the colleges are closed and going to open on 1st or 2nd week of June. Thinking for good time to start talking with them.
    Discussed on draft of Flyers and Standee created by Yogi. Suggested to change background from Blue to White. Also there was discussion on T-shirt design, will create ticket for same soon.
    Regarding Videos series, Shrink thinking to do some hangout session and use recording as a video.
    Fedora 22 is getting released in 26th May, this is good time to increase awareness regarding Fedora and FUDCon through F22 release parties. Planning to do some during 1st or 2nd week, same time there was suggestion to do install fest rather than simple talks and cake cutting.
    Social media posts are not going very well, so requested all members start tweeting/sharing about FUDCon. We do have plan for scheduled tweets/FB Posts, those will be mostly related to speakers, there bio and sessions information.

    Devel instance available for testing [3] Do go through it and if find any issue report on fudcon-planning list or #fedora-india. Soon planning to deploy it.

    Discussed on quote for some swags.

    For more details regarding FUDCon planning visit piratepad page.

Nathan WillisThe OpenType in Open Source workshop at LGM 2015

This year at Libre Graphics Meeting, we held a workshop / discussion session about OpenType support in open-source graphics applications. I proposed the session, but really only to act as cheerleader.

OpenType features have been possible (and available) in fonts for well over a decade. But few if any applications make them easy to access and use. At the ATypI meeting in October 2014, type designers got so upset at how bad Adobe’s OpenType feature support is in things like Illustrator and InDesign that they actually started a petition in protest.  That raised a red flag with me, since open-source applications aren’t any better in this regard. So I proposed on the CREATE list that we get together and talk about it.

Turnout was excellent—we didn’t do a full headcount, but representatives from every large free-software graphics tool at LGM were there (and several of the smaller ones, too).  The meeting room was packed. That’s good news, because it indicates a lot of interest in getting proper OpenType support working and in coming up with implementation approaches that will feel consistent from app to app.

To be more specific (for anyone with the misfortune to stumble onto this post from outside), we were there to look at how application projects could add support for optional advanced OpenType features that the user should be allowed to switch on and off as desired.  That turns out to be a bit complicated.

A little background

OpenType features come in two general forms: look-up rules that change the positioning of one or more glyphs (which you’ll see called GPOS lookups), and rules that substitute glyphs for other glyphs (which would be GSUB lookups).  There is a big, public list of “tag” names that font developers can use to designate their various GSUB and GPOS rule sets with some semantic meaning.

For instance, replacing the “f” and “i” glyphs with the “fi” ligature glyph is a GSUB rule that is usually listed under the “standard ligatures” tag, ‘liga’.  Semantically, liga is supposed to be for ligature substitutions that are active by default.  In contrast, the “discretionary ligatures” tag ‘dlig’ is supposed to designate ligatures that are not required, but that the user might want to enable for decorative purposes.  A lot of historical fonts have a “Qu” ligature that would fall under this category, with the tail of the Q sweeping out way under the u.  Similarly, there are GPOS rule sets like “case-sensitive forms” or ‘case’ that are supposed to be always on: ‘case’ is meant to adjust the vertical position of punctuation like hyphens and parentheses so that they line up correctly for ALL CAPITAL TEXT instead of for lowercase.  Then there are GPOS rules that are optional, like “tabular numerals” or ‘tnum’—which shifts all numeric digits to make sure they line up in columns.

[Side note: there's also a large set of these features that are defined specifically to enable shaping of complex scripts (like Arabic and Indic scripts), where the context of the letters and words requires a lot of flexibility for shape and placement when compared with scripts like European alphabets or CJK text.  Consensus was clear that these features are meant to be handled by the shaping engine, not the application, and the shaping engine is already doing a good job here.]

First tricky bit is, though, that what’s “supposed” to always be on and what’s supposed to be left up to the user as an option is kind of arbitrary.  The creators of OpenType don’t even agree.  Adobe has one list with such advice; Microsoft has another, and Adam Twardoch of FontLab has yet another.

Discussion and analysis

So we spent some time discussing the various types of OpenType features—at least those on the “official” lists of “registered” tags linked to just above. The question came up how often that list of registered feature tags gets expanded; the answer is evidently “not often.” Then we talked a lot about the different kinds of features and how they may be used.  Some of them a user might apply only to a few selected characters (even one); others would be desirable for whole blocks of text or documents.

But it’s not that simple.  An “default on” feature cannot be trusted to work flawlessly in every font and every situation, so the user needs some way to switch it off. And a contextual feature like “smart fractions” (‘frac’) might match some text pattern but actually be semantically different in the document. My example was when a user writes “I’m working 24/7″—that numeric sequence looks like a fraction, but in reality it isn’t one. [Note: part of the complication has to do with the fact that there are two slash-like Unicode characters, the 'slash' itself (U+002F, "SOLIDUS") and the 'fraction bar' (U+2044). Usually only the 'solidus' slash is on the keyboard.]

We also looked at several UI proposals (1-2-3-4-5-6-7) related to OpenType features that had been previously published by others, just to see what the landscape looked like.  Here (as well as in all of the discussion about when and how a user might want to access a particular feature), we got a lot of good feedback from interaction designer Peter Sikking.  For starters, Peter pointed out that many of the UI suggestions’ complaints are more reactionary about what isn’t working right than they are carefully-considered interface rules, so they may be interesting, but are not work to copy.

Peter also pointed out that the application projects represented have very different needs: an interface that works for Scribus—which is text-centric and offers lots of typography features—would not work for GIMP, where the text tool is a less important component (and one that has far less screen real estate available to its user interface). The best we can hope to do, he said, is come up with some “best practices” that apply to different scenarios, and let each application project implement them on their own as best they can.

Someone (and I think it was Peter, but I’m not 100% sure this many days later; please let me know if it was you) then pointed out that a few of the features amount to typeface-wide choices that are often implemented (at present) in separate fonts.  The prime example is small caps, which is frequently available as an OpenType feature (‘smcp’) but even more frequently is pulled out into a separate font, e.g. “Foo Serif SC”.  Though less used, there is an italics feature tag, too (‘ital’).

Making matters worse, many applications also allow “fake” small caps and italics. The user, however, will likely not care whether small caps or italics are implemented as an OpenType feature or in separate font files; they just want to apply them as a text style. That both presents a UI issue and impacts implementations.

We also briefly discussed whether supporting OpenType features in text markup would affect file formats.  Generally speaking, everyone seemed to think this would not be a difficult problem. There was a general desire to implement something that follows the approach used by CSS.  It seems to be working well for users (and developers), so that looks good.

Among the other points raised:

  • Behdad Esfahbod pointed out that CSS feature support is frequently accessed with a simple slider option that turns features on and off without significant headaches or dependency problems. For example, contextual ligatures, historical ligatures, and discretionary ligatures are all just “ligatures.”  The users don’t care (nor need to know) which feature provides the ligature they want. Similarly, its irrelevant to users that the ‘frac’ feature has a hidden dependency on separate numerator and denominator features.
  • Some of the features, like stylistic sets and character variants, come not just with a set of GPOS/GSUB rules, but also a human-friendly name that is encoded into the font.  For example, a font that includes ornamental caps in a stylistic set might name that set “Ornaments”.  This name would be a string in the uiLabelNameId field within the font file; so the application will need a way to access that and expose it to the user.
  • There should probably be some way to specify an “on by default” set, since it seems to be expected, but also a way for the user to switch it off.
  • There should be controls for the common (and well-defined, publicly “registered”) features, but there should also be a fallback mechanism that allows the user or application to access any feature via the feature’s four-letter tag.

Where to now?

Looking forward, we settled on a few “next action” items. For starters, we are going to try and coordinate our future discussions through the CREATE mailing list, which was invented to be a home for just this sort of collaboration.

Regarding the UI and UX questions, Peter agreed to work on developing what will eventually form the “best practices” and related recommendations for different applications.  The first step, however, is to spend some time talking with typographers and other graphic-designer-like users (who care about OpenType feature support) to study their processes and expectations.  This sort of process is what Peter does professionally; he most recently has been undertaking a similar systematic approach to interaction development with the Metapolator project (which he gave a talk on at LGM).  I mention this to explain that there are several steps between getting started and actually seeing prototypes, much less full-blown recommendations.

Regarding the lower-level plumbing layer: Fontconfig already catches the presence of OpenType feature tables when it indexes a font.  To get access to such a feature, though, the shaping engine (i.e., the software library that takes Unicode text characters, looks them up in the active font, and returns the right glyphs) also needs a way to report the presence of OpenType features, and a way for applications to request that the feature be turned on or turned off.  HarfBuzz is the shaping engine used by almost all free-software tools, and Behdad agreed to take on adding the necessary functions and API calls.

Moving one level up, some applications use HarfBuzz directly, but a lot of applications (including GIMP and Inkscape) use an intermediate text-layout library called Pango.  So Pango will also need hooks for OpenType features.  Behdad indicated that he is on top of this feature request as well.

Application projects, at the moment, do not have a lot that they need to do.  However, since the eventual ‘best practices’ are going to require using HarfBuzz, any application project that has been considering porting its text handling to HarfBuzz would save a lot of trouble later by getting started on that project now.  Earlier in the week, we held a HarfBuzz documentation sprint to develop a “porting manual” so to speak.  It isn’t quite finished yet, but the core example is there and will hopefully prove useful.

The exception to the above is that FontForge may need some work to support access to all of the OpenType features that may be exposed to the applications. The eventual plan was that FontForge (or other font editors) ought to provide a way to test features that somewhat resembles how feature usage is implemented in applications, but getting there may require some groundwork in advance.  The same may also be true for apps like GNOME Characters or the KDE and GNOME font managers, but I don’t think those developers were on hand at LGM.

Similarly, the thinking was that Fontconfig may also require some tweaking in order to allow testing of OpenType features.  During the smallcaps discussion mentioned above, Behdad noted that Fontconfig already lets the user define, in essence, “virtual fonts” that are simply fonts.conf references to existing fonts but with different OpenType features switched on or off.  A quick test revealed that this feature works to a degree, but has some bugs that need attention.  Here again, though, Behdad said he’s happy to take them on.

There were also open questions about real-world font implementations of several features. Google Web Fonts and Open Font Library, unfortunately, don’t index which fonts have these features. I agreed to do some research here.

We may also need to gather some good test cases: fonts with a variety of features implemented, and perhaps fonts that we will add features to (e.g., ‘ital’, which seems pretty rare).  If you’d like to help me that, get in touch, of course.

As for a web presence, I have tentatively set up a GitHub organization to use—at this point, primarily for the wiki and progress-tracking functionality.  You can find it at … you may need to request membership if you want to contribute, although I’m new to “organizations” so bear with me if I have the details a bit off.  We’ll see.

Onward and openward!

For everyone else: if you want to keep up with the discussion, you can follow (or join) the CREATE mailing list. You can also take a look at the Etherpad notes from the session, although I cannot guarantee that they’re free of typos.  If you find any … someone else made those.

More will surely come. If you work on open fonts—or if you use or develop free software—I hope you’ll stayed tuned or even get involved.

CraftingType workshopsISIA Urbino Type Design Week 2015

ISIA Urbino Type Design Week 2015:

For those seeking type education in Europe, the ISIA Urbino Type Design Week is a great option!

Behdad EsfahbodHow to use custom application fonts with Pango

I am at the Libre Graphics Meeting in Toronto this week, which means that I got to talk to GIMP and Inkscape developers after many years, and was reminded that Pango still does not make it easy to use custom (aka. application) fonts, and it still does not allow turning OpenType features on or off.  So I decided to give Pango some love.

OpenType features is bug 738505.  Akira and Matthias wrote the initial patch, but there are certain complexities in handling the attributes that needs to be fixed before this can go in.  I'll see if I can get myself to do that tomorrow.

Custom fonts is a different issue.  And by custom fonts I mean when an application wants to use a font file that it ships, but is not installed in the system or user font directories.  Most of the times when people have this request, they also don't want any system fonts, ie, they only want their custom fonts.  A font viewer is a basic example of this that we never had a good solution for.

Webfonts, and other embedded fonts, are another use case.  Eg, a document might bundle fonts that it uses.  Many times, the document would want to refer to the font using font family name, so in that case you want the font to be added to the system fonts and go through the font matching process.

Back in 2006 when we considered pangocairo the only backend we care about, I proposed that we add pangocairo API to use a certain cairo_face_t.  The thinking was that by doing it in the pangocairo layer, we don't have to do it in individual platform backends (pangofc, pangowin32, pangoatsui / pangocoretext).  That, however, never happened, because I was too lazy to implement it, but also because it was actually a lot of tricky work, to make the generic pangofc layer understand this custom object...

I have since changed my mind on how this should be done.  Over the years different groups asked how they do this, I've had suggested different variations of the same solution: custom Fontconfig config; and Win32 / CoreText APIs on other platforms.  Ie, do it at font host layer, not Pango layer.  It's a legitimate approach, if not most convenient.

Here is one way to do it, using fontconfig API:

Before calling into Pango, do this:
  • Create a new fontconfig configuration object using FcConfigCreate() and make it current using FcConfigSetCurrent(); this ensures that default configuration and fonts are not loaded,
  • Add fonts to it using FcConfigAppFontAddFile() or FcConfigAppFontAddDir(),
  • Use Pango as you otherwise would.
This way Pango will only see your fonts.  If you want to add your fonts but also see the system fonts, you can skip the first step.  That will make your custom fonts visible to all Pango users within the process, including Gtk+ and its font selection dialog.  If, instead, you want to limit it to a particular document, we need something more involved; we talk about further down.

Recently I needed to do something similar in Noto's test suite, which is written in Python.  Since we currently don't have fontconfig Python bindings, I either would have had to be bothered to do a ctypes binding of the few functions I needed, or find an even simpler solution.  Which is:

Before calling into Pango, do this:
  • Set the FONTCONFIG_FILE environment variable to point to your custom fonts.conf XML,
  • Add your custom font directory to the above-mentioned XML.
That's it.  Here's are the two steps for Noto: 1 and 2.

Now, this sounds easy, and works for very limited usecases.  But for it to be useful in apps like The GIMP or Inkscape, there are a few issues that need to be handled.  And I'm writing this post to raise enough interest from Akira, Matthias, Khaled, and others, to help fix these so we can have a great custom-font experience.  Writing a tutorial when these are all fixed would be great, but for now, this post is documentation enough!

First, the custom XML currently has to have a cachedir element or fontconfig warns.  That's annoying to say the least.  Filed here.  For now, you can use "<cachedir prefix="xdg">fontconfig</cachedir>" and that should work with recent-enough versions of fontconfig that understand the prefix="xdg".  Older version will ignore it and try to create a fontconfig directory under the current directory and use as cache, so beware of that.

Python / JS / etc bindings for fontconfig will be useful if we are pushing in this direction.  Filed here.

Another problem with the suggested setups above is that it works for non-GTK use-cases, like a game, test suite, etc.  But in most usecases, you definitely don't want your menus and other GUI elements to use the custom fonts.  In the case of a document editor or graphics editor, you might want to add custom fonts per document.  You can do that by using a separate PangoFcFontMap instance for each custom need.  I outlined that like this before:
  1. FcConfigCreate()
  2. FcConfigAppFontAddFile()
  3. pango_cairo_font_map_new_for_font_type()
  4. Use that PangoFontMap to create your context, etc.
  5. Every time you want to use Pango with that context, FcConfigSetCurrent the above config.  Then reset it back to whatever it was before.
This will allow you to use Pango with custom-only fonts in parts of the application.  If you also want the system fonts to be visible in this private font map, you can use the obscurely named FcInitLoadConfigAndFonts() instead of FcConfigCreate().

That's not awfully bad.  Except that the last step is very cumbersome and a recipe for disaster.  That step can be avoided if we have API to attach a custom FcConfig to a PangoFcFontMap.  Owen and I talked about it years ago and I filed a bug, but never happened... until yesterday.

I added pango_fc_font_map_set_config() yesterday, and just added pango_fc_font_map_config_changed().  So you can attach your private FcConfig to a private PangoFcFontMap, inform the font map every time you change the FcConfig (eg, add more fonts to it), and you should be able to use that font map to create layouts and use normally, without switching FcConfig's all the time.  However, remember: I wrote the code, but I didn't test it.  So a brave first user is wanted.

Then there's the set of issues with Fontconfig; the fact that to add font or configuration to an FcConfig, you need to have those in files, and can't add from memory blobs.  Fixing that should be fairly easy, and I filed those last year.  Would be great if we can fix them soon.  Here's one for font blobs, and another for configuration XML.

Another issue with using custom fonts is that every time you add a custom font, Fontconfig has to scan it.  Ie, you get no benefit from the Fontconfig font cache.  This can be really slow for huge fonts.  And became five times slower when the Adobe CFF rasterizer was integrated in FreeType.  I tried a few different approaches to speed it up.  Removing the (prematurely added) FC_HASH helped.  But there's more that can be done.  That bug is here.

Now, here's the one remaining issue that I don't have a full answer for: by sidestepping the default fontconfig configuration, you will miss some essential features.  Right now those are: synthetic italics, synthetic bold, and scaling of bitmap fonts.  The reason is that these are encoded in configuration files instead of in the library.  That sounds slightly over-engineered, and I like to improve it, but as of right now, that is the way it is.  You also will lose system-wide and user's configuration.

Sometimes that's not a problem.  For example, in the Noto test suite, we don't want any system or user configuration or any synthetic emboldening or italics, so the FcConfigCreate() approach suites those kinds of scenarios perfectly well.  Same about the preview part of a font-viewer, or other use cases where being system-independent is a goal.  But in other situations it might not be desirable.

I can, of course, suggest that anyone creating a custom FcConfig to add the essential configuration to it; Eg. bitmap scaling, synthetic bold and italic, essential aliases, user's configuration.  But that still leaves out generic aliases, system config, etc.  And I don't like that approach, because that spreads our default configuration all around Fontconfig clients and will create a mess that we would have to clean up every time we change how we do configuration.  It's a leaky abstraction.

Quite fortunately, there's an almost-perfect solution for that.  The obscure FcInitLoadConfig() function creates a new FcConfig and loads the default configuration files, but does not load any fonts referred to from those configuration files.  As such, you can go ahead and add your own fonts to it, but still benefit from the configuration.  Don't complain, if the configuration does undesirable font aliasing or other stuff.  I'm hugely relieved that this might do exactly what we need.  I have not tested this, so if you test, please kindly let me know how it works.  I cannot think of obvious undesirable behaviors from this approach.

So, to wrap up, assuming you would use Pango to be released soon, this is how you do custom fonts with PangoCairoFc:
  1. Create a custom FcConfig:
    • Use FcConfigCreate() if you don't want any system / user fonts or configuration whatsoever, neither you want any synthetic or other manipulations,
    • Use FcInitLoadConfig() if you want system / user configuration, but no system / user fonts,
    •  Use FcInitLoadConfigAndFonts() if you want system / user configuration and fonts visible in your private font map,
  2. Call FcConfigParseAndLoad() to add any custom configuration you want to add.  Such configuration can add custom font directories, or you can use next step,
  3. Call FcConfigAppFontAddFile() or FcConfigAppFontAddDir() to add custom fonts,
  4. Call pango_cairo_font_map_new_for_font_type(CAIRO_FONT_TYPE_FT), to create a private PangoCairoFcFontMap, which is a subclass of PangoFcFontMap, which is a subclass of PangoFontMap,
  5. Call pango_fc_font_map_set_config() to attach your custom FcConfig to your private PangoFcFontMap,
  6. Call pango_fc_font_map_config_changed() whenever you add new fonts to your custom FcConfig,
  7. Use that PangoFontMap to create your context, etc, and use normally.
You can optimize the logic to use the default font map if there are no custom fonts involved, and do the above otherwise.

This can trivially be adapted to the PangoFT2 backend by the way.

If your application has its own font dialog, then you can implement that using the private font map as well, and things should work.  But if you use the GTK+ font dialog, currently you can't attach your private font map to the font dialog instance.  I filed a request for that.

While there, let me address the issue of having or not having to restart applications when new fonts are installed.  As I covered in my State of Text Rendering in 2009 and presented at the Gran Canaria Desktop Summit, online font addition/removal should Just Work in GNOME.  I implemented that in 2008.  Indeed, it does in simple applications.  They are a bit slow (~4 seconds before new font shows up), so I filed a bug to shorten the delay.  However, a lot is not working:
  • I implemented this in the GTK+ font-chooser dialog in 2009, to update online as fonts were added / removed.  But font-chooser was rewrote in 2011 and is completely broken now.  So I filed a new bug (UPDATE: this is fixed now),
  • I wasn't loud enough in making this feature heard or document how custom font dialog widgets can implement this.  Take a look at this deprecated font dialog implementation in GTK+.  Or watch the new bug for discussion and how this will evolve,
  • To implement this for non-GTK+-based applications, you need to catch the XSETTINGS signal yourself and respond; search for Fontconfig/Timestamp in GTK+ source,
  • If you create private fontmaps and FcConfig's that include system / user configs or fonts (ie, you used FcInitLoadConfig() or FcInitLoadConfigAndFonts()), then you also need something similar to the above code in GTK+, that is, catch the signal, recreate your FcConfig (and add your custom fonts to it again), and attach the new FcConfig to your PangoFcFontMap.
As for pangocairo API to use a cairo_font_face_t, I still think that would be useful, but much less so than before.  Also, it won't be very useful until cairo adds API to create a cairo_font_face_t from a font file or memory blob.  Right now the only way to do that is to write code for the FreeType, Win32, and ATSUI / CoreText font backends of cairo separately.

Even if you try to do that, you will hit a very well-known problem with AddFontMemResourceEx(); which is: if you try to add a custom font with a family name that matches that of an existing font on the system, when you try to use the font, you might end up using the version installed on the system.  Ie. you can add fonts to the system, but you can't reliably address them.  The hack that Firefox, HarfBuzz, and others use to work around this is to modify the font data before calling AddFontMemResourceEx() to set a unique font family name on it, so they can be sure there will be no collision.  Here's the HarfBuzz code for that.

Anyway, I hope this write up helps developers, after confusing them, implement custom fonts in their applications, and motivate others to help me fix remaining issues and generate examples and better documentation.

While writing this, I ended up doing some bug triage and closing obsolete issues around Pango, Fontconfig, and cairo, which is always nice :D.

Anyway, this alone makes me really happy that I attended LGM.  The HarfBuzz Documentation Sprint was also very productive, but takes a couple more weeks to get to a stage that we can show off what we produced.

Nicolas Spalinger (advogato diary)3 May 2015

Microsoft releasing an open font!

So, after the pleasant but rather unexpected news of Adobe's Source * font families released openly and developed on a public git repo, now we have Microsoft starting to release fonts under the OFL for one of their many projects!

Who would have thought that this could actually happen, that such big font producers would even consider doing this?

But I guess cross-platform web technologies and the corresponding culture tends to carry with it the values of interoperability, consistency and flexibility... And it just makes sense to have unencumbered licensing for that. There must be some value in pursuing that approach, right?

The Selawik font (only Latin coverage at this point) is part of (bootstrap)-WinJS and is designed to be a open replacement for Segoe UI.

A quick look at the metadata reveals:

Full name: Selawik
Version: 1.01
Copyright: (c) 2015 Microsoft Corporation (, with Reserved Font Name Selawik. Selawik is a trademark of Microsoft Corporation in the United States and/or other countries.
License: This Font Software is licensed under the SIL Open Font License, Version 1.1.
License URL:
Designer: Aaron Bell
Designer URL:
Manufacturer: Microsoft Corporation
Vendor URL:
Trademark: Selawik is a trademark of the Microsoft group of companies.

Quite a contrast from the very exclusive licenses attached to the fonts commissioned for Windows...

(Oh and the apparent toponym with an Inupiat name is a nice touch too).

Ben MartinUnbrick the NUC

It seems there are many folks with the suspend of death on the NUC. When you suspend to RAM you can't get back. When you disconnect power for a while you can't turn it on again. Welcome to brickland, population: you. I found that following the advice on the forums if I disconnect the CMOS battery for a bit then I could turn on the NUC again.

The downside is that the CMOS battery is installed under the motherboard, so you have to remove the motherboard which is no easy task the first time. Then each subsequent time that the NUC bricks you have to take it apart again to such a great extent.

Luckily I found these extension leads which let me bring out the battery from the case. So hopefully now a debrick isn't going to involve a system teardown anymore.

CraftingType workshopsHere’s a few snaps of the final review on Day 3 of...

Feedback on Day 3 of Crafting Type Boston 2015

Final prints on Day 3 of Crafting Type Boston 2015

Feedback close up on Day 3 of Crafting Type Boston 2015

Here’s a few snaps of the final review on Day 3 of Crafting Type Boston 2015

Jakub SteinerThe chore of tuning PIDs

Tuning PIDs is one of those things you really don’t want to do, but can’t avoid it in the acrobatic quad space. Flying camera operators don’t usually have to deal with this, but the power/weight ratio is so varied in the world of acro flying you’ll have hard time avoiding it there. Having a multirotor “locked in” for doing fast spins is a must. Milliseconds count.

FPV Weekend

So what is PID tuning? The flight controller’s job is to maintain a certain position of the craft. It has sensors to tell it how the craft is angled and how it’s accellerating, and there’s external forces acting on the quad. Gravity, wind. Then there’s a human giving it RC orders to change its state. All this happens in a PID loop. The FC either wants to maintain its position or is given an updated position. That’s the target. All the sensors give it the actual current state. Magic happens here, as the controller gives orders to individual ESCs to spin the motors so we get to there. Then we look at what the sensors say again. Rinse and repeat.

PID loop is actually a common process you can find in all sorts of computer controllers. Even something as simple as a thermostat does this. You have a temperature sensor and you drive a heater or an air conditioner to reach and maintain a target state.

The trick to a solid control is to apply just the right amount of action to get to our target state. If there is difference between where we are and where we want to be, we need to apply some force. If this difference is smaller, only a small force is required. If it’s big, a powerful force is needed. This is essentially what the P means, proprotional. In most cases, as a controller, you are truly unhappy if you are elsewhere to where you were told to be. You want to correct this difference fast, so you provide a high proportional value/force. However, in the case of a miniquad, the momentum will continue pulling you when you reached your target point and don’t apply any force anymore. At this point the difference occurs again and the controller will start correcting the craft pulling it back in the opposite direction. This results in an unstable state as the controller will be bouncing the quad back and forth, never reaching the target state of “not having to do anything”. The P is too big. So what you need is a value that’s high enough to correct the difference fast, but not as much so the momentum gets you oscillating around the target.

So if we found our P value, why do we need to bother with anything else? Well sadly pushing air around with props is a complicated way to remain stationary. The difference between where you are and where you want to be isn’t just determined by the aircraft itself. There are external forces that are in play and those change. We can get a gust of wind. So what we do is we correct that P value based on the changed conditions. Suddenly we don’t have a fixed P contoller, we have one that has variable P. Let’s move on how P is dynamically corrected.

The integral part of the controller corrects the difference that suddenly appears due to the new external forces coming into play. I would probably do a better job explaining this if I enjoyed maths, but don’t hate me, I’m a graphics designer. Magic maths corrects this offset. Having just the proprotional and integral part of the corrective measure is enough to form a capable controller perfectly able to provide a stable system.

However for something as dynamic as an acrobatic flight controller, you want to improve on the final stage of the correction where you are close to reaching your target after a fast dramatic correction. Typically what a PI controller would get you is a bit of a wobble at the end. To correct it, we have the derivative part of the correction. It’s a sort of a predictive measure to lower the P as you’re getting close to the target state. D gives you the nice smooth “locked in” feeling, despite having high P and I values, giving you really fast corrective ability.

There are three major control motions of a quad that the FC needs to worry about. Pitch for forward motion is controlled by spinning the back motors faster than the front two motors thus angling the quad forward. Roll motion is achieved exactly the same way, but with the two motors on one side spinning faster than the other two. The last motion is spinning in the Z axis, the yaw. That is achieved by torgue and the fact than the propellers and motors spin in different directions. Typically the front left and back right motor are clockwise spinning and the front right and back left motor are spinning counter clockwise. Thus spinning up/accellerating the front left and back right motors will turn the whole craft counter clockwise (counter motion).

I prepared a little cheat sheet on how to go about tuning PIDs on the NAZE32 board. Before you start though, make sure you set the PID looptime as low as your ESC allow. Usually ESC send the pulses 400 times a second which is equivalent to a looptime of 2500. The more expensive ESC can do 600Hz and some, such as the miniscule KISS ESCs, can go as low as 1200.

ESC refresh rate NAZE32 Looptime
286Hz 3500
333Hz 3000
400Hz 2500
500Hz 2000
600Hz 1600

You do this in the CLI tab of baseflight:

set looptime=2500

Hope this has been helpful for some as it was for me :).

Quick Guide on PID tuning

Jakub SteinerMinis and FPV


I’ve got some time into the hobby to actually share some experiences that could perhaps help someone who is just starting.

Cheap parts

I like cheap parts just like the next guy, but in the case of electronics, avoid it. Frame is one thing. Get the ZMR250. Yes it won’t be near as tough as the original Blackout, but it will do the job just fine for a few crashes. Rebuilding aside, you can get about 4 for the price of the original. Then the plates give. But electronics is a whole new category. If you buy cheap ESCs they will work fine. Until they smoke mid flight. They will claim to deal with 4S voltage fine. Until you actually attach a 4S and blue smoke makes its appearance. Or you get a random motor/ESC sync issue. And for FPV, when a component dies mid flight, it’s the end of the story if it’s the drive (motor/esc) or the VTX or a board cam.

No need to go straight to T-motor, which usually means paying twice as much of a comparable competitor. But avoid the really cheap sub $10 motors like RCX, RCTimer (although they make some decent bigger motors), generic chinese ebay stuff. In case of motors, paying $20 for a motor means it’s going to be balanced and the pain of vibration aleviated. Vibrations for minis don’t just ruin the footage due to rolling shutter. They actually mess up the IMU in the FC considerably. I like Sunnysky x2204s 2300kv for a 3S setup and the Cobra 2204 1960kv for a 4S. Also rather cheap DYS 1806 seem really well balanced.

Embrace the rate

Rate mode is giving up the auto-leveling of the flight controller and doing it yourself. I can’t imagine flying line of sight (LOS) on rate, but for first person view (FPV) there is no other way. NAZE32 has a cool mode called HORI that allows you to do flips and rolls really easily as it will rebalance it for you, but flying HORI will never get you the floaty smoothness that makes you feel like a bird. The footage will always have this jerky quality to it. On rate a tiny little 220 quad will feel like a 2 meter glider, but will fit inbetween those trees. I was flying hori when doing park proximity, but it was a time wasted. Go rate straight from the ground, you will have way more fun.

Receiver woes

For the flying camera kites, it’s usually fine to keep stuff dangling. Not for minis. Anything that could, will get chopped off by the mighty blades. These things are spinning so fast than antennas have no chance and if your VTX gets loose, it will get seriously messed up as well. You would not believe what a piece of plastic can do when it’s spinning 26 thousand times a minute. On the other hand you can’t bury your receiver antenna on the frame. Carbon fibre is super strong, but also super RF insulating. So you have to bring it outside as much as possible. Those two don’t quite go together, but the best practice I found was taping one of the antennas to the bottom of the craft and have the other stick out sideways on top. The cheapest and best way I found was using a zip tie to hold the angle and heatshrink the antenna onto it. Looks decent and holds way better than a straw os somesuch.

Next time we’ll dive into PID tuning, the most annoying part of the hobby (apart from looking for a crashed bird ;).

CraftingType workshopsTypeface Mechanics: 001

Typeface Mechanics: 001:

Ben MartinTiny Tim improves and gets Smaller

I finally switched Tiny Tim over to a lipo battery. Almost everything worked when I tested the new battery, the only thing that failed in a major way were the two 2812 LEDs which, either didn't come on or came on for a very quick moment and went dark. So Tim is now smaller again without the "huge" AA battery pack at it's tail.

The 2812 story was interesting. It wasn't going to be happy jumping to the 7.6v of the 2S lipo. So I tried various voltage divider setups which didn't work either. I ended up using a common 5v regulator and the lights work fine again. I think I was maybe using too high resistor values in the divider and the 2812s didn't like it. At any rate, they apparently want a good regulated power source, and I wasn't giving it one before I switched over to using the regulator.

On the whole, going from 5-6v of the AA pack to 7.6v has made it a snappier mover. I tried it initially with the battery on the bench and found it would lift the back off the desk under hard break.

Next up is probably attaching a claw or drop mechanism and ultrasound sensor and then take on the Sparkfun autonomous ping-pong ball into cup challenge. I'll probably control it via wireless from a second on board micro-controller. The drop, ultrasound, and autonomous navigation micro (and additional battery) can all be put into a single "module" that I can then bolt to Tim. All the navigation micro needs to do is control the differential drive like a remote control would. This way, the existing micro etc on Tim doesn't change at all in order for the challenge to be accepted.

CraftingType workshopsVideo

Jakub SteinerHigh Contrast Refresh

One of the major visual updates of the 3.16 release is the high contrast accessible theme. Both the shell and the toolkit have received attention in the HC department. One noteworthy aspect of the theme is the icons. To guarantee some decent amount of contrast of an icon against any background, back in GNOME 2 days, we solved it by “double stroking” every shape. The term double stroke comes from a special case, when a shape that was open, having only an outline, would get an additional inverted color outline. Most of the time it was a white outline of a black silhouette though.

Fuzzy doublestroke PNGs of the old HC theme

In the new world, we actually treat icons the same way we treat text. We can adjust the best contrast by controlling the color at runtime. We do this the same way we’ve done it for symbolic icons, using and embedded CSS stylesheet inside SVG icons. And in fact we are using the very same symbolic icons for the HC variant. You would be right arguing that there are specific needs for high contrast, but in reality majority of the double stroked icons in HC have already been direct conversions of their symbolic counterparts.

Crisp recolorable SVGs of the post 3.16 world

While centralized theme that overrides all application never seemed like a good idea, as the application icon is part of its identity and should be distributed and maintained alongside the actual app, the process to create a high contrast variant of an icon was extremely cumbersome and required quite a bit of effort. With the changes in place for both the toolkit and the shell, it’s far more reasonable to mandate applications to include a symbolic/high contrast variant of its app icon now. I’ll be spending my time transforming the existing double stroke assets into symbolic, but if you are an application author, please look into providing a scalable stencil variant of your app icon as well. Thank you!

Jakub SteinerAudi Quattro

Winter is definitelly losing its battle and last weekend we had some fun filming with my new folding Xu Gong v2 quad.

Audi Quattro from jimmac on Vimeo.

Jakub SteinerMaking of GNOME 3.14

The release of GNOME 3.14 is slowly approaching, so I stole some time from actual design work and created this little promo to show what goes into a release that probably isn’t immediately obvious (and a large portion of it doesn’t even make it in).

Watch on Youtube

I’d like to thank all the usual suspects that make the wheels spinning, Matthias, Benjamin and Allan in particular. The crown goes to Lapo Calamandrei though, because the amount of work he’s done on Adwaita this cycle will really benefit us in the next couple of releases. Thanks everyone, 3.14 will be a great release*!

* I keep saying that every release, but you simply feel it when you’re forced to log in to your “old” GNOME session rather than jhbuild.

Jakub SteinerOpen Flight Controllers

In my last multirotor themed entry I gave an insight into the magical world of flying cameras. I also gave a bit of a promise to write about the open source flight controllers that are out there. Here’s a few that I had the luck laying my hands on. We’ll start with some acro FCs, with a very differt purpose to the proprietary NAZA I started on. These are meant for fast and acrobatic flying, not for flying your expensive cameras on a stabilized gimbal. Keep in mind, I’m still fairly inexperienced so I don’t want to go into specifics and provide my settings just yet.

Blackout: Potsdam from jimmac on Vimeo.


The best thing to be said about CC3D is that while being aimed at acro pilots, it’s relatively newbie friendly. The software is fairly straight forward. Getting the QT app built, set up the radio, tune motors and tweak gains is not going to make your eyes roll in the same way APM’s ground station would (more on that in a future post, maybe). The defaults are reasonable and help you achieve a maiden flight rather than a maiden crash. Updating to the latest firmware over the air is seamless.

Large number of receivers and connection methods is supported. Not only the classic PWM, or the more reasonable “one cable” CPPM method, but even Futaba proprietary SBUS can be used with CC3D. I’ve flown it with Futaba 8J, 14SG and even the Phantom radio (I actually quite like the compact receiver and the sticks on the TX feel good. Maybe it’s just that it’s something I’ve started on). As you’re gonna be flying proximity mostly, the range is not an issue, unless you’re dealing with external interference where a more robust frequency hopping radio would be safer. Without a GPS “break” or even a barometer, losing signal for even a second is fatal. It’s extremely nasty to get a perfect 5.8 video of your unresponsive quad plumetting to the ground :)

Overall a great board and software, and with so much competition, the board price has come down considerably recently. You can get non-genuine boards for around EUR20-25 on ebay. You can learn more about CC3D on openpilot website


Sounding very similar to the popular DJI flight controller, this open board is built around the 32-bit STM32 processor. Theoretically it could be used to fly a bit larger kites with features like GPS hold. You’re not limited to the popular quad or hexa setups with it either, you can go really custom with defining your own motor mix. But you’d be stepping in the realm of only a few and I don’t think I’d trust my camera equipment to a platform that hasn’t been so extensively tested.

Initially I didn’t manage to get the cheap acro variant ideal for the minis, so I got the ‘bells & whistles’ edition, only missing the GPS module. The mag compass and air pressure barometer is already on the board, even though I found no use for altitude hold (BARO). You’ll still going to worry about momentum and wind so reaching for those goggles mid flight is still not going to be any less difficult than just having it stabilized.

If you don’t count some youtube videos, there’s not a lot of handholding for the naze32. People assume you have prior experience with similar FCs. There are multiple choices of configuration tools, but I went for the most straight forward one — a Google Chrome/Chromium Baseflight app. No compiling necessary. It’s quite bare bones, which I liked a lot. Reasonably styled few aligned boxes and CLI is way easier to navigate than the non-searchable table with bubblegum styling than what APM provides for example.

One advanced technique that caught my eye, as the typical process is super flimsy and tedious, is ESC calibration. To set the full range of speeds based on your radio, you usually need to make sure to provide power to the RX, and setting the top and bottom throttle leves to each esc. With this FC, you can actually set the throttle levels from the CLI, calibrating all ESCs at the same time. Very clever and super useful.

Another great feature is that you can have up to three setting profiles, depending on the load, wind conditions and the style you’re going for. Typically when flying proximity, between trees and under park benches, you want very responsive controls at the expense of fluid movement. On the other hand if you plan on going up and fast and pretend to be a plane (or a bird), you really need to have that fluid non-jittery movement. It’s not a setting you change mid-flight, using up a channel, but rather something you choose before arming.

To do it, you hold throttle down and yaw to the left and with the elevator/aileron stick you choose the mode. Left is for preset1, up is for preset 2 and right is for preset 3. Going down with the pitch will recalibrate the IMU. It’s good to solder on a buzzer that will help you find a lost craft when you trigger it with a spare channel (it can beep on low voltage too). The same buzzer will beep for selecting profiles as well.

As for actual flying characteristics, the raw rate mode, which is a little tricky to master (and I still have trouble flying 3rd person with it), is very solid. It feels like a lot larger craft, very stable. There’s also quite a feat in the form of HORI mode, where you get a stabilized flight (kite levels itself when you don’t provide controls), but no limit on the angle, so you’re still free to do flips. I can’t say I’ve masted PID tuning to really get the kind of control over the aircraft I would want. Regardless of tweaking the control characteristics, you won’t get a nice fluid video flying HORI or ANGLE mode, as the self leveling will always do a little jitter to compensate for wind or inaccurate gyro readings which seems to not be there when flying rate. Stabilizing the footage in post gets rid of it mostly, but not perfectly:

Minihquad in Deutschland

You can get the plain acro version for about EUR30 which is an incredible value for a solid FC like this. I have a lot of practice ahead to truly get to that fluid fast plane-like flight that drew me into these miniquads. Check some of these masters below:

APM and Sparky next time. Or perhaps you’d be more interested in the video link instead first? Let me know in the comments.

Update: Turns out NAZE32 supports many serial protocols apart form CPPM, such as Futaba SBUS and Graupner SUMD.

Pravin SatputeFUDCon APAC 2015 Thanks to community for huge response for CFP

    I was interested in writing this blog post couple of weeks back but was away for Fossasia 2015 and them some family events. I know its never late to say thanks you :)

    We started accepting CFP on 9th Feb 2015 and decided deadline for submitting papers 9th March. Earlier i was bit doubtful regarding how many submission we might get. Specifically when we don't have great numbers of Fedora users around.  At one moment even thought "Might  be, we will need to extend CFP by a week". Started marketing activities for CFP.

    Started by sending an email on Fedora mailing lists including India, Ambassadors, Devel, Announce and everywhere possible and requested to forward further to relevant mailing lists.

    Prepared FudCon-outreach-list  and listed down all the FOSS related organizations and communities, interested in Fedora and decided to sent them email. Do go through this list, it is great resource for one planning conference around FOSS.

    Its time consuming task to send email to all the communities, so decided whoever has contacts or communicated earlier with any list, just start sending CFP email. Went very well.

    During discussion we also thought its good to contact IT companies interested in FOSS. Talked with friends working with them and requested to forward CFP to there organizations.

    We were looking for flyer for CFP from the day 1 CFP open but it was pending on logo for FUDCon APAC 2015. During the time we got logo and just in time i.e. last week we got our awesome flyer for CFP ready !! Though it was in last week but it helped to spread the message. Got almost 50% submissions in last week.

Specifically wanted to thanks following supporters:
  1. Helped in prepared CFP related contents and Flyers.
  2. Helped in filling up missing bits in outreach and also helped in completing task. 
  3. Forwarded FUDCon CFP related email to respective organizations.
  4. Sharing FUDCon CFP related post through social media.  Twitter, Facebook and Linkedin.
  5. Bloggers and FedoraMagazine writers AND
  6. Last but not the list the one who actually submitted sessions :)

    I know most of you already know, still let me write it again. We got total 140 paper submissions. This is nice number specifically when we are having available slots only around 40-50 and was expecting around 60-70 talks.

    Many many congratulations to FUDCon APAC pune 2015 outreach and marketing group for achieving first target.

    Now lets gear up again for our next target to marketing actual event. We will have speakers list and schedule ready most probably by next week. We will have some meeting to prepare plan for event marketing. Excited to work with you all again for our next milestone. :)

CraftingType workshopsMonotype type designer Dan Rhatigan on his type tattoos (9 of...

Monotype type designer Dan Rhatigan on his type tattoos (9 of 9)

The Crafting Type workshop is coming to these cities soon:

Portland, March 27, 28, 29 →

Boston, April 17, 18, 19 →

Learn more at

CraftingType workshopsMonotype type designer Dan Rhatigan on the day to day of a type...

Monotype type designer Dan Rhatigan on the day to day of a type designer at Monotype (8 of 9)

The Crafting Type workshop is coming to these cities soon:

Portland, March 27, 28, 29 →

Boston, April 17, 18, 19 →

Learn more at

Pravin SatputeMy activities at FOSSASIA 2015

This blog in continuation to my earlier blog on "FOSSASIA 2015 Highlights noticed by me"

Group Photo

Talk on Glibc Unicode 7 update:

        Glibc is an important component of operating systems. Recently we upgraded Glibc Unicode support from 5.1 to 7.0. This was major update after 4-5 years. It usually remains unnoticed, i wanted to highlight. Even though i work for redhat still it took around 7-8 month to get patch finally in glibc upstream. Around 25-30 audience was there in talk and it was well taken. Slides for my talks are available at slideshare.


        We kept Fedora DVD's and stickers At Red Hat booth. Was at booth 2-3pm first day and distributed dvd's to attendees. Also got a chance to meet Harish, Izhar, Prima Yogi, Aditya patawari, and Kushal. I proposed Fedora badge for people attending fossasia and asked participant to add name in piratepad.  Unfortunately it got rejected due to not planned in advance :(

        Fedora Breakout session. This was planned by Praveen Kumar, we gathered there, not many attendees were there but we got a chance to interact with "Hamara Linux" representative Aarti Dwivedi and Samyak Datta,LifeNectar explained them regarding Fedora, Fedora.Next and also on widely used Fedora remixes.

FUDCon APAC 2015:

        Being one of the member of organizing committee thought its good time to discuss on FUDCon APAC 2015 with people mostly participate remotely. We planned BoF, decided to do it in lunch time since most of the time people were busy doing other stuff. Updated group on number of papers received, planning happened till date, BarCamp style track, lightening talks.

Represented Red Hat Globalization team:

        Working in this domain almost 8+years and worked on almost all complex scripts including Indic, Arabic.  APAC is more characterized by non-english speaking countries and fossasia was the perfect place to interact with users for globalization needs. Interacted with couple of people for what languages they used on Fedora.

I attended almost all talks in OpenTech track and provided feedback to speakers. Had a good time interacting with most of the attendees over the lunch, socializing events. We had a nice hangout of brewerkz with Anish, Kushal, Praveen Kumar, Lennart Poettering and Rémi Denis-Courmont. 

Thank you fossasia organizers Hong Phuc Dang, Mario Behling, Harish Pillay, Roland Turner, Justin Lee and Darwin Gosal looking forward to attend next year as well. :)

CraftingType workshopsMonotype type designer Dan Rhatigan on the elements of type...

Monotype type designer Dan Rhatigan on the elements of type design (7 of 9)

The Crafting Type workshop is coming to these cities soon:

Portland, March 27, 28, 29 →

Boston, April 17, 18, 19 →

Learn more at

Pravin SatputeLohit Devanagari 2.95.1 release

Done with 2.95.1 release. This release in continuation with 2.95.0 release, basically to resolves issues raised in it ;)

Noticed issue while Fedora 22 testing from Bhushan. While analyzing it found it is due to autohinting in Lohit fontconfig file.

We are now using ttfautohint while building ttf file and on this hinted font again using autohint. This does not working very nice as reported in bugzilla.

From bug #1203996
There was couple of more issues i noticed on Fedora 22. These all are fixed now. Soon building 2.95.1 version for Fedora 22. Will be available in Fedora 22 Beta release.

Announced in lohit-devel list

CraftingType workshopsMonotype type designer Dan Rhatigan on what brands want from...

Monotype type designer Dan Rhatigan on what brands want from fonts (6 of 9)

The Crafting Type workshop is coming to these cities soon:

Portland, March 27, 28, 29 →

Boston, April 17, 18, 19 →

Learn more at

CraftingType workshopsMonotype type designer Dan Rhatigan on web & screen fonts (5...

Monotype type designer Dan Rhatigan on web & screen fonts (5 of 9)

The Crafting Type workshop is coming to these cities soon:

Portland, March 27, 28, 29 →

Boston, April 17, 18, 19 →

Learn more at

CraftingType workshopsMonotype type designer Dan Rhatigan on font shelf-life (4 of...

Monotype type designer Dan Rhatigan on font shelf-life (4 of 9)

The Crafting Type workshop is coming to these cities soon:

Portland, March 27, 28, 29 →

Boston, April 17, 18, 19 →

Learn more at

CraftingType workshopsMonotype type designer Dan Rhatigan on making a typeface for...

Monotype type designer Dan Rhatigan on making a typeface for Dominos Pizza (3 of 9)

The Crafting Type workshop is coming to these cities soon:

Portland, March 27, 28, 29 →

Boston, April 17, 18, 19 →

Learn more at

CraftingType workshopsMonotype type designer Dan Rhatigan, spotting type in use (2 of...

Monotype type designer Dan Rhatigan, spotting type in use (2 of 9)

The Crafting Type workshop is coming to these cities soon:

Portland, March 27, 28, 29 →

Boston, April 17, 18, 19 →

Learn more at

CraftingType workshopsMonotype type designer Dan Rhatigan on his typical day (1 of...

Monotype type designer Dan Rhatigan on his typical day (1 of 9)

The Crafting Type workshop is coming to these cities soon:

Portland, March 27, 28, 29 →

Boston, April 17, 18, 19 →

Learn more at

Pravin SatputeFOSSASIA 2015 Highlights noticed by me

This blog i am writing specifically to point out some good points i noticed during the fossasia 2015 conference. Feel free to add missing in comments section :)

  1. Awesome location Singapore !! I am sure no one will object :)
  2. On the first day Tweets were displayed in the hall. Fossasia is not one who started it. But this was the my first conference where i saw it. It is good thing where audience can share what going in there mind w.r.t. ongoing talk  with other audience. It was also motivating audience to tweets, so good trick to make audience active ;)
  3. It was good first day with no parallel talks. I liked the approach, starting parallel tracks from day first sometime start splitting audience. Talks on first day were more generic. People also got a chance to know, how many people around and started planning hacking activity for coming days.
  4. Talk from Dr. Vivian Balakrishnan, Minister of Singapore was well taken by audience. Very few such ministers around who understand technology so well.  
  5. All food vessels at the lunch counter got empty in some time. It proves how tasty the food was. :)
  6. Second day started with 5 parallel tracks. OpenTech, Web Technologies, Python, Mozilla and DevOps. I attended almost all talks in OpenTech Track. Even though there was 5 tracks each track got sufficient audience. 
  7. Before lunch we took group photo. It was fun, whenever we were thinking all are in now, one new batch of people were joining and then again trying to accommodate all frame. Thanks to Michael Cannon for photo.
  8. One of the good points was almost all domains people were present. Even we had some talks related to Open Source in Healthcare AutistConnect, LifeNectar and OpenMRS.
  9. Lightening talks generally does not get scheduled but in fossasia those were scheduled. I will say it as a good move. First it gave speakers recognition and also might have given them chance to get funding for conference. Second since it was scheduled it happened in well planned manner. Some audience missed few talks due to minor schedule change in lightening talks. Still i will say lightening talks made good impact. Specifically it worked like person introduced his topic and requested audience to join breakout session for further discussions.
  10. Plenty of rooms were available for breakout sessions.
  11. Each day was followed by some social event. Going to remember social event at Labrador park seaside Singapore BBQ definitely for some more time. Did not attended other days social event since some other plans.
  12. I think due to huge success of fossasia2015 organizers decided to choose same location for next year fossasia as well.
  13. Number of booths were available, Dron demonstration was also interesting. Mozilla, MySql, 3D printer, Red Hat.
I had almost dropped my plan to attend conference, thanks to Harish. He gave opportunity to attend conference the conference. I am going to write one more blog on my activities at fossasia, it will be bit bigger than this, Stay tuned :)

CraftingType workshopsVideo: Talking Design Giving and receiving type design feedback...

Video: Talking Design Giving and receiving type design feedback with Prof Gerry Leonidas

Ben MartinGoogle Breakpad and the post crash experience

Google Breakpad has many components to it, but at the basic level it lets you capture information at the time a crash occurs and upload that to the net. A really cute part of Breakpad is that the binary doesn't need to have the debug symbols in it, you don't even need to have them on the client machine at any location. When you build version $githash then you use a breakpad tool to copy out the debug symbols into separate files. When the user discovers a crash they upload a minidump file to a server of your selecting. Then you can combine the extracted symbols from build time and the minidump file to generate a backtrace with line number information. So software users don't have to know about gdb or lldb or whatnot and how to make a backtrace and where to paste it.

I recently updated FontForge's use of breakpad to use a small server on localhost to report the bug. The application dmg file for fontforge will soon also include the extracted symbols for the build. By telling breakpad to use a local server, that server can lookup the symbols that are shipped and generate a human readable backtrace with line number information. Because its also a web interface and running locally, it can spawn a browser on itself. So instead of getting the Mac dialog supplied by the osx crash reporter app telling you that there was a crash, you get a web page telling you the same thing. But the web page can use jQuery/Bootstrap (or $ui tool of choice) and ask what the user was doing and offer many ways to proceed from there depending on how the user wants to report things. The site can be used to report without any login or user accounts. It's also rather handy as a place to checking larger backtraces that might be, maybe, 50-100kb.

But once you can upload to gist, you can get a http and other URL links to the new gist. So it makes sense from there to offer to make a new github issue for the user too. And in that new issue include the link to the gist page so that developers can get at the full backtrace. It turns out that you can do this last part, which requires user login to github, by redirecting to github/.../issues/new and passing title and body GET parameters. While there is a github API, to report a new issue using it you would need to do OAuth first. But in the libre world it's not so simple to have a location to store the OAuth secure token for next time around. So the GET redirect trick nicely gets around that situation.

For those interested in this, the gist upload and callback to subsequently make a github issue are both available. The Google Breakpad hands over the minidump to a POST method which then massages the minidump into the backtrace and spawns a browser on itself. The GET serves up all the html, css, js, and other assets to the browser and that served html/js is what I link to at the start of the paragraph which is where the actual upload/reporting of the backtrace takes place.

The only thing left to do is to respond to the backtraces that come in and everybody gets a more stable FontForge out of the deal. It might be interesting to send off reports to a Socorro server too so that statistics month on month can be easily available.

OSP (Open Source Publishing)Conférence @ HEAR Strasbourg

Ramène ta fraise! We’re currently giving a html2print workshop @HEAR in Strasbourg that we’re punctuating with a conference presentation of OSP’s work tomorrow evening in the main hall @18:00. Come on over, ramène ta fraise! Results of the html2print workshop on their way and in construction, for now know that we’re reactivated automatic frog so […]

Pravin SatputeTomorrow (9th March) is last day to submit papers (talk, workshop and hackfests) for FUDCon APAC 2015

    Just thought good to write this small blog as a reminder for deadline for CFP submission [1]. We opened up CFP on 9th Feb, its almost one month before closing CFP tomorrow.
    As of now we have got an excellent response from community from paper submission perspective. Still one day to go. From my personnel experience i know lots of submissions happen on last day :)  Expecting few more on last day. Just make sure to think select appropriate category for your sessions. If not sure, go ahead and submit abstract, during screening will try to suggest suitable category.

    We had around 4 weekly meeting during CFP open time and lots of things happened. Some points includes
    1. Logo finalization.
    2. CFP for flyers.
    3. Fedora 21 release party at Venue. [2]
    4. Code of Conduct for conference. [3]
    5. Lots of decision from conference arrangement perspective. Including Food, FedPub and Speakers accommodation.
    6. site improvements.
    7. Reached lots of organization with CFP details.
    These are only few which i remembered, for more details go through piratepad



OSP (Open Source Publishing)Laidout

Tom Lechner Our description of the first encounter we had with Tom would probably be similar to the one of any of the two hundred people, sitting in the audience of the Libre Graphics Meeting in Brussels, back in May 2010.   The Libre Graphics Meeting is an annual meeting for users and developers of […]

Understanding Fonts (Dave Crossland and friends)What are the most important things the software freedom movement can do for itself?

On 2015-01-10 I responded to the FSF’s call for feedback on their ‘High Priority Projects List’ with an email, which I’ve added a bit more to and posted here.

The call goes like this:

we’re looking for projects of great strategic importance to the goal of freedom for all computer users … not every project of great strategic importance to the goal of freedom for all computer users will be a software development project. If you believe other forms of activism, internal or external (e.g., making free software communities safe for diverse participants, mandating use of free software in the public sector), are most crucial, please make the case and suggest such a project!

I believe the biggest strategic mistake the GNU project has made in its 30 years is to shirk away from supporting and promoting projects that pay full time labor wages for the development of free software, without compromising and also distributing some non-free software.

Just as “the future is here but its not evenly distributed,” there are some people in the software freedom movement who have financial skills to complement their technical skills, but while the software freedom movement is having great success at distributing technical knowledge about how to use and develop free software, it is having great failure at distributing such financial knowledge.

But we can fix this.

At many of the public speaking engagements by RMS that I have attended, and in my own experiences as a public speaker presenting software freedom, the first question from the audience is,

“I understand the ethical issue of software freedom, but how can I earn a living developing free software?”

This is often asked first, and is often asked repeatedly. Both have happened to me when the focus of the presentation was on this topic; I believe many people’s default assumption, their deeply held belief, is that it is not possible.

Demonstrating unequivocally that it is possible, that many people do it, but you just haven’t heard about them, is, I believe, the most important strategic improvement the movement can make.

At RMS’ presentations, his reply will vary by the phrasing of the question and his mood, from a brusque

“This is an irrelevancy, your freedom matters more than your rent check”


“Many companies develop free software, take an employee job at one of them”


“You can charge for development services, support services, branded goods, or other complementary goods.”

I believe he is shy of this because attempts to develop free software commercially are usually attempts to develop free software for profit, and that often leads to proprietary software.

For example, the first piece of commercially developed free software was GhostScript. The GNU project started in 1983, and in late 1986, following RMS’s suggestion L Peter Deutch began developing GhostScript as an evening-and-weekends hobby project while working for proprietary software development company; the year of Adobe’s IPO. Len Tower’s announcement of its inital release in the gnu.announce usenet group in 1988 included a ‘doing business as’ alias for Peter, and he soon quit his day job to work on GhostScript full time.

Peter said,

“as the author of GhostScript, has done what very few people have managed to do: he has managed to work on a project of his choosing, to release it as free software, and to do so while generating a sufficiently positive cash flow that he can now consider retirement,” –

And he has only done so by maintaining a single-party development organization that sold proprietary licenses to the latest version ‘Aladdin GhostScript'; he had a written agreement with RMS to always release a free version, which became ‘GNU GhostScript’, although the agreement didn’t say when.

This may have been the first time that commercial development of free software would go awry for the software freedom movement, but it would not be last.

Indeed, perhaps the default outcome of attempts to develop free software commercially is to distribute proprietary versions.

But there are some ‘success stories,’ some ‘case studies’ we can make of organizations that only distribute free software, that charge customers fees, and that pay people full-time wages to do so. This doesn’t necessarily mean for-profit companies, and it is something the FSF has done; indeed it seems this was one of the primary purposes of the FSF in the late 80s and early 90s, when all GNU projects were ‘high priority.’

In 1989 Cygnus Solutions was founded with capital saved from proprietary software development at SUN Some of the early marketing material is available from cofounder-investor John Gilmore which offers insights into how to sell free software. While Cygnus eventually succumbed to distributing proprietary software, I mention it because of EGCS, the commercial fork of GCC v2 in 1997 That was the first time I know of that the multi-party, full-time-funded developers of a GNU program had accelerated development to point that unfunded leadership of GCC by GNU was untenable. While this was reportedly acrimonious at the time, eventually EGCS became the next major version of GCC.

I recommend that any GNU project or other free software project that is developed by multiple parties who pay developers full time wages is a high priority project – not for development support, but for promotion to show that it is possible to make free software full time.

My favorite contemporary example of this is although I have not been in contact with those developers for a couple of years so I’m not sure how they are doing, but a few years ago I heard that they employed a small team of developers in NYC and paid them around US$100,000/year wages – which a starting salary in NYC or the Bay Area in 2015.

Videos like are incomplete without addressing this. I wish that the video will be edited to say that it is possible; that gas has to be put in the vehicles and pay for with money, and its possible to earn money by developing free software, and here’s examples of people who do it today and started back then and here’s a simple memorable slogan for the model.

Some people in the software freedom movement know how to set up their finances and how to set up organizations such that they can work on software freedom issues full time. Many people don’t. That’s what I mean with the “The future is here but its not evenly distributed” stuff.

RMS is naturally the first person to have done this. First, his lifestyle is an early example of the ‘early retirement extreme’ – – model, where you (a) avoid having children and possessions and cut your spending and (b) save a lot of a regular salary until you have enough savings to generate enough interest that you can stop working and live this extremely low-budget lifestyle indefinitely. Second, he set up the FSF (which doesn’t pay him a wage) to raise funds and page wages to developers to develop high priority projects.

There are some active free software projects today which have attracted venture capitalist funding. What’s the diff between what typical proprietary software founders must do and what the founders of these commercially developed free software projects do?

I believe this improvement has direct practical benefits for the movement. The biggest category of ‘missing’ free software I see is end-user applications with pleasant user experiences; this video says something about free software being invisibly ubiquitous, but that is because a lot of free software is developed for computer industry companies and very little free software is developed for end-users.

I believe that many developers grow up loving the principle of software freedom, but after graduating find employment with proprietary software developers because they do not know how to earn a living developing free software.

I believe that it is strategic to spread the understanding of how to earn money developing free software, from the scale of an individual sole proprietorship to that of a multinational corporation.

I propose that what success looks like here is when this knowledge is as widespread as that of how to license software freely, or, indeed, how to write programs that run only on free software. (I remember a time when most developers did not, and I’d like to think that the situation is now flipped and there are not many developers left today who do not know any free systems…)

I wish there was an active free software job market website. There was a project within GNU to make a job site software for this, mentioned at nearly 10 years ago, but it was abandoned.

There are ‘per issue’ funding sites, like and – but these (so far) don’t raise a full time wage; also is worth mentioning which is the inverse, where you pay someone for nothing in particular except you like what they do and want to send them a tip.

The most well known model for funding projects is now the ‘street performer protocol’, thanks to the business. But this protocol is from a game-theory or economic-math model point of view not ideal for funding projects that create non-rival goods: it suffers an inherent free rider problem… “why not just bookmark the project and have everyone else pledge and come back after its funded and fetch a copy?”

To overcome this, seems interesting, although its base format is not FSF-approvable because it involves a period of time where copying is monopolised, it does have a subscription format that might work for uncompromisingly for free culture projects. A similarly motivated response is the model, and that is actually an active project.

However, I’m skeptical of the implementation of the model, because I think its core messaging and framing is too stringent, and implicitly and explicitly it requires people to share values other than software freedom. That is itself something that happens often, and I think drives people away. A concrete example is, which I read as saying “The opinions expressed by [an open source developer] are incompatible with those of [the FSF]. Users and developers of free software are strongly advised not to use [his #1 worldwide most popular source code hosting service] for any of their projects.” I think this is not a positive attitude and does not help advance the cause of software freedom; I think a better response is to ask, how can we use this source code hosting service using only free software? And then to write what doesn’t exist yet. Also, both snowdrift and libreboot folks will be at libreplanet, so I hope to discuss these ideas there in person : )

I wonder that the FSF could certify projects in a similar way to hardware; certifying that they only publish all their work under an appropriately free license, and additionally certifying that people involved in the project make free software full time. The FSF’s first organization would be the FSF itself, so its clear that it isn’t asking anyone to do anything which it doesn’t do itself. However, I fear that this could risk further diluting the FSF message but implicitly and explicitly requiring people to share values other than software freedom.

I have a memory from a long time ago (2004) that I asked RMS about marketing, and he said something like, the FSF doesn’t do marketing, because marketing is a euphemism for lying, and it is what for-profit companies do, and it harms society, so he won’t have the FSF do it. The FSF now has campaigns managers, and I think they could learn to be more effective if they studied (and the FSF hired people with experience in) for-profit marketing and advertising management for tactics to use for the not-marketing the FSF does.

So, finally, my best practical recommendation is that the FSF put projects on the HPP list that enable anyone to run a small business using only free software. Software to run a business that enables a young hacker and their friends to develop free software full-time. Accounting software like and seems like a start. Billing software. Direct marketing software. Customer support software. Whatever fits the narrative.

The 2nd big category of questions I am asked about the software freedom movement is about its inherent hypocrisy, when most people are not actually running a 100% free software system despite 30 years of trying. This makes it seem like a impossible utopian project which has already failed and its just crazies hanging on to keep the dream alive. When actually, we have real progress on this front – certainly since the last time I attended Libre Planet in 2011. In 2015 you can say “I run 100% free software on this hardware” by paying a modest fee for a X200 – – and I have high hopes for .

I wonder that in the 5-10 year time frame, a similar project to Librem for a phone could be possible. makes a good case for what practical steps the movement must take to make the software platform for such a phone to be useful in a way compatible with the GNU manifesto’s vision; the current era of ubiquitous high speed internet and hand held computers that can make phonecalls could not be foreseen in 1983, but the ideas are strong and I think will carry through.

Whew. Since then a friend on the FSF’s HPP Review Board mentioned that a handful of other HPP opinion pieces have also been blogged so far, and asked me to post the above publicly, so here we are.

Also a friend who was a GNU contributor in the past wrote of the initial version of the above:


I still say there is an economic role in waiting for small businesses that serve between 2 and 50,000 customers. These businesses would be the suppliers of trusted installs to their customers. Roughly speaking, these small businesses would replace corporate “app stores”.

There is a natural scarcity of trusted-to-download-and-run software. You don’t run binaries from just anyone, so to speak.

Corporate proprietary software types compete to eliminate the natural scarcity of trusted-to-download-and-run software. For example, Apple competes to make its costs-per-download from their app store close to $0. They want the store — everything from vetting apps for placement in the market to actually delivering and activating an app — to be as automated as possible. To cost nearly nothing. Then when they divide up the $0.99 price of an app, most of it is profit (for them).

They do a bad job. They have to do a bad job. They create a massive single point of failure for society. They also can’t “curate” the collection of software with any real concern for customer needs and interests. Also, they can’t keep that shit safe — it is a series of IT disasters waiting to happen. So they do a bad job.

The small-provider model is more robust. Instead of one mega app store there’s many small ones and so automation is less critical. Single-points-of-failure are at least reduced. There is competition for how to curate the software collection.

Now on the one hand that cottage-industry approach sounds like something the right hustlers could do today, given a little inventory. I’m not sure what the right HW to support would be. I’m not sure what free software to support. But I would guess there are niches that could grow.

Any brave hustlers doing that would probably be drawing off debian or something close to it but that isn’t going to be a generalizable or high quality solution for the long run.

Therefore (I am thinking) if there were some of these small guys starting up anyway and if they are smart and serious about this that this would create an opportunity to begin to think about how to turn them into a kind of syndicate. On one level they compete to dominate “service areas” of 1..50K customers. On another level they collaborate to keep the supply of trustworthy and quality software coming.

This raises the question of what forms that collaboration takes.

One form might be for these small providers to pool revenues to create something akin to royalties.

Schematic example: I have a libre phone (let’s imagine). I have a libre software supplier for that phone — a local small business. I pay some subscription fee and I can download apps from the library. My phone’s software supplier voluntarily pays out some of my subscription fee as “royalties” on stuff in the download library.

Given the potential existence of these “royalties” I hand-wavingly say that there-in lies the answer to software with a high quality user experience. In this system I have described people will, much more than with existing proprietary systems, be able to reward quality with their pocketbooks.

I don’t know how to bootstrap it. I like your mention of GNU Cash as a possible priority, in that regard.


Later on 2015-02-06 I sent a second email to HPP, and this version is slightly edited:

I just came across is a great article that specifically mentions RMS lectures having a material impact on the software freedom movement – and it is his lectures that led me to spend the last 8 years working on libre fonts – and that shows the lectures ought to spread the idea that you can uncompromisingly develop libre software and raise a living wage for yourself by doing so.

In 1997, Koch attended a talk by free software evangelist Richard Stallman, who was visiting Germany. Stallman urged the crowd to write their own version of PGP. “We can’t export it, but if you write it, we can import it,” he said. … [ 2 German government grants funded the work full time ] … But in 2010, the funding ran out.

For almost two years, Koch continued to pay his programmer in the hope that he could find more funding. “But nothing came,” Koch recalled. So, in August 2012, he had to let the programmer go. By summer 2013, Koch was himself ready to quit.

This is as fine an example of the pervasive, general lack of understanding about how to raise salary amounts of money to pay developers to work on free software full time as I could imagine; it proves that it is possible, that our community can do it, but that we don’t understand how to do it reliably.

Fortunately in this case, some ‘Rich Uncles’ have stepped in to fund Werner for the next year, because of the publicity the article raised, it seems — but the problem of funding a usable GnuPG looms:

“Looking forward, however, I think of GPG as a glorious experiment that has run its course. The journalists who depend on it struggle with it and often mess up (“I send you the private key to communicate privately, right?”), the activists who use it do so relatively sparingly (“wait, this thing wants my finger print?”), and no other sane person is willing to use it by default. Even the projects that attempt to use it as a dependency struggle. These are deep structural problems. GPG isn’t the thing that’s going to take us to ubiquitous end to end encryption, and if it were, it’d be kind of a shame to finally get there with 1990’s cryptography. If there’s any good news, it’s that GPG’s minimal install base means we aren’t locked in to this madness, and can start fresh with a different design philosophy. When we do, let’s use GPG as a warning for our new experiments, and remember that “innovation is saying ‘no’ to 1000 things.” –

“Any solution that isn’t easy to use and easy to understand is a poor solution. And GPG is neither.” –

But after the Snowden news broke, Koch decided to launch a fundraising campaign. He set up an appeal at a crowdsourcing website, made t-shirts and stickers to give to donors, and advertised it on his website. In the end, he earned just $21,000.

Perhaps with a better model like or the results could have been higher, but really the problem is a lack of understanding the craft of the salesperson.

The campaign gave Koch, who has an 8-year-old daughter and a wife who isn’t working, some breathing room. But when I asked him what he will do when the current batch of money runs out, he shrugged and said he prefers not to think about it “I’m very glad that there is money for the next three months,” Koch said. “Really I am better at programming than this business stuff.”

The business stuff isn’t more difficult. Its just more obscure. Here’s a book I enjoyed on the topic:

And finally, since you read all this way to the end, here is a copy of my 2008 MA dissertation on the history of the software freedom movement (I think this is pretty solid), how that relates to typography (I think this part is… okay), and some of the ideas I had about what I intended to do about it after I graduated (I think this part is rushed, and lacks my best thinking at the time, which has since evolved…) Here’s the file: dave_crossland_matd2008_dissertation.pdf

Pravin SatputePoints on Fedora 21 release party AT MIT COE pune on 21st Feb 2015

Celebrating Fedora 21 on 21st Feb 2015, last one we did on 21st Dec 2014 :)

Fedora 21 is in itself special release due to Fedora.Next initiative, after merging Fedora core with extra this one is major step moving into future. Fedora 21 is also one special release for India, i do not remember if we had any release party for Fedora 20 in India, please correct if i missed anyone. But for Fedora 21 it is going on and on !!

This was the 3rd release party of Fedora 21 in which i took part. Thanks to Praveen Kumar for initiating this release party. Unfortunately he was away for some personnel work but Rupali came up to help with the organization.

Planned agenda for this meet in quick time with team. We were expecting major chunk of audience from MIT COE itself. Later took permission from MIT COE and decided to open up this for community and started spreading message around.

Shatadru designed nice FLYERS for this release party from the artwork available from Fedora artwork team.

MIT COE is bit far for most of the people staying around Magarpatta city, still we managed to be there in time. Mine talk was first at 10:30 reached there at sharp 10:25 :)

There was one more reason behind this release party was to do preparation for FUDCon happening in 26-28 Jun 2015. See the facility talk with professors, discuss with students educate them on Fedora and clear the doubts.

Me impressed lot with MIT COE campus and it is really live campus. On F21 release party there was already couple of events were going on, students were really busy managing and participating into it. We saw there one stall specifically for Linux quiz.

Due to these other event initially we got very few audience for release party. So we started bit late around 11pm. Later few more students joined. Overall i am happy with the audience since they were few but all were truly interested in event.

There was 3 talks were planned Mine (introduction), Anish (Workstation) and Parag (How to contribute to Fedora) and Later panel discussions.  

During my talk i asked everyone to introduce themselves and inform what they are expecting. There were interesting topics those came up.
  1. Difference between Fedora and Ubuntu?
  2. Why should i go for Fedora?
  3. What is FUDCon?
  4. How can we participate in FUDCon
  5. What about Embedded systems and Fedora?
Since we were planning for Panel discussion, we thought that will be good time to answer most of the questions.

I did my talk well in time, slides of talk available At slideshare [1]

Then Anish explained about Workstation product feature and target audience for it. Anish also helped audience for better understanding of Free Software and opensource software philosophy. It was good since in F21 release party At Mumbai we found that few people were not clear behind Free software philosophy.

Then Parag talked on How to contribute into Fedora, he explained lots of area's where one can get involved.
 At the end of Parag's talk we made transition from Talk to Panel with Amit and Siddhesh took the lead and later everyone contributed including me, Niranjan, Parag, Rupali and Anish. Panel discussion was awesome and Amit and Siddhesh kept on talking for long and discussed on number of topics. Then we understood that we can keep on talking on Fedora for whole day without break ;) 
 Decided to conclude in panel discussion and start actual celebration with cake cutting. Cake arrived on time with Samosa snacks and TEA :)

We decided to do few more events like Workshop in MIT before the FUDCon 2015. Had meeting with MIT COE principle for FUDCon planning which only some of us attended.

Thought its already big blog,i might have missed few things and few names, so feel free to add them in comments :)    


Nicolas Spalinger (advogato diary)25 Feb 2015

Libre Graphics Magazine issue on fonts

Go check out the latest edition of the Libre Graphics Magazine.

The issue (2.3) is about type, libre/open fonts and related topics from the perspective of a fairly wide selection of authors.

Go ahead: preview, buy, subscribe :-)

CraftingType workshopsCT: Hong Kong Early Bird Discount @ 10% for 7 more days

For the upcoming Hong Kong workshop, we are offering a 10% discount for all registration types for another 7 days (until Feb 27th)

 Register today

Pravin SatputeUpdates on Second FudCon 2015 planning meeting

If you still not aware what happened in first meeting. Do go through Praveen Kumars blogpost  [1]

Almost all members available in last meeting were present today as well. It shows there commitment for volunteering and making Fudcon 2015 successful. I am happy and appreciate that.  Few members traveling to devconf tonight still they were present and contributed lot including Amita, Anisha, Huzaifa and Siddharth. Amit was on IRC (From Bruno) and Siddhesh on IRC+Phone.

After the lots of suggestions on fedora-india mailing list [3], in this meeting we decided to have remote participation possible via phone.

I was taking minutes today and it was difficult since lots of things were getting discussed very fastly. Please excuse me if i missed some :)

Agenda was as follows: 
  • Website 
    • website up
    • Finalize CfP text
    • Graphics status update?
    • Praveen K and Siddhesh now know Drupal a bit, so will own the website
    • amit can contribute in 2 weeks from now
    • More volunteers/mockups welcome!
    • SSL support?  Asked Saleem about it    
  • Accommodation 
    • We negotiated good rates with Cocoon (INR 3000 + taxes)
    • Double-occupancy, Free wifi, breakfast
  • Travel updates? 
  • Marketing 
    • Fedora magazine
    • LinkedIn group
    • Make a list of MLs to post the CfP to
    • also reach out to ambassadors in apac for confirmation / planning
    • Post CfP link to social media
    • Video update?
      • is good for sharing between a few people
      • will need some trac ticket?
  • Budget 
    • Make and maintain a publicly visible sheet to track expenses?
    • I think we should have a wiki where we export the sheet in use.  ethercalc lets anyone edit, which is not exactly ideal for a budget-tracking sheet.  For people interested in handling budget, just contact the owner for budget acc. to the wiki
    • publicly visible, not editable :) So wiki would be fine

Minutes are as follows: (Bit long)
  • up now !!  (praveenk)
    • Presently using 2011 logo
    • Siddhesh was working on LOGO with suchakra.
    • If logo taking time we will go for CFP without LOGO
    • (amit) +1 let's not wait for logo for cfp, cfp is more important for travel and budget reasons
  • Graphics requirement 
    • LOGO (may take one week)
    • BADGE (i am going to fudcon)
    • Image for slogan ("F for Freedom")
    • current one is F for Free, doesn't look right nor good.
    • Flyers for CFP (It should have QR-Code)
      • We need to create ticket for same. (Shatadru) 
  • Once CFP is up we can use it for marketing. (Tweet, Facebook, Linkedin, google+)
  • Rough CFP draft @ 
    • It has two version one for email (bit smaller) and bit broader for web page.
    • Email version does not required guidelines.
    • We need to have different forms based on session (Talks, Workshop, Hackfest)
    • Can take this text for web for now.
    • Suggestion: We can have two drop-down (proficiency level and topics categories)
    • Prerequisite for attendees. (It can be optional). 
    • We have option to upload slide also. Or one can provide link as well.
    • Deadline for talk submission 1 month from announcement.
  • Marketing 
    • Speakers
      • Professionals
      • Fedora users
      • System Administrator
    • We can discuss with Kushal, Siddhesh
    • Amit's Fedora magazine post is still in pending stage
    • We need to list out all location where our CFP should go. 
    • Colleges (Shrink, Amita)
    • Organizations 
    • Opensource organization.
    • Please add org list here  
    • For speakers we might be not need to go colleges. Mailing list will be sufficient.
    • Social media
    • Colleges list
    • CFP text to send on respective mailing list. All should have consistent text.
  • Volunteers 
    • One can add his name on
    • Also good if he can ask on #fedora-india (Freenode) or  fedora-india mailing list.
  • Hotels 
    • Discussion with Cocoon hotel. (3000/night with Breakfast)
    • We can have BUS for speakers from Hotel to Venue
    • COEP has reached out to us and volunteered to help in whichever way they can.
  • FudPub 
    • 100  number of participants
    • Still looking for location. Should be mostly openspace.
    • Please update if any option for FudPub
  • Lunch 
    • Speakers, volunteers and faculty
    • It will be in college. College only support VEG
    • Lunch looking for around 150 people.
    • Once we will get speaker list and how many we need to pay.
  • Outreach: Reach colleges and use flyers. 
  • Mobile application 
    • lets get v0.1 of the app first with the features described. we can add to it then.
    • open source  way
    • Should be used in future as well
    • good to have it integrated with drupal (COD)
    • social wall, for live feeds
    • Feedback form (link it to every talk)
  • Budget 
    • At least presently not looking for any sponsor.
    • Will have better picture one we get speakers travel requirement.
  • Fedora 21 release party At FudCon venue (MIT) 
    • Date is not confirmed yet, but around 3-4 week of Feb
    • Interested people do join.

Ohh, that is really lot :) Above information is copied from piratepad for minutes [4] Formating from pad to blog was really pain :(

Let me end blog here. Please note most of the piratepad links are there. Feel free to update it with suggestions or one can always send suggestion on fedora-india mailing list or IRC #fedora-india.

Most of the people from organizing committee are traveling to Brno, Czech Republic for Devconf, so we will not have meeting next week. Hoping we will have CFP ready by this weekend.


Eben SorkinThe updated free Merriweather is finally available from Font Squirrel

The updated Merriweather Serif is available to download from Font Squirrel. It hashas much improved screen rendering and support for Cyrillic; better Latin language support for Polish, Czech, Slovak, Hungarian, Azerbaijani and many others that had been missing before. … Continue reading

Ben Martinlibferris on osx

So libferris is now compiled and installed thanks to some of my handy work on Portfiles and macports doing the heavy lifting. I've put the Portfile into the distribution for many of the repositories; ferrisloki, ferrisstreams, stldb4, ferris, fampp2. And moved the source control over to the github --

It's still a bit of a bumpy compile for ferris itself. Using clang instead of gcc, using the different stdc++ lib, the lack of some API calls on osx relative to Linux and the assumptions I'd made that IPC, advising the kernel on IO patterns, memory mapping and again advising on page patterns, would all be available APIs and contants. I have a patch from the compile which I need to feedback into the main libferris repo, making sure it still works fine on Linux too.

So now I can dig into xml files from the command line on osx too. I have to test out the more advanced stuff and the web services. The later use some of the 'Q' magic dust, qjson, qoauth, qtnetwork et al so they should be fairly robust after the port.

I should also update the primary file:// handler in libferris to use some of the osx apis for file monitoring etc to be a friendlier citizen on that platform. But going from no ferris on osx to some ferris is a great first move. A bundle would be the ultimate goal, /Applications/Ferris install in a single drag and drop.

Pravin SatputeLohit Odia 2.91.0 ready for testing under Lohit 2 project

   Started working on this in last month with Shilpa. When initial started working on this script, found it bit difficult. But Odia script is very similar with Devanagari and over the time found comfort with it.

   Shilpa did most of the work and i did verification and fixed few issues. One thing again i noticed during release is using of AFDKO. It is good and we should use AFDKO fully in Lohit project for better quality. Will see if we can do it in long term.

  For now regarding 2.91.0 release. Following are important points:

  • Followed Unicode specifications.
  • Re-writing all GSUB rules.
  • Open type rules are available in .fea file for easy re-usability.
  • Feature file compiled with AFDKO.
  • Supports 'orya' and 'ory2' opentype specifications tag.
  • Developer friendly glyphs names with AGL syntax format.
  • Corrected glyph class for all glyphs. 
  • Improved shape of ka-viramasignodia-taodia.
  • Added Glyph positioning rules for below based matras.
  • Test file available with release tarball.
  • Auto testing support with harfbuzz hb-shape.Tested with Harfbuzz and Uniscribe (W8 and XP)
   Update Lohit project page for information regarding download. During release i found few issues which are noted in TODO file. Will fix them before next release. If you find any issue do report on github. Also note TTF file available on my fedorapeople page.

   I remember in FUEL conference i got some improvement suggestions. Couple of them were related to adding Latin to Odia fonts. Presently dont have resource for same but looking forward to solve it in future.


CraftingType workshopsCrafting Type instructor Thomas Phinney takes you through 8...

Crafting Type instructor Thomas Phinney takes you through 8 optical corrections in this hour-long video tutorial, hosted by Fontlab

Pravin SatputeCompiling Lohit fonts feature file with Adobe Font Development Kit

This first came to notice with issue "OTM error #13". Everything was working perfectly with fontforge, creating feature file and importing feature file back :)

But certainly above issue open up number of issues with this process. Font designers were not able to import .fea file due to this issue.

Thanks to Dave and Frank for pointing to issue and directing me towards Adobe Font Development Kit (AFDKO). Adobe is the one created specification for .fea file and provided nice tools to compile it.  Most of the information already available AT 

 This blog is specifically to update how i am using AFDKO in Lohit project.

1. Write open type tables for Lohit fonts in Fontforge.
2. Export .fea file
3. Generate .ttf by importing .fea file to it using following commands.
4. makeotf -f Lohit-Tamil.ttf -ff Lohit-Tamil.fea

Makeotf is python wrapper over makeotfexe. makeotfexe can not process .ttf generated from fontforge. 
In first step makeotf convert .ttf provided to unix Type1 font.

It fails with error but it generates unix Type1 font required for makeotfexe.

What errors :)

  makeotf command pass following arguments to makeotfexe

  "makeotfexe "-f" "Lohit-Tamil.ttf.tmp" "-o" "Lohit-Tamil.ttf.temp_cff" -ff "Lohit-Tamil.fea" -ga -gf "Lohit-Tamil.ttf.temp.GOADB" -mf "FontMenuNameDB" -shw"

In above argument  "-ga -gf "Lohit-Tamil.ttf.temp.GOADB"  are not required but somehow automatically gets added by makeotf.

* We should replace -ga with -nga for not using GlyphOrderAndAliasDB. GlyphOrderAndAliasDB file is provided for ease of writing feature file.

* User can write feature file with user friendly names and use GlyphOrderAndAliasDB for adding name required as per standard.

* If one not using  GlyphOrderAndAliasDB, he should remove "-ga -gf "Lohit-Tamil.ttf.temp.GOADB"  and put -nga instead.

But makeotf done one good job of converting source font 'Lohit-Tamil.ttf' to temporary Unix Type1 font file 'Lohit-Tamil.ttf.tmp'

You will requires FontMenuDB file. Its content should be as per fonts. Font Lohit
[psatpute@dhcp201-194 bengali]$ cat FontMenuNameDB
    f=Lohit Devanagari
    l=Lohit Devanagari

5. run makeotfexe removing problem cuasing arguments.
 makeotfexe "-f" "Lohit-Tamil.ttf.tmp" "-o" "Lohit.ttf" -ff "Lohit-Tamil.fea" -nga -mf "FontMenuNameDB" -shw

And here get you Lohit.ttf build by adding .fea file with AFDKO.

Hope so it will help to some others as well.

I specifically found this very useful for finding issues in Lohit-Devanagari.fea files.

Pravin SatputeGet ready for FudCon 2015, its going to happen in Pune, India.

    Yes, its confirmed now. [1] Took long time though :)

    Excited for this. Recently we organized Fedora release party At Mumbai [3] and i found truly Fedora lover there. One word i said them most probably FudCon will happen in Pune this time and looking forward to see you all there. Its actually going to happen now and time for gathering together. With the power of collaboration and Free and open source technologies making Fedora better and better.

     I have attended FudCon 2011 but only as a speaker and attendee. This time i am one of the member of organizing team. I am sure things will go smother since number of members have experience of FudCon 2011 organization. [2]

    If you are interested in getting involved in FudCon 2015 activities do join fedora-Iindia mailing list and ask on #fedora-india @Freenode if any further queries.

  Cheers !!


CraftingType workshopsQuora: How exactly do people create new fonts?

Quora: How exactly do people create new fonts?:

Answers include one by CT instructor Thomas Phinney, who will be leading the Portland and Chicago workshops that are just around the corner!

Understanding Fonts (Dave Crossland and friends)Liveblog Notes: On minimum quality in typeface design

These are live blog notes from the lecture by Gerry Leonidas at the 5th Encontro de Tipografia, Barcelos, Portugal, November 29, 2014.

Usual disclaimer for live blogging: These are informal notes taken by me, Dave Crossland, at the event, and may or may not be similar to what was said by the people who spoke on these topics. This is probably FULL of errors. What do you want for free? :) If something here is incorrect it is probably because I mistyped it or misunderstood, and if anyone wants corrections, just should tweet me – @davelab6 – or post a comment. Thanks!

[ Slides at ]

We were talking about industry yesterday [the usual libre font fight – dc] and we had a good discussion. I thought of the car industry in the 60s and 70s. This Renault was a hatchback. This renault was a joke, badly powered, badly made, and none survive. They did the Citroen na, a rust bucket too. But they also did this, the most interesting car in Europe.

An industry that makes really good and really bad quality things is unfortunate. We all want a minimum level of quality in things. What is the minimum level we can achieve in type? That is something we can all work towards. We can not always makes works of genius, but things that are good enough.

For European cars this has happened… Reviews, magazines that look at things, standardisation, collaboration… You can buy a car now and it will not be terrible. It will be good enough.

Lets consider 3 key ideas and some extensions to them.

  1. Industry and ownership.

  2. Value and visibility of it

  3. Information and quality, to judge it by

Then trends, genres, and creativity, and an intent to act.

We touched on this in the panel discussion. This is the manchester drawing office of Linotype in the 40s. The people there are little cogs in a big gear. This is Joana’s desk; could be anyone, anywhere. There are no longer limits on the supply of type.

The early DTP equipment was expensive by today’s standards. The printer was thousands of euros. The drawings people made were a lot of work, a lot of decisions, and they kept some memory of the process. They were the output of a highly organized process. This contains a lot of value; the company sees this as a product to print books and magazine with, and that is one part of the nature of typeface; what a typeface is.

This is Victorian technology: High Victorian technology that lasted a very long time. It relied on centralised machines. They are glorified lego pieces, they are merely machines and you could understand how they worked and fix them.

In the 20th century, the technology became opaque, first as electronics and then as computers. The machine may not have any connection to the way you use it. Who really understands how my intentions translate into the machine? We have a different world, we operate in abstractions… but the old ways determine the language we use. That drawing from the 40s is an outline contour, and its no coincidence that this drawing in a computer it also an outline contour.

The pace of change in the type industry in the late 80s was astonishing. In old company the board rooms minutes and ATypI records you can see plans for growth, for development in the late 80s of the pre-digital technology, and how it was a total surprise how quickly the industry was disrupted by computers; new kinds of machines that changed how cheaply and quickly things could be done.

What tools like fontographer and pagemaker did was allow people to take forms that were captured in a physical medium and capture them instead in a digital, transferrable medium. PostScript, platform independent technology, severed type from printing.

The browser is a typesetter. Webkit is a typesetting engine, it is the engine behind Chrome, Safari and Opera. A web font service’s server machines somewhere that serve the font files are like the floppy disks with font files for the first platform independent technology.

When industries open up, existing ideas about ownership and contribution change. There is no longer a physical object that you can patent and own and secure.

Next, visibility. You could store drawings, there was a Monotype Collections Room, and when the pre-digital Monotype collapsed as a hot metal company, those drawings were the key thing that was preserved. Machines were saved too, but they were secondary to the type designs captured in the drawings.

Linotype survived the transition to becoming a digital type technology vendor, but in the process everything for the typesetting business was destroyed. Linotype survived as a rightsholder.

Also in Germany at that time, URW’s Ikarus was a digital tool for the previous technology; the original fontographer, and then fontlab, for many years, and today there is glyphs and robofont and fontforge. There are also people working on metafont and similar technologies, and web based versions which are still interfaces to data somewhere.

What is a typeface in the world of data?

What I see when I hit print? Is it what is seen on a web page? What is the typeface? Can you point at it and say, “this is it.” Which is truer to the forms? Is my intention in the font editor’s drawing environment the ‘real’ thing? When I scale it down and color-in the outline contour black, it looks different.

Having a good answer to this is important if you are trying to make a living making typefaces.

The growth of tools has another effect. Font making environments themselves become commodities, and that means their price trends to zero. We are not there yet, but in terms of investment in software, it is negligible for someone to start making fonts. Soon anyone can go to any internet cafe, open a browser, and start designing type. I think in a few years we will have reasonable web-based font editors.

Improving font editors impact the speed of type development. For many Fontlab was annoying and cumbersome, but the move to alternatives like Glyphs and Robofont has not improved the quality of type. What has changed? The speed of production, the speed designers can learn to become type designers. It is a distraction to talk about the tools themselves – what are the typefaces?

The marginal cost of a new font trends to zero, too. (That means, the cost of the next typeface is zero.) If you need to spend x days to make a new type, is that too much hassle for the revenue the type can generate for you? There will be someone somewhere who will design a typeface for a smaller fee, and they will do it. So will typefaces become valueless? But I am talking of typefaces in the most generic sense. A font file. Everyone has the means of production. to manufacture type, to generate font files.

That leaves me to think that if we look at the files we miss the point. The type isn’t to be judged by the files. We must look outside the type to make sense of them. Which are good and which are bad?
Information and quality… How do you evaluate quality? If one thing costs zero, and then another costs thousands of pounds? In the presence of something that is free, how do you justify a market of people charging a lot of money?

I love this font, I love these shapes. I would like them 3d printed so i could touch them!

So what we need to do is look at this separately, to look at it in the content of other things. To look at that font in relation to 8 others.

What was it intended for? There was a brief. It is not a piece of art, it serves a purpose, for a client – imagined or real – and made within a budget of time and money. There are documents intended for it to be used it in, and those inform its decisions. This is a typeface for continuous prose. This is interesting, this is normal, this is not good, and so on. Now I can judge a thing with references outside it, even if in my memory and not in front of me – and if so, even that that is a subjective and hazy process, as we all have different experiences and awareness of what is out there.

A typeface does not have enough information to explain itself. You can say the curves are well formed. It is easy to hit that mark. A typeface can only be evaluated in relation to a context that is external to the typeface.

There is a famous book, “Godel Escher Bach,” a book about A.I. that talks about the meaning of the self. The author Douglas Hofstadter worked with typefaces, and asked, “What are the patterns that people use to recognise letters?”

  1. Ownership and contribution change with the means of making, but our language and ideas span technologies

  2. Value of design is disembodied

  3. Evaluation relies on context

This car, who remembers it? This is Citroen in bed with Mazarati! They made a beautiful car, but it is totally useless. You must take a great deal of care of it, it is temperamental, all the things a car should not be. It is build for one thing: Gazing at it.

So if you want to make a text type, Minion is hard to beat. Then there are types like Cardea which are a bit individual, and then things like Capucine which are outliers. You can graph this in a cloud.

Trends. The dense core of this “context cloud” changes slowly over time. Normality in text type 40 years ago was serifed, but today my kids see sans as the normal. The smart designer tries to second guess this, and capture something that will be desirable in a year or two when their project reaches publication.

Genres. These change, as screen resolution changes and our ideas of what is comfortable to read changes.

Motivators. Things that are in a genre that make you aware there is something different, that motivates you to use it instead of something you already had. That something may not be as unusual as Capucine, but it will be something interesting. Types in this area often win competitions.

We can set objective criteria for well formed shapes, spaces and behaviours. You need to have a fair set of evaluation criteria in a university. I already have a deck on speakerdeck about this; pointers for type reviews.

When I sat at the ATypI Amsterdam Type Crit, reviewing Rui Abreu’s work ( I found this to be a stressful experience. At the University where I teach, people have weeks to get to know me, but an on-the-spot review with someone for the first time who does not know what I am like, or will think about or say, is a challenge.

This is the list of things in my mind:

  • fit of typeset text within the brief

  • key dimensions within a paragraph body. A poem needs lots of space. A dictionary is compact. So, ‘it depends’, on the context of use. What is regular? What is bold? How to decide? If you superimpose all regular fonts, there are the 2 strokes in an ‘n’ and the thickness of the stroke to its height, or the proportion of stem to counter – these are in a narrow range. The bold has similar constraints.

  • stroke thickness range. So the generation that grew up with super hinted screen fonts, have really heavy bolds, because regular was 1px in stem, and bold had 2px stem. Double! Because you didn’t have the resolution. Verdana bold is really extrabold or black. We had a silent agreement, that its not really bold, its what we need at at that time. And now screens are different and we wish for a semi bold Verdana.

  • stroke modulation

  • in/out stroke recipes

  • alignments in h and v axes. This is something you come back to again and again during the development of a typeface.

  • transitions between letter elements.

  • relating of inner and outer strokes

  • letter shapes within key patterns

  • integration of exceptions. There is one letter that sticks out. The galliard lowercase ‘g’. The f of bembo. You look at it and you think about this. Is this intentional? Done so i would notice it? Does the type say ‘look at me!’? The raygun fonts were doing this a lot. You make the reading process appear to the read, you had to try hard to read raygun. But when is the f arm to get long enough to give identity without catching the eye and distracting a reader. That is something a type designer can spend a lot of time on.

And now everything is global. How do we support this on a global scale?

As the collapse of the industry did away with us and eu centric industry, that have control of means of production, then you get people like kris sowersby who have an international impact from new zealand.

Verdana and Georgia embody Microsoft’s first moves away from print in 1996. They put a lot of money into moving reading from print to screen. They saw dial up modems and early web as being important medium of reading. A lot of effort was spent to make the rendering crisp.

The Cleartype collection in 2003 represented a bet in portable, flat screens. 8 years later, Microsoft put a lot of effort here too. Flat screens were becoming cheaper, we had these massive screens. You had a computer your dad bought, desks, towers, cables around the back. That stuff went away. It became cheaper, flat screens and then laptops led to mobile. The tablet had 3 attempts, and this was one of those failed attempts. Laptops with a screen that flipped and turned back on itself. The idea was portable computers. Microsoft found limits to how much people would read on screen before hitting the print button: If someone sent an article over 1,500 words they would print it. They knew you had to have type you could read on screen for long texts, and the subpixel rendering and the Cleartype collection was an important attempt to do do just that. The fonts were made for Windows Vista in 2003, but only shipped in 2007 – when Windows had a different Cleartype engine.

The idea of type given for free that would be …

Adobe Source Sans and Serif are notable examples in a very long line of fonts that set baselines. You need to enable people that work with texts. Before that there was Vera, Lato, and a lot of fonts made freely available by Google and other large companies or institutions with specific agendas. Brill made a font available freely for all academics, that has all the academic typography glyphs they need for their complex documents.

Businesses that are not type businesses are a critical enabler. People will always put money into new type.

Google is one participant in going global. I hear Google say, I want to make something that sets a base point, not to threaten anyone, and in the same way Verdana and Georgia transformed reading on-screen for the scripts they support, I want people to be able to read on-screen globally.

I’ve talked to people associated with Google about responding and supporting this initiative. I have 2 phases planned for it. I want people to understand the basics, publishing a list of things that people need to keep in mind when designing a typeface. So if they are in the middle of nowhere, in a village in India, and they discover they can make a type for their own script, then they can meet their need to know how to think about type in context.

Some things are general. How to set parameters for a typography brief, is another way of saying, what will this be used in? Here you have a text with levels of hierarchy, so you need type family variants for annotations, main text, captions. You may need different numbers for different contexts.

The web uses CSS to define visual design, and we need to map family styles to their CSS structures. There are 9 weights per family. This is interesting: How many things can you fit in to the 9? Do you really need all 9 weights for text? Is 9 different styles what typographers really need? Or is it 7, or 8, or 5? I don’t know. But CSS is out there and it says you can only reliably address up to 9 styles at a time.

A type designer can draw interpolatable ‘master’ styles, and spit out anything in between them as an ‘instance.’ Should the instances be equally spaced? Should they be based on the same recipe, with point parity?

For a typographer, the very light styles are used sparingly and in very large point sizes. The black may need to have another receipt because it is used for headings, and the regular has again other forms for long-form reading. So I think that the way CSS has 9 weights in a line is not an intelligent way of looking at this stuff.

How do you plan the weights? …

Are newspapers dying in Portugal? A broadsheet spread typically has 8 entry points to reading; 8 things a reader can choose to start reading. So there is a typographic hierarchy to match that. In tabloids or berliners which are smaller, there are 5. When you go to tablet size, you lose the space to have the objects themselves declare the hierarchy. All the articles look more similar. There is an external hierarchy; lists of things to pick from outside the page.

A newspaper on a tablet is using a sidebar for navigation which drives reading order. And on your phone, you can not see the list and the content at the same time. Its either/or. The designers are counting on the short term memory of their audience, and mine is about 3 seconds 😉

So, here are a set of problems. Changing the typographic environment, a changing environment for type making, and some ideas for things to link them. I think this is important because we have communities that do not share our livelihood and our interests, who make decisions that affect us.

There is now very good OpenType support in web browsers, and that will effect Google, Microsoft, Apple and their businesses and other businesses. You can open a web browser anywhere in the world and it will work with your writing system.

Wherever you are, the type you see should not offend you.

We have a simple scripts in the West. You can reliably spell-check all European languages. Typographers have well-established and widely understood rules for typesetting these scripts. But globally this is atypical. Many Eurasian communities have their script, that is connected, with regional variations, and its another world for their typographers.

Early typography machines were made by Europeans, for Europeans, and then later they were adapted to the scripts used by other communities. People wanted to sell things in Thailand, so they wanted Thai typewriters, and how do you fit a script into a typewriter when it has letters you can not fit into the physical restrictions of such a machine? Hot metal also had similar limits – the hot metal would cool before the entire matrix could be created, putting a physical limit on the size of the glyph set.

So what do you do when you have 350 letters and the engineer says that you could only have 250? How many Germans give up the umlaut (diaeresis), or Spanish give up the Ñ (eɲe/énye)? To simplify the script to accommodating the technology, well, maybe you can do it, but it is not ideal, and it would be better to respect the script. Yet the people who make those decisions are not aware of the importance of such issues. We always talk to communities that are not type designers or typographers.

What next?

That’s the easy part for me 😉 I have some suggestions.

Be perpetually curious. We are lucky to be in a world that is changing, with constant innovation. Type designers are actively engaged in making our world better. With better phones, they are making things that enabled someone who buys a smartphone in Africa to do microbanking with a better experience than traditional banking. Someone in this room may make the font that makes that possible. We go from the metal machines to a smartphone in africa doing banking, this is amazing progress. It is amazing to live in such a world. How can we move things along?

‘The next billion’ is a big phrase in business right now. There are about a billion people online today, and that’s a small part of humanity, and the next billion will join us soon. That matters. The young generation will grow up as professionals in this world. This is a privilege and a responsibility. You must be informed, to fight the curse of “design is making things pretty.” That aspect of design is just the top, the cherry on the cake; design is making things work well in context, then making them exciting and fun to use, and then making them look good doing it.

That’s your job to do.

Thank you.



Pedro Amado: thanks for that, was nice. I have 2 questions. Designing with a specific environment in mind. Frutiger made univers for the lumitype system. The drawing was motivated by that tech. Once emigres fonts were outliers …

Gerry: 2 things. Well, telephone directories are cost driven, if a typeface saves a line per a page, on 800 pages book, and then printing 100k books, that’s a valuable typeface. They are designed for a specific image setter. They design the dots the image setter places the ink. Its like verdana, designed by bitmaps, and then drawn to vectors, and then hinted to recreate the pixels. … I think depending on the project, you have type made for a platform, or not. Emigre’s types can be seen as design research and practice integrated. The confluence of the mac, of pagemaker, fontographer, and postscript, that allowed people to make things they could throw away for the first time. Type specimens look a certain way at that time, as they said, lets play. But quickly they released if you wanted people to read, you needed to respect conventions somewhat. They saw you could make type to look at and type to read with. They saw some type was only useful for some display usage. They could have no impact, or impact you could not anticipate. Emigre were questioning conventions. Its like your naughty cousin who does a terrible thing, then what you do wrong is not so bad. So after emigre we saw a wave of new humanist sans serif, and so syntax was odd at the time it came out but it became became very typical.

Pedro: what is next?

Gerry: Anyone can take my list, and I welcome all feedback. The idea that there is a black box in a teachers or a senior designers’ head? This is nonsense. There is a lack of language to express things we have in our head. We need to have words to say why we do certain things. We should not say, Oooo I like it, or Hmmm it is interesting, we should be able to say exactly why and how that is the case. I take part in competition juries, but without giving feedback about why x got a prize and y did not is a missed opportunity. It is a time commitment that is hard to make. Anyway, I want to put what I have so far online, for free, for anyone. I would like to see tools for comparison. Something i do when i go to web design conferences, is to take an on-screen rendering of text and superimpose an old manuscript. Too often web designers are like ‘wow, we changed everything,’ but no, this comparison shows they didn’t, the rhythm and darkness of text is the same as ever. Then, if you are a beginner, and you can upload your font and compare it, that will help. I think I speak from a position of privilege, as I am paid to work for a year with 15 people who are really motivated to learn type. Anyone is lucky if they can spend a year doing what they like. But ought it to be that or nothing? It would be like aristocrats and peasants. No, I want this stuff online so people can do as much as possible. I can not give you all the things, but I can make good pictures of them, and that can be online. That is the plan. The point is to work myself out of a business by the time I retire.

Q: thank you Gerry for a full hour, it was not exhausting, it was very nice. Again, isn’t there a trap for us all designers and people working on this area to take or confuse popularity with quality? Sometimes things are popular and all a sudden the quality standard first determined or granted by experts and expertise, with self publishing means, became more irrelevant with popularity. Ranking on downloads or true designs.

Gerry: Take good fonts, they are notable for attracting attention by people because they are good quality. Say that someone puts online, for free, a good text typeface. Good enough. Not fabulous, just good enough. So, in the communities that use such fonts, those people who do not see typography as core, they see a need that is high enough that say Merriwether is good enough for them. A commercial type designer might say, “ah, there is a need for a typeface like this!” and make something even better. Perhaps the sales or usage data of distributors can show that the world needs type of a certain kind. What is good enough? I will not spend 800 euros on a typeface. I will spend 150, as I will get enough value for it. A type library subscription for 10 euros? This is beer money for me. Where there are collections of type without the friction of cost, I think they can show where the bigs trends and demands will go. The user community of such collections is not restricted by quality concerns, and they may not know how to determine quality. There are more and more ways to learn about it, though. Also, popularity in the type world is not the same as popularity in the graphic design world. So graduates of a course may pat each other’s backs, but the market can be fickle. I can think of popular type which is popular not because of its design features. I bet that any low contrast slab serif that looked okay small and big, could be as popular with the same marketing and positioning. So, there is a shift in what people expect to see, and as people realise they can choose the type they use, they will learn and change their choices. What is quality? Typographica’s list of popular fonts is not the same of what is popular in the real world. What is used in the streets?

Q: Gotham!

Q: Neo Sans was very popular in Portugal.

Dave Crossland: Lobster!

Gerry: Dino is still here? Ah, well. When a political party needs to rebrand, what do they do? Or what about banks. All the banks rebranded in the last few years with softer typefaces. They had serious fonts before, and now its all italics and nice ‘we are friendly, so, give us your money.’ You know, there’s someone at the brand agency who went to school with the type designer, and they say, a new typeface is 80,000 euros, and its 30,000 for a custom version of a retail type, so the bank says, we stole a lot of money but not that much, we’ll take the 30k one thanks, and then it is seen everywhere, and retail sales pick up. Here is a semi fictional example. Who remembers Heathrow airport signage? They did once have a typeface for the signage system. It was Bembo Bold in black on yellow. No one would pass a project at undergraduate level with such a choice! But you surely knew you were in Heathrow when you landed because of that. Then the companies changed, one company came to own all airports, and maybe they looked at a custom typeface to get away from Frutiger that all airports use… but that cost for a custom type had not earlier been made a separate line item in the budget: when the project was imagined, no one thought ahead about the need for a custom typeface. The 100,000 euros that it would cost is peanuts in the cost of an airport. They said, oops we just cant do it, so we’ll just license frutiger, just like everyone else. Now Heathrow uses Frutiger. And was a business decision, not a design decision. Monotype have put on a branding event for london agencies to discuss this recently. The largest problems with any brand roll out are font related. The brand managers know the least about it. They budget the least time for it. They think, ‘fonts just work,’ but then they don’t work. And then they have to go back and fix the fonts expensively. Its common.

Yves Peters: Brussels airport is using a fontfont design for their branding. I will ask them about why they chose that font.

Gerry: yes, what is Brussels? Just another city? Or something meaningful? The Belgians have a dual language requirement in the same script. A country in the middle east got a FIFA championship, they build airports for it. 6 regional airports, 1 international, and all the rail and bus systems. This went to london agencies. Architects, agencies, sign firms. That means signs in English and Arabic, left to right and right to left. How to balance the scripts? How to present the hierarchy, airside and landside? The symbols? All need to localised. If you have a growing sense of pride and joining the international community of nations that host world class events, do you want your signs looking the same of everyone else? Or something that shows the growing maturity and identidy of the region? The brief says,”Not Frutiger!” People arriving need to find their way, the arrows, the symbols must look different too.

Q: Do the people making a new airport really understand that type can make a difference?

Gerry: Any parent who buys books for their kids, you see type with a single story a and g, and you feel better about buying the kid version of the book. It may be in Georgia or Plantin but with a single story a. The people making the decisions are not the kids. They are the parents. We know from research that kids can read both forms just as well; kids know that there are letters for learning to write with and to read with. The kids do not care about the single story form. But the buyers, the parents, do care, because it signifies that they thought about their kids’ needs. Also, typefaces that are made for dyslexics. Its proven not to be the case that these have a lot of impact. But if I stand here and say, I am very smart – which is impossible to verify – and I say it makes a difference, then the onus is on you to disprove me. The book with the a and g makes no difference to the child, and paying attention to the illustrations is much more important – are they nouns, adjectives, or verbs? Verbs are hard to illustrate. Tom has a house. Fine. Tom likes his house. Hard. But that is too much information for an average parent to know.

Q: It is needed for education, to show people that good typefaces are important

Gerry: I think we will find typefaces are not as important as we think. If the language of a blog is not good, you tune out. Even if the typography is great. Or if you apply the Guardian’s typography to The Sun’s content, it will not be more readable. So if we keep close to the …

CraftingType workshopsHow much do type designers earn?

Thomas Phinney explains on Quora:

Follow him there, as he’s always active answering questions about type and typography!