パスワードを忘れた? アカウント作成
14176254 journal
日記

m_nukazawaの日記: シーケンス図エディタアプリをアップデートした

日記 by m_nukazawa

ここしばらくはSS書きなど別のことをしており、もうそろそろ趣味アプリをやろうということで、オープンソースでリリースしているシーケンス図エディタdaisy_sequenceをアップデート。
https://github.com/MichinariNukazawa/daisy_sequence

今回リリースの目玉機能は「divider(境界線)」の追加。
シーケンス図中に横線を引いて、「ここから下は起動シーケンス」「ここから下はファイル変換処理」のように切り分けできる機能。
plantumlだと`== ここから下が実際の画像ファイル変換 ==`などと書く。
もちろんdaisy_sequenceからplantuml書き出しにも対応している。
(ところでplantumlのdivider、lifelineと同じ記法で`"`囲いと改行に対応していたんですね。)

また、daisy_sequenceはelectronベースでwin/mac/linux対応のマルチプラットフォームなのだけれど、macosxで発生した、ノイズのような引数にも対処した。
https://blog.michinari-nukazawa.com/2020/05/eletctron-macosx.html

やりたいことはいろいろあるので、次は何をしようか、ちょっと考え中。

14069809 journal
日記

m_nukazawaの日記: 「ぼくらのウォーゲーム」がアマプラに来てます 1

日記 by m_nukazawa

XP以前のWindows再現度が高いやつ。
あとは「射手座の日」も好き。こちらはWindows XP。

Windowsだけでなく、液晶画面を指で押した部分が歪んだり。
さらに美術・小物だけでなく、シナリオにまで当時のパソコン・インターネットの在り方が反映されていて。

見返してみると、気づかなかった背景音に気づいたり発見がありました。
昔見た時は環境が悪かったせいかも。

美術と芝居・作画によるリアルなPC再現だけでなく、(東宝映画まつり的な)同時上映のうちの一本なので短くて、内容が詰まっていて面白い作品。
特に未見の方はぜひ。

14064557 journal
日記

m_nukazawaの日記: daisy-sequence:シーケンス番号が付くようにした

日記 by m_nukazawa

去年くらいにリリースしたシーケンス図エディタに、シーケンス番号を自動付与する機能を追加した。
とりあえず上から連番を振るだけの仕組みだけれど、もっと高度なことも、やろうと思えば実装できる。
https://github.com/MichinariNukazawa/daisy_sequence

他にelectron製なのでnpmパッケージをアップデートしたり、小さな不具合修正を適用したり。

14059958 journal
日記

m_nukazawaの日記: 絵心教室DSを買いました 1

日記 by m_nukazawa

リングフィットが話題になっていて、そのためだけにハード本体を買うのはなぁと思案している途中で、そういえば昔欲しかったなということを思い出して。

- DSiLLなるものが存在してびっくりした(ゲームボーイカラーしか持ったことがなくて、DSiの存在を知らなかったレベルなので勝手に驚いているだけ)。
- ハードとソフトの互換性については表がありかつわかりやすい、が上記の知識レベルなので面食らった。
- 当時フルセットで2万円+5000円だったものが3000円ちょっとで揃うのすごい(ゲーム業界厳しいわけだ、などと受け売りの感想)。

本体が本体のみで1700円+送料
タッチペンと充電器を追加150+1000円
(タッチペンは充電器はサードパーティがほとんど値段変わらなかったので純正)
絵心教室DS、驚きの100円(5円とかで出ている)

液晶の周辺部が焼けているのが起動時にわかるのだけれど起動した後は気にならない。これは発見でした。

で、ゲームと言うか絵心教室自体の感想。まだ始めたばかりのインプレッションですが。
第一感としては、題材をよく選べば、DSiの小さな画面とペン、素人の描画精度でも見れる絵が成立するのだなぁ、というところなので、今後どうなるか。
あるいはDSiLLの画面サイズだからぎりぎりOKに見えているだけ?
Undoないのは驚いたけれど、とりあえず今の段階では困ってないです。
描いた絵をゲームから出力できないのはちょっと悲しい気がする。出力してどうするのかという話ではありますが。

