みずぴー日記

人間の再起動ボタンはハワイのビーチにある

✏️#技術書典 に本を出すまで

技術書典4で頒布した同人誌ができるまでの流れを記録する。

✨書きはじめたきっかけ

@が技術書典3に出展してて楽しそうだったので、自分もやってみたくなった。

前々から入力メソッドの作り方を調べ直そうと思ってたので、それを題材に選んだ。 AquaSKKをメンテナンスに必要な部分は知っているが、Swiftから使うとどうなるかなどは未知の部分なのでそこを埋めたかった。

ただ調べるにつれて、ほぼ資料がないことが分かってきたので、すこしでも資料を増やすためにこの本を出さなければならない、という使命感で書いていた。

📚本のスタンス

「資料を増やしたい」というのが目的にはいっているので、同人誌を読まないと得られない情報というのを極力減らしたかった。

なので、このブログに同等の内容を載せるようにした。 入力メソッドで検索すると同人誌と同等の内容が書いてある。だいたい1エントリが1章に対応するはずだが、構成の都合で変更した部分もある。

f:id:mzp:20180425072321p:plain

多くの人にはなじみがない分野だろうと思ったので、イラストを多めにしたかった。

かわいい女の子のイラストにしたかったが、すべてイラストレーターさんにお願いする予算はないのであきらめた。かわり謎の生命体を自分で描いた。

f:id:mzp:20180425072134p:plain

📅本ができるまで

調査開始

🍣入力メソッドが最初に調べたことなので、技術書典3の直後くらいから調べはじめていた。 RubyKaigi 2017に移動する新幹線の中で調べていた記憶がある。

このころはScrivenerに調べた結果を書き溜めている。このころは本文中に絵文字を使っているが、組版でこれがネックになる。

f:id:mzp:20180425072749p:plain

執筆開始

技術書典にサークル申し込みしたあとからRe:VIEWで書き始めた。落選したときのことはあんまり考えてなかった。

f:id:mzp:20180425073337p:plain

レポジトリは、ちょうどローンチされた直後のKeybaseの暗号化gitを利用した。 GitHubでない強い理由はないが、新しいものを使ってみたかった。

推敲

1月末に当選したことが分かったので、本格的に推敲しはじめた。最初はPDFとiPadでやっていたが、文字サイズが妥当かどうかわからなくなったので、紙とペンに切り替えた。

f:id:mzp:20180424215928j:plain

印刷して推敲するの、結局4回ほど繰り返した。

f:id:mzp:20180424215915j:plain

途中、温泉で推敲するという文豪ごっこをやったが、温泉に入るだけで終わった。

f:id:mzp:20180211164843p:plain

イラスト・図

できるかぎりイラスト・図を増やしたかったのでProcreateで描いた。

f:id:mzp:20180425075231p:plain

文字はApple Pencilを使ってもうまく書けなかったので、Sketchを使って入れた。

f:id:mzp:20180425075533p:plain

書体の変更

たまたま入った本屋でデザインのひきだしのバックナンバーを大量に手にいれてしまった。

これでブックデザインに凝りたい気持ちが高まってしまって困った。 とりあえずAdobe Typekitに加入して見出しや本文の書体を変えた。

見出しはかわいらしさをだすために視覚デザイン研究所のメガ丸にした。 本文書体は、一〇〇年目の書体づくりを読んで以来ファンなので、秀英明朝にした。

f:id:mzp:20180425074658p:plain

この書体変更のためにRe:VIEWが使うTeXエンジンをLuaLaTeXにいれかえた。 わりと大変だった。

入稿

栄光が同人の日キャンペーンで30%オフをしていたので、これを利用した。

f:id:mzp:20180425075748p:plain

だいぶ余裕をもって書き上げたはずだが、入稿するときにPDFをアプロードし忘れるなど、だいぶスリリングだった。

2冊目

3月末ぐらいで書くものがなくなって暇になった。 サークルスペースにも余裕あるしな、と思って2冊目を書きはじめた。 この話は工場実習日記 ふりかえりに書いた。

当時のことをがっとノートに書いてから書きはじめたので、すごい雑な図が手元にある。

f:id:mzp:20180424230107j:plain

