Marelleo、子どもたちのために作った物語の箱
子どもがフィギュアを乗せると物語が流れる箱。電子工学を何も知らなかった著者が、壊しながら学び、3人の子どものために作った。
日本語
コピー


きっかけは休暇中のいら立ちだった
昨年の夏、友人たちと、その小さな子どもたちの一団とともに休暇を過ごしていたとき、Tonieboxに出会った。正直に言って、よくできていると思った。子どもが箱の上にフィギュアを置くと、物語が始まる。外すと止まる。画面もメニューもなく、親が取りに行く必要もない。2歳児が一瞬で理解する。これはおそらく、人間が到達できるユーザビリティの最高水準だ。
ジェスチャーは完璧だ。ビジネスモデルは、そこまでではない。この手の箱はどれも同じ仕組みで動いている。本体はそれなりに妥当な価格で売られ、儲けは後からコンテンツで上げる。Luniiとその閉じたカタログ、Yotoとそのカードパック、Tonieboxとそのフィギュア。どれも新しい物語は購入で、選べないカタログから、自分が管理していない物体の上で買うことになる。買っているのはプレイヤーではなく、木のおもちゃの形をしたサブスクリプションだ。これが本気で腹立たしい。
一方で、何年も前から電子工作をやりたいと言い続けていた。趣味でつまむのではなく、ちゃんと理解したいと。ただ、何も知らなかった。3年に一度、ヘッドホンの線を付け直すときだけ引っ張り出す半田ごてはある。何かを作るために使ったことはない。抵抗器が何かは知っているが、自分で選んだことは一度もない、そういう人間だ。
その二つの衝動が、帰り道の車の中で結びついた。これが自分のプロジェクトだ。RFIDリーダー、タグ、載せたものに応じて音声トラックを再生する箱。製品を作るためではない。自分の子どもたちのため、そして学ぶために。
ブレッドボード、つまり間違える権利
欲しくないものはもう分かっていた。MP3を1曲再生するためだけに使うには、Raspberry Piはフルコンピューターすぎる。大きすぎ、電気を食いすぎ、起動に20秒かかる。フィギュアを置いた子どもは20秒も待たない。そのままどこかへ遊びに行ってしまう。逆の端にある本物の低レベルなチップ、Cで400ページのデータシートと格闘しながらプログラムするようなものは、その日の夜に物語を聴きたい初心者にはあまりに険しい。
あれこれ読んでいるうちに、このプロジェクトを可能にする二つのものに出会った。まず ESP32開発ボード。WiFiを内蔵したマイクロコントローラーで、MP3のデコードには十分な性能があり、Arduinoのように手軽にプログラムでき、数ユーロで買える。次に ブレッドボード。半田付けなしで部品を差し込める、あの穴だらけの板だ。
些細な話に聞こえるかもしれない。だが、これはプロジェクト全体がひっくり返る話だ。ブレッドボードの上なら、間違えても損はない。抜いて、やり直せばいい。壊れるものは何もない。学んでいるときに必要なのは、まさにそういう性質だ。
そこで私はドキュメントを読み、Claude と話し込み、ノートに配線図を描いた。するといとも簡単に、自分の努力で手に入れたとはとても思えないほど早く、タグを乗せると音声トラックが流れる回路ができあがった。見た目はひどかった。銅線のスパゲッティの皿の上に、スピーカーがむき出しで転がっている。それでも動いた。ほんの数時間で、物語を語るものが手に入った。自分の手で作ったものにこれほど嬉しくなったのは、子供の頃以来ではないだろうか。

ポテンショメーターと煙と、スキーワックスの匂い
その後に起きたことは、それほど誇れる話ではない。音量を調整するためにポテンショメーターを追加した。あの小さな回転式のつまみで、要は可変抵抗器だ。ただし配線を間違えると、何も調整できなくなる。プラスとマイナスの間をつなぐただの電線になってしまうのだ。これには名前があって、短絡と呼ぶ。そして恐ろしい速さで熱くなる。
煙が出た。独特の匂いもした。何の匂いか特定するのにしばらくかかったが、ふと気づいた。スキーワックスだ。ワックスが燃える匂い。今ではすぐにわかる。そして、いい知らせであることは決してない。
バッテリーももう一つの難所で、こちらは考えさせられた。リチウム電池に電線を2本つないで終わり、というわけにはいかない。充電コントローラーが必要になる。充電のタイミングと方法を判断し、適切な時点で止め、まずいことが起きる前に遮断する専用チップだ。しっかり固定することも欠かせない。筐体の中でリチウム電池がぐらつき、何かに挟まれる。それは誰も見たくないあの動画で起きている状況そのものだ。


