 Well, this is about the second time I'm in LGM. The first time I came here, I actually talked about it six years ago. I talked about GoScoop 9. I actually looked at that talk and there's probably embarrassed about it. But when I came six years ago, I talked about GoScoop 9. I told you two things, which is the color management. They are trying to do accurate colors and also switch over the font backhand from 3 type 1 to 3 type 2. So actually I didn't do either of those, but I could talk about 3 type 2 as a developer. So that's one thing you need to know about me. And the second thing you need to know about me from GoScoop 9 is that I actually make the Windows installer for GoScoop 9. So I would work with proprietary technology if I want to, if I have to. So that's all you need to know. David Crossman is not here. I was hoping to get him to fill in with some of the details between his negotiation of Google and Microsoft to liberate the Microsoft font data for the open source world. They were talking about having some of that source commit available to be rewritten into Python to enhance font tool. But then I told them, well, you know, C-Sharp and Mono actually can deal with .NET executables. And actually in the open source world, could you try sort of using Mono C-Sharp instead and actually make that code available to open source world quicker? So I told them that and they said, well, here you are, here's your project now. So that's the background. Now, that is actually the font validator as a tool for testing font power to release. It was initially developed by Microsoft for the QA process. The last public release was actually in 2003. They have made some internal updates in 2009. In 2015, in November, it was put onto source for under MIT license, well, in GitHub under MIT license. Most of the developments now are sort of happening in my fault. So what does it do? It actually sort of analyzes open type font for quality analysis. Look at all the tables and perform about 170 tests for the 2003 version. And the internal version actually went up to 2009. But when they opened it up, about five of those didn't work because they wanted to keep up some of the technology. The current state, as of last month, added about the support for some of the latest tables in the latest application. So the number table has gone up, and the number test has gone up as well. Just when I took it up, took up the project, I actually ran the old binary against all the fonts on window eight just to get a feeling of the application. The worst performing, the worst form is actually Caillou, which takes about seven hours to run. Most of the forms will actually take about under 20 minutes. Some of them actually go up, go to eight hours. Now, most of the analysis actually is performed on the glyph table and rasterization. I'm going to talk about rasterization a little bit later, which is to do with hinting. It takes about 900 errors among all the tables. 20 of those is on the glyph data, the actual glyph of the form, and 80 of those is on rasterization. A typical glyph error would be where the contour comes to itself. So let's call a cell intersecting contour, and a typical error for rasterization would be rasterization and hinting. That's where they move the contour slightly for a particular resolution so that it becomes easier to read. So the movement, the direction of movement is called the freedom vector, and the direction where you calculate how much to move is called the projection vector. Now, if those two are perpendicular, that means you're not moving, so that means there's something wrong with the rasterization. So whatever error you could get for rasterization. Anyway, some timing. Most of the forms would finish within 20 minutes. Most of the very difficult to analysis forms is actually CJK forms, which goes all the way up to 7 hours. It might increase further if we actually do testing on black and white rays and to rendering on pixel rendering. So what it's made of is originally written in C sharp and developed on Visual Studio. What's actually opened is actually about 18 months of work at 200 lines per day. I sort of calculated how much work they actually give out to the open source world as an estimate. There are a couple of non-open, non-portable parts because it actually uses, say, the file dialogue of the OS itself rather than using the perform independent implementation. So that needed to be rewritten. So the proprietary parts were not released. They rendered in backhand the XML viewer and also something to do with security was checking the digital signature in the form itself. And because Microsoft being Microsoft, they didn't, they just supported mainly the true type technology. So they did not support Adobe compact form format. Since I took it up, I have adjusted the build system to build under Mono and with GNU make and most of all the non-portable parts were written out, finished. The proprietary parts are being gradually replaced. The render is actually being replaced with free type. The XML viewer has been rewritten in a perform independent manner actually hooked into a webkit where a webkit is available and the digital signature has been competing, rewritten to use the Mono security framework. And it also supports Adobe compact form format. Now there are other similar softwares which does similar things. Of course there's Apple form tools which is highly integrated with their type surface. There's also the Adobe form development kit and also the form tool. A lot of related technologies are the rendering engine and auto-hinting and form editors. Now I hope we don't want to talk about that much. Now this is just a screenshot of how that particular car euphon look like. At different resolutions you can see that it's actually not very nice at low resolution, not very visible. Further examples. This is what a sub-glip which is shared between different clips. This is actually the word symbol in Chinese. Now form-hinting is actually moving some of the mathematical, using mathematical instructions to change in our lives so that it would look better at low resolution. To get best results you would use hand-hinting and better bitmaps within the form. Some of it succeeds in the rendering engine so you get used anti-aliasing and picture rendering. Now this is actually my name. It's actually a lot of strokes. It's already 1 pixel at 40 pixel grid. Now the griff test actually tests contours whether it is misoriented. Contours should actually go round in clockwise directions and whether they're intersecting, whether they're wrapped around itself, duplicated, generated, actually overlap each other. Composite gift components. Also the form test actually tests for duplications of all these elements. It's further screenshots of my name and I line my name up. Now this is an actual hinting. How does the hinting actually change the outline? Actually a lot of thin strokes get thickened. A lot of the corners get lined up with the grid and some of the features get moved out like that to make it more visible. So the visualization test actually tests for some of the mathematical areas and also the programming construct of how to move the curves around. So I'm just trying to explain why it takes so long for seven hours to analyze a form. Another bitmap is another thing that is sometimes moving to a form that makes it easier to look at. I'm going to skip over this. Look at it. The form value is in action. This is the interface. You open it and then start looking at the report options. You could choose where to save the report afterwards but the form is actually to display on the XML viewer panel but that actually is not quite working on Linux yet. So most people should want to save it in a location to view afterwards. Adding forms, you could test multiple forms and add all of them in one go. Select different tables for testing. Scroll down. The options for rasterization whether you want to test for all of the black and white rendering gray, clear scale, or just one of them. Now that's actually one result so you can actually choose to only see information, warnings, or errors. Here's the message scrolling down so you pass all the tests. There's a warning. There's some information you could see. Well, this is a multiple test so you could test a rile and time together but XML report itself. Now this is how it looks about a couple of weeks ago on Fedora. So it's the same interface, the same health file except the XML viewer is a bit buggy. You don't see any colors or formatting. It's just all the tests run into it. By the way, this is actually done with WebKit C sharp as well. So it's the bridge between mono and WebKit which is not working rather than either of those. So just more screen shots. I actually make it run on macOS and bundle enough of mono together because in the macOS world people tend to come don't like installing extra software just for dependency. So I actually make a bundle for macOS users. Come and help file for audio messages. History timelines. Microsoft actually produced the OpenType stack and submitted to the ISO committee so that's the first version of the form data data that basically coincides with that timeline. The second update of the ISO specifications coincides with the internal update. Last year there was a massive update of the ISO specification so that's sort of prompted the whole development. I already told you about most of that so I don't need to go further. Well, a bit of history I was hoping to get Dave to tell us about the background. They started talking about it on free type and then gave me the code after I signed an NGV because Microsoft doesn't want to release a new token. I got the signed an NDA got the first code bundle sort of five days later I sent it back, make it buildable three days later and meanwhile working on it continuously so that they could get a review going and three months later they put it onto GitHub and I pushed my watch onto GitHub and the rest is history. So, now I've mentioned most of my enhancements already there's something ongoing make it run on Macintosh Linux replace the back end support Adobe form format replace the proprietary parts and support a lot of new tables that's in the latest open types of specification also support an upcoming table so there are some ongoing external work that need to be done to enable all that task to keep going when I looked at that list actually most of the new table added was color forms so those are color bitmaps color bitmaps something something color, color payload, SPG five of the six new tables added in the latest specification is actually all to do with colors bitmaps or scalable, better forms so these are just screenshots of various examples that I grabbed from the internet of the latest use of it I'm not going to talk about the lesson I'm running out of time just going to the last thing yes, that's very important Dave gave me this idea that I should ask for people of course supporting my work so I started asking for people about it so just a lot of people saying nice things about the project obviously so I'm just going to finish the top with this crazy awesome from David a lot of those oh no, that one yes, three comments from David I loved it, crazy awesome this is super great