完成

どきどきしながら技術書典の会場にいったら届いてて安心した。 よかった。

🎉🎉 #技術書典 参加

技術書典4にサークルとして参加した。楽しかった。

f:id:mzp:20180424071843p:plain

📖頒布した本の電子版

Booth.pm に電子版を置いた。

📦ブースの様子

f:id:mzp:20180422102943j:plain

到着するまで、本がちゃんと届いているか、印刷されているかが心配だったか、まったく問題なかった。

決済用のQRコードと表紙が印刷されたポップが準備されててありがたかった。

会社の会議室で設営の練習をしておいてよかった。

💨当日の様子

SKKユーザー、入力メソッド作ろうとしてる・作っている人がわりと来てくれて嬉しかった。 一日であれだけど数のSKKユーザーと会うのははじめての体験でよかった。

サークルスペースが通りやすいところにあったせいか、いろんな人が見本誌を手に取ってくれた。 誰もいないタイミングはほぼなかった。黒曜堂の@に店番を手伝ってもらえなかったら詰んでた。

暇なタイミングでboothに電子版を出す準備するつもりだったが、そんな余裕はまったくなかった。 PCのバッテリー持つかなーと心配していたが、完全に杞憂だった。

💸頒布冊数

手元に在庫をほぼ残さず、頒布できた。

  • 日本語入力を作るときに必要だった本: 143冊(書籍版: 100冊、DLカード: 43枚)
  • 工場実習日記: 98冊

工場実習日記は進捗大陸にも置かせてもらっていたので、そちらでも70冊ほど頒布した。

被サークルチェック数は、最終的に190だった。 来てくれた人はちゃんとチェックをつけてくれてるように思う。

👣サークル巡り

ほとんど自サークルに居たが、たまに抜けだして他のサークルを見にいった。

事前にサークルチェックをしたものの「まあ、自分の欲しい本だし、ぶらぶらしてれば見つかるでしょ」と思いながら歩いてたため、完全に破滅した。 人が多くて特定のサークルを目指して歩かないと辿りつけなかった。 たぶん事前にチェックしたサークルの半数くらいにしか辿りつけていない。

他の参加者の様子を見ていると、サークル配置図を印刷したものを持ってきてる人が多かった。 賢いと思う。

💕その他感想

  • 見本誌は「はじめに」を熟読してる人が多かった。 目次を読む派なので意外。 次は「はじめに」をもっとちゃんと書こう。
  • DLカードのほうが人気かと思ったが、書籍版のほうが人気だった。
  • 本のタイトルはTwitter検索しやしいもののほうがよさそう。工場実習日記は技術書典4の工場実習日記 - Togetterというまとめが作れて楽しそう。

📘 #技術書典 の本に書かなかった話

何度か書いているが技術書典 4のい15で入力メソッドについて解説した本を頒布する。

f:id:mzp:20180421131444j:plain

この本では、話題が脇道にそれるのを避けるために、いくつかの話題を排除した。せっかくなのでここに記録しておく。 ただ、いくつか根拠があやふやのものもあるので注意してほしい。

アイヌ語の入力メソッド

アイヌ語はもともと文字を持っていなかったが、カナ表記を用いた表記方法が存在する。 そのためにコㇿポックㇽのㇿやㇽといった小書きカナが存在する。他にもラテン文字による転写もあるが、ここでは扱わない。

この小書きカナを入力するための入力メソッドがアイヌ語入力メソッドである。

カタカナを入力するという点では日本語入力と共通しているが、実装は共通化されておらず、漢字入力の機能もない。扱う言語もjaではなくainとして登録されており、別ものである。

f:id:mzp:20180421132820p:plain

入力メソッドと教育

入力メソッドと教育

日本語入力にローマ字入力とかな入力があるように、中国入力にも拼音入力と注音入力といった複数の入力方法がある。

日本語入力ではローマ字入力の利用が主流だが、中国では地域によって違う。 台湾では注音入力、中国本土では拼音入力が主に用いられている。これは教育の違いに由来するものらしい。

文字を書くというのは教育と深い関係があることが再認識できて興味深い。

入力メソッドと信仰