そこで、ばかげた話をひとつ。バッテリーのコネクタが充電ボード側のコネクタと合わなかった。見た目はそっくりな白い小さなプラグがふたつ、ピッチが違って、噛み合わない。だから火曜日の夜11時、あと少しで終わるというところで誰もがやることをやった。コネクタを切り落とし、バッテリーを直接はんだ付けした。
すぐに起きた、想定外の帰結。コネクタがもうない、つまり何も抜けない。回路のどこにもスイッチがない。箱は常時オンになった。24時間365日。決して電源の切れない物体に、リチウムセルを慌ててはんだ付けし、それが子どもの寝室に置かれている。こう書けば、もうコメントは要らない。
軽く扱うのをやめたのはその瞬間だ。怖くなったからではない。もうテーブルの隅でガジェットをいじっているのではなく、電気的な物体を子どもたちの日常に置いているのだと理解したからだ。このプロジェクトの残りはすべて、その気づきから導かれる。
ブレッドボードからユニバーサル基板へ
最初の帰結はブレッドボードを離れることだったが、話は安全性だけではなかった。
ブレッドボードは摩擦で保持する。どの配線も小さなバネで押さえられていて、試すには最高、長持ちさせるには最悪だ。回路を動かせば接触が失われ、そのあとに続く不具合は、きれいな故障よりはるかに厄介な代物になる。間欠故障だ。コードのバグを1時間半探し、同じ関数を20回読み返し、原因はもう触れていない配線だった、というやつだ。

次はユニバーサル基板だ。穴の格子は同じでも、相手はプリント基板で、部品はすべてはんだ付けする。間違える自由は失うが、壊れない回路が手に入る。私が本当にはんだ付けを覚えたのはここだった。そして何より、自分の修理のはんだ付けが製造のはんだ付けとは別物だと理解したのもここだった。修理は、すでにあった接合を作り直すこと。組み立ては、百個を続けて作ることだ。どれもきれいに、どれも同じに。百一個目が壊れる番だと知りながら。
子どもがつまみを回し続けて、配線がちぎれた
筐体についてはとても運がよかった。François Lagunas が3Dプリンターを貸してくれて、最初の試作から付き合ってくれた。彼がいなければ、今ごろ定規で段ボールを切っていただろう。モデルはFusion 360の無料のホビー向けライセンスで描き、印刷した。

最初のバージョンは大きすぎて、壊れやすすぎた。そして品質管理は予想より早く、21か月、5歳、7歳の三人の子どもという形でやってきた。
子どもたちは動物のようにノブを回して、それを壊した。音量ノブはエンドストップが効かなくなり、ぐるぐると回り続け、回すたびに配線を自分自身に巻きつけ、とうとう一本残らず引きちぎってしまった。箱を開けると、中にはねじれた銅線の小さな巣ができていた。このプロジェクト全体で最も重要なルールを学んだのはここだ。5歳児はノブを回すのではなく、ねじ外す。そして抵抗を感じても止まらない。抵抗がなくなったときに止まる。

そこでやり直した。ノギスで部品ごとに寸法を測り直し、穴がしかるべき位置に収まり、どのパーツも配線ではなくプラスチックで保持されるようにした。肉厚を増やし、ポケットを追加し、高さを下げた。何度も版を重ねるうちに、それは試作品ではなく、一個の物体に見えるようになった。
何ひとつ妥協しないという方針はそのままに、タッピングねじもやめた。プリントしたプラスチックに直接ねじを切る方法は、一、二回はもつが、三回目で材料が積層に沿って割れる。穴は何も保持しなくなり、その部品は刷り直し行きだ。本当の答えは真鍮インサートだ。穴の上に置き、はんだごての先で押し下げると、真鍮が熱を持って周囲のプラスチックを溶かし、みずから沈み込んでいく。冷めれば部品の中に金属のねじ山が残り、百回でもねじ込んだり緩めたりできる。

