Font Validator 2.0 arrived.

A few people had said that I should give it numbered versions over the course of last year. I have always thought that when I have finished filling in all the parts that Microsoft did not release, and all the non-portable parts that do not run on non-windows, I will bump the version up (from 1.0.x, the last public binary from Microsoft dated back in 2003, and the incomplete "1.1.x" code base last updated around 2009 on which the open-source release is based on). Some months ago my idea was to call it v1.2 - now I think the enhancement is large enough to call it 2.0.  At least one person had said I should gpg-signed things. So I have signed, tagged 2.0 [3] and uploaded 2.0 binaries, both dotnet/mono binary (-bin.zip) and mac os binary (dmg) up at  [1].

A couple of weeks ago, the beginning of the rasterisation test landed; it went on a lot further, quite quickly because of comparing the test results from ~5000 fonts with 1.0. At this point, I can honestly tell people "this is the version most should use, instead of the old one", so it is called "2.0".

Almost a year on, the enhancement is certainly large enough to give it a major new version:

- 1.x runs only on windows. There were quite a few non-portable parts, and two major components which Microsoft kept proprietary and did not release - the digital signature verification and rasterization. 2.0 now runs fully functional on Linux, even GUI-wise, compared to windows. GUI on Mac OS X is still missing a webkit framework bridge for the built-in XML report viewer, and offers the same core font testing functionality, just requiring opening the reports separately after font testing. Georg Seifert had made a nice native Mac X GUI wrapper around the command line tool.

- the command line tool, together with the embedded python interpreter, allows one to do serious bulk batch testing - considering that I used it to run against 5000 fonts. (in the other thread I posted). It was also because I had that bulk testing and comparison in mind that I added the python interpreter. The scripting engine is also used for running a few demo scripts, the most useful being the ttc splitter/joiner pair.

- there have been many bug fixes, the long overdue support for CFF table validation, misc updates to current specs, support for new tables esp. SVG; some of it still on-going.

There are still plenty to do - there are 23 issues upstream now [4] and 7 filed in mine [5] . While participation from Microsoft folks had been non-existent, I am eternally hopeful. People should continue to file issues "upstream" at [4], unless it is specifically regarding codes I wrote.

The sourceforge download meter consistently shows downloads from Mac users much higher than windows users, so improving functionality on Mac (or making a port!) is a task that Microsoft probably should have done a long time ago, and will continue to be a priority; not-upstreaming (and not risking breaking the display on Linux!) enhancement to FreeType allows one to concentrate to give it extra diagnostic ability, and could do with some love to push the enhancement upstream.

dotnet/mono binary (-bin.zip) and mac os binary (dmg) up at [1], and please do make a donation [2] if you find this useful; and if you use it for work, please consider asking your employers to do one. Code up at [3].


[1] https://sourceforge.net/projects/hp-pxl-jetready/files/Microsoft%20Font%20Validator/

[2] https://sourceforge.net/p/hp-pxl-jetready/donate/

[3] https://github.com/HinTak/Font-Validator

[4] https://github.com/Microsoft/Font-Validator/issues

[5] https://github.com/HinTak/Font-Validator/issues