国際SILは非営利のキリスト教信仰に基づく少数言語のための組織である。(とWikipediaに書いてあった)

国際SILはKeymanという入力メソッドをリリースしている。 これは次のような特徴を持つ。

おそらくありとあらゆる環境で、すべての人が母語を入力できるようにするのが目標なのだろう。

国際SILの目的のひとつは「少数言語の発展を援助する」なので、このために開発を続けているのだろう。自らの信じることのためにひたすら入力メソッドを開発する行為、これはまさしく信仰である。

漢字とは何か

漢字は古代中国で誕生したのち、日本、韓国、ベトナムといった国々に伝来した。

その後、その国の事情にあわせていくつかの文字が追加・転用された。例えば、峠・畑・辻といった日本にのみ存在する国字と呼ばれる文字も存在している。

同様に、現代中国、韓国、ベトナムには他の国にない漢字を元にした文字が存在している。

  • 簡体字(Han)。本当に国字と呼ばれているかは調べきれていない。 現代の中国語表記に用いられるやつ。
  • 和製漢字(Kanji)。日本で作られた漢字。畑とかが有名だと思う。書籍によって日本漢字、国字などと呼ばれていて、どれが正式がよくわからない。
  • ハンチャ(Hang)。韓国で使われる漢字(朝鮮における漢字)。書籍によって朝鮮だったり韓国だったりする。
  • チュノム(Chunom)・ハンノム(HanNom)ベトナムで用いられる文字。 元々の漢字とあわせて使う場合はハンノムになる。

このような状況のため「漢字」と言った際に、どの範囲を指すか不明瞭である。

すべての総称として「漢字」を使う場合もあれば、ベトナム語のように中国由来の文字のチュハン、漢字を応用して作った文字をチュノムというように区別する場合もある。

「漢字と、漢字から派生した文字」という表現もできなくはないが、そうなるとひらがな・カタカナも含まれてしまう。 これは一般には適切ではない。

Unicodeではこのような「漢字」はCJK unified ideographsとなっており「中国、日本、韓国で用いられる表意文字」とされており、厳密な定義を避けてるように見えて興味深い。

中国語の入力メソッド

中国語の入力方法は多数存在する。 macOSに標準搭載されているものだけでも5種類存在する。

f:id:mzp:20180421132519p:plain

これに加えて、中国語の文字体系も1つではなく、簡体字繁体字がある。

これら多数の入力方式を実現するために、中国語入力は以下のような仕組みになっている。

  • 拼音入力、注音入力といった入力方式の違いは、入力モードとして実装する
  • 簡体字繁体字は別の入力メソッドとして実装する
  • 簡体字繁体字の共通部分は内部的なフレームワーク(動的リンクライブラリ)として抽出する

f:id:mzp:20180421132719p:plain

これは他の入力メソッドには見られない仕組みなのでおもしろい。

設定画面のキーボードレイアウト表示

入力ソースの設定画面にはキーボードレイアウトが表示する領域がある。奇妙なことに日本語入力はローマ字入力がかな入力かによって表示がかわる。

f:id:mzp:20180421133404p:plain

入力メソッドとキーボードレイアウトの対応は、システム環境設定の設定ペイン*1にハードコードされている。

000000000000a81b        pushq   %rbp
000000000000a81c        movq    %rsp, %rbp
000000000000a81f        subq    $0x130, %rsp
000000000000a826        movq    0xa823(%rip), %rax ## literal pool symbol address: ___stack_chk_guard
000000000000a82d        movq    (%rax), %rax
000000000000a830        movq    %rax, -0x8(%rbp)
000000000000a834        leaq    0xc125(%rip), %rax ## Objc cfstring ref: @"com.apple.inputmethod.SCIM.WBX"
000000000000a83b        movq    %rax, %xmm0
000000000000a840        leaq    0xbf59(%rip), %rax ## Objc cfstring ref: @"com.apple.inputmethod.SCIM.WBH"
000000000000a847        movq    %rax, %xmm1
000000000000a84c        punpcklqdq      %xmm0, %xmm1
000000000000a850        leaq    -0x130(%rbp), %rcx
000000000000a857        movdqa  %xmm1, (%rcx)
000000000000a85b        leaq    0xc11e(%rip), %rax ## Objc cfstring ref: @"com.apple.keylayout.WubixingKeyboard"
000000000000a862        movq    %rax, %xmm1
000000000000a867        leaq    0xc0d2(%rip), %rax ## Objc cfstring ref: @"com.apple.keylayout.WubihuaKeyboard"
000000000000a86e        movq    %rax, %xmm0
000000000000a873        movdqa  %xmm0, %xmm2
000000000000a877        punpcklqdq      %xmm1, %xmm2
000000000000a87b        leaq    -0xa0(%rbp), %rdx
000000000000a882        movdqa  %xmm2, (%rdx)

