http://tsukurimashou.sourceforge.jp/ Tsukurimashou: a Japanese-language font meta-family 『作りましょう』 日本語のフォントのメタファミリー Matthew Skala, University of Manitoba * マッシュ ・ スカラ マニトバ大学 *
httptsukurimashousourceforgejp
Tsukurimashou a Japanese-languagefont meta-family
『作りましょう』日本語のフォントのメタファミリー
Matthew Skala University of Manitoba
マッシュ スカラ マニトバ大学
httptsukurimashousourceforgejp
Outline
988979 Japanese is easy
988979 Japanese is impossible
988979 Tsukurimashou
988979 Character databases
❹ ❸ ❷ ❶漢 作 日 日 目字 り 本 本 次の ま 語 語デ し は が
ー ょ で やタ う き さベ な し
ー い いス
httptsukurimashousourceforgejp
語
U+8A9E
goldquolanguagerdquo
言
U+8A00i
ldquospeakrdquo
吾
U+543Eware
ldquomyselfrdquo
五
U+4E94go
ldquofiverdquo
口
U+53E3kuchildquomouthrdquo
語rarr言五口
httptsukurimashousourceforgejp
永
永字八法The Eight Strokes of Eternity
① strange stone
② jade table
③ iron pillar
④ crabrsquos pincer
⑤ tigerrsquos tooth
⑥ rhinocerosrsquos horn
⑦ bird pecking
⑧ golden knife
httptsukurimashousourceforgejp
l
作りましょうLetrsquos make something
永字八法8 strokes
50字の部首かな50 components
I guess
水亠口小Unicode IDS
METAFONT
涼
涼
涼
涼
a
任せsomebody elsersquos problem
httptsukurimashousourceforgejp
三十路漢字 Kanji of Thirty Years
1980年 LCCD (Mei)
1982年 1986年 Letter Spirit etc (Hofstadter Metamagical Themas)
1984年 Chinese Metafont (Hobby amp Guoan TUGboat 52)
1989年 Quixote Oriental Fonts (Hosek TUGboat 104)
1990年 Poor Manrsquos ChineseJapanese (Ridgeway)
1991年 JemTEX (Jalbert)
1993年 Wadalab (TouDai)
1997年 2003年 HanGlyph (Yiu amp Wong TUGboat 241)
2005年 Hoacuteng Zigrave (Laguna TUGboat 262)
2011年 Character Description Language (Wenlin Institute commercial)
2012年 Adjustable Fonts (Type Project commercial)
ヌリカベに注意
BEWARE THE NURIKABE
httptsukurimashousourceforgejp
林
U+6797hayashildquoforestrdquo
木
U+6728ki
ldquotreerdquo
木
U+6728ki
ldquotreerdquo
林 林 林
ちがうdifferent
ちがうdifferent
同じsame
同じsame
林rarr木木
httptsukurimashousourceforgejp
涼
U+6DBCryou
ldquocool breezerdquo
水
U+6C34omizuldquowaterrdquo
京
U+4EACkyou
ldquocapitalrdquo
亠
U+4EA0keisankanmuri[that shape]
口
U+53E3kuchildquomouthrdquo
小
U+5C0Fshouldquosmallrdquo
何これWTF
辞書ではないnot in dictionary
ちがうdifferent
ちがうdifferent
Unicodeではないnot in Unicode
涼rarr水亠口小
ダメだよ no good
httptsukurimashousourceforgejp
観
outlook
見 see
目
eye
儿
legs
矢
arrow
隹
old bird
大変
big trouble
観rarr矢隹目儿
httptsukurimashousourceforgejp
Appearance overetymology
語源より観
Sometimes exceptionsare necessary
ときどき特例が必要
Every characterrequires humanintervention
毎字は 人間介入が必要
httptsukurimashousourceforgejp
kanji 5000 漢字LOCkanji 65 1漢字につきLOC
LOC 325000 LOCLOCday 10 1日につきLOC
days 32500 日working daysyear 250 1年につき仕事の日
years 130 年
yがんばって下さいPlease work hard
Starting is O(1) Finishing is O(n)最初はO(1) 最後がO(n)
httptsukurimashousourceforgejp
325000 LOC
j
ウィキを使おうっWersquoll use a Wiki mdash
f
なんでやねんYa gotta be kidding
httptsukurimashousourceforgejp
フォントfont
ソフトウェアsoftware
httptsukurimashousourceforgejp
フォントfont
ソフトウェアsoftware
バージョン管理version control
チケットのシステムticket system
多態性polymorphism
ビルドのシステムbuild system
単体テストunit tests
GPL
エンカプセレーションencapsulation
httptsukurimashousourceforgejp
Tsukurimashou 作りましょう
Font family for EnglishJapanese and Korean
日本語と英語とハングルのフォントファミリ
GPLv3 open source GPLv3のオープンソース
one developer working sincelate 2010 2010年から一人で書いて
now 〜100000 LOC 今〜十万LOC
now 〜1500 kanji 今〜1500字の漢字
paramaterization stroke styleshape boldness serifs spacing
パラメタ方式は画の形字形太字度うろこ スペーシング
httptsukurimashousourceforgejp
httptsukurimashousourceforgejp
httptsukurimashousourceforgejp
源
Kaku 角
源
Maru 丸
源Bokukko 僕女
源
Mincho 明朝
物物物物物物Tsukurimashou Kaku Tsukurimashou Kaku PSTsukurimashou Mincho Tsukurimashou Mincho PS
TsuIta Atama TsuIta Atama PSTsuIta Soku TsuIta Soku PS
httptsukurimashousourceforgejp
位相のパラメタ Topological parameterization
さ
mincho=00
さmincho=10
00
Kaku 角
Maru 丸
03
Bokukko 僕女
10
Mincho 明朝
httptsukurimashousourceforgejp
Metapost
MetaType1
obstack
作りましょう
EPS and
proof files
Perl
MT1 port
Type 1
FontForge
scripts
kerner
OTF
TikZ
X ELATEX
GNU Make
Autotools
build
Hamlog
httptsukurimashousourceforgejp
観vardef kanjigrfouroutlook =push_pbox_toexpand(kanjigrfouroutlook)build_kanjilevel(build_kanjilr(46050)(build_kanjitb(470190)(kanjigrtwoarrowreplace_strokep(-1)(oldp shifted (-600))obstacktype[find_whatever(otstroke0)]=otnull)
(kanjiradicalold_birdobstacktype[find_whatever(otstroke-7)]=otnullreplace_strokep(-6)(point 0 of oldp+(015)--point 1 of oldp)replace_strokep(-4)(point 0 of oldp+(300)--point 1 of oldp)))
(kanjigronesee))expand_pbox
enddef kanmi outlookbegintsuglyph(uni89B3179)kanjigrfouroutlooktsu_render
endtsuglyph
httptsukurimashousourceforgejp
鬱鬱kanjigreightgloom
kanjileftradwood
kanjigreighttin_can
kanjigrtwonoon
kanjigronewood
kanjiradicalconservative_hat
kanjirarespiced_liqueur
kanjiradicalspoon
kanjirightradshort_hair
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
3
3
5
5
14
14
26
26 26 26 26
27
27
1
1
2
2
3
3
4
4
4
4
4
5
5
5
6
6
6
7
7
8
8
8
9
9
10
10
11
11
12
12
13
13
14
14
15
15
15
16
16
16
16
16
16
16
16
16
16
17
17
17
18
18
18
19
19
19
20
20
20
21
21
21
22
22
22
23
23
24
24
25
25
26
2626
26
26
26
26
26
26
26
26
26
26
27
27
27
27
28
28
28
28
29
29
29
29
30
30
30
30
httptsukurimashousourceforgejp
Korean hangul ハングル語
L
V
T
L
V
T
L
V
T
L
V
L
V
L
V
지읍시다 바탕 한글
httptsukurimashousourceforgejp
Parasite packages 寄生パッケージ
IDSgrep
OCR A OCR BGenJiMon
Beikaitorukleknev
httptsukurimashousourceforgejp
何の漢字は『木』が左側にあるWhich kanji have 木 on the left札朽材村松板林柱校根植楾様横橋相
何漢字は『俺』の右側を持つかWhat contains the right side of 俺
俺奄庵淹菴閹
何漢字は『目』があるでも『首』とか『貝』とかないかWhat contains 目 but nothing like 首 or 貝
想目相県箱
『萌』の符号位置が何
Whatrsquos the code point for 萌
U+840C
z
grepを使ってがいいですか
Canrsquot we just use grep
httptsukurimashousourceforgejp
何の漢字は『木』が左側にあるWhich kanji have 木 on the left札朽材村松板林柱校根植楾様横橋相
idsgrep -d [lr]木
何漢字は『俺』の右側を持つかWhat contains the right side of 俺
俺奄庵淹菴閹
idsgrep -d 俺idsgrep -d 奄
何漢字は『目』があるでも『首』とか『貝』とかないかWhat contains 目 but nothing like 首 or 貝
想目相県箱
idsgrep -damp目[tb]目
『萌』の符号位置が何
Whatrsquos the code point for 萌
U+840C
idsgrep -Ux 萌
httptsukurimashousourceforgejp
態
能
厶
匕
匕
心
[amp]
(心)
[tb]
(匕)
(匕)
【態】lt能gt厶匕匕心
idsgrep -d amp心[tb]匕匕
httptsukurimashousourceforgejp
Character databases 漢字のデータベース
CHISEMorioka 2001年
KanjiVGApel 2009年
TsukurimashouSkala 2012年
CJKGrid
httptsukurimashousourceforgejp
What language(s) 何語か
Who are the users rarrEtymology or appearance
ユーザは誰かrarr語源と観はどちらがいいか
Data quality データの品質
l
聞くありがとうThank you for your attention
The Tsukurimashou Projecthttptsukurimashousourceforgejp
『作りましょう』のプロジェクト
Matthew Skala マッシュ スカラmskalaansuzsookebcca
These slides were typeset using X ELATEX TikZ a selection of fonts from the Tsukurimashou Project and Azudings 1 by
Vic Fieger Osakan pig photo by Matthew Skala 2011 Nurikabe painting by Kanou Tourin 1802 public domain
httptsukurimashousourceforgejp
Outline
988979 Japanese is easy
988979 Japanese is impossible
988979 Tsukurimashou
988979 Character databases
❹ ❸ ❷ ❶漢 作 日 日 目字 り 本 本 次の ま 語 語デ し は が
ー ょ で やタ う き さベ な し
ー い いス
httptsukurimashousourceforgejp
語
U+8A9E
goldquolanguagerdquo
言
U+8A00i
ldquospeakrdquo
吾
U+543Eware
ldquomyselfrdquo
五
U+4E94go
ldquofiverdquo
口
U+53E3kuchildquomouthrdquo
語rarr言五口
httptsukurimashousourceforgejp
永
永字八法The Eight Strokes of Eternity
① strange stone
② jade table
③ iron pillar
④ crabrsquos pincer
⑤ tigerrsquos tooth
⑥ rhinocerosrsquos horn
⑦ bird pecking
⑧ golden knife
httptsukurimashousourceforgejp
l
作りましょうLetrsquos make something
永字八法8 strokes
50字の部首かな50 components
I guess
水亠口小Unicode IDS
METAFONT
涼
涼
涼
涼
a
任せsomebody elsersquos problem
httptsukurimashousourceforgejp
三十路漢字 Kanji of Thirty Years
1980年 LCCD (Mei)
1982年 1986年 Letter Spirit etc (Hofstadter Metamagical Themas)
1984年 Chinese Metafont (Hobby amp Guoan TUGboat 52)
1989年 Quixote Oriental Fonts (Hosek TUGboat 104)
1990年 Poor Manrsquos ChineseJapanese (Ridgeway)
1991年 JemTEX (Jalbert)
1993年 Wadalab (TouDai)
1997年 2003年 HanGlyph (Yiu amp Wong TUGboat 241)
2005年 Hoacuteng Zigrave (Laguna TUGboat 262)
2011年 Character Description Language (Wenlin Institute commercial)
2012年 Adjustable Fonts (Type Project commercial)
ヌリカベに注意
BEWARE THE NURIKABE
httptsukurimashousourceforgejp
林
U+6797hayashildquoforestrdquo
木
U+6728ki
ldquotreerdquo
木
U+6728ki
ldquotreerdquo
林 林 林
ちがうdifferent
ちがうdifferent
同じsame
同じsame
林rarr木木
httptsukurimashousourceforgejp
涼
U+6DBCryou
ldquocool breezerdquo
水
U+6C34omizuldquowaterrdquo
京
U+4EACkyou
ldquocapitalrdquo
亠
U+4EA0keisankanmuri[that shape]
口
U+53E3kuchildquomouthrdquo
小
U+5C0Fshouldquosmallrdquo
何これWTF
辞書ではないnot in dictionary
ちがうdifferent
ちがうdifferent
Unicodeではないnot in Unicode
涼rarr水亠口小
ダメだよ no good
httptsukurimashousourceforgejp
観
outlook
見 see
目
eye
儿
legs
矢
arrow
隹
old bird
大変
big trouble
観rarr矢隹目儿
httptsukurimashousourceforgejp
Appearance overetymology
語源より観
Sometimes exceptionsare necessary
ときどき特例が必要
Every characterrequires humanintervention
毎字は 人間介入が必要
httptsukurimashousourceforgejp
kanji 5000 漢字LOCkanji 65 1漢字につきLOC
LOC 325000 LOCLOCday 10 1日につきLOC
days 32500 日working daysyear 250 1年につき仕事の日
years 130 年
yがんばって下さいPlease work hard
Starting is O(1) Finishing is O(n)最初はO(1) 最後がO(n)
httptsukurimashousourceforgejp
325000 LOC
j
ウィキを使おうっWersquoll use a Wiki mdash
f
なんでやねんYa gotta be kidding
httptsukurimashousourceforgejp
フォントfont
ソフトウェアsoftware
httptsukurimashousourceforgejp
フォントfont
ソフトウェアsoftware
バージョン管理version control
チケットのシステムticket system
多態性polymorphism
ビルドのシステムbuild system
単体テストunit tests
GPL
エンカプセレーションencapsulation
httptsukurimashousourceforgejp
Tsukurimashou 作りましょう
Font family for EnglishJapanese and Korean
日本語と英語とハングルのフォントファミリ
GPLv3 open source GPLv3のオープンソース
one developer working sincelate 2010 2010年から一人で書いて
now 〜100000 LOC 今〜十万LOC
now 〜1500 kanji 今〜1500字の漢字
paramaterization stroke styleshape boldness serifs spacing
パラメタ方式は画の形字形太字度うろこ スペーシング
httptsukurimashousourceforgejp
httptsukurimashousourceforgejp
httptsukurimashousourceforgejp
源
Kaku 角
源
Maru 丸
源Bokukko 僕女
源
Mincho 明朝
物物物物物物Tsukurimashou Kaku Tsukurimashou Kaku PSTsukurimashou Mincho Tsukurimashou Mincho PS
TsuIta Atama TsuIta Atama PSTsuIta Soku TsuIta Soku PS
httptsukurimashousourceforgejp
位相のパラメタ Topological parameterization
さ
mincho=00
さmincho=10
00
Kaku 角
Maru 丸
03
Bokukko 僕女
10
Mincho 明朝
httptsukurimashousourceforgejp
Metapost
MetaType1
obstack
作りましょう
EPS and
proof files
Perl
MT1 port
Type 1
FontForge
scripts
kerner
OTF
TikZ
X ELATEX
GNU Make
Autotools
build
Hamlog
httptsukurimashousourceforgejp
観vardef kanjigrfouroutlook =push_pbox_toexpand(kanjigrfouroutlook)build_kanjilevel(build_kanjilr(46050)(build_kanjitb(470190)(kanjigrtwoarrowreplace_strokep(-1)(oldp shifted (-600))obstacktype[find_whatever(otstroke0)]=otnull)
(kanjiradicalold_birdobstacktype[find_whatever(otstroke-7)]=otnullreplace_strokep(-6)(point 0 of oldp+(015)--point 1 of oldp)replace_strokep(-4)(point 0 of oldp+(300)--point 1 of oldp)))
(kanjigronesee))expand_pbox
enddef kanmi outlookbegintsuglyph(uni89B3179)kanjigrfouroutlooktsu_render
endtsuglyph
httptsukurimashousourceforgejp
鬱鬱kanjigreightgloom
kanjileftradwood
kanjigreighttin_can
kanjigrtwonoon
kanjigronewood
kanjiradicalconservative_hat
kanjirarespiced_liqueur
kanjiradicalspoon
kanjirightradshort_hair
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
3
3
5
5
14
14
26
26 26 26 26
27
27
1
1
2
2
3
3
4
4
4
4
4
5
5
5
6
6
6
7
7
8
8
8
9
9
10
10
11
11
12
12
13
13
14
14
15
15
15
16
16
16
16
16
16
16
16
16
16
17
17
17
18
18
18
19
19
19
20
20
20
21
21
21
22
22
22
23
23
24
24
25
25
26
2626
26
26
26
26
26
26
26
26
26
26
27
27
27
27
28
28
28
28
29
29
29
29
30
30
30
30
httptsukurimashousourceforgejp
Korean hangul ハングル語
L
V
T
L
V
T
L
V
T
L
V
L
V
L
V
지읍시다 바탕 한글
httptsukurimashousourceforgejp
Parasite packages 寄生パッケージ
IDSgrep
OCR A OCR BGenJiMon
Beikaitorukleknev
httptsukurimashousourceforgejp
何の漢字は『木』が左側にあるWhich kanji have 木 on the left札朽材村松板林柱校根植楾様横橋相
何漢字は『俺』の右側を持つかWhat contains the right side of 俺
俺奄庵淹菴閹
何漢字は『目』があるでも『首』とか『貝』とかないかWhat contains 目 but nothing like 首 or 貝
想目相県箱
『萌』の符号位置が何
Whatrsquos the code point for 萌
U+840C
z
grepを使ってがいいですか
Canrsquot we just use grep
httptsukurimashousourceforgejp
何の漢字は『木』が左側にあるWhich kanji have 木 on the left札朽材村松板林柱校根植楾様横橋相
idsgrep -d [lr]木
何漢字は『俺』の右側を持つかWhat contains the right side of 俺
俺奄庵淹菴閹
idsgrep -d 俺idsgrep -d 奄
何漢字は『目』があるでも『首』とか『貝』とかないかWhat contains 目 but nothing like 首 or 貝
想目相県箱
idsgrep -damp目[tb]目
『萌』の符号位置が何
Whatrsquos the code point for 萌
U+840C
idsgrep -Ux 萌
httptsukurimashousourceforgejp
態
能
厶
匕
匕
心
[amp]
(心)
[tb]
(匕)
(匕)
【態】lt能gt厶匕匕心
idsgrep -d amp心[tb]匕匕
httptsukurimashousourceforgejp
Character databases 漢字のデータベース
CHISEMorioka 2001年
KanjiVGApel 2009年
TsukurimashouSkala 2012年
CJKGrid
httptsukurimashousourceforgejp
What language(s) 何語か
Who are the users rarrEtymology or appearance
ユーザは誰かrarr語源と観はどちらがいいか
Data quality データの品質
l
聞くありがとうThank you for your attention
The Tsukurimashou Projecthttptsukurimashousourceforgejp
『作りましょう』のプロジェクト
Matthew Skala マッシュ スカラmskalaansuzsookebcca
These slides were typeset using X ELATEX TikZ a selection of fonts from the Tsukurimashou Project and Azudings 1 by
Vic Fieger Osakan pig photo by Matthew Skala 2011 Nurikabe painting by Kanou Tourin 1802 public domain
httptsukurimashousourceforgejp
語
U+8A9E
goldquolanguagerdquo
言
U+8A00i
ldquospeakrdquo
吾
U+543Eware
ldquomyselfrdquo
五
U+4E94go
ldquofiverdquo
口
U+53E3kuchildquomouthrdquo
語rarr言五口
httptsukurimashousourceforgejp
永
永字八法The Eight Strokes of Eternity
① strange stone
② jade table
③ iron pillar
④ crabrsquos pincer
⑤ tigerrsquos tooth
⑥ rhinocerosrsquos horn
⑦ bird pecking
⑧ golden knife
httptsukurimashousourceforgejp
l
作りましょうLetrsquos make something
永字八法8 strokes
50字の部首かな50 components
I guess
水亠口小Unicode IDS
METAFONT
涼
涼
涼
涼
a
任せsomebody elsersquos problem
httptsukurimashousourceforgejp
三十路漢字 Kanji of Thirty Years
1980年 LCCD (Mei)
1982年 1986年 Letter Spirit etc (Hofstadter Metamagical Themas)
1984年 Chinese Metafont (Hobby amp Guoan TUGboat 52)
1989年 Quixote Oriental Fonts (Hosek TUGboat 104)
1990年 Poor Manrsquos ChineseJapanese (Ridgeway)
1991年 JemTEX (Jalbert)
1993年 Wadalab (TouDai)
1997年 2003年 HanGlyph (Yiu amp Wong TUGboat 241)
2005年 Hoacuteng Zigrave (Laguna TUGboat 262)
2011年 Character Description Language (Wenlin Institute commercial)
2012年 Adjustable Fonts (Type Project commercial)
ヌリカベに注意
BEWARE THE NURIKABE
httptsukurimashousourceforgejp
林
U+6797hayashildquoforestrdquo
木
U+6728ki
ldquotreerdquo
木
U+6728ki
ldquotreerdquo
林 林 林
ちがうdifferent
ちがうdifferent
同じsame
同じsame
林rarr木木
httptsukurimashousourceforgejp
涼
U+6DBCryou
ldquocool breezerdquo
水
U+6C34omizuldquowaterrdquo
京
U+4EACkyou
ldquocapitalrdquo
亠
U+4EA0keisankanmuri[that shape]
口
U+53E3kuchildquomouthrdquo
小
U+5C0Fshouldquosmallrdquo
何これWTF
辞書ではないnot in dictionary
ちがうdifferent
ちがうdifferent
Unicodeではないnot in Unicode
涼rarr水亠口小
ダメだよ no good
httptsukurimashousourceforgejp
観
outlook
見 see
目
eye
儿
legs
矢
arrow
隹
old bird
大変
big trouble
観rarr矢隹目儿
httptsukurimashousourceforgejp
Appearance overetymology
語源より観
Sometimes exceptionsare necessary
ときどき特例が必要
Every characterrequires humanintervention
毎字は 人間介入が必要
httptsukurimashousourceforgejp
kanji 5000 漢字LOCkanji 65 1漢字につきLOC
LOC 325000 LOCLOCday 10 1日につきLOC
days 32500 日working daysyear 250 1年につき仕事の日
years 130 年
yがんばって下さいPlease work hard
Starting is O(1) Finishing is O(n)最初はO(1) 最後がO(n)
httptsukurimashousourceforgejp
325000 LOC
j
ウィキを使おうっWersquoll use a Wiki mdash
f
なんでやねんYa gotta be kidding
httptsukurimashousourceforgejp
フォントfont
ソフトウェアsoftware
httptsukurimashousourceforgejp
フォントfont
ソフトウェアsoftware
バージョン管理version control
チケットのシステムticket system
多態性polymorphism
ビルドのシステムbuild system
単体テストunit tests
GPL
エンカプセレーションencapsulation
httptsukurimashousourceforgejp
Tsukurimashou 作りましょう
Font family for EnglishJapanese and Korean
日本語と英語とハングルのフォントファミリ
GPLv3 open source GPLv3のオープンソース
one developer working sincelate 2010 2010年から一人で書いて
now 〜100000 LOC 今〜十万LOC
now 〜1500 kanji 今〜1500字の漢字
paramaterization stroke styleshape boldness serifs spacing
パラメタ方式は画の形字形太字度うろこ スペーシング
httptsukurimashousourceforgejp
httptsukurimashousourceforgejp
httptsukurimashousourceforgejp
源
Kaku 角
源
Maru 丸
源Bokukko 僕女
源
Mincho 明朝
物物物物物物Tsukurimashou Kaku Tsukurimashou Kaku PSTsukurimashou Mincho Tsukurimashou Mincho PS
TsuIta Atama TsuIta Atama PSTsuIta Soku TsuIta Soku PS
httptsukurimashousourceforgejp
位相のパラメタ Topological parameterization
さ
mincho=00
さmincho=10
00
Kaku 角
Maru 丸
03
Bokukko 僕女
10
Mincho 明朝
httptsukurimashousourceforgejp
Metapost
MetaType1
obstack
作りましょう
EPS and
proof files
Perl
MT1 port
Type 1
FontForge
scripts
kerner
OTF
TikZ
X ELATEX
GNU Make
Autotools
build
Hamlog
httptsukurimashousourceforgejp
観vardef kanjigrfouroutlook =push_pbox_toexpand(kanjigrfouroutlook)build_kanjilevel(build_kanjilr(46050)(build_kanjitb(470190)(kanjigrtwoarrowreplace_strokep(-1)(oldp shifted (-600))obstacktype[find_whatever(otstroke0)]=otnull)
(kanjiradicalold_birdobstacktype[find_whatever(otstroke-7)]=otnullreplace_strokep(-6)(point 0 of oldp+(015)--point 1 of oldp)replace_strokep(-4)(point 0 of oldp+(300)--point 1 of oldp)))
(kanjigronesee))expand_pbox
enddef kanmi outlookbegintsuglyph(uni89B3179)kanjigrfouroutlooktsu_render
endtsuglyph
httptsukurimashousourceforgejp
鬱鬱kanjigreightgloom
kanjileftradwood
kanjigreighttin_can
kanjigrtwonoon
kanjigronewood
kanjiradicalconservative_hat
kanjirarespiced_liqueur
kanjiradicalspoon
kanjirightradshort_hair
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
3
3
5
5
14
14
26
26 26 26 26
27
27
1
1
2
2
3
3
4
4
4
4
4
5
5
5
6
6
6
7
7
8
8
8
9
9
10
10
11
11
12
12
13
13
14
14
15
15
15
16
16
16
16
16
16
16
16
16
16
17
17
17
18
18
18
19
19
19
20
20
20
21
21
21
22
22
22
23
23
24
24
25
25
26
2626
26
26
26
26
26
26
26
26
26
26
27
27
27
27
28
28
28
28
29
29
29
29
30
30
30
30
httptsukurimashousourceforgejp
Korean hangul ハングル語
L
V
T
L
V
T
L
V
T
L
V
L
V
L
V
지읍시다 바탕 한글
httptsukurimashousourceforgejp
Parasite packages 寄生パッケージ
IDSgrep
OCR A OCR BGenJiMon
Beikaitorukleknev
httptsukurimashousourceforgejp
何の漢字は『木』が左側にあるWhich kanji have 木 on the left札朽材村松板林柱校根植楾様横橋相
何漢字は『俺』の右側を持つかWhat contains the right side of 俺
俺奄庵淹菴閹
何漢字は『目』があるでも『首』とか『貝』とかないかWhat contains 目 but nothing like 首 or 貝
想目相県箱
『萌』の符号位置が何
Whatrsquos the code point for 萌
U+840C
z
grepを使ってがいいですか
Canrsquot we just use grep
httptsukurimashousourceforgejp
何の漢字は『木』が左側にあるWhich kanji have 木 on the left札朽材村松板林柱校根植楾様横橋相
idsgrep -d [lr]木
何漢字は『俺』の右側を持つかWhat contains the right side of 俺
俺奄庵淹菴閹
idsgrep -d 俺idsgrep -d 奄
何漢字は『目』があるでも『首』とか『貝』とかないかWhat contains 目 but nothing like 首 or 貝
想目相県箱
idsgrep -damp目[tb]目
『萌』の符号位置が何
Whatrsquos the code point for 萌
U+840C
idsgrep -Ux 萌
httptsukurimashousourceforgejp
態
能
厶
匕
匕
心
[amp]
(心)
[tb]
(匕)
(匕)
【態】lt能gt厶匕匕心
idsgrep -d amp心[tb]匕匕
httptsukurimashousourceforgejp
Character databases 漢字のデータベース
CHISEMorioka 2001年
KanjiVGApel 2009年
TsukurimashouSkala 2012年
CJKGrid
httptsukurimashousourceforgejp
What language(s) 何語か
Who are the users rarrEtymology or appearance
ユーザは誰かrarr語源と観はどちらがいいか
Data quality データの品質
l
聞くありがとうThank you for your attention
The Tsukurimashou Projecthttptsukurimashousourceforgejp
『作りましょう』のプロジェクト
Matthew Skala マッシュ スカラmskalaansuzsookebcca
These slides were typeset using X ELATEX TikZ a selection of fonts from the Tsukurimashou Project and Azudings 1 by
Vic Fieger Osakan pig photo by Matthew Skala 2011 Nurikabe painting by Kanou Tourin 1802 public domain
httptsukurimashousourceforgejp
永
永字八法The Eight Strokes of Eternity
① strange stone
② jade table
③ iron pillar
④ crabrsquos pincer
⑤ tigerrsquos tooth
⑥ rhinocerosrsquos horn
⑦ bird pecking
⑧ golden knife
httptsukurimashousourceforgejp
l
作りましょうLetrsquos make something
永字八法8 strokes
50字の部首かな50 components
I guess
水亠口小Unicode IDS
METAFONT
涼
涼
涼
涼
a
任せsomebody elsersquos problem
httptsukurimashousourceforgejp
三十路漢字 Kanji of Thirty Years
1980年 LCCD (Mei)
1982年 1986年 Letter Spirit etc (Hofstadter Metamagical Themas)
1984年 Chinese Metafont (Hobby amp Guoan TUGboat 52)
1989年 Quixote Oriental Fonts (Hosek TUGboat 104)
1990年 Poor Manrsquos ChineseJapanese (Ridgeway)
1991年 JemTEX (Jalbert)
1993年 Wadalab (TouDai)
1997年 2003年 HanGlyph (Yiu amp Wong TUGboat 241)
2005年 Hoacuteng Zigrave (Laguna TUGboat 262)
2011年 Character Description Language (Wenlin Institute commercial)
2012年 Adjustable Fonts (Type Project commercial)
ヌリカベに注意
BEWARE THE NURIKABE
httptsukurimashousourceforgejp
林
U+6797hayashildquoforestrdquo
木
U+6728ki
ldquotreerdquo
木
U+6728ki
ldquotreerdquo
林 林 林
ちがうdifferent
ちがうdifferent
同じsame
同じsame
林rarr木木
httptsukurimashousourceforgejp
涼
U+6DBCryou
ldquocool breezerdquo
水
U+6C34omizuldquowaterrdquo
京
U+4EACkyou
ldquocapitalrdquo
亠
U+4EA0keisankanmuri[that shape]
口
U+53E3kuchildquomouthrdquo
小
U+5C0Fshouldquosmallrdquo
何これWTF
辞書ではないnot in dictionary
ちがうdifferent
ちがうdifferent
Unicodeではないnot in Unicode
涼rarr水亠口小
ダメだよ no good
httptsukurimashousourceforgejp
観
outlook
見 see
目
eye
儿
legs
矢
arrow
隹
old bird
大変
big trouble
観rarr矢隹目儿
httptsukurimashousourceforgejp
Appearance overetymology
語源より観
Sometimes exceptionsare necessary
ときどき特例が必要
Every characterrequires humanintervention
毎字は 人間介入が必要
httptsukurimashousourceforgejp
kanji 5000 漢字LOCkanji 65 1漢字につきLOC
LOC 325000 LOCLOCday 10 1日につきLOC
days 32500 日working daysyear 250 1年につき仕事の日
years 130 年
yがんばって下さいPlease work hard
Starting is O(1) Finishing is O(n)最初はO(1) 最後がO(n)
httptsukurimashousourceforgejp
325000 LOC
j
ウィキを使おうっWersquoll use a Wiki mdash
f
なんでやねんYa gotta be kidding
httptsukurimashousourceforgejp
フォントfont
ソフトウェアsoftware
httptsukurimashousourceforgejp
フォントfont
ソフトウェアsoftware
バージョン管理version control
チケットのシステムticket system
多態性polymorphism
ビルドのシステムbuild system
単体テストunit tests
GPL
エンカプセレーションencapsulation
httptsukurimashousourceforgejp
Tsukurimashou 作りましょう
Font family for EnglishJapanese and Korean
日本語と英語とハングルのフォントファミリ
GPLv3 open source GPLv3のオープンソース
one developer working sincelate 2010 2010年から一人で書いて
now 〜100000 LOC 今〜十万LOC
now 〜1500 kanji 今〜1500字の漢字
paramaterization stroke styleshape boldness serifs spacing
パラメタ方式は画の形字形太字度うろこ スペーシング
httptsukurimashousourceforgejp
httptsukurimashousourceforgejp
httptsukurimashousourceforgejp
源
Kaku 角
源
Maru 丸
源Bokukko 僕女
源
Mincho 明朝
物物物物物物Tsukurimashou Kaku Tsukurimashou Kaku PSTsukurimashou Mincho Tsukurimashou Mincho PS
TsuIta Atama TsuIta Atama PSTsuIta Soku TsuIta Soku PS
httptsukurimashousourceforgejp
位相のパラメタ Topological parameterization
さ
mincho=00
さmincho=10
00
Kaku 角
Maru 丸
03
Bokukko 僕女
10
Mincho 明朝
httptsukurimashousourceforgejp
Metapost
MetaType1
obstack
作りましょう
EPS and
proof files
Perl
MT1 port
Type 1
FontForge
scripts
kerner
OTF
TikZ
X ELATEX
GNU Make
Autotools
build
Hamlog
httptsukurimashousourceforgejp
観vardef kanjigrfouroutlook =push_pbox_toexpand(kanjigrfouroutlook)build_kanjilevel(build_kanjilr(46050)(build_kanjitb(470190)(kanjigrtwoarrowreplace_strokep(-1)(oldp shifted (-600))obstacktype[find_whatever(otstroke0)]=otnull)
(kanjiradicalold_birdobstacktype[find_whatever(otstroke-7)]=otnullreplace_strokep(-6)(point 0 of oldp+(015)--point 1 of oldp)replace_strokep(-4)(point 0 of oldp+(300)--point 1 of oldp)))
(kanjigronesee))expand_pbox
enddef kanmi outlookbegintsuglyph(uni89B3179)kanjigrfouroutlooktsu_render
endtsuglyph
httptsukurimashousourceforgejp
鬱鬱kanjigreightgloom
kanjileftradwood
kanjigreighttin_can
kanjigrtwonoon
kanjigronewood
kanjiradicalconservative_hat
kanjirarespiced_liqueur
kanjiradicalspoon
kanjirightradshort_hair
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
3
3
5
5
14
14
26
26 26 26 26
27
27
1
1
2
2
3
3
4
4
4
4
4
5
5
5
6
6
6
7
7
8
8
8
9
9
10
10
11
11
12
12
13
13
14
14
15
15
15
16
16
16
16
16
16
16
16
16
16
17
17
17
18
18
18
19
19
19
20
20
20
21
21
21
22
22
22
23
23
24
24
25
25
26
2626
26
26
26
26
26
26
26
26
26
26
27
27
27
27
28
28
28
28
29
29
29
29
30
30
30
30
httptsukurimashousourceforgejp
Korean hangul ハングル語
L
V
T
L
V
T
L
V
T
L
V
L
V
L
V
지읍시다 바탕 한글
httptsukurimashousourceforgejp
Parasite packages 寄生パッケージ
IDSgrep
OCR A OCR BGenJiMon
Beikaitorukleknev
httptsukurimashousourceforgejp
何の漢字は『木』が左側にあるWhich kanji have 木 on the left札朽材村松板林柱校根植楾様横橋相
何漢字は『俺』の右側を持つかWhat contains the right side of 俺
俺奄庵淹菴閹
何漢字は『目』があるでも『首』とか『貝』とかないかWhat contains 目 but nothing like 首 or 貝
想目相県箱
『萌』の符号位置が何
Whatrsquos the code point for 萌
U+840C
z
grepを使ってがいいですか
Canrsquot we just use grep
httptsukurimashousourceforgejp
何の漢字は『木』が左側にあるWhich kanji have 木 on the left札朽材村松板林柱校根植楾様横橋相
idsgrep -d [lr]木
何漢字は『俺』の右側を持つかWhat contains the right side of 俺
俺奄庵淹菴閹
idsgrep -d 俺idsgrep -d 奄
何漢字は『目』があるでも『首』とか『貝』とかないかWhat contains 目 but nothing like 首 or 貝
想目相県箱
idsgrep -damp目[tb]目
『萌』の符号位置が何
Whatrsquos the code point for 萌
U+840C
idsgrep -Ux 萌
httptsukurimashousourceforgejp
態
能
厶
匕
匕
心
[amp]
(心)
[tb]
(匕)
(匕)
【態】lt能gt厶匕匕心
idsgrep -d amp心[tb]匕匕
httptsukurimashousourceforgejp
Character databases 漢字のデータベース
CHISEMorioka 2001年
KanjiVGApel 2009年
TsukurimashouSkala 2012年
CJKGrid
httptsukurimashousourceforgejp
What language(s) 何語か
Who are the users rarrEtymology or appearance
ユーザは誰かrarr語源と観はどちらがいいか
Data quality データの品質
l
聞くありがとうThank you for your attention
The Tsukurimashou Projecthttptsukurimashousourceforgejp
『作りましょう』のプロジェクト
Matthew Skala マッシュ スカラmskalaansuzsookebcca
These slides were typeset using X ELATEX TikZ a selection of fonts from the Tsukurimashou Project and Azudings 1 by
Vic Fieger Osakan pig photo by Matthew Skala 2011 Nurikabe painting by Kanou Tourin 1802 public domain
httptsukurimashousourceforgejp
l
作りましょうLetrsquos make something
永字八法8 strokes
50字の部首かな50 components
I guess
水亠口小Unicode IDS
METAFONT
涼
涼
涼
涼
a
任せsomebody elsersquos problem
httptsukurimashousourceforgejp
三十路漢字 Kanji of Thirty Years
1980年 LCCD (Mei)
1982年 1986年 Letter Spirit etc (Hofstadter Metamagical Themas)
1984年 Chinese Metafont (Hobby amp Guoan TUGboat 52)
1989年 Quixote Oriental Fonts (Hosek TUGboat 104)
1990年 Poor Manrsquos ChineseJapanese (Ridgeway)
1991年 JemTEX (Jalbert)
1993年 Wadalab (TouDai)
1997年 2003年 HanGlyph (Yiu amp Wong TUGboat 241)
2005年 Hoacuteng Zigrave (Laguna TUGboat 262)
2011年 Character Description Language (Wenlin Institute commercial)
2012年 Adjustable Fonts (Type Project commercial)
ヌリカベに注意
BEWARE THE NURIKABE
httptsukurimashousourceforgejp
林
U+6797hayashildquoforestrdquo
木
U+6728ki
ldquotreerdquo
木
U+6728ki
ldquotreerdquo
林 林 林
ちがうdifferent
ちがうdifferent
同じsame
同じsame
林rarr木木
httptsukurimashousourceforgejp
涼
U+6DBCryou
ldquocool breezerdquo
水
U+6C34omizuldquowaterrdquo
京
U+4EACkyou
ldquocapitalrdquo
亠
U+4EA0keisankanmuri[that shape]
口
U+53E3kuchildquomouthrdquo
小
U+5C0Fshouldquosmallrdquo
何これWTF
辞書ではないnot in dictionary
ちがうdifferent
ちがうdifferent
Unicodeではないnot in Unicode
涼rarr水亠口小
ダメだよ no good
httptsukurimashousourceforgejp
観
outlook
見 see
目
eye
儿
legs
矢
arrow
隹
old bird
大変
big trouble
観rarr矢隹目儿
httptsukurimashousourceforgejp
Appearance overetymology
語源より観
Sometimes exceptionsare necessary
ときどき特例が必要
Every characterrequires humanintervention
毎字は 人間介入が必要
httptsukurimashousourceforgejp
kanji 5000 漢字LOCkanji 65 1漢字につきLOC
LOC 325000 LOCLOCday 10 1日につきLOC
days 32500 日working daysyear 250 1年につき仕事の日
years 130 年
yがんばって下さいPlease work hard
Starting is O(1) Finishing is O(n)最初はO(1) 最後がO(n)
httptsukurimashousourceforgejp
325000 LOC
j
ウィキを使おうっWersquoll use a Wiki mdash
f
なんでやねんYa gotta be kidding
httptsukurimashousourceforgejp
フォントfont
ソフトウェアsoftware
httptsukurimashousourceforgejp
フォントfont
ソフトウェアsoftware
バージョン管理version control
チケットのシステムticket system
多態性polymorphism
ビルドのシステムbuild system
単体テストunit tests
GPL
エンカプセレーションencapsulation
httptsukurimashousourceforgejp
Tsukurimashou 作りましょう
Font family for EnglishJapanese and Korean
日本語と英語とハングルのフォントファミリ
GPLv3 open source GPLv3のオープンソース
one developer working sincelate 2010 2010年から一人で書いて
now 〜100000 LOC 今〜十万LOC
now 〜1500 kanji 今〜1500字の漢字
paramaterization stroke styleshape boldness serifs spacing
パラメタ方式は画の形字形太字度うろこ スペーシング
httptsukurimashousourceforgejp
httptsukurimashousourceforgejp
httptsukurimashousourceforgejp
源
Kaku 角
源
Maru 丸
源Bokukko 僕女
源
Mincho 明朝
物物物物物物Tsukurimashou Kaku Tsukurimashou Kaku PSTsukurimashou Mincho Tsukurimashou Mincho PS
TsuIta Atama TsuIta Atama PSTsuIta Soku TsuIta Soku PS
httptsukurimashousourceforgejp
位相のパラメタ Topological parameterization
さ
mincho=00
さmincho=10
00
Kaku 角
Maru 丸
03
Bokukko 僕女
10
Mincho 明朝
httptsukurimashousourceforgejp
Metapost
MetaType1
obstack
作りましょう
EPS and
proof files
Perl
MT1 port
Type 1
FontForge
scripts
kerner
OTF
TikZ
X ELATEX
GNU Make
Autotools
build
Hamlog
httptsukurimashousourceforgejp
観vardef kanjigrfouroutlook =push_pbox_toexpand(kanjigrfouroutlook)build_kanjilevel(build_kanjilr(46050)(build_kanjitb(470190)(kanjigrtwoarrowreplace_strokep(-1)(oldp shifted (-600))obstacktype[find_whatever(otstroke0)]=otnull)
(kanjiradicalold_birdobstacktype[find_whatever(otstroke-7)]=otnullreplace_strokep(-6)(point 0 of oldp+(015)--point 1 of oldp)replace_strokep(-4)(point 0 of oldp+(300)--point 1 of oldp)))
(kanjigronesee))expand_pbox
enddef kanmi outlookbegintsuglyph(uni89B3179)kanjigrfouroutlooktsu_render
endtsuglyph
httptsukurimashousourceforgejp
鬱鬱kanjigreightgloom
kanjileftradwood
kanjigreighttin_can
kanjigrtwonoon
kanjigronewood
kanjiradicalconservative_hat
kanjirarespiced_liqueur
kanjiradicalspoon
kanjirightradshort_hair
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
3
3
5
5
14
14
26
26 26 26 26
27
27
1
1
2
2
3
3
4
4
4
4
4
5
5
5
6
6
6
7
7
8
8
8
9
9
10
10
11
11
12
12
13
13
14
14
15
15
15
16
16
16
16
16
16
16
16
16
16
17
17
17
18
18
18
19
19
19
20
20
20
21
21
21
22
22
22
23
23
24
24
25
25
26
2626
26
26
26
26
26
26
26
26
26
26
27
27
27
27
28
28
28
28
29
29
29
29
30
30
30
30
httptsukurimashousourceforgejp
Korean hangul ハングル語
L
V
T
L
V
T
L
V
T
L
V
L
V
L
V
지읍시다 바탕 한글
httptsukurimashousourceforgejp
Parasite packages 寄生パッケージ
IDSgrep
OCR A OCR BGenJiMon
Beikaitorukleknev
httptsukurimashousourceforgejp
何の漢字は『木』が左側にあるWhich kanji have 木 on the left札朽材村松板林柱校根植楾様横橋相
何漢字は『俺』の右側を持つかWhat contains the right side of 俺
俺奄庵淹菴閹
何漢字は『目』があるでも『首』とか『貝』とかないかWhat contains 目 but nothing like 首 or 貝
想目相県箱
『萌』の符号位置が何
Whatrsquos the code point for 萌
U+840C
z
grepを使ってがいいですか
Canrsquot we just use grep
httptsukurimashousourceforgejp
何の漢字は『木』が左側にあるWhich kanji have 木 on the left札朽材村松板林柱校根植楾様横橋相
idsgrep -d [lr]木
何漢字は『俺』の右側を持つかWhat contains the right side of 俺
俺奄庵淹菴閹
idsgrep -d 俺idsgrep -d 奄
何漢字は『目』があるでも『首』とか『貝』とかないかWhat contains 目 but nothing like 首 or 貝
想目相県箱
idsgrep -damp目[tb]目
『萌』の符号位置が何
Whatrsquos the code point for 萌
U+840C
idsgrep -Ux 萌
httptsukurimashousourceforgejp
態
能
厶
匕
匕
心
[amp]
(心)
[tb]
(匕)
(匕)
【態】lt能gt厶匕匕心
idsgrep -d amp心[tb]匕匕
httptsukurimashousourceforgejp
Character databases 漢字のデータベース
CHISEMorioka 2001年
KanjiVGApel 2009年
TsukurimashouSkala 2012年
CJKGrid
httptsukurimashousourceforgejp
What language(s) 何語か
Who are the users rarrEtymology or appearance
ユーザは誰かrarr語源と観はどちらがいいか
Data quality データの品質
l
聞くありがとうThank you for your attention
The Tsukurimashou Projecthttptsukurimashousourceforgejp
『作りましょう』のプロジェクト
Matthew Skala マッシュ スカラmskalaansuzsookebcca
These slides were typeset using X ELATEX TikZ a selection of fonts from the Tsukurimashou Project and Azudings 1 by
Vic Fieger Osakan pig photo by Matthew Skala 2011 Nurikabe painting by Kanou Tourin 1802 public domain
httptsukurimashousourceforgejp
三十路漢字 Kanji of Thirty Years
1980年 LCCD (Mei)
1982年 1986年 Letter Spirit etc (Hofstadter Metamagical Themas)
1984年 Chinese Metafont (Hobby amp Guoan TUGboat 52)
1989年 Quixote Oriental Fonts (Hosek TUGboat 104)
1990年 Poor Manrsquos ChineseJapanese (Ridgeway)
1991年 JemTEX (Jalbert)
1993年 Wadalab (TouDai)
1997年 2003年 HanGlyph (Yiu amp Wong TUGboat 241)
2005年 Hoacuteng Zigrave (Laguna TUGboat 262)
2011年 Character Description Language (Wenlin Institute commercial)
2012年 Adjustable Fonts (Type Project commercial)
ヌリカベに注意
BEWARE THE NURIKABE
httptsukurimashousourceforgejp
林
U+6797hayashildquoforestrdquo
木
U+6728ki
ldquotreerdquo
木
U+6728ki
ldquotreerdquo
林 林 林
ちがうdifferent
ちがうdifferent
同じsame
同じsame
林rarr木木
httptsukurimashousourceforgejp
涼
U+6DBCryou
ldquocool breezerdquo
水
U+6C34omizuldquowaterrdquo
京
U+4EACkyou
ldquocapitalrdquo
亠
U+4EA0keisankanmuri[that shape]
口
U+53E3kuchildquomouthrdquo
小
U+5C0Fshouldquosmallrdquo
何これWTF
辞書ではないnot in dictionary
ちがうdifferent
ちがうdifferent
Unicodeではないnot in Unicode
涼rarr水亠口小
ダメだよ no good
httptsukurimashousourceforgejp
観
outlook
見 see
目
eye
儿
legs
矢
arrow
隹
old bird
大変
big trouble
観rarr矢隹目儿
httptsukurimashousourceforgejp
Appearance overetymology
語源より観
Sometimes exceptionsare necessary
ときどき特例が必要
Every characterrequires humanintervention
毎字は 人間介入が必要
httptsukurimashousourceforgejp
kanji 5000 漢字LOCkanji 65 1漢字につきLOC
LOC 325000 LOCLOCday 10 1日につきLOC
days 32500 日working daysyear 250 1年につき仕事の日
years 130 年
yがんばって下さいPlease work hard
Starting is O(1) Finishing is O(n)最初はO(1) 最後がO(n)
httptsukurimashousourceforgejp
325000 LOC
j
ウィキを使おうっWersquoll use a Wiki mdash
f
なんでやねんYa gotta be kidding
httptsukurimashousourceforgejp
フォントfont
ソフトウェアsoftware
httptsukurimashousourceforgejp
フォントfont
ソフトウェアsoftware
バージョン管理version control
チケットのシステムticket system
多態性polymorphism
ビルドのシステムbuild system
単体テストunit tests
GPL
エンカプセレーションencapsulation
httptsukurimashousourceforgejp
Tsukurimashou 作りましょう
Font family for EnglishJapanese and Korean
日本語と英語とハングルのフォントファミリ
GPLv3 open source GPLv3のオープンソース
one developer working sincelate 2010 2010年から一人で書いて
now 〜100000 LOC 今〜十万LOC
now 〜1500 kanji 今〜1500字の漢字
paramaterization stroke styleshape boldness serifs spacing
パラメタ方式は画の形字形太字度うろこ スペーシング
httptsukurimashousourceforgejp
httptsukurimashousourceforgejp
httptsukurimashousourceforgejp
源
Kaku 角
源
Maru 丸
源Bokukko 僕女
源
Mincho 明朝
物物物物物物Tsukurimashou Kaku Tsukurimashou Kaku PSTsukurimashou Mincho Tsukurimashou Mincho PS
TsuIta Atama TsuIta Atama PSTsuIta Soku TsuIta Soku PS
httptsukurimashousourceforgejp
位相のパラメタ Topological parameterization
さ
mincho=00
さmincho=10
00
Kaku 角
Maru 丸
03
Bokukko 僕女
10
Mincho 明朝
httptsukurimashousourceforgejp
Metapost
MetaType1
obstack
作りましょう
EPS and
proof files
Perl
MT1 port
Type 1
FontForge
scripts
kerner
OTF
TikZ
X ELATEX
GNU Make
Autotools
build
Hamlog
httptsukurimashousourceforgejp
観vardef kanjigrfouroutlook =push_pbox_toexpand(kanjigrfouroutlook)build_kanjilevel(build_kanjilr(46050)(build_kanjitb(470190)(kanjigrtwoarrowreplace_strokep(-1)(oldp shifted (-600))obstacktype[find_whatever(otstroke0)]=otnull)
(kanjiradicalold_birdobstacktype[find_whatever(otstroke-7)]=otnullreplace_strokep(-6)(point 0 of oldp+(015)--point 1 of oldp)replace_strokep(-4)(point 0 of oldp+(300)--point 1 of oldp)))
(kanjigronesee))expand_pbox
enddef kanmi outlookbegintsuglyph(uni89B3179)kanjigrfouroutlooktsu_render
endtsuglyph
httptsukurimashousourceforgejp
鬱鬱kanjigreightgloom
kanjileftradwood
kanjigreighttin_can
kanjigrtwonoon
kanjigronewood
kanjiradicalconservative_hat
kanjirarespiced_liqueur
kanjiradicalspoon
kanjirightradshort_hair
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
3
3
5
5
14
14
26
26 26 26 26
27
27
1
1
2
2
3
3
4
4
4
4
4
5
5
5
6
6
6
7
7
8
8
8
9
9
10
10
11
11
12
12
13
13
14
14
15
15
15
16
16
16
16
16
16
16
16
16
16
17
17
17
18
18
18
19
19
19
20
20
20
21
21
21
22
22
22
23
23
24
24
25
25
26
2626
26
26
26
26
26
26
26
26
26
26
27
27
27
27
28
28
28
28
29
29
29
29
30
30
30
30
httptsukurimashousourceforgejp
Korean hangul ハングル語
L
V
T
L
V
T
L
V
T
L
V
L
V
L
V
지읍시다 바탕 한글
httptsukurimashousourceforgejp
Parasite packages 寄生パッケージ
IDSgrep
OCR A OCR BGenJiMon
Beikaitorukleknev
httptsukurimashousourceforgejp
何の漢字は『木』が左側にあるWhich kanji have 木 on the left札朽材村松板林柱校根植楾様横橋相
何漢字は『俺』の右側を持つかWhat contains the right side of 俺
俺奄庵淹菴閹
何漢字は『目』があるでも『首』とか『貝』とかないかWhat contains 目 but nothing like 首 or 貝
想目相県箱
『萌』の符号位置が何
Whatrsquos the code point for 萌
U+840C
z
grepを使ってがいいですか
Canrsquot we just use grep
httptsukurimashousourceforgejp
何の漢字は『木』が左側にあるWhich kanji have 木 on the left札朽材村松板林柱校根植楾様横橋相
idsgrep -d [lr]木
何漢字は『俺』の右側を持つかWhat contains the right side of 俺
俺奄庵淹菴閹
idsgrep -d 俺idsgrep -d 奄
何漢字は『目』があるでも『首』とか『貝』とかないかWhat contains 目 but nothing like 首 or 貝
想目相県箱
idsgrep -damp目[tb]目
『萌』の符号位置が何
Whatrsquos the code point for 萌
U+840C
idsgrep -Ux 萌
httptsukurimashousourceforgejp
態
能
厶
匕
匕
心
[amp]
(心)
[tb]
(匕)
(匕)
【態】lt能gt厶匕匕心
idsgrep -d amp心[tb]匕匕
httptsukurimashousourceforgejp
Character databases 漢字のデータベース
CHISEMorioka 2001年
KanjiVGApel 2009年
TsukurimashouSkala 2012年
CJKGrid
httptsukurimashousourceforgejp
What language(s) 何語か
Who are the users rarrEtymology or appearance
ユーザは誰かrarr語源と観はどちらがいいか
Data quality データの品質
l
聞くありがとうThank you for your attention
The Tsukurimashou Projecthttptsukurimashousourceforgejp
『作りましょう』のプロジェクト
Matthew Skala マッシュ スカラmskalaansuzsookebcca
These slides were typeset using X ELATEX TikZ a selection of fonts from the Tsukurimashou Project and Azudings 1 by
Vic Fieger Osakan pig photo by Matthew Skala 2011 Nurikabe painting by Kanou Tourin 1802 public domain
ヌリカベに注意
BEWARE THE NURIKABE
httptsukurimashousourceforgejp
林
U+6797hayashildquoforestrdquo
木
U+6728ki
ldquotreerdquo
木
U+6728ki
ldquotreerdquo
林 林 林
ちがうdifferent
ちがうdifferent
同じsame
同じsame
林rarr木木
httptsukurimashousourceforgejp
涼
U+6DBCryou
ldquocool breezerdquo
水
U+6C34omizuldquowaterrdquo
京
U+4EACkyou
ldquocapitalrdquo
亠
U+4EA0keisankanmuri[that shape]
口
U+53E3kuchildquomouthrdquo
小
U+5C0Fshouldquosmallrdquo
何これWTF
辞書ではないnot in dictionary
ちがうdifferent
ちがうdifferent
Unicodeではないnot in Unicode
涼rarr水亠口小
ダメだよ no good
httptsukurimashousourceforgejp
観
outlook
見 see
目
eye
儿
legs
矢
arrow
隹
old bird
大変
big trouble
観rarr矢隹目儿
httptsukurimashousourceforgejp
Appearance overetymology
語源より観
Sometimes exceptionsare necessary
ときどき特例が必要
Every characterrequires humanintervention
毎字は 人間介入が必要
httptsukurimashousourceforgejp
kanji 5000 漢字LOCkanji 65 1漢字につきLOC
LOC 325000 LOCLOCday 10 1日につきLOC
days 32500 日working daysyear 250 1年につき仕事の日
years 130 年
yがんばって下さいPlease work hard
Starting is O(1) Finishing is O(n)最初はO(1) 最後がO(n)
httptsukurimashousourceforgejp
325000 LOC
j
ウィキを使おうっWersquoll use a Wiki mdash
f
なんでやねんYa gotta be kidding
httptsukurimashousourceforgejp
フォントfont
ソフトウェアsoftware
httptsukurimashousourceforgejp
フォントfont
ソフトウェアsoftware
バージョン管理version control
チケットのシステムticket system
多態性polymorphism
ビルドのシステムbuild system
単体テストunit tests
GPL
エンカプセレーションencapsulation
httptsukurimashousourceforgejp
Tsukurimashou 作りましょう
Font family for EnglishJapanese and Korean
日本語と英語とハングルのフォントファミリ
GPLv3 open source GPLv3のオープンソース
one developer working sincelate 2010 2010年から一人で書いて
now 〜100000 LOC 今〜十万LOC
now 〜1500 kanji 今〜1500字の漢字
paramaterization stroke styleshape boldness serifs spacing
パラメタ方式は画の形字形太字度うろこ スペーシング
httptsukurimashousourceforgejp
httptsukurimashousourceforgejp
httptsukurimashousourceforgejp
源
Kaku 角
源
Maru 丸
源Bokukko 僕女
源
Mincho 明朝
物物物物物物Tsukurimashou Kaku Tsukurimashou Kaku PSTsukurimashou Mincho Tsukurimashou Mincho PS
TsuIta Atama TsuIta Atama PSTsuIta Soku TsuIta Soku PS
httptsukurimashousourceforgejp
位相のパラメタ Topological parameterization
さ
mincho=00
さmincho=10
00
Kaku 角
Maru 丸
03
Bokukko 僕女
10
Mincho 明朝
httptsukurimashousourceforgejp
Metapost
MetaType1
obstack
作りましょう
EPS and
proof files
Perl
MT1 port
Type 1
FontForge
scripts
kerner
OTF
TikZ
X ELATEX
GNU Make
Autotools
build
Hamlog
httptsukurimashousourceforgejp
観vardef kanjigrfouroutlook =push_pbox_toexpand(kanjigrfouroutlook)build_kanjilevel(build_kanjilr(46050)(build_kanjitb(470190)(kanjigrtwoarrowreplace_strokep(-1)(oldp shifted (-600))obstacktype[find_whatever(otstroke0)]=otnull)
(kanjiradicalold_birdobstacktype[find_whatever(otstroke-7)]=otnullreplace_strokep(-6)(point 0 of oldp+(015)--point 1 of oldp)replace_strokep(-4)(point 0 of oldp+(300)--point 1 of oldp)))
(kanjigronesee))expand_pbox
enddef kanmi outlookbegintsuglyph(uni89B3179)kanjigrfouroutlooktsu_render
endtsuglyph
httptsukurimashousourceforgejp
鬱鬱kanjigreightgloom
kanjileftradwood
kanjigreighttin_can
kanjigrtwonoon
kanjigronewood
kanjiradicalconservative_hat
kanjirarespiced_liqueur
kanjiradicalspoon
kanjirightradshort_hair
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
3
3
5
5
14
14
26
26 26 26 26
27
27
1
1
2
2
3
3
4
4
4
4
4
5
5
5
6
6
6
7
7
8
8
8
9
9
10
10
11
11
12
12
13
13
14
14
15
15
15
16
16
16
16
16
16
16
16
16
16
17
17
17
18
18
18
19
19
19
20
20
20
21
21
21
22
22
22
23
23
24
24
25
25
26
2626
26
26
26
26
26
26
26
26
26
26
27
27
27
27
28
28
28
28
29
29
29
29
30
30
30
30
httptsukurimashousourceforgejp
Korean hangul ハングル語
L
V
T
L
V
T
L
V
T
L
V
L
V
L
V
지읍시다 바탕 한글
httptsukurimashousourceforgejp
Parasite packages 寄生パッケージ
IDSgrep
OCR A OCR BGenJiMon
Beikaitorukleknev
httptsukurimashousourceforgejp
何の漢字は『木』が左側にあるWhich kanji have 木 on the left札朽材村松板林柱校根植楾様横橋相
何漢字は『俺』の右側を持つかWhat contains the right side of 俺
俺奄庵淹菴閹
何漢字は『目』があるでも『首』とか『貝』とかないかWhat contains 目 but nothing like 首 or 貝
想目相県箱
『萌』の符号位置が何
Whatrsquos the code point for 萌
U+840C
z
grepを使ってがいいですか
Canrsquot we just use grep
httptsukurimashousourceforgejp
何の漢字は『木』が左側にあるWhich kanji have 木 on the left札朽材村松板林柱校根植楾様横橋相
idsgrep -d [lr]木
何漢字は『俺』の右側を持つかWhat contains the right side of 俺
俺奄庵淹菴閹
idsgrep -d 俺idsgrep -d 奄
何漢字は『目』があるでも『首』とか『貝』とかないかWhat contains 目 but nothing like 首 or 貝
想目相県箱
idsgrep -damp目[tb]目
『萌』の符号位置が何
Whatrsquos the code point for 萌
U+840C
idsgrep -Ux 萌
httptsukurimashousourceforgejp
態
能
厶
匕
匕
心
[amp]
(心)
[tb]
(匕)
(匕)
【態】lt能gt厶匕匕心
idsgrep -d amp心[tb]匕匕
httptsukurimashousourceforgejp
Character databases 漢字のデータベース
CHISEMorioka 2001年
KanjiVGApel 2009年
TsukurimashouSkala 2012年
CJKGrid
httptsukurimashousourceforgejp
What language(s) 何語か
Who are the users rarrEtymology or appearance
ユーザは誰かrarr語源と観はどちらがいいか
Data quality データの品質
l
聞くありがとうThank you for your attention
The Tsukurimashou Projecthttptsukurimashousourceforgejp
『作りましょう』のプロジェクト
Matthew Skala マッシュ スカラmskalaansuzsookebcca
These slides were typeset using X ELATEX TikZ a selection of fonts from the Tsukurimashou Project and Azudings 1 by
Vic Fieger Osakan pig photo by Matthew Skala 2011 Nurikabe painting by Kanou Tourin 1802 public domain
httptsukurimashousourceforgejp
林
U+6797hayashildquoforestrdquo
木
U+6728ki
ldquotreerdquo
木
U+6728ki
ldquotreerdquo
林 林 林
ちがうdifferent
ちがうdifferent
同じsame
同じsame
林rarr木木
httptsukurimashousourceforgejp
涼
U+6DBCryou
ldquocool breezerdquo
水
U+6C34omizuldquowaterrdquo
京
U+4EACkyou
ldquocapitalrdquo
亠
U+4EA0keisankanmuri[that shape]
口
U+53E3kuchildquomouthrdquo
小
U+5C0Fshouldquosmallrdquo
何これWTF
辞書ではないnot in dictionary
ちがうdifferent
ちがうdifferent
Unicodeではないnot in Unicode
涼rarr水亠口小
ダメだよ no good
httptsukurimashousourceforgejp
観
outlook
見 see
目
eye
儿
legs
矢
arrow
隹
old bird
大変
big trouble
観rarr矢隹目儿
httptsukurimashousourceforgejp
Appearance overetymology
語源より観
Sometimes exceptionsare necessary
ときどき特例が必要
Every characterrequires humanintervention
毎字は 人間介入が必要
httptsukurimashousourceforgejp
kanji 5000 漢字LOCkanji 65 1漢字につきLOC
LOC 325000 LOCLOCday 10 1日につきLOC
days 32500 日working daysyear 250 1年につき仕事の日
years 130 年
yがんばって下さいPlease work hard
Starting is O(1) Finishing is O(n)最初はO(1) 最後がO(n)
httptsukurimashousourceforgejp
325000 LOC
j
ウィキを使おうっWersquoll use a Wiki mdash
f
なんでやねんYa gotta be kidding
httptsukurimashousourceforgejp
フォントfont
ソフトウェアsoftware
httptsukurimashousourceforgejp
フォントfont
ソフトウェアsoftware
バージョン管理version control
チケットのシステムticket system
多態性polymorphism
ビルドのシステムbuild system
単体テストunit tests
GPL
エンカプセレーションencapsulation
httptsukurimashousourceforgejp
Tsukurimashou 作りましょう
Font family for EnglishJapanese and Korean
日本語と英語とハングルのフォントファミリ
GPLv3 open source GPLv3のオープンソース
one developer working sincelate 2010 2010年から一人で書いて
now 〜100000 LOC 今〜十万LOC
now 〜1500 kanji 今〜1500字の漢字
paramaterization stroke styleshape boldness serifs spacing
パラメタ方式は画の形字形太字度うろこ スペーシング
httptsukurimashousourceforgejp
httptsukurimashousourceforgejp
httptsukurimashousourceforgejp
源
Kaku 角
源
Maru 丸
源Bokukko 僕女
源
Mincho 明朝
物物物物物物Tsukurimashou Kaku Tsukurimashou Kaku PSTsukurimashou Mincho Tsukurimashou Mincho PS
TsuIta Atama TsuIta Atama PSTsuIta Soku TsuIta Soku PS
httptsukurimashousourceforgejp
位相のパラメタ Topological parameterization
さ
mincho=00
さmincho=10
00
Kaku 角
Maru 丸
03
Bokukko 僕女
10
Mincho 明朝
httptsukurimashousourceforgejp
Metapost
MetaType1
obstack
作りましょう
EPS and
proof files
Perl
MT1 port
Type 1
FontForge
scripts
kerner
OTF
TikZ
X ELATEX
GNU Make
Autotools
build
Hamlog
httptsukurimashousourceforgejp
観vardef kanjigrfouroutlook =push_pbox_toexpand(kanjigrfouroutlook)build_kanjilevel(build_kanjilr(46050)(build_kanjitb(470190)(kanjigrtwoarrowreplace_strokep(-1)(oldp shifted (-600))obstacktype[find_whatever(otstroke0)]=otnull)
(kanjiradicalold_birdobstacktype[find_whatever(otstroke-7)]=otnullreplace_strokep(-6)(point 0 of oldp+(015)--point 1 of oldp)replace_strokep(-4)(point 0 of oldp+(300)--point 1 of oldp)))
(kanjigronesee))expand_pbox
enddef kanmi outlookbegintsuglyph(uni89B3179)kanjigrfouroutlooktsu_render
endtsuglyph
httptsukurimashousourceforgejp
鬱鬱kanjigreightgloom
kanjileftradwood
kanjigreighttin_can
kanjigrtwonoon
kanjigronewood
kanjiradicalconservative_hat
kanjirarespiced_liqueur
kanjiradicalspoon
kanjirightradshort_hair
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
3
3
5
5
14
14
26
26 26 26 26
27
27
1
1
2
2
3
3
4
4
4
4
4
5
5
5
6
6
6
7
7
8
8
8
9
9
10
10
11
11
12
12
13
13
14
14
15
15
15
16
16
16
16
16
16
16
16
16
16
17
17
17
18
18
18
19
19
19
20
20
20
21
21
21
22
22
22
23
23
24
24
25
25
26
2626
26
26
26
26
26
26
26
26
26
26
27
27
27
27
28
28
28
28
29
29
29
29
30
30
30
30
httptsukurimashousourceforgejp
Korean hangul ハングル語
L
V
T
L
V
T
L
V
T
L
V
L
V
L
V
지읍시다 바탕 한글
httptsukurimashousourceforgejp
Parasite packages 寄生パッケージ
IDSgrep
OCR A OCR BGenJiMon
Beikaitorukleknev
httptsukurimashousourceforgejp
何の漢字は『木』が左側にあるWhich kanji have 木 on the left札朽材村松板林柱校根植楾様横橋相
何漢字は『俺』の右側を持つかWhat contains the right side of 俺
俺奄庵淹菴閹
何漢字は『目』があるでも『首』とか『貝』とかないかWhat contains 目 but nothing like 首 or 貝
想目相県箱
『萌』の符号位置が何
Whatrsquos the code point for 萌
U+840C
z
grepを使ってがいいですか
Canrsquot we just use grep
httptsukurimashousourceforgejp
何の漢字は『木』が左側にあるWhich kanji have 木 on the left札朽材村松板林柱校根植楾様横橋相
idsgrep -d [lr]木
何漢字は『俺』の右側を持つかWhat contains the right side of 俺
俺奄庵淹菴閹
idsgrep -d 俺idsgrep -d 奄
何漢字は『目』があるでも『首』とか『貝』とかないかWhat contains 目 but nothing like 首 or 貝
想目相県箱
idsgrep -damp目[tb]目
『萌』の符号位置が何
Whatrsquos the code point for 萌
U+840C
idsgrep -Ux 萌
httptsukurimashousourceforgejp
態
能
厶
匕
匕
心
[amp]
(心)
[tb]
(匕)
(匕)
【態】lt能gt厶匕匕心
idsgrep -d amp心[tb]匕匕
httptsukurimashousourceforgejp
Character databases 漢字のデータベース
CHISEMorioka 2001年
KanjiVGApel 2009年
TsukurimashouSkala 2012年
CJKGrid
httptsukurimashousourceforgejp
What language(s) 何語か
Who are the users rarrEtymology or appearance
ユーザは誰かrarr語源と観はどちらがいいか
Data quality データの品質
l
聞くありがとうThank you for your attention
The Tsukurimashou Projecthttptsukurimashousourceforgejp
『作りましょう』のプロジェクト
Matthew Skala マッシュ スカラmskalaansuzsookebcca
These slides were typeset using X ELATEX TikZ a selection of fonts from the Tsukurimashou Project and Azudings 1 by
Vic Fieger Osakan pig photo by Matthew Skala 2011 Nurikabe painting by Kanou Tourin 1802 public domain
httptsukurimashousourceforgejp
涼
U+6DBCryou
ldquocool breezerdquo
水
U+6C34omizuldquowaterrdquo
京
U+4EACkyou
ldquocapitalrdquo
亠
U+4EA0keisankanmuri[that shape]
口
U+53E3kuchildquomouthrdquo
小
U+5C0Fshouldquosmallrdquo
何これWTF
辞書ではないnot in dictionary
ちがうdifferent
ちがうdifferent
Unicodeではないnot in Unicode
涼rarr水亠口小
ダメだよ no good
httptsukurimashousourceforgejp
観
outlook
見 see
目
eye
儿
legs
矢
arrow
隹
old bird
大変
big trouble
観rarr矢隹目儿
httptsukurimashousourceforgejp
Appearance overetymology
語源より観
Sometimes exceptionsare necessary
ときどき特例が必要
Every characterrequires humanintervention
毎字は 人間介入が必要
httptsukurimashousourceforgejp
kanji 5000 漢字LOCkanji 65 1漢字につきLOC
LOC 325000 LOCLOCday 10 1日につきLOC
days 32500 日working daysyear 250 1年につき仕事の日
years 130 年
yがんばって下さいPlease work hard
Starting is O(1) Finishing is O(n)最初はO(1) 最後がO(n)
httptsukurimashousourceforgejp
325000 LOC
j
ウィキを使おうっWersquoll use a Wiki mdash
f
なんでやねんYa gotta be kidding
httptsukurimashousourceforgejp
フォントfont
ソフトウェアsoftware
httptsukurimashousourceforgejp
フォントfont
ソフトウェアsoftware
バージョン管理version control
チケットのシステムticket system
多態性polymorphism
ビルドのシステムbuild system
単体テストunit tests
GPL
エンカプセレーションencapsulation
httptsukurimashousourceforgejp
Tsukurimashou 作りましょう
Font family for EnglishJapanese and Korean
日本語と英語とハングルのフォントファミリ
GPLv3 open source GPLv3のオープンソース
one developer working sincelate 2010 2010年から一人で書いて
now 〜100000 LOC 今〜十万LOC
now 〜1500 kanji 今〜1500字の漢字
paramaterization stroke styleshape boldness serifs spacing
パラメタ方式は画の形字形太字度うろこ スペーシング
httptsukurimashousourceforgejp
httptsukurimashousourceforgejp
httptsukurimashousourceforgejp
源
Kaku 角
源
Maru 丸
源Bokukko 僕女
源
Mincho 明朝
物物物物物物Tsukurimashou Kaku Tsukurimashou Kaku PSTsukurimashou Mincho Tsukurimashou Mincho PS
TsuIta Atama TsuIta Atama PSTsuIta Soku TsuIta Soku PS
httptsukurimashousourceforgejp
位相のパラメタ Topological parameterization
さ
mincho=00
さmincho=10
00
Kaku 角
Maru 丸
03
Bokukko 僕女
10
Mincho 明朝
httptsukurimashousourceforgejp
Metapost
MetaType1
obstack
作りましょう
EPS and
proof files
Perl
MT1 port
Type 1
FontForge
scripts
kerner
OTF
TikZ
X ELATEX
GNU Make
Autotools
build
Hamlog
httptsukurimashousourceforgejp
観vardef kanjigrfouroutlook =push_pbox_toexpand(kanjigrfouroutlook)build_kanjilevel(build_kanjilr(46050)(build_kanjitb(470190)(kanjigrtwoarrowreplace_strokep(-1)(oldp shifted (-600))obstacktype[find_whatever(otstroke0)]=otnull)
(kanjiradicalold_birdobstacktype[find_whatever(otstroke-7)]=otnullreplace_strokep(-6)(point 0 of oldp+(015)--point 1 of oldp)replace_strokep(-4)(point 0 of oldp+(300)--point 1 of oldp)))
(kanjigronesee))expand_pbox
enddef kanmi outlookbegintsuglyph(uni89B3179)kanjigrfouroutlooktsu_render
endtsuglyph
httptsukurimashousourceforgejp
鬱鬱kanjigreightgloom
kanjileftradwood
kanjigreighttin_can
kanjigrtwonoon
kanjigronewood
kanjiradicalconservative_hat
kanjirarespiced_liqueur
kanjiradicalspoon
kanjirightradshort_hair
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
3
3
5
5
14
14
26
26 26 26 26
27
27
1
1
2
2
3
3
4
4
4
4
4
5
5
5
6
6
6
7
7
8
8
8
9
9
10
10
11
11
12
12
13
13
14
14
15
15
15
16
16
16
16
16
16
16
16
16
16
17
17
17
18
18
18
19
19
19
20
20
20
21
21
21
22
22
22
23
23
24
24
25
25
26
2626
26
26
26
26
26
26
26
26
26
26
27
27
27
27
28
28
28
28
29
29
29
29
30
30
30
30
httptsukurimashousourceforgejp
Korean hangul ハングル語
L
V
T
L
V
T
L
V
T
L
V
L
V
L
V
지읍시다 바탕 한글
httptsukurimashousourceforgejp
Parasite packages 寄生パッケージ
IDSgrep
OCR A OCR BGenJiMon
Beikaitorukleknev
httptsukurimashousourceforgejp
何の漢字は『木』が左側にあるWhich kanji have 木 on the left札朽材村松板林柱校根植楾様横橋相
何漢字は『俺』の右側を持つかWhat contains the right side of 俺
俺奄庵淹菴閹
何漢字は『目』があるでも『首』とか『貝』とかないかWhat contains 目 but nothing like 首 or 貝
想目相県箱
『萌』の符号位置が何
Whatrsquos the code point for 萌
U+840C
z
grepを使ってがいいですか
Canrsquot we just use grep
httptsukurimashousourceforgejp
何の漢字は『木』が左側にあるWhich kanji have 木 on the left札朽材村松板林柱校根植楾様横橋相
idsgrep -d [lr]木
何漢字は『俺』の右側を持つかWhat contains the right side of 俺
俺奄庵淹菴閹
idsgrep -d 俺idsgrep -d 奄
何漢字は『目』があるでも『首』とか『貝』とかないかWhat contains 目 but nothing like 首 or 貝
想目相県箱
idsgrep -damp目[tb]目
『萌』の符号位置が何
Whatrsquos the code point for 萌
U+840C
idsgrep -Ux 萌
httptsukurimashousourceforgejp
態
能
厶
匕
匕
心
[amp]
(心)
[tb]
(匕)
(匕)
【態】lt能gt厶匕匕心
idsgrep -d amp心[tb]匕匕
httptsukurimashousourceforgejp
Character databases 漢字のデータベース
CHISEMorioka 2001年
KanjiVGApel 2009年
TsukurimashouSkala 2012年
CJKGrid
httptsukurimashousourceforgejp
What language(s) 何語か
Who are the users rarrEtymology or appearance
ユーザは誰かrarr語源と観はどちらがいいか
Data quality データの品質
l
聞くありがとうThank you for your attention
The Tsukurimashou Projecthttptsukurimashousourceforgejp
『作りましょう』のプロジェクト
Matthew Skala マッシュ スカラmskalaansuzsookebcca
These slides were typeset using X ELATEX TikZ a selection of fonts from the Tsukurimashou Project and Azudings 1 by
Vic Fieger Osakan pig photo by Matthew Skala 2011 Nurikabe painting by Kanou Tourin 1802 public domain
httptsukurimashousourceforgejp
観
outlook
見 see
目
eye
儿
legs
矢
arrow
隹
old bird
大変
big trouble
観rarr矢隹目儿
httptsukurimashousourceforgejp
Appearance overetymology
語源より観
Sometimes exceptionsare necessary
ときどき特例が必要
Every characterrequires humanintervention
毎字は 人間介入が必要
httptsukurimashousourceforgejp
kanji 5000 漢字LOCkanji 65 1漢字につきLOC
LOC 325000 LOCLOCday 10 1日につきLOC
days 32500 日working daysyear 250 1年につき仕事の日
years 130 年
yがんばって下さいPlease work hard
Starting is O(1) Finishing is O(n)最初はO(1) 最後がO(n)
httptsukurimashousourceforgejp
325000 LOC
j
ウィキを使おうっWersquoll use a Wiki mdash
f
なんでやねんYa gotta be kidding
httptsukurimashousourceforgejp
フォントfont
ソフトウェアsoftware
httptsukurimashousourceforgejp
フォントfont
ソフトウェアsoftware
バージョン管理version control
チケットのシステムticket system
多態性polymorphism
ビルドのシステムbuild system
単体テストunit tests
GPL
エンカプセレーションencapsulation
httptsukurimashousourceforgejp
Tsukurimashou 作りましょう
Font family for EnglishJapanese and Korean
日本語と英語とハングルのフォントファミリ
GPLv3 open source GPLv3のオープンソース
one developer working sincelate 2010 2010年から一人で書いて
now 〜100000 LOC 今〜十万LOC
now 〜1500 kanji 今〜1500字の漢字
paramaterization stroke styleshape boldness serifs spacing
パラメタ方式は画の形字形太字度うろこ スペーシング
httptsukurimashousourceforgejp
httptsukurimashousourceforgejp
httptsukurimashousourceforgejp
源
Kaku 角
源
Maru 丸
源Bokukko 僕女
源
Mincho 明朝
物物物物物物Tsukurimashou Kaku Tsukurimashou Kaku PSTsukurimashou Mincho Tsukurimashou Mincho PS
TsuIta Atama TsuIta Atama PSTsuIta Soku TsuIta Soku PS
httptsukurimashousourceforgejp
位相のパラメタ Topological parameterization
さ
mincho=00
さmincho=10
00
Kaku 角
Maru 丸
03
Bokukko 僕女
10
Mincho 明朝
httptsukurimashousourceforgejp
Metapost
MetaType1
obstack
作りましょう
EPS and
proof files
Perl
MT1 port
Type 1
FontForge
scripts
kerner
OTF
TikZ
X ELATEX
GNU Make
Autotools
build
Hamlog
httptsukurimashousourceforgejp
観vardef kanjigrfouroutlook =push_pbox_toexpand(kanjigrfouroutlook)build_kanjilevel(build_kanjilr(46050)(build_kanjitb(470190)(kanjigrtwoarrowreplace_strokep(-1)(oldp shifted (-600))obstacktype[find_whatever(otstroke0)]=otnull)
(kanjiradicalold_birdobstacktype[find_whatever(otstroke-7)]=otnullreplace_strokep(-6)(point 0 of oldp+(015)--point 1 of oldp)replace_strokep(-4)(point 0 of oldp+(300)--point 1 of oldp)))
(kanjigronesee))expand_pbox
enddef kanmi outlookbegintsuglyph(uni89B3179)kanjigrfouroutlooktsu_render
endtsuglyph
httptsukurimashousourceforgejp
鬱鬱kanjigreightgloom
kanjileftradwood
kanjigreighttin_can
kanjigrtwonoon
kanjigronewood
kanjiradicalconservative_hat
kanjirarespiced_liqueur
kanjiradicalspoon
kanjirightradshort_hair
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
3
3
5
5
14
14
26
26 26 26 26
27
27
1
1
2
2
3
3
4
4
4
4
4
5
5
5
6
6
6
7
7
8
8
8
9
9
10
10
11
11
12
12
13
13
14
14
15
15
15
16
16
16
16
16
16
16
16
16
16
17
17
17
18
18
18
19
19
19
20
20
20
21
21
21
22
22
22
23
23
24
24
25
25
26
2626
26
26
26
26
26
26
26
26
26
26
27
27
27
27
28
28
28
28
29
29
29
29
30
30
30
30
httptsukurimashousourceforgejp
Korean hangul ハングル語
L
V
T
L
V
T
L
V
T
L
V
L
V
L
V
지읍시다 바탕 한글
httptsukurimashousourceforgejp
Parasite packages 寄生パッケージ
IDSgrep
OCR A OCR BGenJiMon
Beikaitorukleknev
httptsukurimashousourceforgejp
何の漢字は『木』が左側にあるWhich kanji have 木 on the left札朽材村松板林柱校根植楾様横橋相
何漢字は『俺』の右側を持つかWhat contains the right side of 俺
俺奄庵淹菴閹
何漢字は『目』があるでも『首』とか『貝』とかないかWhat contains 目 but nothing like 首 or 貝
想目相県箱
『萌』の符号位置が何
Whatrsquos the code point for 萌
U+840C
z
grepを使ってがいいですか
Canrsquot we just use grep
httptsukurimashousourceforgejp
何の漢字は『木』が左側にあるWhich kanji have 木 on the left札朽材村松板林柱校根植楾様横橋相
idsgrep -d [lr]木
何漢字は『俺』の右側を持つかWhat contains the right side of 俺
俺奄庵淹菴閹
idsgrep -d 俺idsgrep -d 奄
何漢字は『目』があるでも『首』とか『貝』とかないかWhat contains 目 but nothing like 首 or 貝
想目相県箱
idsgrep -damp目[tb]目
『萌』の符号位置が何
Whatrsquos the code point for 萌
U+840C
idsgrep -Ux 萌
httptsukurimashousourceforgejp
態
能
厶
匕
匕
心
[amp]
(心)
[tb]
(匕)
(匕)
【態】lt能gt厶匕匕心
idsgrep -d amp心[tb]匕匕
httptsukurimashousourceforgejp
Character databases 漢字のデータベース
CHISEMorioka 2001年
KanjiVGApel 2009年
TsukurimashouSkala 2012年
CJKGrid
httptsukurimashousourceforgejp
What language(s) 何語か
Who are the users rarrEtymology or appearance
ユーザは誰かrarr語源と観はどちらがいいか
Data quality データの品質
l
聞くありがとうThank you for your attention
The Tsukurimashou Projecthttptsukurimashousourceforgejp
『作りましょう』のプロジェクト
Matthew Skala マッシュ スカラmskalaansuzsookebcca
These slides were typeset using X ELATEX TikZ a selection of fonts from the Tsukurimashou Project and Azudings 1 by
Vic Fieger Osakan pig photo by Matthew Skala 2011 Nurikabe painting by Kanou Tourin 1802 public domain
httptsukurimashousourceforgejp
Appearance overetymology
語源より観
Sometimes exceptionsare necessary
ときどき特例が必要
Every characterrequires humanintervention
毎字は 人間介入が必要
httptsukurimashousourceforgejp
kanji 5000 漢字LOCkanji 65 1漢字につきLOC
LOC 325000 LOCLOCday 10 1日につきLOC
days 32500 日working daysyear 250 1年につき仕事の日
years 130 年
yがんばって下さいPlease work hard
Starting is O(1) Finishing is O(n)最初はO(1) 最後がO(n)
httptsukurimashousourceforgejp
325000 LOC
j
ウィキを使おうっWersquoll use a Wiki mdash
f
なんでやねんYa gotta be kidding
httptsukurimashousourceforgejp
フォントfont
ソフトウェアsoftware
httptsukurimashousourceforgejp
フォントfont
ソフトウェアsoftware
バージョン管理version control
チケットのシステムticket system
多態性polymorphism
ビルドのシステムbuild system
単体テストunit tests
GPL
エンカプセレーションencapsulation
httptsukurimashousourceforgejp
Tsukurimashou 作りましょう
Font family for EnglishJapanese and Korean
日本語と英語とハングルのフォントファミリ
GPLv3 open source GPLv3のオープンソース
one developer working sincelate 2010 2010年から一人で書いて
now 〜100000 LOC 今〜十万LOC
now 〜1500 kanji 今〜1500字の漢字
paramaterization stroke styleshape boldness serifs spacing
パラメタ方式は画の形字形太字度うろこ スペーシング
httptsukurimashousourceforgejp
httptsukurimashousourceforgejp
httptsukurimashousourceforgejp
源
Kaku 角
源
Maru 丸
源Bokukko 僕女
源
Mincho 明朝
物物物物物物Tsukurimashou Kaku Tsukurimashou Kaku PSTsukurimashou Mincho Tsukurimashou Mincho PS
TsuIta Atama TsuIta Atama PSTsuIta Soku TsuIta Soku PS
httptsukurimashousourceforgejp
位相のパラメタ Topological parameterization
さ
mincho=00
さmincho=10
00
Kaku 角
Maru 丸
03
Bokukko 僕女
10
Mincho 明朝
httptsukurimashousourceforgejp
Metapost
MetaType1
obstack
作りましょう
EPS and
proof files
Perl
MT1 port
Type 1
FontForge
scripts
kerner
OTF
TikZ
X ELATEX
GNU Make
Autotools
build
Hamlog
httptsukurimashousourceforgejp
観vardef kanjigrfouroutlook =push_pbox_toexpand(kanjigrfouroutlook)build_kanjilevel(build_kanjilr(46050)(build_kanjitb(470190)(kanjigrtwoarrowreplace_strokep(-1)(oldp shifted (-600))obstacktype[find_whatever(otstroke0)]=otnull)
(kanjiradicalold_birdobstacktype[find_whatever(otstroke-7)]=otnullreplace_strokep(-6)(point 0 of oldp+(015)--point 1 of oldp)replace_strokep(-4)(point 0 of oldp+(300)--point 1 of oldp)))
(kanjigronesee))expand_pbox
enddef kanmi outlookbegintsuglyph(uni89B3179)kanjigrfouroutlooktsu_render
endtsuglyph
httptsukurimashousourceforgejp
鬱鬱kanjigreightgloom
kanjileftradwood
kanjigreighttin_can
kanjigrtwonoon
kanjigronewood
kanjiradicalconservative_hat
kanjirarespiced_liqueur
kanjiradicalspoon
kanjirightradshort_hair
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
3
3
5
5
14
14
26
26 26 26 26
27
27
1
1
2
2
3
3
4
4
4
4
4
5
5
5
6
6
6
7
7
8
8
8
9
9
10
10
11
11
12
12
13
13
14
14
15
15
15
16
16
16
16
16
16
16
16
16
16
17
17
17
18
18
18
19
19
19
20
20
20
21
21
21
22
22
22
23
23
24
24
25
25
26
2626
26
26
26
26
26
26
26
26
26
26
27
27
27
27
28
28
28
28
29
29
29
29
30
30
30
30
httptsukurimashousourceforgejp
Korean hangul ハングル語
L
V
T
L
V
T
L
V
T
L
V
L
V
L
V
지읍시다 바탕 한글
httptsukurimashousourceforgejp
Parasite packages 寄生パッケージ
IDSgrep
OCR A OCR BGenJiMon
Beikaitorukleknev
httptsukurimashousourceforgejp
何の漢字は『木』が左側にあるWhich kanji have 木 on the left札朽材村松板林柱校根植楾様横橋相
何漢字は『俺』の右側を持つかWhat contains the right side of 俺
俺奄庵淹菴閹
何漢字は『目』があるでも『首』とか『貝』とかないかWhat contains 目 but nothing like 首 or 貝
想目相県箱
『萌』の符号位置が何
Whatrsquos the code point for 萌
U+840C
z
grepを使ってがいいですか
Canrsquot we just use grep
httptsukurimashousourceforgejp
何の漢字は『木』が左側にあるWhich kanji have 木 on the left札朽材村松板林柱校根植楾様横橋相
idsgrep -d [lr]木
何漢字は『俺』の右側を持つかWhat contains the right side of 俺
俺奄庵淹菴閹
idsgrep -d 俺idsgrep -d 奄
何漢字は『目』があるでも『首』とか『貝』とかないかWhat contains 目 but nothing like 首 or 貝
想目相県箱
idsgrep -damp目[tb]目
『萌』の符号位置が何
Whatrsquos the code point for 萌
U+840C
idsgrep -Ux 萌
httptsukurimashousourceforgejp
態
能
厶
匕
匕
心
[amp]
(心)
[tb]
(匕)
(匕)
【態】lt能gt厶匕匕心
idsgrep -d amp心[tb]匕匕
httptsukurimashousourceforgejp
Character databases 漢字のデータベース
CHISEMorioka 2001年
KanjiVGApel 2009年
TsukurimashouSkala 2012年
CJKGrid
httptsukurimashousourceforgejp
What language(s) 何語か
Who are the users rarrEtymology or appearance
ユーザは誰かrarr語源と観はどちらがいいか
Data quality データの品質
l
聞くありがとうThank you for your attention
The Tsukurimashou Projecthttptsukurimashousourceforgejp
『作りましょう』のプロジェクト
Matthew Skala マッシュ スカラmskalaansuzsookebcca
These slides were typeset using X ELATEX TikZ a selection of fonts from the Tsukurimashou Project and Azudings 1 by
Vic Fieger Osakan pig photo by Matthew Skala 2011 Nurikabe painting by Kanou Tourin 1802 public domain
httptsukurimashousourceforgejp
kanji 5000 漢字LOCkanji 65 1漢字につきLOC
LOC 325000 LOCLOCday 10 1日につきLOC
days 32500 日working daysyear 250 1年につき仕事の日
years 130 年
yがんばって下さいPlease work hard
Starting is O(1) Finishing is O(n)最初はO(1) 最後がO(n)
httptsukurimashousourceforgejp
325000 LOC
j
ウィキを使おうっWersquoll use a Wiki mdash
f
なんでやねんYa gotta be kidding
httptsukurimashousourceforgejp
フォントfont
ソフトウェアsoftware
httptsukurimashousourceforgejp
フォントfont
ソフトウェアsoftware
バージョン管理version control
チケットのシステムticket system
多態性polymorphism
ビルドのシステムbuild system
単体テストunit tests
GPL
エンカプセレーションencapsulation
httptsukurimashousourceforgejp
Tsukurimashou 作りましょう
Font family for EnglishJapanese and Korean
日本語と英語とハングルのフォントファミリ
GPLv3 open source GPLv3のオープンソース
one developer working sincelate 2010 2010年から一人で書いて
now 〜100000 LOC 今〜十万LOC
now 〜1500 kanji 今〜1500字の漢字
paramaterization stroke styleshape boldness serifs spacing
パラメタ方式は画の形字形太字度うろこ スペーシング
httptsukurimashousourceforgejp
httptsukurimashousourceforgejp
httptsukurimashousourceforgejp
源
Kaku 角
源
Maru 丸
源Bokukko 僕女
源
Mincho 明朝
物物物物物物Tsukurimashou Kaku Tsukurimashou Kaku PSTsukurimashou Mincho Tsukurimashou Mincho PS
TsuIta Atama TsuIta Atama PSTsuIta Soku TsuIta Soku PS
httptsukurimashousourceforgejp
位相のパラメタ Topological parameterization
さ
mincho=00
さmincho=10
00
Kaku 角
Maru 丸
03
Bokukko 僕女
10
Mincho 明朝
httptsukurimashousourceforgejp
Metapost
MetaType1
obstack
作りましょう
EPS and
proof files
Perl
MT1 port
Type 1
FontForge
scripts
kerner
OTF
TikZ
X ELATEX
GNU Make
Autotools
build
Hamlog
httptsukurimashousourceforgejp
観vardef kanjigrfouroutlook =push_pbox_toexpand(kanjigrfouroutlook)build_kanjilevel(build_kanjilr(46050)(build_kanjitb(470190)(kanjigrtwoarrowreplace_strokep(-1)(oldp shifted (-600))obstacktype[find_whatever(otstroke0)]=otnull)
(kanjiradicalold_birdobstacktype[find_whatever(otstroke-7)]=otnullreplace_strokep(-6)(point 0 of oldp+(015)--point 1 of oldp)replace_strokep(-4)(point 0 of oldp+(300)--point 1 of oldp)))
(kanjigronesee))expand_pbox
enddef kanmi outlookbegintsuglyph(uni89B3179)kanjigrfouroutlooktsu_render
endtsuglyph
httptsukurimashousourceforgejp
鬱鬱kanjigreightgloom
kanjileftradwood
kanjigreighttin_can
kanjigrtwonoon
kanjigronewood
kanjiradicalconservative_hat
kanjirarespiced_liqueur
kanjiradicalspoon
kanjirightradshort_hair
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
3
3
5
5
14
14
26
26 26 26 26
27
27
1
1
2
2
3
3
4
4
4
4
4
5
5
5
6
6
6
7
7
8
8
8
9
9
10
10
11
11
12
12
13
13
14
14
15
15
15
16
16
16
16
16
16
16
16
16
16
17
17
17
18
18
18
19
19
19
20
20
20
21
21
21
22
22
22
23
23
24
24
25
25
26
2626
26
26
26
26
26
26
26
26
26
26
27
27
27
27
28
28
28
28
29
29
29
29
30
30
30
30
httptsukurimashousourceforgejp
Korean hangul ハングル語
L
V
T
L
V
T
L
V
T
L
V
L
V
L
V
지읍시다 바탕 한글
httptsukurimashousourceforgejp
Parasite packages 寄生パッケージ
IDSgrep
OCR A OCR BGenJiMon
Beikaitorukleknev
httptsukurimashousourceforgejp
何の漢字は『木』が左側にあるWhich kanji have 木 on the left札朽材村松板林柱校根植楾様横橋相
何漢字は『俺』の右側を持つかWhat contains the right side of 俺
俺奄庵淹菴閹
何漢字は『目』があるでも『首』とか『貝』とかないかWhat contains 目 but nothing like 首 or 貝
想目相県箱
『萌』の符号位置が何
Whatrsquos the code point for 萌
U+840C
z
grepを使ってがいいですか
Canrsquot we just use grep
httptsukurimashousourceforgejp
何の漢字は『木』が左側にあるWhich kanji have 木 on the left札朽材村松板林柱校根植楾様横橋相
idsgrep -d [lr]木
何漢字は『俺』の右側を持つかWhat contains the right side of 俺
俺奄庵淹菴閹
idsgrep -d 俺idsgrep -d 奄
何漢字は『目』があるでも『首』とか『貝』とかないかWhat contains 目 but nothing like 首 or 貝
想目相県箱
idsgrep -damp目[tb]目
『萌』の符号位置が何
Whatrsquos the code point for 萌
U+840C
idsgrep -Ux 萌
httptsukurimashousourceforgejp
態
能
厶
匕
匕
心
[amp]
(心)
[tb]
(匕)
(匕)
【態】lt能gt厶匕匕心
idsgrep -d amp心[tb]匕匕
httptsukurimashousourceforgejp
Character databases 漢字のデータベース
CHISEMorioka 2001年
KanjiVGApel 2009年
TsukurimashouSkala 2012年
CJKGrid
httptsukurimashousourceforgejp
What language(s) 何語か
Who are the users rarrEtymology or appearance
ユーザは誰かrarr語源と観はどちらがいいか
Data quality データの品質
l
聞くありがとうThank you for your attention
The Tsukurimashou Projecthttptsukurimashousourceforgejp
『作りましょう』のプロジェクト
Matthew Skala マッシュ スカラmskalaansuzsookebcca
These slides were typeset using X ELATEX TikZ a selection of fonts from the Tsukurimashou Project and Azudings 1 by
Vic Fieger Osakan pig photo by Matthew Skala 2011 Nurikabe painting by Kanou Tourin 1802 public domain
httptsukurimashousourceforgejp
325000 LOC
j
ウィキを使おうっWersquoll use a Wiki mdash
f
なんでやねんYa gotta be kidding
httptsukurimashousourceforgejp
フォントfont
ソフトウェアsoftware
httptsukurimashousourceforgejp
フォントfont
ソフトウェアsoftware
バージョン管理version control
チケットのシステムticket system
多態性polymorphism
ビルドのシステムbuild system
単体テストunit tests
GPL
エンカプセレーションencapsulation
httptsukurimashousourceforgejp
Tsukurimashou 作りましょう
Font family for EnglishJapanese and Korean
日本語と英語とハングルのフォントファミリ
GPLv3 open source GPLv3のオープンソース
one developer working sincelate 2010 2010年から一人で書いて
now 〜100000 LOC 今〜十万LOC
now 〜1500 kanji 今〜1500字の漢字
paramaterization stroke styleshape boldness serifs spacing
パラメタ方式は画の形字形太字度うろこ スペーシング
httptsukurimashousourceforgejp
httptsukurimashousourceforgejp
httptsukurimashousourceforgejp
源
Kaku 角
源
Maru 丸
源Bokukko 僕女
源
Mincho 明朝
物物物物物物Tsukurimashou Kaku Tsukurimashou Kaku PSTsukurimashou Mincho Tsukurimashou Mincho PS
TsuIta Atama TsuIta Atama PSTsuIta Soku TsuIta Soku PS
httptsukurimashousourceforgejp
位相のパラメタ Topological parameterization
さ
mincho=00
さmincho=10
00
Kaku 角
Maru 丸
03
Bokukko 僕女
10
Mincho 明朝
httptsukurimashousourceforgejp
Metapost
MetaType1
obstack
作りましょう
EPS and
proof files
Perl
MT1 port
Type 1
FontForge
scripts
kerner
OTF
TikZ
X ELATEX
GNU Make
Autotools
build
Hamlog
httptsukurimashousourceforgejp
観vardef kanjigrfouroutlook =push_pbox_toexpand(kanjigrfouroutlook)build_kanjilevel(build_kanjilr(46050)(build_kanjitb(470190)(kanjigrtwoarrowreplace_strokep(-1)(oldp shifted (-600))obstacktype[find_whatever(otstroke0)]=otnull)
(kanjiradicalold_birdobstacktype[find_whatever(otstroke-7)]=otnullreplace_strokep(-6)(point 0 of oldp+(015)--point 1 of oldp)replace_strokep(-4)(point 0 of oldp+(300)--point 1 of oldp)))
(kanjigronesee))expand_pbox
enddef kanmi outlookbegintsuglyph(uni89B3179)kanjigrfouroutlooktsu_render
endtsuglyph
httptsukurimashousourceforgejp
鬱鬱kanjigreightgloom
kanjileftradwood
kanjigreighttin_can
kanjigrtwonoon
kanjigronewood
kanjiradicalconservative_hat
kanjirarespiced_liqueur
kanjiradicalspoon
kanjirightradshort_hair
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
3
3
5
5
14
14
26
26 26 26 26
27
27
1
1
2
2
3
3
4
4
4
4
4
5
5
5
6
6
6
7
7
8
8
8
9
9
10
10
11
11
12
12
13
13
14
14
15
15
15
16
16
16
16
16
16
16
16
16
16
17
17
17
18
18
18
19
19
19
20
20
20
21
21
21
22
22
22
23
23
24
24
25
25
26
2626
26
26
26
26
26
26
26
26
26
26
27
27
27
27
28
28
28
28
29
29
29
29
30
30
30
30
httptsukurimashousourceforgejp
Korean hangul ハングル語
L
V
T
L
V
T
L
V
T
L
V
L
V
L
V
지읍시다 바탕 한글
httptsukurimashousourceforgejp
Parasite packages 寄生パッケージ
IDSgrep
OCR A OCR BGenJiMon
Beikaitorukleknev
httptsukurimashousourceforgejp
何の漢字は『木』が左側にあるWhich kanji have 木 on the left札朽材村松板林柱校根植楾様横橋相
何漢字は『俺』の右側を持つかWhat contains the right side of 俺
俺奄庵淹菴閹
何漢字は『目』があるでも『首』とか『貝』とかないかWhat contains 目 but nothing like 首 or 貝
想目相県箱
『萌』の符号位置が何
Whatrsquos the code point for 萌
U+840C
z
grepを使ってがいいですか
Canrsquot we just use grep
httptsukurimashousourceforgejp
何の漢字は『木』が左側にあるWhich kanji have 木 on the left札朽材村松板林柱校根植楾様横橋相
idsgrep -d [lr]木
何漢字は『俺』の右側を持つかWhat contains the right side of 俺
俺奄庵淹菴閹
idsgrep -d 俺idsgrep -d 奄
何漢字は『目』があるでも『首』とか『貝』とかないかWhat contains 目 but nothing like 首 or 貝
想目相県箱
idsgrep -damp目[tb]目
『萌』の符号位置が何
Whatrsquos the code point for 萌
U+840C
idsgrep -Ux 萌
httptsukurimashousourceforgejp
態
能
厶
匕
匕
心
[amp]
(心)
[tb]
(匕)
(匕)
【態】lt能gt厶匕匕心
idsgrep -d amp心[tb]匕匕
httptsukurimashousourceforgejp
Character databases 漢字のデータベース
CHISEMorioka 2001年
KanjiVGApel 2009年
TsukurimashouSkala 2012年
CJKGrid
httptsukurimashousourceforgejp
What language(s) 何語か
Who are the users rarrEtymology or appearance
ユーザは誰かrarr語源と観はどちらがいいか
Data quality データの品質
l
聞くありがとうThank you for your attention
The Tsukurimashou Projecthttptsukurimashousourceforgejp
『作りましょう』のプロジェクト
Matthew Skala マッシュ スカラmskalaansuzsookebcca
These slides were typeset using X ELATEX TikZ a selection of fonts from the Tsukurimashou Project and Azudings 1 by
Vic Fieger Osakan pig photo by Matthew Skala 2011 Nurikabe painting by Kanou Tourin 1802 public domain
httptsukurimashousourceforgejp
フォントfont
ソフトウェアsoftware
httptsukurimashousourceforgejp
フォントfont
ソフトウェアsoftware
バージョン管理version control
チケットのシステムticket system
多態性polymorphism
ビルドのシステムbuild system
単体テストunit tests
GPL
エンカプセレーションencapsulation
httptsukurimashousourceforgejp
Tsukurimashou 作りましょう
Font family for EnglishJapanese and Korean
日本語と英語とハングルのフォントファミリ
GPLv3 open source GPLv3のオープンソース
one developer working sincelate 2010 2010年から一人で書いて
now 〜100000 LOC 今〜十万LOC
now 〜1500 kanji 今〜1500字の漢字
paramaterization stroke styleshape boldness serifs spacing
パラメタ方式は画の形字形太字度うろこ スペーシング
httptsukurimashousourceforgejp
httptsukurimashousourceforgejp
httptsukurimashousourceforgejp
源
Kaku 角
源
Maru 丸
源Bokukko 僕女
源
Mincho 明朝
物物物物物物Tsukurimashou Kaku Tsukurimashou Kaku PSTsukurimashou Mincho Tsukurimashou Mincho PS
TsuIta Atama TsuIta Atama PSTsuIta Soku TsuIta Soku PS
httptsukurimashousourceforgejp
位相のパラメタ Topological parameterization
さ
mincho=00
さmincho=10
00
Kaku 角
Maru 丸
03
Bokukko 僕女
10
Mincho 明朝
httptsukurimashousourceforgejp
Metapost
MetaType1
obstack
作りましょう
EPS and
proof files
Perl
MT1 port
Type 1
FontForge
scripts
kerner
OTF
TikZ
X ELATEX
GNU Make
Autotools
build
Hamlog
httptsukurimashousourceforgejp
観vardef kanjigrfouroutlook =push_pbox_toexpand(kanjigrfouroutlook)build_kanjilevel(build_kanjilr(46050)(build_kanjitb(470190)(kanjigrtwoarrowreplace_strokep(-1)(oldp shifted (-600))obstacktype[find_whatever(otstroke0)]=otnull)
(kanjiradicalold_birdobstacktype[find_whatever(otstroke-7)]=otnullreplace_strokep(-6)(point 0 of oldp+(015)--point 1 of oldp)replace_strokep(-4)(point 0 of oldp+(300)--point 1 of oldp)))
(kanjigronesee))expand_pbox
enddef kanmi outlookbegintsuglyph(uni89B3179)kanjigrfouroutlooktsu_render
endtsuglyph
httptsukurimashousourceforgejp
鬱鬱kanjigreightgloom
kanjileftradwood
kanjigreighttin_can
kanjigrtwonoon
kanjigronewood
kanjiradicalconservative_hat
kanjirarespiced_liqueur
kanjiradicalspoon
kanjirightradshort_hair
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
3
3
5
5
14
14
26
26 26 26 26
27
27
1
1
2
2
3
3
4
4
4
4
4
5
5
5
6
6
6
7
7
8
8
8
9
9
10
10
11
11
12
12
13
13
14
14
15
15
15
16
16
16
16
16
16
16
16
16
16
17
17
17
18
18
18
19
19
19
20
20
20
21
21
21
22
22
22
23
23
24
24
25
25
26
2626
26
26
26
26
26
26
26
26
26
26
27
27
27
27
28
28
28
28
29
29
29
29
30
30
30
30
httptsukurimashousourceforgejp
Korean hangul ハングル語
L
V
T
L
V
T
L
V
T
L
V
L
V
L
V
지읍시다 바탕 한글
httptsukurimashousourceforgejp
Parasite packages 寄生パッケージ
IDSgrep
OCR A OCR BGenJiMon
Beikaitorukleknev
httptsukurimashousourceforgejp
何の漢字は『木』が左側にあるWhich kanji have 木 on the left札朽材村松板林柱校根植楾様横橋相
何漢字は『俺』の右側を持つかWhat contains the right side of 俺
俺奄庵淹菴閹
何漢字は『目』があるでも『首』とか『貝』とかないかWhat contains 目 but nothing like 首 or 貝
想目相県箱
『萌』の符号位置が何
Whatrsquos the code point for 萌
U+840C
z
grepを使ってがいいですか
Canrsquot we just use grep
httptsukurimashousourceforgejp
何の漢字は『木』が左側にあるWhich kanji have 木 on the left札朽材村松板林柱校根植楾様横橋相
idsgrep -d [lr]木
何漢字は『俺』の右側を持つかWhat contains the right side of 俺
俺奄庵淹菴閹
idsgrep -d 俺idsgrep -d 奄
何漢字は『目』があるでも『首』とか『貝』とかないかWhat contains 目 but nothing like 首 or 貝
想目相県箱
idsgrep -damp目[tb]目
『萌』の符号位置が何
Whatrsquos the code point for 萌
U+840C
idsgrep -Ux 萌
httptsukurimashousourceforgejp
態
能
厶
匕
匕
心
[amp]
(心)
[tb]
(匕)
(匕)
【態】lt能gt厶匕匕心
idsgrep -d amp心[tb]匕匕
httptsukurimashousourceforgejp
Character databases 漢字のデータベース
CHISEMorioka 2001年
KanjiVGApel 2009年
TsukurimashouSkala 2012年
CJKGrid
httptsukurimashousourceforgejp
What language(s) 何語か
Who are the users rarrEtymology or appearance
ユーザは誰かrarr語源と観はどちらがいいか
Data quality データの品質
l
聞くありがとうThank you for your attention
The Tsukurimashou Projecthttptsukurimashousourceforgejp
『作りましょう』のプロジェクト
Matthew Skala マッシュ スカラmskalaansuzsookebcca
These slides were typeset using X ELATEX TikZ a selection of fonts from the Tsukurimashou Project and Azudings 1 by
Vic Fieger Osakan pig photo by Matthew Skala 2011 Nurikabe painting by Kanou Tourin 1802 public domain
httptsukurimashousourceforgejp
フォントfont
ソフトウェアsoftware
バージョン管理version control
チケットのシステムticket system
多態性polymorphism
ビルドのシステムbuild system
単体テストunit tests
GPL
エンカプセレーションencapsulation
httptsukurimashousourceforgejp
Tsukurimashou 作りましょう
Font family for EnglishJapanese and Korean
日本語と英語とハングルのフォントファミリ
GPLv3 open source GPLv3のオープンソース
one developer working sincelate 2010 2010年から一人で書いて
now 〜100000 LOC 今〜十万LOC
now 〜1500 kanji 今〜1500字の漢字
paramaterization stroke styleshape boldness serifs spacing
パラメタ方式は画の形字形太字度うろこ スペーシング
httptsukurimashousourceforgejp
httptsukurimashousourceforgejp
httptsukurimashousourceforgejp
源
Kaku 角
源
Maru 丸
源Bokukko 僕女
源
Mincho 明朝
物物物物物物Tsukurimashou Kaku Tsukurimashou Kaku PSTsukurimashou Mincho Tsukurimashou Mincho PS
TsuIta Atama TsuIta Atama PSTsuIta Soku TsuIta Soku PS
httptsukurimashousourceforgejp
位相のパラメタ Topological parameterization
さ
mincho=00
さmincho=10
00
Kaku 角
Maru 丸
03
Bokukko 僕女
10
Mincho 明朝
httptsukurimashousourceforgejp
Metapost
MetaType1
obstack
作りましょう
EPS and
proof files
Perl
MT1 port
Type 1
FontForge
scripts
kerner
OTF
TikZ
X ELATEX
GNU Make
Autotools
build
Hamlog
httptsukurimashousourceforgejp
観vardef kanjigrfouroutlook =push_pbox_toexpand(kanjigrfouroutlook)build_kanjilevel(build_kanjilr(46050)(build_kanjitb(470190)(kanjigrtwoarrowreplace_strokep(-1)(oldp shifted (-600))obstacktype[find_whatever(otstroke0)]=otnull)
(kanjiradicalold_birdobstacktype[find_whatever(otstroke-7)]=otnullreplace_strokep(-6)(point 0 of oldp+(015)--point 1 of oldp)replace_strokep(-4)(point 0 of oldp+(300)--point 1 of oldp)))
(kanjigronesee))expand_pbox
enddef kanmi outlookbegintsuglyph(uni89B3179)kanjigrfouroutlooktsu_render
endtsuglyph
httptsukurimashousourceforgejp
鬱鬱kanjigreightgloom
kanjileftradwood
kanjigreighttin_can
kanjigrtwonoon
kanjigronewood
kanjiradicalconservative_hat
kanjirarespiced_liqueur
kanjiradicalspoon
kanjirightradshort_hair
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
3
3
5
5
14
14
26
26 26 26 26
27
27
1
1
2
2
3
3
4
4
4
4
4
5
5
5
6
6
6
7
7
8
8
8
9
9
10
10
11
11
12
12
13
13
14
14
15
15
15
16
16
16
16
16
16
16
16
16
16
17
17
17
18
18
18
19
19
19
20
20
20
21
21
21
22
22
22
23
23
24
24
25
25
26
2626
26
26
26
26
26
26
26
26
26
26
27
27
27
27
28
28
28
28
29
29
29
29
30
30
30
30
httptsukurimashousourceforgejp
Korean hangul ハングル語
L
V
T
L
V
T
L
V
T
L
V
L
V
L
V
지읍시다 바탕 한글
httptsukurimashousourceforgejp
Parasite packages 寄生パッケージ
IDSgrep
OCR A OCR BGenJiMon
Beikaitorukleknev
httptsukurimashousourceforgejp
何の漢字は『木』が左側にあるWhich kanji have 木 on the left札朽材村松板林柱校根植楾様横橋相
何漢字は『俺』の右側を持つかWhat contains the right side of 俺
俺奄庵淹菴閹
何漢字は『目』があるでも『首』とか『貝』とかないかWhat contains 目 but nothing like 首 or 貝
想目相県箱
『萌』の符号位置が何
Whatrsquos the code point for 萌
U+840C
z
grepを使ってがいいですか
Canrsquot we just use grep
httptsukurimashousourceforgejp
何の漢字は『木』が左側にあるWhich kanji have 木 on the left札朽材村松板林柱校根植楾様横橋相
idsgrep -d [lr]木
何漢字は『俺』の右側を持つかWhat contains the right side of 俺
俺奄庵淹菴閹
idsgrep -d 俺idsgrep -d 奄
何漢字は『目』があるでも『首』とか『貝』とかないかWhat contains 目 but nothing like 首 or 貝
想目相県箱
idsgrep -damp目[tb]目
『萌』の符号位置が何
Whatrsquos the code point for 萌
U+840C
idsgrep -Ux 萌
httptsukurimashousourceforgejp
態
能
厶
匕
匕
心
[amp]
(心)
[tb]
(匕)
(匕)
【態】lt能gt厶匕匕心
idsgrep -d amp心[tb]匕匕
httptsukurimashousourceforgejp
Character databases 漢字のデータベース
CHISEMorioka 2001年
KanjiVGApel 2009年
TsukurimashouSkala 2012年
CJKGrid
httptsukurimashousourceforgejp
What language(s) 何語か
Who are the users rarrEtymology or appearance
ユーザは誰かrarr語源と観はどちらがいいか
Data quality データの品質
l
聞くありがとうThank you for your attention
The Tsukurimashou Projecthttptsukurimashousourceforgejp
『作りましょう』のプロジェクト
Matthew Skala マッシュ スカラmskalaansuzsookebcca
These slides were typeset using X ELATEX TikZ a selection of fonts from the Tsukurimashou Project and Azudings 1 by
Vic Fieger Osakan pig photo by Matthew Skala 2011 Nurikabe painting by Kanou Tourin 1802 public domain
httptsukurimashousourceforgejp
Tsukurimashou 作りましょう
Font family for EnglishJapanese and Korean
日本語と英語とハングルのフォントファミリ
GPLv3 open source GPLv3のオープンソース
one developer working sincelate 2010 2010年から一人で書いて
now 〜100000 LOC 今〜十万LOC
now 〜1500 kanji 今〜1500字の漢字
paramaterization stroke styleshape boldness serifs spacing
パラメタ方式は画の形字形太字度うろこ スペーシング
httptsukurimashousourceforgejp
httptsukurimashousourceforgejp
httptsukurimashousourceforgejp
源
Kaku 角
源
Maru 丸
源Bokukko 僕女
源
Mincho 明朝
物物物物物物Tsukurimashou Kaku Tsukurimashou Kaku PSTsukurimashou Mincho Tsukurimashou Mincho PS
TsuIta Atama TsuIta Atama PSTsuIta Soku TsuIta Soku PS
httptsukurimashousourceforgejp
位相のパラメタ Topological parameterization
さ
mincho=00
さmincho=10
00
Kaku 角
Maru 丸
03
Bokukko 僕女
10
Mincho 明朝
httptsukurimashousourceforgejp
Metapost
MetaType1
obstack
作りましょう
EPS and
proof files
Perl
MT1 port
Type 1
FontForge
scripts
kerner
OTF
TikZ
X ELATEX
GNU Make
Autotools
build
Hamlog
httptsukurimashousourceforgejp
観vardef kanjigrfouroutlook =push_pbox_toexpand(kanjigrfouroutlook)build_kanjilevel(build_kanjilr(46050)(build_kanjitb(470190)(kanjigrtwoarrowreplace_strokep(-1)(oldp shifted (-600))obstacktype[find_whatever(otstroke0)]=otnull)
(kanjiradicalold_birdobstacktype[find_whatever(otstroke-7)]=otnullreplace_strokep(-6)(point 0 of oldp+(015)--point 1 of oldp)replace_strokep(-4)(point 0 of oldp+(300)--point 1 of oldp)))
(kanjigronesee))expand_pbox
enddef kanmi outlookbegintsuglyph(uni89B3179)kanjigrfouroutlooktsu_render
endtsuglyph
httptsukurimashousourceforgejp
鬱鬱kanjigreightgloom
kanjileftradwood
kanjigreighttin_can
kanjigrtwonoon
kanjigronewood
kanjiradicalconservative_hat
kanjirarespiced_liqueur
kanjiradicalspoon
kanjirightradshort_hair
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
3
3
5
5
14
14
26
26 26 26 26
27
27
1
1
2
2
3
3
4
4
4
4
4
5
5
5
6
6
6
7
7
8
8
8
9
9
10
10
11
11
12
12
13
13
14
14
15
15
15
16
16
16
16
16
16
16
16
16
16
17
17
17
18
18
18
19
19
19
20
20
20
21
21
21
22
22
22
23
23
24
24
25
25
26
2626
26
26
26
26
26
26
26
26
26
26
27
27
27
27
28
28
28
28
29
29
29
29
30
30
30
30
httptsukurimashousourceforgejp
Korean hangul ハングル語
L
V
T
L
V
T
L
V
T
L
V
L
V
L
V
지읍시다 바탕 한글
httptsukurimashousourceforgejp
Parasite packages 寄生パッケージ
IDSgrep
OCR A OCR BGenJiMon
Beikaitorukleknev
httptsukurimashousourceforgejp
何の漢字は『木』が左側にあるWhich kanji have 木 on the left札朽材村松板林柱校根植楾様横橋相
何漢字は『俺』の右側を持つかWhat contains the right side of 俺
俺奄庵淹菴閹
何漢字は『目』があるでも『首』とか『貝』とかないかWhat contains 目 but nothing like 首 or 貝
想目相県箱
『萌』の符号位置が何
Whatrsquos the code point for 萌
U+840C
z
grepを使ってがいいですか
Canrsquot we just use grep
httptsukurimashousourceforgejp
何の漢字は『木』が左側にあるWhich kanji have 木 on the left札朽材村松板林柱校根植楾様横橋相
idsgrep -d [lr]木
何漢字は『俺』の右側を持つかWhat contains the right side of 俺
俺奄庵淹菴閹
idsgrep -d 俺idsgrep -d 奄
何漢字は『目』があるでも『首』とか『貝』とかないかWhat contains 目 but nothing like 首 or 貝
想目相県箱
idsgrep -damp目[tb]目
『萌』の符号位置が何
Whatrsquos the code point for 萌
U+840C
idsgrep -Ux 萌
httptsukurimashousourceforgejp
態
能
厶
匕
匕
心
[amp]
(心)
[tb]
(匕)
(匕)
【態】lt能gt厶匕匕心
idsgrep -d amp心[tb]匕匕
httptsukurimashousourceforgejp
Character databases 漢字のデータベース
CHISEMorioka 2001年
KanjiVGApel 2009年
TsukurimashouSkala 2012年
CJKGrid
httptsukurimashousourceforgejp
What language(s) 何語か
Who are the users rarrEtymology or appearance
ユーザは誰かrarr語源と観はどちらがいいか
Data quality データの品質
l
聞くありがとうThank you for your attention
The Tsukurimashou Projecthttptsukurimashousourceforgejp
『作りましょう』のプロジェクト
Matthew Skala マッシュ スカラmskalaansuzsookebcca
These slides were typeset using X ELATEX TikZ a selection of fonts from the Tsukurimashou Project and Azudings 1 by
Vic Fieger Osakan pig photo by Matthew Skala 2011 Nurikabe painting by Kanou Tourin 1802 public domain
httptsukurimashousourceforgejp
httptsukurimashousourceforgejp
httptsukurimashousourceforgejp
源
Kaku 角
源
Maru 丸
源Bokukko 僕女
源
Mincho 明朝
物物物物物物Tsukurimashou Kaku Tsukurimashou Kaku PSTsukurimashou Mincho Tsukurimashou Mincho PS
TsuIta Atama TsuIta Atama PSTsuIta Soku TsuIta Soku PS
httptsukurimashousourceforgejp
位相のパラメタ Topological parameterization
さ
mincho=00
さmincho=10
00
Kaku 角
Maru 丸
03
Bokukko 僕女
10
Mincho 明朝
httptsukurimashousourceforgejp
Metapost
MetaType1
obstack
作りましょう
EPS and
proof files
Perl
MT1 port
Type 1
FontForge
scripts
kerner
OTF
TikZ
X ELATEX
GNU Make
Autotools
build
Hamlog
httptsukurimashousourceforgejp
観vardef kanjigrfouroutlook =push_pbox_toexpand(kanjigrfouroutlook)build_kanjilevel(build_kanjilr(46050)(build_kanjitb(470190)(kanjigrtwoarrowreplace_strokep(-1)(oldp shifted (-600))obstacktype[find_whatever(otstroke0)]=otnull)
(kanjiradicalold_birdobstacktype[find_whatever(otstroke-7)]=otnullreplace_strokep(-6)(point 0 of oldp+(015)--point 1 of oldp)replace_strokep(-4)(point 0 of oldp+(300)--point 1 of oldp)))
(kanjigronesee))expand_pbox
enddef kanmi outlookbegintsuglyph(uni89B3179)kanjigrfouroutlooktsu_render
endtsuglyph
httptsukurimashousourceforgejp
鬱鬱kanjigreightgloom
kanjileftradwood
kanjigreighttin_can
kanjigrtwonoon
kanjigronewood
kanjiradicalconservative_hat
kanjirarespiced_liqueur
kanjiradicalspoon
kanjirightradshort_hair
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
3
3
5
5
14
14
26
26 26 26 26
27
27
1
1
2
2
3
3
4
4
4
4
4
5
5
5
6
6
6
7
7
8
8
8
9
9
10
10
11
11
12
12
13
13
14
14
15
15
15
16
16
16
16
16
16
16
16
16
16
17
17
17
18
18
18
19
19
19
20
20
20
21
21
21
22
22
22
23
23
24
24
25
25
26
2626
26
26
26
26
26
26
26
26
26
26
27
27
27
27
28
28
28
28
29
29
29
29
30
30
30
30
httptsukurimashousourceforgejp
Korean hangul ハングル語
L
V
T
L
V
T
L
V
T
L
V
L
V
L
V
지읍시다 바탕 한글
httptsukurimashousourceforgejp
Parasite packages 寄生パッケージ
IDSgrep
OCR A OCR BGenJiMon
Beikaitorukleknev
httptsukurimashousourceforgejp
何の漢字は『木』が左側にあるWhich kanji have 木 on the left札朽材村松板林柱校根植楾様横橋相
何漢字は『俺』の右側を持つかWhat contains the right side of 俺
俺奄庵淹菴閹
何漢字は『目』があるでも『首』とか『貝』とかないかWhat contains 目 but nothing like 首 or 貝
想目相県箱
『萌』の符号位置が何
Whatrsquos the code point for 萌
U+840C
z
grepを使ってがいいですか
Canrsquot we just use grep
httptsukurimashousourceforgejp
何の漢字は『木』が左側にあるWhich kanji have 木 on the left札朽材村松板林柱校根植楾様横橋相
idsgrep -d [lr]木
何漢字は『俺』の右側を持つかWhat contains the right side of 俺
俺奄庵淹菴閹
idsgrep -d 俺idsgrep -d 奄
何漢字は『目』があるでも『首』とか『貝』とかないかWhat contains 目 but nothing like 首 or 貝
想目相県箱
idsgrep -damp目[tb]目
『萌』の符号位置が何
Whatrsquos the code point for 萌
U+840C
idsgrep -Ux 萌
httptsukurimashousourceforgejp
態
能
厶
匕
匕
心
[amp]
(心)
[tb]
(匕)
(匕)
【態】lt能gt厶匕匕心
idsgrep -d amp心[tb]匕匕
httptsukurimashousourceforgejp
Character databases 漢字のデータベース
CHISEMorioka 2001年
KanjiVGApel 2009年
TsukurimashouSkala 2012年
CJKGrid
httptsukurimashousourceforgejp
What language(s) 何語か
Who are the users rarrEtymology or appearance
ユーザは誰かrarr語源と観はどちらがいいか
Data quality データの品質
l
聞くありがとうThank you for your attention
The Tsukurimashou Projecthttptsukurimashousourceforgejp
『作りましょう』のプロジェクト
Matthew Skala マッシュ スカラmskalaansuzsookebcca
These slides were typeset using X ELATEX TikZ a selection of fonts from the Tsukurimashou Project and Azudings 1 by
Vic Fieger Osakan pig photo by Matthew Skala 2011 Nurikabe painting by Kanou Tourin 1802 public domain
httptsukurimashousourceforgejp
httptsukurimashousourceforgejp
源
Kaku 角
源
Maru 丸
源Bokukko 僕女
源
Mincho 明朝
物物物物物物Tsukurimashou Kaku Tsukurimashou Kaku PSTsukurimashou Mincho Tsukurimashou Mincho PS
TsuIta Atama TsuIta Atama PSTsuIta Soku TsuIta Soku PS
httptsukurimashousourceforgejp
位相のパラメタ Topological parameterization
さ
mincho=00
さmincho=10
00
Kaku 角
Maru 丸
03
Bokukko 僕女
10
Mincho 明朝
httptsukurimashousourceforgejp
Metapost
MetaType1
obstack
作りましょう
EPS and
proof files
Perl
MT1 port
Type 1
FontForge
scripts
kerner
OTF
TikZ
X ELATEX
GNU Make
Autotools
build
Hamlog
httptsukurimashousourceforgejp
観vardef kanjigrfouroutlook =push_pbox_toexpand(kanjigrfouroutlook)build_kanjilevel(build_kanjilr(46050)(build_kanjitb(470190)(kanjigrtwoarrowreplace_strokep(-1)(oldp shifted (-600))obstacktype[find_whatever(otstroke0)]=otnull)
(kanjiradicalold_birdobstacktype[find_whatever(otstroke-7)]=otnullreplace_strokep(-6)(point 0 of oldp+(015)--point 1 of oldp)replace_strokep(-4)(point 0 of oldp+(300)--point 1 of oldp)))
(kanjigronesee))expand_pbox
enddef kanmi outlookbegintsuglyph(uni89B3179)kanjigrfouroutlooktsu_render
endtsuglyph
httptsukurimashousourceforgejp
鬱鬱kanjigreightgloom
kanjileftradwood
kanjigreighttin_can
kanjigrtwonoon
kanjigronewood
kanjiradicalconservative_hat
kanjirarespiced_liqueur
kanjiradicalspoon
kanjirightradshort_hair
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
3
3
5
5
14
14
26
26 26 26 26
27
27
1
1
2
2
3
3
4
4
4
4
4
5
5
5
6
6
6
7
7
8
8
8
9
9
10
10
11
11
12
12
13
13
14
14
15
15
15
16
16
16
16
16
16
16
16
16
16
17
17
17
18
18
18
19
19
19
20
20
20
21
21
21
22
22
22
23
23
24
24
25
25
26
2626
26
26
26
26
26
26
26
26
26
26
27
27
27
27
28
28
28
28
29
29
29
29
30
30
30
30
httptsukurimashousourceforgejp
Korean hangul ハングル語
L
V
T
L
V
T
L
V
T
L
V
L
V
L
V
지읍시다 바탕 한글
httptsukurimashousourceforgejp
Parasite packages 寄生パッケージ
IDSgrep
OCR A OCR BGenJiMon
Beikaitorukleknev
httptsukurimashousourceforgejp
何の漢字は『木』が左側にあるWhich kanji have 木 on the left札朽材村松板林柱校根植楾様横橋相
何漢字は『俺』の右側を持つかWhat contains the right side of 俺
俺奄庵淹菴閹
何漢字は『目』があるでも『首』とか『貝』とかないかWhat contains 目 but nothing like 首 or 貝
想目相県箱
『萌』の符号位置が何
Whatrsquos the code point for 萌
U+840C
z
grepを使ってがいいですか
Canrsquot we just use grep
httptsukurimashousourceforgejp
何の漢字は『木』が左側にあるWhich kanji have 木 on the left札朽材村松板林柱校根植楾様横橋相
idsgrep -d [lr]木
何漢字は『俺』の右側を持つかWhat contains the right side of 俺
俺奄庵淹菴閹
idsgrep -d 俺idsgrep -d 奄
何漢字は『目』があるでも『首』とか『貝』とかないかWhat contains 目 but nothing like 首 or 貝
想目相県箱
idsgrep -damp目[tb]目
『萌』の符号位置が何
Whatrsquos the code point for 萌
U+840C
idsgrep -Ux 萌
httptsukurimashousourceforgejp
態
能
厶
匕
匕
心
[amp]
(心)
[tb]
(匕)
(匕)
【態】lt能gt厶匕匕心
idsgrep -d amp心[tb]匕匕
httptsukurimashousourceforgejp
Character databases 漢字のデータベース
CHISEMorioka 2001年
KanjiVGApel 2009年
TsukurimashouSkala 2012年
CJKGrid
httptsukurimashousourceforgejp
What language(s) 何語か
Who are the users rarrEtymology or appearance
ユーザは誰かrarr語源と観はどちらがいいか
Data quality データの品質
l
聞くありがとうThank you for your attention
The Tsukurimashou Projecthttptsukurimashousourceforgejp
『作りましょう』のプロジェクト
Matthew Skala マッシュ スカラmskalaansuzsookebcca
These slides were typeset using X ELATEX TikZ a selection of fonts from the Tsukurimashou Project and Azudings 1 by
Vic Fieger Osakan pig photo by Matthew Skala 2011 Nurikabe painting by Kanou Tourin 1802 public domain
httptsukurimashousourceforgejp
源
Kaku 角
源
Maru 丸
源Bokukko 僕女
源
Mincho 明朝
物物物物物物Tsukurimashou Kaku Tsukurimashou Kaku PSTsukurimashou Mincho Tsukurimashou Mincho PS
TsuIta Atama TsuIta Atama PSTsuIta Soku TsuIta Soku PS
httptsukurimashousourceforgejp
位相のパラメタ Topological parameterization
さ
mincho=00
さmincho=10
00
Kaku 角
Maru 丸
03
Bokukko 僕女
10
Mincho 明朝
httptsukurimashousourceforgejp
Metapost
MetaType1
obstack
作りましょう
EPS and
proof files
Perl
MT1 port
Type 1
FontForge
scripts
kerner
OTF
TikZ
X ELATEX
GNU Make
Autotools
build
Hamlog
httptsukurimashousourceforgejp
観vardef kanjigrfouroutlook =push_pbox_toexpand(kanjigrfouroutlook)build_kanjilevel(build_kanjilr(46050)(build_kanjitb(470190)(kanjigrtwoarrowreplace_strokep(-1)(oldp shifted (-600))obstacktype[find_whatever(otstroke0)]=otnull)
(kanjiradicalold_birdobstacktype[find_whatever(otstroke-7)]=otnullreplace_strokep(-6)(point 0 of oldp+(015)--point 1 of oldp)replace_strokep(-4)(point 0 of oldp+(300)--point 1 of oldp)))
(kanjigronesee))expand_pbox
enddef kanmi outlookbegintsuglyph(uni89B3179)kanjigrfouroutlooktsu_render
endtsuglyph
httptsukurimashousourceforgejp
鬱鬱kanjigreightgloom
kanjileftradwood
kanjigreighttin_can
kanjigrtwonoon
kanjigronewood
kanjiradicalconservative_hat
kanjirarespiced_liqueur
kanjiradicalspoon
kanjirightradshort_hair
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
3
3
5
5
14
14
26
26 26 26 26
27
27
1
1
2
2
3
3
4
4
4
4
4
5
5
5
6
6
6
7
7
8
8
8
9
9
10
10
11
11
12
12
13
13
14
14
15
15
15
16
16
16
16
16
16
16
16
16
16
17
17
17
18
18
18
19
19
19
20
20
20
21
21
21
22
22
22
23
23
24
24
25
25
26
2626
26
26
26
26
26
26
26
26
26
26
27
27
27
27
28
28
28
28
29
29
29
29
30
30
30
30
httptsukurimashousourceforgejp
Korean hangul ハングル語
L
V
T
L
V
T
L
V
T
L
V
L
V
L
V
지읍시다 바탕 한글
httptsukurimashousourceforgejp
Parasite packages 寄生パッケージ
IDSgrep
OCR A OCR BGenJiMon
Beikaitorukleknev
httptsukurimashousourceforgejp
何の漢字は『木』が左側にあるWhich kanji have 木 on the left札朽材村松板林柱校根植楾様横橋相
何漢字は『俺』の右側を持つかWhat contains the right side of 俺
俺奄庵淹菴閹
何漢字は『目』があるでも『首』とか『貝』とかないかWhat contains 目 but nothing like 首 or 貝
想目相県箱
『萌』の符号位置が何
Whatrsquos the code point for 萌
U+840C
z
grepを使ってがいいですか
Canrsquot we just use grep
httptsukurimashousourceforgejp
何の漢字は『木』が左側にあるWhich kanji have 木 on the left札朽材村松板林柱校根植楾様横橋相
idsgrep -d [lr]木
何漢字は『俺』の右側を持つかWhat contains the right side of 俺
俺奄庵淹菴閹
idsgrep -d 俺idsgrep -d 奄
何漢字は『目』があるでも『首』とか『貝』とかないかWhat contains 目 but nothing like 首 or 貝
想目相県箱
idsgrep -damp目[tb]目
『萌』の符号位置が何
Whatrsquos the code point for 萌
U+840C
idsgrep -Ux 萌
httptsukurimashousourceforgejp
態
能
厶
匕
匕
心
[amp]
(心)
[tb]
(匕)
(匕)
【態】lt能gt厶匕匕心
idsgrep -d amp心[tb]匕匕
httptsukurimashousourceforgejp
Character databases 漢字のデータベース
CHISEMorioka 2001年
KanjiVGApel 2009年
TsukurimashouSkala 2012年
CJKGrid
httptsukurimashousourceforgejp
What language(s) 何語か
Who are the users rarrEtymology or appearance
ユーザは誰かrarr語源と観はどちらがいいか
Data quality データの品質
l
聞くありがとうThank you for your attention
The Tsukurimashou Projecthttptsukurimashousourceforgejp
『作りましょう』のプロジェクト
Matthew Skala マッシュ スカラmskalaansuzsookebcca
These slides were typeset using X ELATEX TikZ a selection of fonts from the Tsukurimashou Project and Azudings 1 by
Vic Fieger Osakan pig photo by Matthew Skala 2011 Nurikabe painting by Kanou Tourin 1802 public domain
httptsukurimashousourceforgejp
位相のパラメタ Topological parameterization
さ
mincho=00
さmincho=10
00
Kaku 角
Maru 丸
03
Bokukko 僕女
10
Mincho 明朝
httptsukurimashousourceforgejp
Metapost
MetaType1
obstack
作りましょう
EPS and
proof files
Perl
MT1 port
Type 1
FontForge
scripts
kerner
OTF
TikZ
X ELATEX
GNU Make
Autotools
build
Hamlog
httptsukurimashousourceforgejp
観vardef kanjigrfouroutlook =push_pbox_toexpand(kanjigrfouroutlook)build_kanjilevel(build_kanjilr(46050)(build_kanjitb(470190)(kanjigrtwoarrowreplace_strokep(-1)(oldp shifted (-600))obstacktype[find_whatever(otstroke0)]=otnull)
(kanjiradicalold_birdobstacktype[find_whatever(otstroke-7)]=otnullreplace_strokep(-6)(point 0 of oldp+(015)--point 1 of oldp)replace_strokep(-4)(point 0 of oldp+(300)--point 1 of oldp)))
(kanjigronesee))expand_pbox
enddef kanmi outlookbegintsuglyph(uni89B3179)kanjigrfouroutlooktsu_render
endtsuglyph
httptsukurimashousourceforgejp
鬱鬱kanjigreightgloom
kanjileftradwood
kanjigreighttin_can
kanjigrtwonoon
kanjigronewood
kanjiradicalconservative_hat
kanjirarespiced_liqueur
kanjiradicalspoon
kanjirightradshort_hair
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
3
3
5
5
14
14
26
26 26 26 26
27
27
1
1
2
2
3
3
4
4
4
4
4
5
5
5
6
6
6
7
7
8
8
8
9
9
10
10
11
11
12
12
13
13
14
14
15
15
15
16
16
16
16
16
16
16
16
16
16
17
17
17
18
18
18
19
19
19
20
20
20
21
21
21
22
22
22
23
23
24
24
25
25
26
2626
26
26
26
26
26
26
26
26
26
26
27
27
27
27
28
28
28
28
29
29
29
29
30
30
30
30
httptsukurimashousourceforgejp
Korean hangul ハングル語
L
V
T
L
V
T
L
V
T
L
V
L
V
L
V
지읍시다 바탕 한글
httptsukurimashousourceforgejp
Parasite packages 寄生パッケージ
IDSgrep
OCR A OCR BGenJiMon
Beikaitorukleknev
httptsukurimashousourceforgejp
何の漢字は『木』が左側にあるWhich kanji have 木 on the left札朽材村松板林柱校根植楾様横橋相
何漢字は『俺』の右側を持つかWhat contains the right side of 俺
俺奄庵淹菴閹
何漢字は『目』があるでも『首』とか『貝』とかないかWhat contains 目 but nothing like 首 or 貝
想目相県箱
『萌』の符号位置が何
Whatrsquos the code point for 萌
U+840C
z
grepを使ってがいいですか
Canrsquot we just use grep
httptsukurimashousourceforgejp
何の漢字は『木』が左側にあるWhich kanji have 木 on the left札朽材村松板林柱校根植楾様横橋相
idsgrep -d [lr]木
何漢字は『俺』の右側を持つかWhat contains the right side of 俺
俺奄庵淹菴閹
idsgrep -d 俺idsgrep -d 奄
何漢字は『目』があるでも『首』とか『貝』とかないかWhat contains 目 but nothing like 首 or 貝
想目相県箱
idsgrep -damp目[tb]目
『萌』の符号位置が何
Whatrsquos the code point for 萌
U+840C
idsgrep -Ux 萌
httptsukurimashousourceforgejp
態
能
厶
匕
匕
心
[amp]
(心)
[tb]
(匕)
(匕)
【態】lt能gt厶匕匕心
idsgrep -d amp心[tb]匕匕
httptsukurimashousourceforgejp
Character databases 漢字のデータベース
CHISEMorioka 2001年
KanjiVGApel 2009年
TsukurimashouSkala 2012年
CJKGrid
httptsukurimashousourceforgejp
What language(s) 何語か
Who are the users rarrEtymology or appearance
ユーザは誰かrarr語源と観はどちらがいいか
Data quality データの品質
l
聞くありがとうThank you for your attention
The Tsukurimashou Projecthttptsukurimashousourceforgejp
『作りましょう』のプロジェクト
Matthew Skala マッシュ スカラmskalaansuzsookebcca
These slides were typeset using X ELATEX TikZ a selection of fonts from the Tsukurimashou Project and Azudings 1 by
Vic Fieger Osakan pig photo by Matthew Skala 2011 Nurikabe painting by Kanou Tourin 1802 public domain
httptsukurimashousourceforgejp
Metapost
MetaType1
obstack
作りましょう
EPS and
proof files
Perl
MT1 port
Type 1
FontForge
scripts
kerner
OTF
TikZ
X ELATEX
GNU Make
Autotools
build
Hamlog
httptsukurimashousourceforgejp
観vardef kanjigrfouroutlook =push_pbox_toexpand(kanjigrfouroutlook)build_kanjilevel(build_kanjilr(46050)(build_kanjitb(470190)(kanjigrtwoarrowreplace_strokep(-1)(oldp shifted (-600))obstacktype[find_whatever(otstroke0)]=otnull)
(kanjiradicalold_birdobstacktype[find_whatever(otstroke-7)]=otnullreplace_strokep(-6)(point 0 of oldp+(015)--point 1 of oldp)replace_strokep(-4)(point 0 of oldp+(300)--point 1 of oldp)))
(kanjigronesee))expand_pbox
enddef kanmi outlookbegintsuglyph(uni89B3179)kanjigrfouroutlooktsu_render
endtsuglyph
httptsukurimashousourceforgejp
鬱鬱kanjigreightgloom
kanjileftradwood
kanjigreighttin_can
kanjigrtwonoon
kanjigronewood
kanjiradicalconservative_hat
kanjirarespiced_liqueur
kanjiradicalspoon
kanjirightradshort_hair
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
3
3
5
5
14
14
26
26 26 26 26
27
27
1
1
2
2
3
3
4
4
4
4
4
5
5
5
6
6
6
7
7
8
8
8
9
9
10
10
11
11
12
12
13
13
14
14
15
15
15
16
16
16
16
16
16
16
16
16
16
17
17
17
18
18
18
19
19
19
20
20
20
21
21
21
22
22
22
23
23
24
24
25
25
26
2626
26
26
26
26
26
26
26
26
26
26
27
27
27
27
28
28
28
28
29
29
29
29
30
30
30
30
httptsukurimashousourceforgejp
Korean hangul ハングル語
L
V
T
L
V
T
L
V
T
L
V
L
V
L
V
지읍시다 바탕 한글
httptsukurimashousourceforgejp
Parasite packages 寄生パッケージ
IDSgrep
OCR A OCR BGenJiMon
Beikaitorukleknev
httptsukurimashousourceforgejp
何の漢字は『木』が左側にあるWhich kanji have 木 on the left札朽材村松板林柱校根植楾様横橋相
何漢字は『俺』の右側を持つかWhat contains the right side of 俺
俺奄庵淹菴閹
何漢字は『目』があるでも『首』とか『貝』とかないかWhat contains 目 but nothing like 首 or 貝
想目相県箱
『萌』の符号位置が何
Whatrsquos the code point for 萌
U+840C
z
grepを使ってがいいですか
Canrsquot we just use grep
httptsukurimashousourceforgejp
何の漢字は『木』が左側にあるWhich kanji have 木 on the left札朽材村松板林柱校根植楾様横橋相
idsgrep -d [lr]木
何漢字は『俺』の右側を持つかWhat contains the right side of 俺
俺奄庵淹菴閹
idsgrep -d 俺idsgrep -d 奄
何漢字は『目』があるでも『首』とか『貝』とかないかWhat contains 目 but nothing like 首 or 貝
想目相県箱
idsgrep -damp目[tb]目
『萌』の符号位置が何
Whatrsquos the code point for 萌
U+840C
idsgrep -Ux 萌
httptsukurimashousourceforgejp
態
能
厶
匕
匕
心
[amp]
(心)
[tb]
(匕)
(匕)
【態】lt能gt厶匕匕心
idsgrep -d amp心[tb]匕匕
httptsukurimashousourceforgejp
Character databases 漢字のデータベース
CHISEMorioka 2001年
KanjiVGApel 2009年
TsukurimashouSkala 2012年
CJKGrid
httptsukurimashousourceforgejp
What language(s) 何語か
Who are the users rarrEtymology or appearance
ユーザは誰かrarr語源と観はどちらがいいか
Data quality データの品質
l
聞くありがとうThank you for your attention
The Tsukurimashou Projecthttptsukurimashousourceforgejp
『作りましょう』のプロジェクト
Matthew Skala マッシュ スカラmskalaansuzsookebcca
These slides were typeset using X ELATEX TikZ a selection of fonts from the Tsukurimashou Project and Azudings 1 by
Vic Fieger Osakan pig photo by Matthew Skala 2011 Nurikabe painting by Kanou Tourin 1802 public domain
httptsukurimashousourceforgejp
観vardef kanjigrfouroutlook =push_pbox_toexpand(kanjigrfouroutlook)build_kanjilevel(build_kanjilr(46050)(build_kanjitb(470190)(kanjigrtwoarrowreplace_strokep(-1)(oldp shifted (-600))obstacktype[find_whatever(otstroke0)]=otnull)
(kanjiradicalold_birdobstacktype[find_whatever(otstroke-7)]=otnullreplace_strokep(-6)(point 0 of oldp+(015)--point 1 of oldp)replace_strokep(-4)(point 0 of oldp+(300)--point 1 of oldp)))
(kanjigronesee))expand_pbox
enddef kanmi outlookbegintsuglyph(uni89B3179)kanjigrfouroutlooktsu_render
endtsuglyph
httptsukurimashousourceforgejp
鬱鬱kanjigreightgloom
kanjileftradwood
kanjigreighttin_can
kanjigrtwonoon
kanjigronewood
kanjiradicalconservative_hat
kanjirarespiced_liqueur
kanjiradicalspoon
kanjirightradshort_hair
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
3
3
5
5
14
14
26
26 26 26 26
27
27
1
1
2
2
3
3
4
4
4
4
4
5
5
5
6
6
6
7
7
8
8
8
9
9
10
10
11
11
12
12
13
13
14
14
15
15
15
16
16
16
16
16
16
16
16
16
16
17
17
17
18
18
18
19
19
19
20
20
20
21
21
21
22
22
22
23
23
24
24
25
25
26
2626
26
26
26
26
26
26
26
26
26
26
27
27
27
27
28
28
28
28
29
29
29
29
30
30
30
30
httptsukurimashousourceforgejp
Korean hangul ハングル語
L
V
T
L
V
T
L
V
T
L
V
L
V
L
V
지읍시다 바탕 한글
httptsukurimashousourceforgejp
Parasite packages 寄生パッケージ
IDSgrep
OCR A OCR BGenJiMon
Beikaitorukleknev
httptsukurimashousourceforgejp
何の漢字は『木』が左側にあるWhich kanji have 木 on the left札朽材村松板林柱校根植楾様横橋相
何漢字は『俺』の右側を持つかWhat contains the right side of 俺
俺奄庵淹菴閹
何漢字は『目』があるでも『首』とか『貝』とかないかWhat contains 目 but nothing like 首 or 貝
想目相県箱
『萌』の符号位置が何
Whatrsquos the code point for 萌
U+840C
z
grepを使ってがいいですか
Canrsquot we just use grep
httptsukurimashousourceforgejp
何の漢字は『木』が左側にあるWhich kanji have 木 on the left札朽材村松板林柱校根植楾様横橋相
idsgrep -d [lr]木
何漢字は『俺』の右側を持つかWhat contains the right side of 俺
俺奄庵淹菴閹
idsgrep -d 俺idsgrep -d 奄
何漢字は『目』があるでも『首』とか『貝』とかないかWhat contains 目 but nothing like 首 or 貝
想目相県箱
idsgrep -damp目[tb]目
『萌』の符号位置が何
Whatrsquos the code point for 萌
U+840C
idsgrep -Ux 萌
httptsukurimashousourceforgejp
態
能
厶
匕
匕
心
[amp]
(心)
[tb]
(匕)
(匕)
【態】lt能gt厶匕匕心
idsgrep -d amp心[tb]匕匕
httptsukurimashousourceforgejp
Character databases 漢字のデータベース
CHISEMorioka 2001年
KanjiVGApel 2009年
TsukurimashouSkala 2012年
CJKGrid
httptsukurimashousourceforgejp
What language(s) 何語か
Who are the users rarrEtymology or appearance
ユーザは誰かrarr語源と観はどちらがいいか
Data quality データの品質
l
聞くありがとうThank you for your attention
The Tsukurimashou Projecthttptsukurimashousourceforgejp
『作りましょう』のプロジェクト
Matthew Skala マッシュ スカラmskalaansuzsookebcca
These slides were typeset using X ELATEX TikZ a selection of fonts from the Tsukurimashou Project and Azudings 1 by
Vic Fieger Osakan pig photo by Matthew Skala 2011 Nurikabe painting by Kanou Tourin 1802 public domain
httptsukurimashousourceforgejp
鬱鬱kanjigreightgloom
kanjileftradwood
kanjigreighttin_can
kanjigrtwonoon
kanjigronewood
kanjiradicalconservative_hat
kanjirarespiced_liqueur
kanjiradicalspoon
kanjirightradshort_hair
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
S10
S10
S10
S9
S10
S10
S10
S9
S10
S10
S9
S9
S10
S4
S9
3
3
5
5
14
14
26
26 26 26 26
27
27
1
1
2
2
3
3
4
4
4
4
4
5
5
5
6
6
6
7
7
8
8
8
9
9
10
10
11
11
12
12
13
13
14
14
15
15
15
16
16
16
16
16
16
16
16
16
16
17
17
17
18
18
18
19
19
19
20
20
20
21
21
21
22
22
22
23
23
24
24
25
25
26
2626
26
26
26
26
26
26
26
26
26
26
27
27
27
27
28
28
28
28
29
29
29
29
30
30
30
30
httptsukurimashousourceforgejp
Korean hangul ハングル語
L
V
T
L
V
T
L
V
T
L
V
L
V
L
V
지읍시다 바탕 한글
httptsukurimashousourceforgejp
Parasite packages 寄生パッケージ
IDSgrep
OCR A OCR BGenJiMon
Beikaitorukleknev
httptsukurimashousourceforgejp
何の漢字は『木』が左側にあるWhich kanji have 木 on the left札朽材村松板林柱校根植楾様横橋相
何漢字は『俺』の右側を持つかWhat contains the right side of 俺
俺奄庵淹菴閹
何漢字は『目』があるでも『首』とか『貝』とかないかWhat contains 目 but nothing like 首 or 貝
想目相県箱
『萌』の符号位置が何
Whatrsquos the code point for 萌
U+840C
z
grepを使ってがいいですか
Canrsquot we just use grep
httptsukurimashousourceforgejp
何の漢字は『木』が左側にあるWhich kanji have 木 on the left札朽材村松板林柱校根植楾様横橋相
idsgrep -d [lr]木
何漢字は『俺』の右側を持つかWhat contains the right side of 俺
俺奄庵淹菴閹
idsgrep -d 俺idsgrep -d 奄
何漢字は『目』があるでも『首』とか『貝』とかないかWhat contains 目 but nothing like 首 or 貝
想目相県箱
idsgrep -damp目[tb]目
『萌』の符号位置が何
Whatrsquos the code point for 萌
U+840C
idsgrep -Ux 萌
httptsukurimashousourceforgejp
態
能
厶
匕
匕
心
[amp]
(心)
[tb]
(匕)
(匕)
【態】lt能gt厶匕匕心
idsgrep -d amp心[tb]匕匕
httptsukurimashousourceforgejp
Character databases 漢字のデータベース
CHISEMorioka 2001年
KanjiVGApel 2009年
TsukurimashouSkala 2012年
CJKGrid
httptsukurimashousourceforgejp
What language(s) 何語か
Who are the users rarrEtymology or appearance
ユーザは誰かrarr語源と観はどちらがいいか
Data quality データの品質
l
聞くありがとうThank you for your attention
The Tsukurimashou Projecthttptsukurimashousourceforgejp
『作りましょう』のプロジェクト
Matthew Skala マッシュ スカラmskalaansuzsookebcca
These slides were typeset using X ELATEX TikZ a selection of fonts from the Tsukurimashou Project and Azudings 1 by
Vic Fieger Osakan pig photo by Matthew Skala 2011 Nurikabe painting by Kanou Tourin 1802 public domain
httptsukurimashousourceforgejp
Korean hangul ハングル語
L
V
T
L
V
T
L
V
T
L
V
L
V
L
V
지읍시다 바탕 한글
httptsukurimashousourceforgejp
Parasite packages 寄生パッケージ
IDSgrep
OCR A OCR BGenJiMon
Beikaitorukleknev
httptsukurimashousourceforgejp
何の漢字は『木』が左側にあるWhich kanji have 木 on the left札朽材村松板林柱校根植楾様横橋相
何漢字は『俺』の右側を持つかWhat contains the right side of 俺
俺奄庵淹菴閹
何漢字は『目』があるでも『首』とか『貝』とかないかWhat contains 目 but nothing like 首 or 貝
想目相県箱
『萌』の符号位置が何
Whatrsquos the code point for 萌
U+840C
z
grepを使ってがいいですか
Canrsquot we just use grep
httptsukurimashousourceforgejp
何の漢字は『木』が左側にあるWhich kanji have 木 on the left札朽材村松板林柱校根植楾様横橋相
idsgrep -d [lr]木
何漢字は『俺』の右側を持つかWhat contains the right side of 俺
俺奄庵淹菴閹
idsgrep -d 俺idsgrep -d 奄
何漢字は『目』があるでも『首』とか『貝』とかないかWhat contains 目 but nothing like 首 or 貝
想目相県箱
idsgrep -damp目[tb]目
『萌』の符号位置が何
Whatrsquos the code point for 萌
U+840C
idsgrep -Ux 萌
httptsukurimashousourceforgejp
態
能
厶
匕
匕
心
[amp]
(心)
[tb]
(匕)
(匕)
【態】lt能gt厶匕匕心
idsgrep -d amp心[tb]匕匕
httptsukurimashousourceforgejp
Character databases 漢字のデータベース
CHISEMorioka 2001年
KanjiVGApel 2009年
TsukurimashouSkala 2012年
CJKGrid
httptsukurimashousourceforgejp
What language(s) 何語か
Who are the users rarrEtymology or appearance
ユーザは誰かrarr語源と観はどちらがいいか
Data quality データの品質
l
聞くありがとうThank you for your attention
The Tsukurimashou Projecthttptsukurimashousourceforgejp
『作りましょう』のプロジェクト
Matthew Skala マッシュ スカラmskalaansuzsookebcca
These slides were typeset using X ELATEX TikZ a selection of fonts from the Tsukurimashou Project and Azudings 1 by
Vic Fieger Osakan pig photo by Matthew Skala 2011 Nurikabe painting by Kanou Tourin 1802 public domain
httptsukurimashousourceforgejp
Parasite packages 寄生パッケージ
IDSgrep
OCR A OCR BGenJiMon
Beikaitorukleknev
httptsukurimashousourceforgejp
何の漢字は『木』が左側にあるWhich kanji have 木 on the left札朽材村松板林柱校根植楾様横橋相
何漢字は『俺』の右側を持つかWhat contains the right side of 俺
俺奄庵淹菴閹
何漢字は『目』があるでも『首』とか『貝』とかないかWhat contains 目 but nothing like 首 or 貝
想目相県箱
『萌』の符号位置が何
Whatrsquos the code point for 萌
U+840C
z
grepを使ってがいいですか
Canrsquot we just use grep
httptsukurimashousourceforgejp
何の漢字は『木』が左側にあるWhich kanji have 木 on the left札朽材村松板林柱校根植楾様横橋相
idsgrep -d [lr]木
何漢字は『俺』の右側を持つかWhat contains the right side of 俺
俺奄庵淹菴閹
idsgrep -d 俺idsgrep -d 奄
何漢字は『目』があるでも『首』とか『貝』とかないかWhat contains 目 but nothing like 首 or 貝
想目相県箱
idsgrep -damp目[tb]目
『萌』の符号位置が何
Whatrsquos the code point for 萌
U+840C
idsgrep -Ux 萌
httptsukurimashousourceforgejp
態
能
厶
匕
匕
心
[amp]
(心)
[tb]
(匕)
(匕)
【態】lt能gt厶匕匕心
idsgrep -d amp心[tb]匕匕
httptsukurimashousourceforgejp
Character databases 漢字のデータベース
CHISEMorioka 2001年
KanjiVGApel 2009年
TsukurimashouSkala 2012年
CJKGrid
httptsukurimashousourceforgejp
What language(s) 何語か
Who are the users rarrEtymology or appearance
ユーザは誰かrarr語源と観はどちらがいいか
Data quality データの品質
l
聞くありがとうThank you for your attention
The Tsukurimashou Projecthttptsukurimashousourceforgejp
『作りましょう』のプロジェクト
Matthew Skala マッシュ スカラmskalaansuzsookebcca
These slides were typeset using X ELATEX TikZ a selection of fonts from the Tsukurimashou Project and Azudings 1 by
Vic Fieger Osakan pig photo by Matthew Skala 2011 Nurikabe painting by Kanou Tourin 1802 public domain
httptsukurimashousourceforgejp
何の漢字は『木』が左側にあるWhich kanji have 木 on the left札朽材村松板林柱校根植楾様横橋相
何漢字は『俺』の右側を持つかWhat contains the right side of 俺
俺奄庵淹菴閹
何漢字は『目』があるでも『首』とか『貝』とかないかWhat contains 目 but nothing like 首 or 貝
想目相県箱
『萌』の符号位置が何
Whatrsquos the code point for 萌
U+840C
z
grepを使ってがいいですか
Canrsquot we just use grep
httptsukurimashousourceforgejp
何の漢字は『木』が左側にあるWhich kanji have 木 on the left札朽材村松板林柱校根植楾様横橋相
idsgrep -d [lr]木
何漢字は『俺』の右側を持つかWhat contains the right side of 俺
俺奄庵淹菴閹
idsgrep -d 俺idsgrep -d 奄
何漢字は『目』があるでも『首』とか『貝』とかないかWhat contains 目 but nothing like 首 or 貝
想目相県箱
idsgrep -damp目[tb]目
『萌』の符号位置が何
Whatrsquos the code point for 萌
U+840C
idsgrep -Ux 萌
httptsukurimashousourceforgejp
態
能
厶
匕
匕
心
[amp]
(心)
[tb]
(匕)
(匕)
【態】lt能gt厶匕匕心
idsgrep -d amp心[tb]匕匕
httptsukurimashousourceforgejp
Character databases 漢字のデータベース
CHISEMorioka 2001年
KanjiVGApel 2009年
TsukurimashouSkala 2012年
CJKGrid
httptsukurimashousourceforgejp
What language(s) 何語か
Who are the users rarrEtymology or appearance
ユーザは誰かrarr語源と観はどちらがいいか
Data quality データの品質
l
聞くありがとうThank you for your attention
The Tsukurimashou Projecthttptsukurimashousourceforgejp
『作りましょう』のプロジェクト
Matthew Skala マッシュ スカラmskalaansuzsookebcca
These slides were typeset using X ELATEX TikZ a selection of fonts from the Tsukurimashou Project and Azudings 1 by
Vic Fieger Osakan pig photo by Matthew Skala 2011 Nurikabe painting by Kanou Tourin 1802 public domain
httptsukurimashousourceforgejp
何の漢字は『木』が左側にあるWhich kanji have 木 on the left札朽材村松板林柱校根植楾様横橋相
idsgrep -d [lr]木
何漢字は『俺』の右側を持つかWhat contains the right side of 俺
俺奄庵淹菴閹
idsgrep -d 俺idsgrep -d 奄
何漢字は『目』があるでも『首』とか『貝』とかないかWhat contains 目 but nothing like 首 or 貝
想目相県箱
idsgrep -damp目[tb]目
『萌』の符号位置が何
Whatrsquos the code point for 萌
U+840C
idsgrep -Ux 萌
httptsukurimashousourceforgejp
態
能
厶
匕
匕
心
[amp]
(心)
[tb]
(匕)
(匕)
【態】lt能gt厶匕匕心
idsgrep -d amp心[tb]匕匕
httptsukurimashousourceforgejp
Character databases 漢字のデータベース
CHISEMorioka 2001年
KanjiVGApel 2009年
TsukurimashouSkala 2012年
CJKGrid
httptsukurimashousourceforgejp
What language(s) 何語か
Who are the users rarrEtymology or appearance
ユーザは誰かrarr語源と観はどちらがいいか
Data quality データの品質
l
聞くありがとうThank you for your attention
The Tsukurimashou Projecthttptsukurimashousourceforgejp
『作りましょう』のプロジェクト
Matthew Skala マッシュ スカラmskalaansuzsookebcca
These slides were typeset using X ELATEX TikZ a selection of fonts from the Tsukurimashou Project and Azudings 1 by
Vic Fieger Osakan pig photo by Matthew Skala 2011 Nurikabe painting by Kanou Tourin 1802 public domain
httptsukurimashousourceforgejp
態
能
厶
匕
匕
心
[amp]
(心)
[tb]
(匕)
(匕)
【態】lt能gt厶匕匕心
idsgrep -d amp心[tb]匕匕
httptsukurimashousourceforgejp
Character databases 漢字のデータベース
CHISEMorioka 2001年
KanjiVGApel 2009年
TsukurimashouSkala 2012年
CJKGrid
httptsukurimashousourceforgejp
What language(s) 何語か
Who are the users rarrEtymology or appearance
ユーザは誰かrarr語源と観はどちらがいいか
Data quality データの品質
l
聞くありがとうThank you for your attention
The Tsukurimashou Projecthttptsukurimashousourceforgejp
『作りましょう』のプロジェクト
Matthew Skala マッシュ スカラmskalaansuzsookebcca
These slides were typeset using X ELATEX TikZ a selection of fonts from the Tsukurimashou Project and Azudings 1 by
Vic Fieger Osakan pig photo by Matthew Skala 2011 Nurikabe painting by Kanou Tourin 1802 public domain
httptsukurimashousourceforgejp
Character databases 漢字のデータベース
CHISEMorioka 2001年
KanjiVGApel 2009年
TsukurimashouSkala 2012年
CJKGrid
httptsukurimashousourceforgejp
What language(s) 何語か
Who are the users rarrEtymology or appearance
ユーザは誰かrarr語源と観はどちらがいいか
Data quality データの品質
l
聞くありがとうThank you for your attention
The Tsukurimashou Projecthttptsukurimashousourceforgejp
『作りましょう』のプロジェクト
Matthew Skala マッシュ スカラmskalaansuzsookebcca
These slides were typeset using X ELATEX TikZ a selection of fonts from the Tsukurimashou Project and Azudings 1 by
Vic Fieger Osakan pig photo by Matthew Skala 2011 Nurikabe painting by Kanou Tourin 1802 public domain
httptsukurimashousourceforgejp
What language(s) 何語か
Who are the users rarrEtymology or appearance
ユーザは誰かrarr語源と観はどちらがいいか
Data quality データの品質
l
聞くありがとうThank you for your attention
The Tsukurimashou Projecthttptsukurimashousourceforgejp
『作りましょう』のプロジェクト
Matthew Skala マッシュ スカラmskalaansuzsookebcca
These slides were typeset using X ELATEX TikZ a selection of fonts from the Tsukurimashou Project and Azudings 1 by
Vic Fieger Osakan pig photo by Matthew Skala 2011 Nurikabe painting by Kanou Tourin 1802 public domain
l
聞くありがとうThank you for your attention
The Tsukurimashou Projecthttptsukurimashousourceforgejp
『作りましょう』のプロジェクト
Matthew Skala マッシュ スカラmskalaansuzsookebcca
These slides were typeset using X ELATEX TikZ a selection of fonts from the Tsukurimashou Project and Azudings 1 by
Vic Fieger Osakan pig photo by Matthew Skala 2011 Nurikabe painting by Kanou Tourin 1802 public domain