そして、技術的な議論では絶対に通らない、ただ一つのテストがやってきた。妻が箱を気に入ったのだ。 お世辞ではなかった。玄関のチャイムが鳴っても片付けないようなものたちと並べて、リビングの棚に置いてくれた。これで立方体の形も確定した。正直、自信がなかった部分だ。子ども向けの物なのに隠す必要がないということは、結局ちゃんと使われる物だということでもある。
冒頭の写真には、そのすべてがまだ写っている。上面に刻まれた円はフィギュアを置く場所を示す。アンテナがちょうど真下にあるからだ。その横に音量ノブ、再生ボタン、そして前面の壁から浮き上がる名前。フィギュアは木製の塗り人形で、足の裏にNFCステッカーを貼ってある。別に何だってよかった。おもちゃの車でも、コインでも、平たい小石でも。何が何を語るかは子どもが決める。まさにそれが欲しかったものだ。
宙ぶらりんは残したくなかった
その時点で、かなりよく動くバージョンはできていた。だが配線された回路は、どれだけ上手にはんだ付けしても配線された回路でしかない。継ぎ目を引っ張るケーブル、足からぶら下がるモジュール、振れば緩むコネクタ。しかも私はちょうど数週間かけて、子どもが物をどれだけ振るかを、きわめて実測的に測ったばかりだった。
そこでカテゴリを変え、プリント基板の設計に取りかかった。散らばっていたものを一枚の基板に集約する。電源、充電器、アンプ、SDカードリーダー、コネクタ。すべてが定位置にあり、動くものも、はみ出すものもない。
配線済みの回路からきれいな回路図を起こすのにClaudeを使った。ここで分業が面白くなってくる。データシートをよく読み、ピンにプルアップが要ると見抜き、値を計算し、フットプリントは記憶から写すのではなくライブラリから取ってくる。だが配線はできない。配線、つまり部品間の銅箔の経路を、他の線と一度も交差させずに物理的に引いていく作業は、KiCadで自分が手を動かした。491本。 0.8ミリ間隔のパッドの間に一本通すために、線を0.1ミリずつ動かして夜を丸ごと費やした。

そのファイルは、発注前に虫眼鏡で隅々まで確認する必要がある。理由はきわめて現実的だ。基板は1枚では発注できない。最小ロットは5枚で、製造も実装も一度に行われる。ここに一つでもミスがあれば、ちょっとした修正では済まない。5枚まるごとゴミ箱行きで、請求書も全額そのまま残る。
そこで、回路図全体を最初から最後まで一行ずつ読み直させた。私では絶対に気づけなかった点が三つ見つかり、どれも発注していれば損をしていた。
発注前に見つかった三つのミス
すべてを台無しにする抵抗。 プロセッサに必要な3.3 Vを作るために降圧コンバータを使っていて、その周りに分圧用の抵抗を二本入れていた。出力電圧を設定するごく普通のやり方だ。ただし、選んだチップには二つの系統がある。可変タイプと固定出力タイプだ。私が選んだのは固定出力のほうだった。この状態で分圧抵抗を付けると、レギュレーション回路は実際よりずっと低い電圧を検出し、出力が弱すぎると判断して電圧を押し上げる。計算上、3.3 V用のレールに13.7 Vがかかる。WiFiモジュール、SDカード、NFCリーダー、どれも電源投入から1秒以内に死ぬ。
向きが逆のダイオード。 KiCadではダイオードのパッド番号1がカソードだが、私のファイルでは逆に配置していた。この位置でダイオードが逆向きだと5 Vが出てこない。つまり3.3 Vも存在せず、基板はまったく起動しない。出来上がった5枚はまとめて無言のまま。製造してみるまで気づく術はない。
そして、何も検査していなかったチェッカー。 KiCadは配線が最小クリアランスを守っているかを自動で検証する。私の設定では、その最小クリアランスがゼロになっていた。実行はされ、エラーゼロと報告し、どんな内容でも黙って通していた。これが最悪の種類のバグだ。安心させてくれる道具というやつだ。
一度だけ立場が逆転して、妙に嬉しかったことがある。部品表のうち二つの部品が在庫切れだと、私のほうが先に気づいたのだ。これを小さなプログラムにして、メーカーのカタログを問い合わせて各型番の在庫と価格を返すようにした。もう二度と、確認しないまま進むことはない。型番は所与ではない。発注の前日にではなく、発注する当日に確かめ直すものだ。
基板5枚で160ユーロ、しかも何も起きない
JLCPCBに発注した。基板の製造と実装をまとめて請け負ってくれる。160ユーロで組み立て済みのものが5枚届いた。1枚は手元に残し、あとはいとこや友人に配ることにした。小包を開けた瞬間は、このプロジェクトでも指折りのいい時間だった。緑の基板、くっきりした配線、寸分の狂いなく並んだ部品、そして自分の名前。ソファに座って描いたファイルから、これが出てきたのだ。