そのためこの機能は、外部の入力メソッドからは利用できない。この話はInputMethodKitの非公開機能にも書いし、Radar済みである。

入力モードの使い方

「入力モード」の使い方は言語によって違う。

ベトナム語入力ではTelex,VNIといった入力方式を切り替える。 これは日本語入力で言うところのローマ字入力、かな入力といった違いに相当する。

f:id:mzp:20180424064042p:plain

一方、日本語では「ひらがな」「カタカナ」といった文字の種類の違いを選択する。

f:id:mzp:20180424064150p:plain

なぜこの違いが生じたのかは分からない。 たぶん歴史的なものだろう。

絵文字の可能性

f:id:mzp:20180424063827p:plain

中国語入力・日本語入力が特殊な位置付けになっているのは、漢字の種類が膨大であることが原因の1つである。 Unicodeに収録された文字体系を見ても1万種類を越える文字を持つ言語は稀である。

ただし絵文字は漢字に匹敵する文字数を持つ可能性がある。 現時点で1000文字を越えており、今後も増える可能性がある。さらにSkin toneといった修飾子によって、バリエーションも増やせる。

そのため、絵文字の文字数が増えるにしたがい、入力メソッドのような仕組みが一般化していく可能性がある。

絵文字がある種のUnicodeバグを世界から一掃しつつある件について|Rui Ueyama|note に類似した話だと思う。

*1:/System/Library/PreferencePanes/Keyboard.prefPane/Contents/Resources/IntlKeyboard.prefPane

💕パペ文字によるVR出社

パペ文字zoomを組合せて、リモート勤務した。

📌きっかけ

10年後に会社がどうなっているかを話す会を実施した。 その中で「VR出社」を挙げている人が多かった。

f:id:mzp:20180419111550p:plain

10年後にやるなら今から慣れといたほうがいいなという気持ちになったので、試した。 たぶんみんなの言うアバターは美少女のことではない。

🎥構成

パペ文字からzoomへの配信はできない。たぶんzoomがReplayKitによる配信に対応してないせいだと思う。

そこで、次のような構成にした。

  1. iPhone X + パペ文字で美少女になる。
  2. QuickTimeiPhone Xの画面をキャプチャする。
  3. CamTwistでアプリケーションの画面をWebカメラとして認識させる。
  4. CamTwistカメラをzoomで利用する。

✨様子

💬 Slack

アバターにあわせてSlackのアイコンを変更した。

f:id:mzp:20180419112320j:plain

表情がぎこちないといわれる。

f:id:mzp:20180419141114p:plain

zoomのアバターを変えるより、Slackのアイコンを変更したほうが反響が大きい。

f:id:mzp:20180419141152p:plain

言葉遣いをかわいくしようという意識が働くが、勝手が分からない。

💓その他の反応

🏭工場実習日記 ふりかえり #技術書典

技術書典で工場実習日記という本を頒布する。印刷所にすでに発注したの在庫が残ると困る。販促がてら執筆のふりかえりを公開する。

追記: 電子版をbooth.pmに置いた。

f:id:mzp:20180416213626p:plain

参加者

@mzp。書こうといい出した人。比較的楽な工場だったが、繰り返し作業が苦手すぎて3日で音を上げた。い15にいる。

@no_maddo。書くといいですよ、と煽った人。今回の執筆陣の中では唯一の非自動車系の工場。か02にいる。

@keita44_f4。配属先の事情で、いくつかの現場で実習をした。 一番闇が深い章を書いた。