14051014 journal
日記

m_nukazawaの日記: SCP-JPのサーバに障害が発生中

日記 by m_nukazawa

通信プロトコルの方でないSCPのサーバに障害が発生している。(「【2019/08/28】Wikidotに長期的な障害が発生しています」)
正確にはSCP-JPがホスティングされているWikidotサービスの容量制限にかかったそうで、ファイルアップロードに画像ファイル100kbまでの制限が行われている。
解決しようにも、Wikidotとの契約上の「最高管理者」とは以前から連絡がつかず、これまでWikidot側の好意により運用を続けていたのだという。
また広告を表示してWikidotの運営費に充てる「コミュニティ契約」への変更という手段もあるが、これはSCP-173の取扱いなど、これまでのコンテンツの蓄積がSCP-JPが非営利であることを前提としていたため容易ではないらしい。

個人的には、SCP-JPには学生時代から楽しませてもらっており心配している。
また、ホスティングサービス上でコンテンツが大きくなりすぎた場合の事例として興味深い。各位においては運営していたサービス等で似たような経験をしたことがお有りだろうか?

14041640 journal
日記

m_nukazawaの日記: SSDドライブ作った 3

日記 by m_nukazawa

M.2 SATA SSD 1TB + USB3.1ケース。
ベンチマーク結果など

涙をのんで256GBに構成変更したMacBookProがそれでもドライブがいっぱいになってしまったため、仮想マシンイメージなどが逃がせれば良いなと思った&timemachine作ってみたかったため。

私が初めてM.2 SSDを買った時はNVMeを外付け化する方法どころか内蔵PCI-Eに繋げるマウンタすらなかったけれど、今は外付け化キットがあるようです。
今回使ったSSDはM.2 SATA接続ですが。

とりあえずその他諸々移動して本体ドライブがいくらか空き、VMゲストで気にならない速度が出ているので、満足。

13995422 journal
日記

m_nukazawaの日記: 「A generate TrueType font binary file from /dev/null」序文

日記 by m_nukazawa

技術書典6にて頒布した技術同人誌「ゼロから作るTrueTypeフォントファイル」(Linkは電子書籍版)の序文です。

====

「魔法少女まどか☆マギカ」の原作とファンコミュニティに感謝を。

# はじめに - 魔女とホットレモネード
フォントは誰にでも作ることができる。だから私にもフォントが作れる。そのことを「魔法少女まどか☆マギカ」が教えてくれた。
正確には北米のファンコミュニティだけれど。