Comments

  • James Puckett
    James Puckett Posts: 1,997
    Please organize your SourceForge binaries and make the file names easier to understand. Remember, font designers are not software developers and are likely to have trouble understanding that “FontVal-2.0.0-py-bin-net4.zip” is the Windows executable. “FontVal-2.0-ForWindows.zip” would be better. Also, please hide all the source and old versions in subdirectories.
  • Hin-Tak Leung
    Hin-Tak Leung Posts: 363
    edited August 2016
    Okay. Thanks for letting me know. I'll remove/move some of the old stuff soon. It was meant to be temporary but then microsoft folks never participated...

    FWIW, much of the technology behind the revived release came from a few large-scale national/international biomedical/public healthcare projects on genetics of common illnesses. This reminds me of some medical statisticians who says they are not programmers and therefore they have no need of understanding how to manipulate national/international-scale genomic data either :( . Scary thought...

    And "font validator" is broadly speaking, digital healthcare...
  • Hin-Tak Leung
    Hin-Tak Leung Posts: 363
    edited August 2016
    I have moved all the old stuff into "old". The top level is now just 10 files, the 5 digital signatures, plus dmg for mac, net2-bin for old computers, net4-py-bin for current computers, and the sources for those two (dmg was made from net4-py).

    The provision of digital signatures was a suggestion from somebody else, so I won't move them, though they might be confusing to people who are less paranoid about computer security, etc.

    Incidentally today is a special-ish day: exactly a year ago (time-zone argument aside, US vs UK), I received the raw-material code bundle from Microsoft which was to be fixed up, to be publicly released a few months later.

    So I have also saved the download statistics before they get reset when I moved the old files. Mac users consistently out-number windows users over all by 2:1, though in US, it is more like 5:4, but still the majority.

    Linux is very much in the minority - I suspect almost all of the downloads from a Linux box was me!


  • As a Linux user, I greatly appreciate your efforts in properly open-sourcing the Font Validator. Though I work with fonts out of curiosity and not as a profession, it is a welcome addition to my toolchain.
     
    Note that I directly use the Git repository. I wouldn't be surprised if other Linux users are more likely to do the same, so the SourceForge download counter might be slightly skewed.
  • I don't work with fonts as a profession either :-). My interests (or perhaps, grief...) with fonts comes just from my being a CJK person studying, then living and working in a non-CJK country... I don't design fonts, just suffer from them...

    It may sound like a joke, out of "merely" trying to print my own address book some20+ years ago, I touched almost every part from editing, displaying, typesetting, then delivering the bits and bytes through the USB channels in the linux kernel and down to driving the printer. Should get a hobby instead...
  • attar
    attar Posts: 209
    > Should get a hobby instead...

    It's a great hobby IMHO. One that serves many people.
  • Tobias Kvant
    Tobias Kvant Posts: 20
    edited October 2016
    I tried opening an .otf-file, and FontValidator crashed, terminal window saying: 

    Thank you.

    IMPORTANT!

    logout

    Saving session...

    ...copying shared history...

    ...saving history...truncating history files...

    ...completed.


    [Process completed]


    Am I doing something wrong?

    Mac OS El Capitan


  • Tobias Kvant
    Tobias Kvant Posts: 20
    edited October 2016
    No report was created either.
  • There should be a file left behind in /tmp called FontVal-??? .
  • There is no directory by that name in the FV folder, and no temp-file..
  • /tmp or /var/tmp is a system directory. The system directory is wiped on reboot, so you will need to rerun if you had rebooted your machine since the failure.
  • If it also fails with the windows version or on Yosemite/mavericks, consider filing under with a test file:
    https://github.com/HinTak/Font-Validator/issues

    There is currently another issue which I cannot reproduce, which may or may not be related :

    https://github.com/HinTak/Font-Validator/issues/19
  • Thanks for this tool, I am using it to check my library https://github.com/kuribas/haskell-opentype.  I have a question, Font-Validator gives errors when glyph components overlap.  However the opentype spec says: . "Use of this flag is not required in OpenType — that is, it is valid to have components overlap without having this flag set. It may affect behaviors in some platforms, however."  Which one is right, the spec or Font-Validator?

  • Hin-Tak Leung
    Hin-Tak Leung Posts: 363
    edited November 2016
     which flag and what errors it says? that "it affects some platform" probably means the issue deserves a warning.

    Some of FV's design is Microsoft's idiosyncrasies or historical, of course.
  • You're right, it's a warning (W1110). Should new font software allow overlapping components, or try to merge them in a single glyph?
  • The Microsoft recommendation is quite clear:

    https://github.com/HinTak/Font-Validator/blob/master/NewHelp/W1110.htm

    (this is part of the source to the chm file)
    I haven't touched this part of the code and it is entirely microsoft's decision/design, and entirely their wording, etc.
  • Right, thanks!
  • The CHM file is indexed and searchable by error/warning code, by the way, and there is an illustration diagram there also.