@momocus。実習が決まった直後にウイスキーを買った人。後半にいくほど酒量が増える章を書いた。

@smogami。お酒も飲まず、処方薬も飲まずに、淡々と実習をこなしていた。 ただし実習先はすごい田舎。

きっかけ

みなさん、脱稿おつかれさまです

おつかれさまですー

まずは書くことになったきっかけから話しましょうか

是非おねがいします

よんたさんと闇さんと旅行(🦊キツネ村)に行って、東京と逆方向に夕飯を食べにいって...

南の東京に帰るはずが北にいったからね、『じゃあね!』って言って

仙台に行って、そこからさらに電車に乗って、ラム肉を焼く店に行ったんですよ

ラム焼き!うまそう

あれはよかった

f:id:mzp:20180417172156p:plain

で食べながら、SHIROBAKOの話が始まって

(一同笑)

無限にエモい話をしてた

SHIROBAKOがいいという話から、なぜか工場の話になって、@さんと@さんにひたすら工場実習の話をしてて

工場実習はいいぞ、みたいなことですか

いろいろあったんだよ、という話ですね

『はじめに』も書いたけど、入社した直後の心が不安定な時期に、過大な負荷がかかるから、どうしてもいろんなエモい話がでてくるんですよ。ってのをビールを飲みながら話してた

そこから、技術書典の話になったんですよ

技術書典参加組が多かったですからね

そこで、ボクも闇さんもだいたい書き終わってたことが分かったんですよ

だいたい終わってました、私は

なので、あと3人くらい集めれば間に合うぞ、って気付いたんですよ

解散したあと、闇さんが表紙の絵師を探し始めて、ボクが知り合いに声かけはじめたんですよ

(一同笑)

そうなんですよ。みずぴーさんが完全に異常行動とってるんですよ

ちょうど出す本が1刊だけだから寂しいなと思ってて

普通は1刊しかなくていいと思うんですけどね

それでいくつもりだったんだけど、思いついちゃったし

思いついちゃった(笑)、巻き込まれちゃったわー

もがみさんとか完全に巻き込まれでは

そうですねー

(一同笑)

人間の記録

ぼく、この本の執筆を通して、みずぴーさんとかよんたさんの工場実習の話を始めて知りましたよ。あんまり話してないですよね

そうですね。あんまり他ではしてないですね

パンドラの箱をあけながらやってる感じがしましたよ

これ、本当に人間の記録ですよね。 人間活動の記録が集まってよいな、って気持ちになりました

身を削りながら書きましたよ

面白いストーリーも発掘できましたね

これで工場研修の説明をするのが楽になりました

まずこの本を読んでくれ!

よかったよかった

もっと深い闇

いろんな人に声かけたんですけど、何人かに『絶対に嫌です』って断わられたんですよね

(一同笑)

やばいなー、闇が深いひとがいるなー

この本もだいぶ闇の話だと思ったんですけど、本当の闇は書いてくれなかった人にあると思うんですよね

わかるー

これは表に出してもいい話で、もっと色々あるのではないか。つらいこと経験した人は口をつぐんでるのではないかという気持ちになりました

あー

思い出すのも嫌というのはわかりますね。当時の実習の日記を見たら、うっ、てなった

今回、何が起きたかを箇条書きで書いて、肉付けしていったんですよ

はい

Twilogとかを見ながら書いてたんですけど、5日分とかで気持ち悪くなるので、なかなか進まなかった

わかるー

肉付けもいっしょで、3日分くらい肉づけすると、続きは明日にしようってなる。そして、その日の作業が他に何もできなくなるんですよ

おすすめのエピソード

コンパイラサクセスストーリー

闇さんが、一日逃げだして趣味コンパイラを書いてて、それがきっかけで転職することになったのすごいですね

サクセスストーリー

すごくいい!

工場実習とは直接は関係ないんですけど、会社の新人研修で川崎に送られたんですよ

はい

そのとき川崎つらいつらいと、毎日Linuxのlsコマンドを叩きながらつらい、みたいな話をしてて

なんでlsのコマンド叩いてんの

そういう研修だったんですよ

たまたま、Lisp Meetingにいって、今の社長に出会ったんですよ