「魔法少女まどか☆マギカ」劇中に魔女文字と呼ばれるオリジナル文字が登場する。当時のリアルタイム視聴組(ファンコミュニティ)の中に[「解読班」]( https://wiki.puella-magi.net/Deciphering_the_runes )と呼ばれるクラスタがあり、彼らは持ち前の知性と行動力により魔女文字を解読することに成功した。
原作チームは魔女文字が解読されるとはまったく思っていなかった。
解読には暗号解読の技術が応用された。その過程には文字の収集と整理が必要であり、魔女文字についてコミュニケーションするために有志によるコピーフォントが作成された。
当時の私は解読班のストーリーに強く惹かれた。「らせん」を読んで以来求めていた刺激的な新しい暗号解読の物語。魅力的な物語の謎に惹かれた有志がインターネット上のコミュニティに集まり、未知の言葉へと挑戦する。しかも誰かの意図や企画ではない。目の前の現実世界で進行する、本物の解読過程。
「魔法少女まどか☆マギカ」の放送が終る頃には、魔女文字はすべて解読された。けれど私の中ではあの時に触れた熱が冷めなかった。困り果てた私は持て余した熱を捨てる先としてフォントを作り始めた。

ルーン文字フォントを作ったのは魔女文字フォントを作成する前の習作としてだった。
けれどソフトウェア業界人の常で、手段と目的がいつの間にやら曖昧になっていく。
フリーフォントを作った勢いで、生まれてはじめて商用フォントとしてデータのダウンロード販売に手を出した。
米国で有名企業を立ち上げたCEOは多くが7歳頃にはレモネード売りのビジネスを始めているものだとどこかで読んだ覚えが有る。私の尊敬するジョエル・スポルスキは[14歳でドーナツを売るビジネス]( http://local.joelonsoftware.com/wiki/「Eric_Sink_on_the_Business_of_Software」への序文 )を始めている。私は7歳がレモネードを売る微笑ましさに社会人になってからやっと追いついたというわけだ。しかもフォント販売は7歳の子どもが夏休みに売るレモネードよりもずっと儲からない。
けれど27歳でIPOしたマークザッカーバーグと比べれば、商業的には人生のすべてが無意味だ。
ルーン文字フォント販売は、自分には何にも無いという不安な気持ちを抱える新社会人に、たとえレッテルだけでも「リテールプロダクト」「スモールビジネス」という自信を与えてくれた。
そしてフォント開発がソフトウェアエンジニアとしての経験を広げてくれた。社会人としての業務でフォント知識が役立ったこともある。
夢は必ずしも思い描いていたところには連れて行ってくれないが、思いがけなく素晴らしい場所へ導いてくれることはある。私は魔女文字をきっかけに、たくさんのすばらしいものに出会うことができたと思っている。

むかし冗談として「フルスタックフォントエンジニア」と言ったことがある。RuneAMNにおいて私は企画・デザイン・広報・エンジニアリング・パッケージング販売まで、フォント製品を販売するために必要なすべてを本当に一人でやった。冗談にしたのは後ろめたく思ったからで、大切な商品のことをFontForgeにまかせて、フォントファイル・フォーマットの詳細に対する理解が足りないままだと思っていたからだった。
昔読んだワインバーグの本に「知っていることについて本を書くのではなく、テーマについて知りたければ本を書くことだ」と書いてあった。
技術書典6のことを考え始めた時、自分はガメラ2スタート時の脚本家よりもネタがからっぽなつもりでいたが、フルスタックフォントエンジニアになるためのラストピースが残っていることに気づいた。前回の技術書展5ではGTKをメインにクロスプラットフォームGUIをテーマにして、既に知っていることを文章におこしてまとめるだけだった。初技術同人誌だったため意図して安全な企画を立てた。が、今回は限られた時間で本当に調査し、動くかわからないものを動かさなければならない。

ファン創作としてフォントを作り始めた時、スモールビジネスなんて考えてもいなかった。今あなたが手にとっている技術同人誌も、つい半年前までは影も形もなく、私の手から生まれるはずの無かったものだ。
「まどか☆マギカ」があの時コミュニティに振りまいた熱の残り香が本書を生み出した熱源にもなっている。私もあの熱への感謝と貢献のために熱をどこかへ伝えたい。
物語から生まれてファンコミュニティ活動から伝わった熱がフォントと技術同人誌になったように、必ずしもあなたがフォントを作らなくても構わない。もちろんフォント創作のきっかけになれば嬉しいが。
本書に移った少しの熱があなたの何らかの活動の一助になったなら、私にとってそれ以上の幸福はない。

Written: Michinari Nukazawa @ project daisy bell (2019)

13988633 journal
日記

m_nukazawaの日記: 夏コミ合同誌参加と一行感想

日記 by m_nukazawa

寄稿原稿の小説においては、難度が高いと判断して百武照のリバースエンジニアリングを避けましたが、参加当初の目的はワインバーグ先生の「わからないテーマがあれば、それについて本を書くと良い」(書くことで理解が進む)でした。書くことで百武照を理解とか昇華したかった。現実の実装は真名もわからないまま怪異を力づくで石棺に封印するみたいなことになりましたが。

2019年夏のコミケットに出展した、『ステラのまほう「百武照合同」』(サークルUmbrellahead様)に小説で参加しました。
この文章は、(合同原稿について吐き出しておきたかったことが文量の多くを占めますが)参加後記と一行感想とその他です。
ステラのまほうについてはPixiv大百科あたりをどうぞ。
https://dic.pixiv.net/a/ステラのまほう

電子書籍版が出る(出ている)はずです。
https://umbrellahead.booth.pm/

で、「参加することに意義が在る」感だったこともあり、テーマ上読まないほうが精神衛生上良い気もしていたのですが、そこはそれ。読みました。
そして、読んだからには一行感想くらいは書いておこう、と思った次第。
人の感想を読んで自分の感じたことが影響を受ける前に残しておく意図もあります。
当然ネタバレです。

ずるい、つらい、ひどい、等の褒め言葉が字面だと褒めているように見えないように思ったので、ほとんどの部分は「すごい」に置換されています。
だから「すごい」の出現頻度がすごいです。

感想について『〜みたい』がNGの人はブラウザバックしてください。駄目な人もいるそうで、避けようかとも思ったのですが自分の感想なんだしと思って諦めました。
(語彙力? これは感想であって小説ではありません。)

## 各作品感想

表紙・タイトル
好き。

イラスト:Martin (@martinreaction)
目が「こういうふうに死んでいる」絵を見たことがなかったので新鮮でした。

イラスト:めめ (@Milktea900ml)
仮面を持った指が真っ直ぐに立っているのが印象的。

イラスト『Marionette in The Mirror』:染井本夜 (@Biblio1719)
絵でないとできない素直な直喩です。小説参加としては羨ましい。

イラスト:A歌羽.zip (@Utha_art)
憂い顔、美術館とかで見るやつで漫画絵では珍しいと思うのですが、めちゃくちゃキャラクタと合同趣旨(?)に合っているためすごいなと思います。

ゲーム『ゆめみてるながれぼし』:〜しょしぃる (@taksaro / プログラム)、ゴートリング (@goat_ling / ドッター)、RuluMochi (@Rumoi_Mochi / サウンド)
(macosxのWINEで動かなかったためゲーム本体の感想はなし。ゲームはしない人なので、最近プレイしたのは「クッキクリッカー」と「ことのはアムリラート」くらいです。)
照先輩は人を導くことには向いている気がするので、責任感みたいなものをなんとかすれば、そっち方向では幸せになれそうな気がする。

漫画『無題』:閑咲婀萠 (@ametie_k3ki_)
恋愛相談と、「がんばるぞい」をこんなふうに使うなんてすごい。

漫画『照照坊主』:閑咲婀萠 (@ametie_k3ki_)
キャラを坊主にするのは怖くて私にはできない...。

小説『2番目に楽しかった場所』:すばるん (@subarun0415)
この謎団体を「なんか不思議だったなー」で済ませる照先輩に「楽しい」気持ちを届けるのは大変そうです。

考察『Undefined Mirage』:A11 (@a11urrorg)
寄稿原稿を書く前に読みたかった。

小説『シュワルツシルト』:坂西原貴 (@hirune101)
オチ、というか読後感に成功した小説でした。

小説+挿絵『わるいゆめ』:神原ハヤオ (@kanbara_s)
照先輩が苦しんでいるのは、彼女は自分の中に『光』についてのイメージを持っており、それを自分では作ったり手に入れられないと思うからなのかも。

小説『人間関係』:星見秋 (@himonohsm)
「食べ物を粗末にする」ことの不快感を相乗して、照先輩の「本人にとってさえ手に負えない」様が描かれていてすごかったです。

小説『アーティファクトの亡霊』:くすく (@xfiveone)
藤川さんにとって「ギターが弾けない」はもしかして弾かないという願掛けなのかな、という連想をしました。

漫画『楽園追放』:草薙さんく (@sankuroraido)
周囲を気遣ったり自省する瞬間がなければ、照先輩はこうやって楽しいのかも知れない。

小説『Psilanthropy』:らむだきー (@s6jrmany)
クレタ人のパラドクスと言うか、「わたしを心遣わないで」と言われた時の対処のなさと言うか(心遣わないこと自体が心遣いになってしまうジレンマ)。
extra. テッド・チャンの「理解」を読んだ時と同じ救いのなさを感じました。あちらは理解でこちらは孤独でしたが。

小説『Stella Not Satisfied』:堅魚 (@kengyo7)
素敵です。
extra. 個人的なベストオブ読まなければ良かった。やっぱり私は藤川さん好きなんだなー、と思いました。

小説『サラウンド・アイ』:nora1 (@pripin789)
後の奇行に繋がりそうなエピソード。
extra. 読み返してみれば拙作『宇宙人の日』と鏡合わせな部分があります。宇宙人にとっては地球人が宇宙人。子供はいずれ親が他人だと気づきますが、照先輩にとって自分の肉親である母親が宇宙人だったと気づいた時の気持ちは、いくばくだったか。

漫画『クローノンを歩く』:藤秋すばる (@f_subal)
なんとなく本当は許されないような気がする救いとか。状況的にはともかく感情的には巻き込まれていない本田さんの立場が、ずるいという気持ちが自分の中に湧いたのは驚きでした。

小説『宇宙人の日』:MNukazawa (@MNukazawa)
拙作。

小説『ボーダーライン』:いたちか (@nkmkinak)
一時的な救いを仮初のものとして唾棄してしまう照先輩は自分の中の本物と永遠にこだわっており、だから生命が有限であることの絶望を起点としている、のかななどと。

小説『hysteresis』:asakusa (@asakuso1919)
人が救われないまでも自分なりの幸せに向かっていく様子を照先輩の視点から見ることは、それだけでお話になるし照先輩の立ち位置を明らかにしている気がします。

## 全体感想
昔、『ニーチェがルサンチマンと超人について書いている本の中で、ギリシア悲劇はゲラゲラ笑って鑑賞したら、物語より愉快な自分の人生に戻るというのが(一つの正しい)楽しみ方なのだって書いてあった』みたいな言説を、どこかの本で読んだ覚えがあります。原典をさらっていないので本当かどうかはわかりませんが、メランコリィを月曜の通学時まで引きずるよりは、少なくとも健康的な気はします。
百武照合同について。いろいろな感想があり、人によっては読んだり書いたりが「ゲラゲラと笑える」方向らしいのですが、少なくとも自分にとっては読んでも書いても「ゲラゲラ笑う」という感じにはなりませんでした(楽しかったですが)。
城平京「名探偵に薔薇を」で、あとがきで筆者が「人によってはゲラゲラと笑いが止まらないかも知れません」と書いてあって、意図はわかるがゲラゲラと笑いはしなかったので、そういうものかもしれません(とても面白かったです)。

照先輩の問題は照先輩の問題である、というのはわりと多くの作品で共通していたように思います。外部の何かが照先輩を害して苛んでいるわけではありません。ステラのまほう自体が、基本的に「自分自身の内側から来る問題」を多く扱っているからかもしれません。それは救いであると同時に救いのなさでもあり、解決を容易かつ困難なものとしています。
これは、私の個人的な創作物に対するテーマでもあります。百武照合同に惹かれたのは、それが理由かも知れません。
照先輩は共感なんてしたら嫌がるよ、というのは卑怯な言い回しです。共感するも反発するも本人の自由です。嫌がられたくないかどうかも自由。
ただまあ、願わくば、百武照合同を読み書きした方が各々楽しまれたようなら幸いに思います。

## 拙作「宇宙人の日」について
本編とあとがき以上のことはないので、細かいオマージュなど。
「煮詰まっているねー」はどちらとも取れるように意図して曖昧に使っています。照先輩の教養レベルは筆者ではなく読者が決めるというズルです。ただ後から、こういうの誤使用が気になる人には没入感を削いで良くないかも、と気にしています。
「なんにも進展しない」は過去エピソード二次創作、つまり本作自身を含む、ある種のお約束です。この場合、現代のエピソードに美しく繋げられる”小さな”エピソードが尊ばれることになります。逆に、いかにも本編につながら無さそうなインパクトの在る内容から上手くやって、戦国自衛隊みたいに(?)私達の知っている結末へ歴史を繋げられると、画面のド派手さと曲芸の繊細さに拍手喝采。
駅前と罰金は涼宮ハルヒシリーズ。照先輩知っててやりそう、という感じになっていれば大成功。
片道切符、最近は存在を知らない方が増えているそうで、ポケベルみたいな時代描写をやってしまったかもしれません。森博嗣に習って時代を特定する描写は避けているつもりなのですが、難しいものです。
シチュエーションや情景は、子供の頃見たいくつかの演奏ホールの印象と、昭島公民館(そんなに大きくないしホールに入ったことない)とユーフォの悪魔合体です。
ホワイトボードはシンゴジから持ってきました(本当か?)。
担当楽器の組み上げを繰り返す生徒は、終戦のローレライに出てきた「航空機で運ばれている2時間以上のあいだずっと”付着していない”靴底の泥を銃剣の切っ先で落とそうとし続ける中年歩兵」のオマージュです。音楽部員は自分の演奏力で運命を決められるようにも見えます。航空機で運ばれるあいだの歩兵は(たとえ歴戦の勇士であろうとも)自分の運命を実力でどうこうしようもなく、何かに委ねるしかありません。
照先輩の寝相ってもしかして悪いんですか? そうだとしたら困ったな...。
一年後描写、藤川さんがまだ照先輩が「レールに乗ってる」と思っているタイミングなのがこだわりです。
ラスト、藤川さんは心配していますが、照先輩(しんのすがた)と覚醒後本田さん(Lv99)のバトルが見られるかどうかが、『ステラのまほう』今後の楽しみのうちの一つだと思っています。はてさて。

最後に。本作におけるタイトルおよび「宇宙人」は、『よくわかる現代魔法 4 jini遣い』より。All you need is kill 2 は早く決着付けていただければ嬉しく思います。

## おわりに
というわけで照先輩の闇は「なんどでもゆめみてる」という名前と実体を与えられたことで調伏されました(個人的には。たとえ完璧でなく一時的な封印であれ、大筋として)(合同誌という石棺から百武照第五形態の手足が飛び出してどこか楽しげにバタバタしている気もしますが)。

次ですが、冬コミに向けて「どうびじゅ合同」の原稿をやろうと思います。美術X室にまつわる明るく楽しい青春ミステリィです。よろしくおねがいします。

13925344 journal
日記

m_nukazawaの日記: Firefoxいつの間にかいろいろ変わってた

日記 by m_nukazawa

起動する度に「アドオン(AdBlock?)のデータが壊れた」と言うようになり、良い機会かと思ってブックマークのみエクスポートしてFirefoxのローカルデータを新規作成。ということで ~/.mozilla を削除しました。
どうでもいいけれどボタン押下でブックマークのエクスポートにアクセスできなかった(ショートカットキーで入れた)。

で、古い設定ファイルを捨てたのと、久しぶりに触った箇所を見ると、昔のFirefoxからいろいろ変わっている模様。
- Cookieの削除、もっとオプションがあった気がする。
- ChromeのようなURL・検索バー統合とか(これは以前話題になっていた気がする)
- Ctrl+Tabによるタブ切り替え、もしかしてCtrl+Shift+Tabでは起動しない?(起動後の切り替えでは使える)
- タブ切り替え、OSのAlt+Tabのアプリケーション切り替えみたいな意匠になった。
たぶんいくつかは設定ファイル由来でフォールバックされていて、いくつかは最近触っていなかったから気づかなかったものと思われる。

タブの切り替えはよく使っていたので解決策を探すつもり。

今までのFirefox設定、Ubuntu14.04くらいからディレクトリコピーで引き継いできたからいろいろな感情が湧くけれど、すっきりもした気がする。

13851478 journal
日記

m_nukazawaの日記: TrueTypeフォントフォーマット 生成と所感 2

日記 by m_nukazawa

同人誌「ゼロから作るTrueTypeフォントファイル」を4月の技術書典6で出す予定なので本の前にコードを書いている。
目標はドロー・ペイント系等びアプリで読めるフォントファイルを生成する方法を同人誌にすること。

少し前まで行き詰まってフォーマット解析を兼ねてafdko(ttxdump)の気の利いたクローンを書いていた。
今は字形を含む生成ファイルがFontForgeで開けるようになった。
これから、足りないTableを足せばUbuntuフォント管理などで読めるファイルになるのではないかと考えている。
本には最低限FontForge以外で読める状態のファイルの作り方までは収録したい。

以下、フォーマットへの所感など。
まとめていない雑文なので興味のある向きへ。

フォントファイルの仕様(以下SPEC)はMSとAppleからそれぞれ(以下MSSPECとAppleSPEC)公開されている。英語。Adobeも公開しているらしいが追っていない。
MSSPECがOpenType、AppleSPECがTrueType。
日本語情報は読んでみたというのがブログで有る。
ターゲットはTrueTypeとしたが、主にMSSPECを読んでいる。
TrueTypeなのはOpenTypeにはOS/2Tableという如何にもな歴史的経緯と、PostTableという厄介そうな字形テーブルが必要で、これらを扱わなくて済みそうと判断したため。
OpenTypeのSPECはTrueTypeのSPECをまるごと含んでいる、らしい。

名前が付いていない概念もあり、開発の便宜的にこちらで独自に名前を付けているものがある。例えば以下で要素とか属性とか言っているのがそれ。

#
収録文字数・字形などプロパティ毎にTableというデータ構造が定義されている。
フォントファイルは大まかにはTableバイト列を繋げたもの。
ファイルの先頭に収録Tableを索くためのインデックスが置かれている。
ビッグエンディアン。

#
ある要素の情報が、構造体配列ではなく各配列に分散(MSSPECではparallel array)して置かれている。
例えばCmapTable内のSubTable要素すごく雑に書くとこういう感じ。
### 構造体配列版
```
CmapSubtable{int startCode, int stopCode};
CmapTable{
        CmapSubtable subtables[12];
};
```
### parallel array版
```
CmapTable{
        int CmapSubtable_startCode[12];
        int CmapSubtable_stopCode[12];
};
```
バイナリ生成がやりづらい。属性毎のテーブルを個別の一時バッファに作って最後に連結する。
8番目のsubtableを取り出す、という場合は属性をそれぞれ取りに行かなければならない。
CPUキャッシュにも乗りずらくなると思うのだが、昔はこれが良かった理由があったのだろうか?

要素数により配列の末尾でない要素のbyte長が変わる。
バイナリ表現をマップした構造体で取り回すことはできない。

#
上記のparallel arrayに加えて、単純な辞書やflagを用いた圧縮がある。
今回は(開発中の)拡張性と汎用性を意図して、要素列は後から追加していけるデータ構造になるよう書いている。
これとエンディアン変換があるため、バイナリ生成の前段に中間表現を用意してやる必要がある。

# 他にデータキャッシュがある。log()や、あるいは*2程度の演算をすれば他の属性値から生成できる値が、検索の高速化を目的に収録されている(とMSSPECには書いてある)。
# reserve(予約)やset X(値Xに固定)、deprecated(廃止)、があちこちに含まれている。歴史的経緯。
# いちばんすごいのはGlyfTable(typoではない)の字形データフォーマット。圧縮のために読み書きの面倒な作りになっている。同じ配列内で要素のByte数すら異なる。
# 変な固定小数点数がある。(単に自分の不勉強では?)

開発にはC言語を使っている。使い慣れている言語の中で、ビット・バイト操作が楽なので。
エンディアン変換のヘルパは用意しておくとよい。(32bit変数と16bit配列)

ByteArrayという名前を付けてuint8_tの配列でデータを生成している。
lengthやoffsetもよく使うので、後ろの方のデータ部ByteArrayを先に作ってからヘッダ部ByteArrayを作る、最後に連結する、という手順になる。

# まとめ
こんなことしている場合じゃないのだけれど。みんなもやろうフォントファイルバイナリ生成。

typodupeerror

人生の大半の問題はスルー力で解決する -- スルー力研究専門家

読み込み中...