初めて作ったものに触れたとき、まずUSBが挿せなかった。工場がソケットの下に小さな素材の帯を付けていたのだ。組み立て中に基板を支えるための折り取りタブで、届いたら折る前提のもの。30ユーロの基板を手で折るには勇気が要った。10分ほどじっくり考え込んだ。
それから挿してテストする。何も起きない。NFCリーダーのLEDは点滅するが、フィギュアを認識しない。音も出ない、ネットワークにも何も現れない。何も。
15分ほど、自分は160ユーロを無駄な基板に溶かした年寄りの愚か者だ、自業自得だと言い聞かせていた。本当に嫌な時間だった。それから腰を据えて、ハーネスを一本ずつ外しながら調べた。
原因は2本の配線だった。NFCリーダーのリボンの中央2本、シリアル通信を担う線を入れ替えていた。 この通信は必ず交差させる。片方が送るものを、もう片方が受け取らなければならない。まっすぐ繋ぐと両端が同時に喋り、誰も聞かない。モジュールは電源が入り、LEDは嬉しそうに点滅し続け、決して応答しない。深刻に見えて、ただの不注意という類の不具合だ。
そして一番の見どころは最後に来る。ケーブルを直したのに、まだ動かなかった。理由は2つ重なっていた。1つ目、プログラムがリーダーに問い合わせるのは起動時の一度だけなので、再起動するまで修理は見えない。2つ目、USBを挿している間は電源スイッチが何も切っていない。スイッチはバッテリー側のトランジスタに作用するが、USBは別の経路で基板に給電している。つまり、再起動していない基板を「再起動」しながら、すでに終わった修理をテストしていたわけだ。
ようやくケーブルを抜き差しすると、待ちに待った行がコンソールに落ちてきた。
PN532 pret
bibliotheque : 4 figurine(s)
volume : 3 [3-21]
そして30秒ほど、まだ壊れていると思っていた。何も聞こえなかったから。音量ノブが可変域の一番下、最小のままだった。デバッグの一日を音量の問題で締めくくるのは、詩的な報いがある。
そういうところを除けば、基板は一発で動いた。手直しは一切なし。 ジャンパ線もゼロ、削る配線もゼロ、交換する抵抗もゼロ。3か月前にフットプリントが何かも知らなかった人間が設計した初基板で、これは正直まったく予想していなかった。
あとはすべてを筐体に組み込むだけ。今度こそ、恒久的に。