へー

その後、工場実習中の無の時間に書いたコンパイラで同人誌を書いて、コンパイラ勉強会とかやってたら転職したんですよ

いいですねー

いい話だなーって自分でも思ってます

闇さんにストレスかけると転職できる話

どこかにとばされると転職ポイントがたまる

転職ポイントとは

しょうらいのゆめ

ももかすさんの”ブッコロさん”はちょっと殺伐とするから、”しょうらいのゆめ”話にしましょうか

お嫁さん?

お嫁さん

変わった人がいっぱいいましたねー。こう4ヶ月もあったんでいろんな事件がありました

みなさん、事件多いですよね、僕は少なかったけど

まとめてみると、いろいろ起きてますね。まあよんたはひたすら沈むだけなんだけど

それがくそ辛いんだけどwww

その中でも、ももかすさんの話は全体的にイベント起こりまくってる

おもしろいよね

鬱になりつつも、おもしろいことが起きてるなってと思って、わりとノリノリで書きました

完全にいい話じゃないですか。月日がたつと、あののころのこともおもしろく感じるみたいな。 完全にいい話ですよね

なろう系にさ、”工場研修生になろう“で書いてあっても全然大丈夫

やだよー

異世界転生したとおもったら工場勤務になった

ブッコロさんに会うとかね。結婚して寿退社するのーって女の子に会ったとかね

それ無双できそうにないんだけど、大丈夫?

無双wwwどうやったら無双できるか

たしかにね、ダメそうですね

ジャストインタイム方式を導入しようとか言いだすんですよ

タクトタイムをもっと短くできる!

こわい

工場にラインの概念を導入するとかそういうのやりましょう

アニーリング

みずぴーさんのとこはアニーリングがいい気がする

アニーリング?

焼きなましを実際にやる話

アルゴリズム焼きなまし法は知ってるけど、これが本当の焼きなましかよー、っていうのがあったのがよかった

焼きなまし法が通じるかどうか不安だったけど、まあいいだろと思って書いた

まあ、通じますよ

その結果、RSSリーダーには解説をつけつつ、焼きなまし方法には解説つけないという本にしあがってしまった

たしかに

みずぴーさんのは全体的にエモいですね

ボクのとこは野菜の週が一番いいと思ってる

野菜wたしかに。あったかい野菜、火を通した野菜が食べたいってひたすら言うやつ

やばいと思ったらすぐにメンタルクリニックにいけっていうの役に立つ情報だと思う

たしかに

学び

よんた

よんたの話は重いから買った人のお楽しみにしとこうかな

そうですねー

重いねー。いやー一番つらい

重い上に、目次から何ひとつ情報がこないやつだから

これいいでしょ、これw

いいよー怖いよー、どんどん沈んでく感じがすごい

みんな買ってからのおたのしみでね

おたのしみだね

さわやか

もがみさんの話がさわやかですよね

さわやか!

これ最後でよかった

よかったよかった

どこがさわやかなんだろ。闇をかかえてないからかな

メンタルクリニックもいってないし

工場長の話で”人間による作業は一時的なものでゆくゆくは技術で解決したい”っていう話もいいし、そのあとSEとSIと工場の関係についてこう思っているという話が書いてあるのもいい

あんまりつらくなったっていう話はなくて、工場でこういうことが起こって学びを得たという話になってる

工場実習日記というタイトルに引かれて買う人は、こういう話を望んでいるのでは...

それ会社の同僚にいわれた

www

思ったのとだいぶ違うんですけど...って言われた

(一同笑)

それが最後にきてるのがいいですね

章の配置

これは意図的な配置なんですか

適当です。たまたまこの順番に並べただけです

おー

すごいよい順番だとと思う

ジャブがきて、恨みがきたなと思ったとおもったら、イベント多数のがきて

エンタメ性があるでしょ

急に沈んだと思ったら、最後はきれいにまとまってる

あとで気づいたんですけど、ボクの話、全体的に怒りに満ちてますね

書いてるとき思わなかったの?

そういうつもりはなかったんですよ

たまに感情があふれたかのように言葉づかいが荒くなってるのが面白い

