-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathRamblings.txt
154 lines (94 loc) · 5.81 KB
/
Ramblings.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
introduce yourself
Hello I'm Mirko Velimirovic
Welcome to
The Great Fontbakery show
before we start I just want to introduce people to a few resources that are useful
The Missing Semester;
https://missing.csail.mit.edu/
Ramble about missing semester
Another note, I'm going to be running most of this on the command line. It's worth it to get acquainted with how to use your computer's shell.
I'm running ZSH
it's a shell like Bash but with some decoration and text completion. I've also kitted it out with oh my zsh which indicates (in this configuration) which branch I'm on in the git repo I'm working on.
What is fb?
Fontbakery is Font QA software that can be run on the command line or on the fontbakery dashboard. https://fontbakery.graphicore.de/
Fonts are complicated and as such can become tedious to check thoroughly. Imagine you've just drawn your superfamily of 81 styles and now it's clipping in legacy Microsoft Office programs from before 2013. Why? Maybe you need a DSIG table, but that wasn't on the menu of things to think about when you made your masterpiece. Fontbakery will check for you.
Fontbakery is part of a development cycle. As type designers we don't like to think of our fonts as software. They're art or they're a tool or they're some other abstract thing. The problem is (all theory aside) in practical terms fonts are software. we need to be able to test them as software. Font Development is Software development.
I'm going to show you the complicated way to manage font development with a qa tool using git. You can also just use the fontbakery dashboard site, if all of this is a bit too technical, but where's the fun in that?
https://fontbakery.graphicore.de/
point everyone to the repository.
https://github.com/bghryct/TheGreatFontbakeryShow
Introduce people to the tools
Pip https://pip.pypa.io/en/stable/installing/
Python https://www.python.org/downloads/
Venv https://docs.python.org/3/library/venv.html
fontbakery https://github.com/googlefonts/fontbakery
macdown https://macdown.uranusjr.com/
I use macdown to read FB reports it's a nice clean way to look at them
so send these to everyone beforehand
QA stands for Quality Assurance
In this workshop I'm going to show you how to use fontbakery on the command line as part of a git version controlled font build. We're going to be building Jost, which is a nifty paul renner inspired variable font designed by my friend Owen Earl of indestructible type insert link to indestructible and mastered by me. The font is available on google fonts.
We won't be building the exact Google build because it's been tested to the moon and back, Instead we'll be building and testing an earlier version that has problems. Because the whole point of showing off QA software is to show how it can help you identify problems, and then how to fix them.
install python3
https://www.python.org/downloads/
Ok cool, let's get into it. We're going to speedily install everythin in our venv. I'm going to assume you've got python installed. Maybe make people install python before the workshop. (email everyone)
we're going to install a virtual environment.
this will keep all of our tooling separate from system installs of python.
You're creating a safe environment/ sandbox to play with code.
python3 -m venv venv
we're going to want to add the folder venv/ to our .gitignore so that we don't go uploading all of our tools to what should be a clean repo.
for more on writing .gitignore look here.
https://git-scm.com/docs/gitignore
now we're going to activate our virtual environment:
source venv/bin/activate
KEYCASTr
we're going to check what pip has installed for us in the venv
pip list
if you get a message saying pip isn't up to date
pip install --upgrade pip
won't hurt to do this regardless
now we'll install fontbakery
pip install fontbakery
we'll check that it's installed with
pip list
cool, now we'll install fontmake
pip install fontmake
pip list
now we'll install gftools
pip install gftools
pip list
(to see if we've got everything)
alternatively you can just type
gftools
now I'm going to build a font from source,
so I'm going to navigate to the source folder,
I'm going vim build.sh
this will let us look at the build script I've written for this font.
you could always open it in a text editor of your choice but vim is useful and it's right in the terminal.
ok cool loooking at this build script it looks like it's going to build from the file source/jost.glyphs and it's going to be variable and the instance point coordinates will be rounded and the output path is going in the file source/vf/ as jost[slnt,wght].ttf
it also looks like it's running fontbakery at the end. Let's look at what that command means.
fontbakery check-googlefonts ./source/vf/*.ttf --dark-theme --ghmarkdown jost_problems.md
cool ok let's run this build
quit vim by typing
esc
:q
now run the build script by typing
./build.sh
if this doesn't work you may have to give yourself permission (funny I know it's your computer)
chmod +x build.sh
Now we have a fontbakery report generated in markdown that we can read. I'm on a mac and I like to read these reports on macdown.
open jost_problems.md
ok a few issues. Some of these are easy to fix with the gftools we downloaded. Let's see what happens when we re-implement them in our build.sh.
open your build.sh and uncomment out lines
22-39
now save it.
and run the build script again.
you should be seeing less fails,
now open up the md file again. Wow if everything worked correctly there should be fewer fails.
to end your venv fun simply type
deactivate
to start again
source venv/bin/activate
Talk about the duplicate fix. Open glyphs and fix, if there's time;
talk about the gftools fixes if time;
show how to use dashboard if time;
Thanks for attending my workshop everyone. And thank you TypeWknd for putting on an amazing conference.