「パパ、それもう聞いたよ」
この一言がソフトウェア側のすべてを動かすきっかけで、話は出発点に戻ってくる。カタログを固定した箱は、たとえそれが自分で作ったカタログでも、避けたかった問題そのものになる。中身は自分たちのものでなければならず、しかもツールもケーブルも、私の手も借りずに変えられる必要があった。
画面がないので、すべてはWebページ経由
箱は自分のページを配信する。スマホでもパソコンでも、ブラウザにアドレスを打ち込めば、フィギュアの一覧、SDカードに入っている物語、いま再生中のものが見える。インストールするものも、更新するものも、アカウントもない。
初回起動時だけ、箱は自分のWiFiネットワークを開く。接続したスマホはセットアップページを勝手に開く。ホテルと同じ仕組みだ。どのドメイン名を問い合わせても箱が自分のアドレスを返すので、スマホは促されることなくページを開く。一覧からネットワークを選んでパスワードを打ち込めば、家のネットワークに参加し、自分のネットワークは背後で閉じる。
最初のバージョンはこれをBluetoothでやっていた。動いてはいたが、専用アプリが必要になる。人にあげたい類のものには無理がある。しかもBluetoothスタックはメモリを300KB、チップのメモリ全体の9パーセントを食う。使うのは箱の一生で一度きりだ。未練なく捨てた。
自分のMP3を
ページからファイルを送るとSDカードに置かれ、それをフィギュアに紐づける。フィギュアには好きなだけトラックを、好きな順番で持たせられ、最後まで再生してループしない。これで何でもできる。留守のときに子どもへ物語を読み聞かせる自分の声を録ってもいい、せがまれる曲を繰り返し入れておいてもいい、ネットで見つけたものを放り込んでもいい。MP3とM4A、スマホやMacから変換なしで出てくる2つの形式に対応している。
フィギュア1体にURL1つ、それでラジオになる
トラックはファイルでなくてもいい。フィギュアにWebアドレスを持たせれば、箱がそこへ接続し、届いたストリームをそのまま再生する。何も保存しない。接続を開き、細切れに届く音声を受け取り、デコードしてアンプへ送る。その間ずっと数秒分を余裕として抱えておき、ネットワークの詰まりを吸収する。接続が切れたら、あきらめる前に何度かやり直す。家庭のWiFiには穴があるし、2歳児に音楽が止まった理由を理解しろというのは無理な話だから。
うちの子どもたちは、木でできた小さな人の形をしたラジオ局を持っている。これがなかなか気に入っている。
WiFiで勝手に更新される
ここが一番の自慢だ。完成したモノならではの問題を解決しているからだ。箱はねじで閉じられ、組み立てられ、リビングに置かれている。何か直したいとき、2週間おきに分解するわけにはいかない。だから新しいバージョンは自分で取りに行く。
問い合わせ先は固定のアドレスで、プログラムに書き込んであり、ネットワーク側からは変更できないようにしてある。これはセキュリティ上の選択だ。ソフトウェアの在りかを外部から指定できてしまう箱は、何でもインストールさせられてしまう。同じWiFiにいる誰か一人で足りてしまう。
新しいバージョンがあれば、ページにボタンが出る。それを2つ目のメモリ領域、つまり動いていないほうへダウンロードし、受け取ったファイルの指紋を照合し、すべて無傷なときだけ切り替える。転送中に停電しても、音を失うことはない。最悪でも古いバージョンで再起動するだけで、何もなかったかのように動く。
安全網と、それが役に立たなかったはずの時間
残るのは閉じたモノの悪夢、つまり正しく起動するのにネットワークが壊れているバージョンだ。それ自体は正常なので箱はそちらへ切り替わり、直す手立てがなくなる。そこで試用期間を設けた。新しく入れたバージョンは、接続できることを証明しなければならない。ネットワークを一度も見ないまま3回起動したら、箱は無線部に電源を入れる前に、自力で前のバージョンへ戻る。
これは元を取った。 私が公開したあるバージョンは、家のネットワークをよく知っているはずなのに、セットアップ用ポータルを開き直していた。保存済みの認証情報を読むのが早すぎたのだ。無線部が起動する前に読んでしまい、認証情報がないと判断していた。私がすることは何もなかった。3回起動したあと、勝手に前のバージョンへ戻り、私はゆっくり直せばよかった。
同じ種類の間違いで、もっと笑えるものもある。各箱は、ハードウェアアドレスの下4桁を名前に持つネットワークを開く。同じ家に2台あっても区別できるようにするためだ。ところが、そのアドレスを無線部の起動前に読んでいた。その時点では6つのゼロが返ってくる。世界中の箱がMarelleo-0000という名前になるところだった。
しかも、ネットワークがまったく何もしなかった可能性も一度あった。公開用スクリプトが、2つあるハードウェアバリアントのうちプロトタイプしかコンパイルしていなかったのだ。基板のほうには、もう一方のイメージが書き込まれるはずだった。オーディオとSDカードのピン配置が入れ替わり、メモリは間違ったバス上で探され、ヘッダには8 MBのチップに16 MBのメモリがあると宣言される。最悪なのは、試験期間でもこれを見逃したということだ。WiFi自体は完璧に動いてしまうから。健全だと信じ込んだまま、耳も目もふさがることになる。気づいたのは、ボタンを押す直前だった。
細部に興味がある人向けにもう一つ。ある日、アップデートがエラーメッセージもなく失敗し始めた。転送が始まり、進み、そして箱が突然、音もなく再起動する。無言の失敗は多くを語る。エラーがないということは、プログラムにそれを書く時間がなかったということで、止まったのではなく、中断されたのだ。ダウンロードタスクのスタックは8 KBで、そこに4 KBのバッファを置いていた。安全な接続の暗号化ハンドシェイクに残るものがなかった。沈黙そのものが手がかりだった。
3人の子ども、想定していなかった3通りの使い方
これはプロジェクト最高の瞬間で、どの仕様書にも書かれていなかった。それぞれが箱を自分たちのものにし、そのどれもが私の想像した使い方ではなかった。
7歳
音楽のプレイリストは1台に、物語は別の1台に、そして虫のポッドキャスト。自分で選び、追加をねだり、自分のカタログを自分で回している。
5歳
物語。たくさんの物語を1台のフィギュアに最後のトラックまでつなげて入れ、私が暗記するまで繰り返しかけている。
21か月
子守歌と、幼児向けポッドキャストのライブ。France InterとRadio Pomme d'Apiに感謝。
フィギュアは1台、操作は1回、それでいてそれぞれに同じ箱の中の自分専用の箱がある。最初に求めていたのはまさにこれで、それがカタログではなくソフトウェアを通して手に入った。違いは一言で言える。誰も私にコンテンツを売りつけていないし、誰もそれを取り上げられない。
3Dプリンターを買って、地下室に工房を作った
予想していなかった副作用がひとつある。箱の話ではない。
フランソワの好意に本格的に甘え始めていた。筐体はすべて彼のプリンターで作ってもらっていたからだ。そして何より、この一連の作業を楽しみすぎていた。夜も週末も、2ミリのフィレットやポケットの深さにこだわるのに、まったく弁解のしようがない時間を費やしていた。これは最後の電子工作プロジェクトにはしないと決めた。心から好きだからだ。そこでBambu Lab A1を買った。
便利な買い物だと言い聞かせた。買い直さずに済むスペアパーツ、捨てずに直せるおもちゃ、自作の収納。どれも本当のことだ。それが理由ではなかった。
そしてリビングに設置した。幅50センチの機械が、送風し、振動し、14時間ぶっ通しで動き、熱いプラスチックの匂いを撒き散らす。マルソーが歩く練習をしている部屋の真ん中で。当時はまったく合理的だと思っていた。有無を言わさず追い出された。まったく当然で、量産機をリビングに置くものではない。