文法が乱れはじめると、これはすごく怒りながら書いてたんだろうな、って思いながらレビュー時に読んでました

ちょっとすいません。最初のほうの日本語はひどかったですね。直したつもりなんですけど

感情がのっかってる文書、読み物だしいいんだよね

たしかに読み物ですし

よんたのは負の感情が乗りすぎてるから...

すんません、すんません。正直に書いてみたらこうなりました

闇だよー、インターネットの闇さんより闇が深い気がするよ

インターネットの闇じゃなくて、社会の闇とかそういうの

(一同笑)

それいいな、Twitterの名前かえとくわ

社会の闇!

社会の闇でーす

執筆環境

Docker

執筆の話しときましょうか

いいですね

docker pullしたら、急に2GBのファイルがダウンロードがはじまってびっくりしました

もうちょっと小さくできるはずだけど

tex-live-fullをいれててるので

ダウンロードさえ済んでしまえばめっちゃ便利だった

Dockerは便利ですよ

はじめて使ったんですけど、便利だなーって気持ちになりました

ルビふりたくなったとき、パッケージはもうはいっててとてもたすかりました

はいってるか心配だったけど、usepackageしたら使えてましたね

助かりました

2GBのイメージさすがですね

何を使うかわかんないですから、全部のせなんです

Lint

lintツールは使ったほうがよかったですかね

lint使いたいですね。レビュワーの負担が減ったかもしれないですね

手元ではtextlintを使ってたんだけど、文が長すぎるって警告がたくさん出ましたね

あー

読み物だと仕方ないなって感じ

TeX

もがみさん、どうでした。TeXをいきなり書けって言われるの

はじめてだったんで、人のやつをコピペして書いてました。普通の文を書くにはこんなもんかという感じでした

よかったよかった

最初のテンプレが準備してあったのありがたかったっす

テンプレあったのよかったよね

そうですね

ももかすさんもTeX初めてだったんですけどどうでした?

どうにかなった

ほんと?

凝ったことさえしなければLaTeXはそんなに難しくはないな、という気持ちでいるんですけどね

でも最初ももかすさんはMarkdownで書いてましたよ

とりあえず文章だけ書いて、あとでTeXに書き写そうと思って

でもみんな書けるもんですね。TeX

おしまい

では、こんなもんですか

はい

では、執筆お疲れ様です

お疲れ様です

技術書典はちょうど1週間後ですね

そうですね

あ、ほんとだ、来週の日曜日か

がんばってきます、それではお疲れさまでした

お疲れ様でした

📡InputMethodKitの非公開機能

技術書典 4で入力メソッドを解説する本を頒布する。

書く過程で得た各種知見をradarした。 ほとんどがドキュメントが足りない、もしくは無いので助けてくれ、という内容である。WWDCに行った際、ラボで話をしようと思っている。

🙈非公開API

標準の入力メソッドだけが利用している機能がいくつかある。