それで、電源線を地下まで引いて、そこにプリントステーションを組んだ。これが正直、想像以上にいい。ソファから印刷を始めれば、二階下の暗がりで勝手に刷り上がり、翌朝取りに行くだけ。上階には騒音も熱いプラスチックの匂いもなく、リビングはリビングのままでいられる。筐体の5版目はそこから出てきた。冒頭の写真のやつだ。
自分で作るなら
必要なものは全部公開リポジトリに置いてある:github.com/Zebra-Rodeo/marelleo。
印刷する筐体3パーツ、JLCPCBにそのまま投入できる基板の製造ファイル(部品表と部品座標付き)、ファームウェアのソース、そしてゼロから始められるドキュメント。何をいくらで買うか、どの順番で進めるか、モジュール版のピン配置、そして私が何晩も潰した落とし穴まで書いてある。ライセンスはすべてMITなので、好きにしていい。
ブレッドボード版から始めれば、はんだ付けは一度もしなくていい。バグに取り憑かれてから基板を発注すればいい。私が通った道であり、勧める道でもある。ブレッドボードは、間違えてもタダで済む場所だ。
使い方は2通り。ファイルどおりにそのまま組み直せば、うちの子供たちが使っているのと同じ箱ができる。あるいは出発点として使う。筐体を変える、スピーカーを変える、ボタンを変える、コードを好みに書き換える。その場合に知っておくべきことが一つだけあって、リポジトリに大きな文字で書いてある。ファームウェアはその組み立て方に合わせて書かれていて、ピン配置はコードの中にあり、配線を一本動かせば書き換える行が一本増える。一晩かけて不具合を探し回る類の話だから、わざわざ明記した。
作ったら、ぜひ見せてほしい。
Marelleoの由来
フランス語で石けり遊びを指す marelle から。四角に足を置いて前に進むゲームだ。ただ、実際のところは Marceau、Ella、Léonie、この箱の持ち主たちの名前から来ている。
プリンターを用意してくれただけでなく、助言と辛抱強さまで与えてくれたFrançois Lagunasに感謝する。そして妻にも。何か月ものあいだ、夜と週末をこのプロジェクトに奪われながら暮らしてくれた人であり、私が反論をひとつも並べる前にプリンターを買うと承諾してくれた人だ。