設定画面(rdar://39295951, rdar://39296952)

f:id:mzp:20180413072138p:plain

システム環境設定内に入力メソッドの設定画面を埋め込む方法は非公開である。 また、標準の入力メソッドはキーボードレイアウトも表示しているが、これは外部の入力メソッドは利用できない。

TouchBar(rdar://39297768)

macOS標準の日本語入力はTouchBarに候補を表示しているが、この機能は非公開である。わりと使いたいのでなんとかしてほしい。

いろいろ調べてTouchBarを使う方法はだいたい見つけたが、セキュリティまわりの制約があるらしく一部のアプリケーションでしか使えない。(Display candidates of input method on touchbar by using undocumented API by mzp · Pull Request #4 · mzp/EmojiIM)

また、ATOKはTouchBar対応を謳っているが、これは付属の辞書アプリのようなものから利用しており、入力メソッドから使っているわけではない(Touch Barに対応 ATOKイミクル | ATOK 2017 for Mac | ジャストシステム)。このほうが便利だと考えているからか、上記の制限を回避するためなのかは分からない。

入力モードの統合 (rdar://39363334)

日本語入力は、ひらがな入力モード、カタカナ入力モード、英数入力モードといった複数の入力モードを使いわける。 そのためシステム環境設定に以下のように複数の入力モードが並ぶ。

f:id:mzp:20180413073141p:plain

これは不恰好だし、個別にオン・オフしたい需要はあまりない。 Yosemiteで日本語IMを消しAquaSKKに統一する - 理系学生日記のように不要なものを一切いれたくない人がいるのは知っているが、「あまり」ないということで許してほしい。

この事情は標準の日本語入力でも同様らしく、 TISUnifiedUIForInputMethodEnabling という複数の入力モードをまとめてオン・オフする機能がある。 便利そうだし公開してほしい。

キーボード配列の分類(rdar://39330175)

f:id:mzp:20180413073546p:plain

入力メソッドはどのキーボード配列を使うかを指定する必要がある。 このとき指定したいのはColemakやDvorakといったキーボード配列であって、Unicode Hex Inputのような特殊なキーボードではない。 しかし、macOSAPIでこれらは両方ともASCII-capableなキーボードとして分類されていて区別できない。

標準の日本語入力は非公開のAPIを用いて、この2つを区別しているのでそれを公開してほしい。

🤔用途が謎のAPI

カタカナキーの謎(rdar://39379605)

macOSの日本語入力には「かなキー」と「英数キー」で入力モードを切り替えられる。 これは、入力メソッドで入力モードとキーを対応づけることで実現できる。

入力モードを切り替えるキーには以下の3つを指定できる。

  • ひらがなキー
  • カタカナキー
  • 英数キー

このうちカタカナキーの存在が謎である。現在のAppleキーボードにひらがなキーと英数キーはあるが、カナキーもしくはカタカナキーは存在しない。

f:id:mzp:20180413074325p:plain

古いAppleキーボードにカタカナキーはある。 ただこのキーボードは現代のmacでは利用できないと思うし、依然と謎は残る。

f:id:mzp:20180413074334p:plain

Happy Hacking Keyboard | キーボードコレクション | PFU

用途が謎のプロパティ(rdar://39380087)

入力モードには利用する文字体系(漢字、ひらがな、ラテン文字など)を指定できる。 が、macOSを利用していて文字体系からなにかを選んだ記憶がないので用途が分からない。

文字体系としてUnicodeを指定できるので、事実上無意味では?と思っている。

✨その他

素朴な要望。

💖感想

🦊キツネ村

きつね: キツネ村にいくぞ!!! - type t ( void ) にくっついて、キツネ村に行った。 かわいかった。

f:id:mzp:20180405074006j:plain

🦊キツネ村

キツネ村に来たはずが、なぜかゴリラに会う。

f:id:mzp:20180405074806p:plain

入る前にビビる注意書きがある。

f:id:mzp:20180405074500p:plain

入るとかわいいキツネがうろついてるので眺める。触ると噛まれるらしいので、わりとどきどきする。

f:id:mzp:20180319013052j:plain

f:id:mzp:20180319011305j:plain

Firefoxを連想する丸まり方をしてる。

f:id:mzp:20180319013525j:plain

エサやり場所に行くとキツネがみんなこっちを見てくれる。 かわいい。

f:id:mzp:20180319011528j:plain

なぜかヤギもいる。 自力で柵を越えれそう。

f:id:mzp:20180405075002p:plain

🐦ことりはうす

ことりはうすにも行く。

f:id:mzp:20180318150848j:plain

野鳥観察コースに軽い気持ちではいったら、結構な山道でびびる。 ところどころ雪も残ってる。

f:id:mzp:20180405075116p:plain

ただの斜面の前に「冒険ゲーム」という立て札が立ってて怖い。 騙す気としか思えない。

f:id:mzp:20180318161443j:plain

なんとかコースは終えたが、鳥がいたのかは記憶にない。

🛏宿

宿はかなりの山奥にある。

f:id:mzp:20180319075903j:plain

バス乗り場が長時間滞在できるようになってる。バスの待ち時間に「竜馬が行く」全5巻を読むのはどういう状況なんだ。

f:id:mzp:20180319081246j:plain

残念ながらインターネット環境が貧弱だったのでLLVMをいじるのはあきらめて、Rubyの意味論について書いてある論文*1を読んでた。 RubyKaigiも近いし。