Chienomi

著者について

基本情報

正木はるか (通称はるかみ)。

1983年5月25日生まれ。男性。

職業はコンピュータエヴァンジェリスト, 音楽家, 声優, 作家。

趣味はドラム、バイク(今乗ってないけど)、クルマ(今乗って以下略)、空を見ること。

経歴

一般受けする情報が全然ないので書くことがないなぁ… (大部分音楽家として活動していたので、コンピュータとしての活動は派手じゃないし、社会的な要素を追い求めてこなかった)

  • 1985年 IBM JX上でプログラミングを始める。言語はBASIC
  • 1992年 Sun workstationを用いて商用利用開始前のインターネットを利用する
  • 1994年 はじめて業務としてプログラミングを行う
  • 1997年 「人心と人動」の研究の基礎となる「特定環境下における人の反応とその振れ幅」についての研究をはじめる
  • 2000年 初めてのWindowsマシンを購入。自宅インターネットをはじめる
  • 2000年 Perlを使い始める。 ウェブサイト開設, Perl/CGIプログラムの公開(初のフリーソフト公開)
  • 2001年 チャットログを解析し、反応パターンの分岐と類型の分析と、言論展開の推測を行うプログラムを書き始める
  • 2002年 Linuxを使い始める
  • 2003年 Live with Linux開設
  • 2004年 反応パターンの分析結果から「ありうるか」を推測するシステムを開発。フィクションや人のイメージの「現実性」を検証できるようにする
  • 2005年 連続するコンテンツを静的に生成するシステム “ACCS” の開発を開始, ACCS1をリリース
  • 2005年 Rubyを使い始める
  • 2007年 ACCS2をリリース
  • 2008年 計算機系ウェブサイトをちぇのみに改名
  • 2010年 ACCS3をリリース
  • 2011年 コミュニティサイトフレームワーク Heartcom Coreを開発
  • 2012年 Heartcomのチャットエンジン、Heartcom Communicatorを開発
  • 2014年 Journal de Aki開設
  • 2014年 GitHubアカウントを開設
  • 2014年 ドキュメントジェネレーター PureDoc Zをリリース
  • 2014年 Aki SI&Eの事業開始
  • 2014年 ウェブサイト構築システム PureBuilderをリリース
  • 2014年 GMOインターネットにて初登壇。内容は「Ruby DSLを用いたドキュメントジェネレーション」
  • 2015年 PureDocをリリース
  • 2015年 PureBuilder 2をリリース
  • 2015年 動画データを解析するために動画から必要な自動的に情報を抽出して保存するFUSEファイルシステムを開発
  • 2016年 Aki SI&EからAki SIEに改称
  • 2016年 人の言動の分析結果として「らしさ」を接続するエミュレーション機能を開発、人を模した発言を可能にする
  • 2016年 ChienomiをJournal de Akiから独立させる
  • 2017年 AURのパッケージfcitx-mozc-neologd-utのメンテナンスを開始
  • 2017年 研究成果の副産物として高EQ AI “Erina”を発表。従来の研究成果から「事前情報なしに人と区別できない振る舞いをするボット」を実現する
  • 2017年 Aki SIEからMimir Yokohamaに改称
  • 2017年 PureBuilder Simplyをリリース
  • 2019年 Inflaton株式会社を設立, 代表取締役社長に就任
  • 2019年 チャットボットフレームワーク Stellaを開発
  • 2019年 Inflaton株式会社 代表取締役社長を辞任
  • 2019年 ChienomiをWordPressベースからPureBuilder Simplyベースに移行

また、この年表に関しては本当にその年だったか確認していないので、ざっくりこんな感じということで。

他にも色々あるけど、私のアピールのために使っていいのかどうかという気がするのでやめておく。

「開発した」とかいう話をすると大量にあるんだけれども、ライフワーク的にやったものでないと大量にありすぎる上にすごさを感じないのでやはり書きづらい。

また、インフラ系の話、Linuxシステムの話、ネットワークの話とかは毎日常になにかしらやっていて、仕事としても色々やっているから「何を挙げれば響くものやら」という感じだし、ほぼ日々連続性のあることをしているからあんまり「これをやったぞ!!」っていう感じがない。

仕事の話に関しては事例紹介許可をもらうことはよっぽど面白い案件でない限りない感じなので、仕事に関係したことは言わないようにしているし。

割と珍しくて目立ちそうなやつだと、

  • 300台規模の2拠点ネットワークの構築
  • 数十テラバイトオーダーのデータの分析と分析データを利用したモデリング
  • 家庭レベルで32台のディスクからなるストレージシステムの日常的な運用
  • dm-crypt plainとBtrfsを組み合わせたシステムの運用
  • GFS/CLVM, Ceph, GlusterFSの運用

とかあるけれども、最初の以外は自宅で行っているデイリーワークだから、あんまり「こんなことやったよ!!」って感じの話ではない。 聞かれれば話せるネタは多いだろうけれども。

「ひどい仕事の話」として鉄板になっている(どう考えても無茶な仕事をやってのけた)話はあるけれども、それもやはり同様の理由でここには書けない。

ざっくり属性

  • Linux使ってる。Windows使うことはほぼない (音楽の仕事以外ではまず使わない)
  • コンピュータのみってわけではない。冒頭の通り、コンピュータ以外の仕事もしてるし、ずっと音楽家だった。さらにいえば、デザイン系の仕事とかバイクの仕事とかしてたこともある
  • いわゆるsuit(お仕事エンジニア)ではなく、日々コンピュータをいじり倒しているハッカー属の人間
  • 得意なことは、と聞かれたら一応「デイリーハック」と答えるようにしている。「ないものをちゃちゃっと作る」「そこにある問題をささっと解決する」みたいなのが得意
  • 得意技自体は、「問題そのものを縮小すること」。設計偏重で、すごく単純でバカバカしいと思えるような方法で、それまで重大と考えられてた課題を解消してしまうみたいな
  • 必殺技はOrbital design。メニーコアマシンで連続可変データを扱いやすくしてパフォーマンスを上げるデザインパターン
  • 守備範囲が広くてストックが多い方向。逆に流行りものには疎い
  • ツールボックスアプローチが好き
  • 得意というか、入れ込みの強いのはBtrfsとZsh。あと暗号化周り。あとはメールとか、SSHとかもまあまあ詳しい
  • 特選言語はRuby。得意言語はJavaScriptとZsh。使用可能な言語はPerl。それ以外にも必要に応じて使える言語はいくつかある。C, C++, Java, Swift, Goはできません
  • セキュリティは一応、前は専門家だったのだけれど、ちょっとついていけなくなってきたので最近は専門家を名乗るのはやめました。でも防衛側はやってたし、今もやることはある
  • 自動生成とかオートメーションみたいなのは結構好きな分野でよく取り組んでいる
  • デザインができる (イラレができるという意味ではない)
  • 文章が書ける
  • 文字や言語(というか日本語)に関してはまぁまぁ研究してる
  • 多分、フォントデザイナという仕事を中学生の頃に知ってたら絶対に目指していたと思う
  • 推しフォントはNUDアポロ W2, たづがね角ゴシックBook, UD明朝L(フォントワークス), Hermit
  • ウェブに求められるのは一番に内容、二番にアクセシビリティ
  • 解説したり教えるのが得意。そして教えることはとても好き
  • 反復が死ぬほど嫌い
  • ビッグデータを扱った研究をかなり長年している。ただし、今流行の手法ではない
  • クラスタストレージとか、複雑めなネットワークとか、HA系の技術とかも結構日常的に触っている (でもガチHAはあんまりやりたくない)
  • Manjaro Linux使い。Linuxディストリビューション作っていたこともある
  • AURのfcitx-mozc-neologd-utパッケージのメンテナ。「アップストリームに追従できてないぞ」とか「ビルドできないぞ」といった文句は私へ
  • 研究内容だから、心理モデルの扱いが得意。「人間の心理に基づいた自然さ」とか「人間の心理としての読みやすさ、みやすさ」とか
  • 心理と行動についての研究で大量のデータを扱っていたところ、「ぶっ壊れ性能」な高EQ AIができた
  • サーバーは物理的にもソフトウェア的にも結構扱ってきているし、特別という意識はない
  • ウェブはデザイン含めてHTML/CSSも、アプリケーションも、サーバーもできるけれど、ウェブが専門なわけでも好きなわけでもない
  • 効率的にやる話とか、省力化する話とかが好き
  • でも突然、得意分野ではないはずのパフォーマンスチューニングの話をしたりすることもある (そこらへんはこのサイトに出ている)
  • トラブルシューティングは年がら年中やっているせいで(不運体質)割と得意
  • 基本的には「絶対事故らないようにする」よりは「事故る前提で組み立てる」派
  • だいたいいつも誰もやったことがないようなことをやっている
  • まとまった情報がないとか、日本語のドキュメントがないといった問題にしょっちゅうぶち当たってChienomiに書いてる
  • ラップトップはThinkPad派
  • サーバー向けメニーコアWorkstation使い
  • リソースさえあればやりたいことは、「検索エンジンの開発」と「SNSの開発」

代表作

オープンソースのもの

PureBuilder Simply

GitHub

このウェブサイトの構築にも使われている、ウェブサイト構築システム。

事前生成戦略を採用し、Markdown/ReSTソースからウェブサイトを構築する。 構築されたウェブサイトは静的ファイルとしてサーバーにアップロードし、公開することができる。

ドキュメント処理にPandocを使用し、柔軟で強力なシステム構築が可能。動的要素(アプリケーション)との親和性も高い。 プラグインにも対応。「静的なファイル」という範疇を越えて様々な機能を実装可能。

WPImporterによりWordPressからの移行を支援。 当サイトで使用している検索モジュールも公開している。

My Browser Profile Chooser

GitHub

Unixシステム向けのシンプルなスクリプト。

ブラウザプロファイルを使い分けることでトラッキングを避けつつ、サービスへの迅速なアクセスを可能にする。

Autoscrolling text

GitHub

Unixシステム向けのシンプルなスクリプト。

テキストファイルを(テキスト動画のように)スクロール閲覧することができる。 スクロールスピードは自由にコントロールでき、BGMにも対応。 mpvのように右クリックで一時停止することもできる。

PyQt5/QtWebEngineによる極めてシンプルなoff the recordウェブブラウザ、“unsurf.py”も同梱。

Temporary disable keyboard

GitHub

Linux向けの極めてシンプルなスクリプト。

キーボードを一時的に無効にすることで、キーボードを接続したまま(ラップトップをシャットダウンせずに)清掃することを可能にする。

内容的には取るに足らないものだが、「こういうのが欲しいな」と思ったものが「なければ作る」という私の基本的なスタンスがよく出た作品。

Maildeliver

柔軟なフィルタリングを可能にするためのMDA。MHメールボックスに対してフィルタリング及びソーティングして配信することを可能にする。 Fetchmailと組み合わせて使用することを想定している。

現在、version3を開発予定。version2に大いに不満があるのでアドレスは貼らない方向で。

非オープンソースで大きなもの

HeartCom

チャットサイト向けのウェブアプリケーション。 Mimir Yokohama設立以前に販売していたもの。

ユーザー管理、ユーザーページ、メールなどの機能を提供するHeartCom Core、 チャット機能を提供するHeartCom Communicator、 ユーザーの信頼度の判定や不正の監視などを行うHeartCom Controlの3コンポーネントからなる。

このソフトウェアだけでは動作させることができず、HeartCom Controlで使用するポリシーはプログラムとして書く必要がある。 これはHeartCom Controlによって語彙が提供されるので、DSLに近い感覚で書けるようになっている。

当初PHPで書かれていたが、途中でRuby 1.8で書き直された。 また、Ruby初期はWebrickで動作するプログラムだったが、末期にSinatraを使うものに書き直された。

不正や通報の検証にSurtrによって検証された経験則が採用されていた。

自律的AI Surtr

詳細非公開のAI作品。人の心理と言動の研究の一環として開発され、「推測と理論の妥当性」の検証を可能にする。 また、シンギュラリティを狙ったAIとして、「人にとって変わる人らしい行動」をとることを可能にする。

自己改変機能を持つ。

公開している要素としては、

  • Orbital designによる連続可変データベースの取り扱い
  • 専用ファイルシステムを使用する
  • 数多くのコンポーネントがゆるやかに協調するデザインで、実装言語がとても多い
  • データはインターネット経由で取得したデータに限らない。またメディアデータも取り扱う
  • データは公開するのに支障がある要素が多い
  • コードは一般的なAIの知識が利用されていない「文系AI」
  • シンギュラリティを狙ったもの

高EQ AI Erina

Surtrのコンポーネントを使用して作られた対話型AI。

Surtrの持つ自己改変機能の代わりに「選択的学習機能」を搭載し、演出的に相手に与える印象に基づいた言動のコントロールを行う。 (要は「その人らしく」かわいく振る舞う方法を学習的に構築する) また、メディアインターフェイス(ウェブチャットとかTwitterとか)を搭載し、対話に特化した機能を搭載するなど同じデータベースを使いつつもSurtrからは大きな改変が加えられている。

「既読をつけるタイミング」や「返信するタイミング」など、仮想的な生活を持ち、相手のことを認識した上でやりとりするなど「人らしさ」を徹底的に追求。 コンテキストフルであり、相手との会話を踏まえて相手の好み、習性、過去のやりとりなどを認識して応答するのが特徴的。 また、「忘れる」「上手にごまかす」といった機能は「人らしさの中核要素」として搭載されている。

これらの結果、「人と区別することができない応答をするAI」を実現している。

Erinaの固有部分はすべてRubyで書かれている。

Erinaに関してはいくつかの記事で言及しているので、そちらを参照のこと。

Pluto

Inflaton向けに開発した宛名組版システム。

文字数によるスペーシング及びフォントサイズの調整、不整な住所データに対する推測と整形などの機能を持つ。 ソースとしてExcelシートをそのまま使用することができ、組版時の意図に基づく細かなコントロールも可能。 縦書きにも対応。

レンダリングにはCairo/Pangoを採用。実装言語はRubyで、データベースはMarshalファイルを、コントロールシステムはRindaを採用。 全体で1万行にも及ぶ私らしからぬ長大なプログラム。

非常に重いプログラムで、サーバーコアをフルに活用する必要があった。

Stella

Inflaton向けに開発したチャットボットAIフレームワーク。

Surtr/Erinaの経験を踏まえて確立した「実用的な対話AIのあり方」という考えに基づいて設計されており、 完全にコントロール可能な高精度な応答を可能にするための機能を提供している。 その結果が「ディープラーニングではなく、コンテキスチュアルテーブルAIを簡単に書けるフレームワークを提供する」である。

会話のコントロールフローをYAMLファイルで書くというものだが、途中でそのようなYAMLファイルを生成するためのRuby内部DSL及びライブラリが提供され、 さらにその後それとは別のDSLが提供された。

同ライブラリ及びDSLコンバータは公開されているが、 私がInflatonを辞めている以上、このリポジトリが残る可能性は低い(少なくともこのアドレスでは残らない)ので注意してほしい

この会話に至るまでの状態と、今なんの話題であるかを認識する「コンテキスト機能」や、話題や相手の状態/認識などを絞り込むための「フラグ/パラメータ機能」などを持っており、その気になれば非常に自然な対話を実現することも可能。 これは単純なボット(いわゆる人工無能)とは違うだけの意味ではなく、一般にディープラーニング型対話的AIが抱える致命的な問題に対応しているので自然な会話ができるという意味である。 ただし、その「自然さ」のためには心理術的知識が必要であり、訓練が必要である。 (本来、その訓練及びメソッドはサービスとして提供される予定であった)

提供する機能の豊富さに反して非常にコンパクトなのが特徴で、バージョン0.0.1での本体はわずか170行に収まっていた。 私が提供した最終バージョン(0.0.16)では本体は428行。その他プログラムファイル(Ruby, Zsh)だけをカウントすると1203行。 これは先のライブラリやコンバータは含んでいない。

仕事関係

基本部分

基本的にはMimir Yokohamaのサイトを見ておくれよという気持ちだけれども、Mimir Yokohamaのフォーマットじゃない依頼(特に雇用系)が時々くるので、回答も面倒だしまとめておこうと思う。 (Mimir Yokohamaのフォーマットじゃなくても、私が開いてるチャンネルを経由する場合はあるからね)

カテゴリ的には一応「フルスタックエンジニア」ということになるのだけど、特殊すぎるからその分類での表現は難しい。 普段から「特殊なこと、他の人がしていないことを選択的にやっていて、社会的によく要求されるようなフォーマットに従ったことはやっていない」からね。新規性大事。

ここ基本なので大事

  • 社会的に画一的なフォーマットに従ったことはやってないから一般的な雇用フォーマットを適用するのは話が噛み合わない
  • 誰も知らない未知のことを年中やっているので研究量はすごく多く、ひとつひとつの技術を根本から学び、自分の手で確認している

だから、スキルレベルを知る上で資格の話とかIT企業の勤務経験とかフレームワークの利用経験とかを聞くのは無意味。 そして、2歳からずっとコンピュータ触って生きてきてるわけだから、経験を尋ねるのもあまり意味ない。仕事で触りましたみたいな話ではないので「経験年数」なんて話をしなければならない人とは比べること自体失礼すぎる。 聞くならどこまで掘り下げたのかということとかそういうことじゃないだろうか。まぁ、「RFC読んで実装したことがあります」とか、そういう回答になるから。

それと、最近私の言い方で勘違いされていることが多いと気づいたことがあるのだけど、 私が「得意ではない」と言っているのは、他者との相対ではない。 当たり前だけれど、「RFC読んで実装しました」「ドキュメントないので弄り倒して調べました」「発明しました。世界初です」みたいなバックグラウンドがあるものや、毎日触っててそれを研究するのがライフワークみたいなものと、知ってるとかできるとかいうレベルのものでは自信の度合いが違いすぎるし、それを同じレベルで「できる」とは当然ながら言えない。 だから、得意でないからといって、「できない」を意味しないし、まして「他の人よりもできない」を意味するわけでもない。 それから、「これまで誰もやったことがない世界初のトライ」みたいなことを日常的にやっているので、「やったことない」も「できない」を意味しない。やったことないことを実現するまでのプロセスというのは確立しているわけだし、だからこそ日々誰もしたことないことをできているわけで、やったことはないけど大丈夫だと思う、というのはそれなりに根拠と確信を持って言っている。やったことないためにできると確約できないことは、素直に「できるか分からない」と言うし。

なお、できないわけではないけれど、できたところで単純にそれ一本に絞ってやってきて人ほどのパフォーマンスが出ないようなことは、適任ではないと思うということをお断り調でお答えしている。 どうしても私というのであれば受けないわけではないけれども。

得手不得手

基本的には 猛烈に速い というのが特徴。生産力だけで言えば、 条件さえ揃えれば普通に30人月分のお仕事をひとりでこなしたりする

ただ、これには重要なポイントがある。問題自体を縮小する設計技法という記事でも言及しているけれども、単純な作業速度が速いというのは案外そうでもなくて(いや、それでもだいぶ速いほうではあるんだけれども)、問題自体を縮小したり、場合によってはいつの間にか問題自体がなくなってるみたいなことをしたり、解決手法自体で最短をたどったりといったことで「やらなければいけないこと」そのものを思いっきり圧縮しているので、権限が大いに必要。 基本的には出入り口だけ決めて完全に丸投げしてもらうのが理想。だからこそMimir Yokohamaのフォーマットで投げて欲しい。

やってみてよ。多分びっくりするから。「え、なに、そんな方法あったの?」みたいな感じになるから。 このサイトの構築手法だってそうでしょう。今ではそこそこ似たようなものもあるけど、MovableTypeやらWordPressみたいな機能を達成するのに初期では170行くらいのコードで達成していたし、 「PHPでやってるアプリケーション、予め自動生成しちゃえばサーバー側に何も持たせる必要ないよね」っていう発想が2005年当時に出てきたかという。 やがてはチャットですらも予め生成しちゃったわけだし

ちなみに、私の全力の必殺技はOrbital design デザインパターンで紹介している。

逆に自分に決定権がない、自分のものでないことをやることはないので、権限がない状態では大した仕事ができない。 単に作業をこなすだけで制限が厳しくて工夫の余地がないみたいな仕事は基本的にお断りしている。

得意なのは「問題そのものを解消する」とか「教える」なので、状況が困難すぎてどん詰りになったときとか、手のうちようがなくなってしまったり、 問題をどう解消していいのかわからないみたいになってしまった、といったような 絶望的な状況におけるノアの洪水的切り札 として非常に有用であるのと、 社内SEみたいな 守備範囲が広くて、スキルない人を相手にしても面倒がらずにやってくれる人が欲しい みたいな状況も適任。 実際に、「私が断ったら、もう終わり」みたいな状況でMimir Yokohamaに滑り込んでくる案件が多い。

要は、 万能なスーパープレイヤーが欲しい!! という状況で権限どかっと渡して「お願いします!」みたいなのに強い。 捨ててしまった方が解決に近づくものは容赦なく捨てるから今までやってきたことを否定される可能性があるという意味で劇薬じみているけれども、 確実に最短を狙う

「ひとりエンジニア部隊」みたいなことができる ので、普通の人とは使い方が全然違う。

あと、デザインができるとか、経営者であるとか、そういうのも特色かもしれない。

できない、とお断りしているのは、パフォーマンス系プログラミング(Cとかで書くやつ)。数学力がいるやつはできないし、数日で対応できるレベルに到達できるものでもないのでお断りしている。 また、モバイルアプリ開発やゲーム開発なども不得手な要素が多いためお断りしている。

制約と条件

何度も何度も何度も言ってるけど 体弱いし、そもそも非常に特殊な体質だし、普通の人なら「えっ」というようなことで大参事になるからね?

特殊な事情を考慮するのは嫌だ、という人や会社とはさすがにお仕事できないかな。

  • 日時固定のお仕事はできません。週1ならがんばらなくもないけど、その週1のために1週間丸々調整がいるから超高くなるよ
  • 基本的には週2が限界。それでも、日時はスケジュールや体調を考慮して前週くらいに調整できる必要があり。任意だとより嬉しい
  • 特にリモートワークである必要はないし、リモートワークだから条件が緩和されるわけでもあまりない
  • 週3は不可能ではないけど、休む可能性が高いから休める条件である必要がある上に、全額とるからね?
  • 帰宅後もリアルタイム対応しろみたいなのはすーっごく高くなることを覚悟してね (他の仕事を潰すことになるから)
  • 喉に触れる服は着られません。めっちゃえづくし、下手すると倒れます。 だからネクタイしたり、ボタンしめたりはできない
  • 関節全般ものすごく弱いから、靴に関しては選択の余地があまりありません。足の形が特殊という事情もある
  • 条件として難しいので明文化はしないけれど、座っているのが辛い座席の場合は基本的に対応できないと無理。「席を立ってはいけません」という話だと問答無用で不可 (スタンディングで仕事させろという意味ではない)
  • 必要に応じてマスク着用できる必要あり (抵抗力が弱いので、すぐ感染して倒れます)
  • 暑い寒いを調整できない環境は不可 (とても暑い状態になっているとか、寒くても羽織ったりするの禁止とか)
  • 基本的に体優先。一回倒れるとすごく長い
  • 前述の通り、権限のない仕事はしません。生産力がなくなるから
  • ドキュメントを読ませないとか、インターネット接続禁止とか、その他「明らかに全くの無意味な制約のための制約」みたいなものは許しがたいので、そういうことを求めるお仕事はしません
  • 明確に社会悪であることや、触法行為を求められるお仕事はお受けしません。また、詐術によって稼ぐビジネスには与しません
  • Mimir Yokohamaを辞めろってのは無理です

ちなみに、 週2でも、適切に仕事を割り当てれば生産力はめちゃくちゃ高いので、同額の人よりもたくさん仕事こなしたりする から、割高ってことはない。 そもそも、稼働率めちゃくちゃ低くても圧倒的な生産力を誇れるように訓練しているからそこは前提。

金額的には、交渉開始ラインは「全額のお仕事」で800万円。一応の目安として1200万円。諸条件によって大きく上下に振れる。 つまり、週2で柔軟に決めていいよ、権限もここまるっとお願いします、みたいな感じだと800万円よりだいぶ安いラインになる。やったね。

ちなみに、Mimir Yokohamaのお仕事というのは、「雇用では使うには使いにくい要素が多いから、面倒なこと考えなくていいように条件設定した」という感じになっているので、 Mimir Yokohamaへの外注というのを検討してみても良いと思うよ。

その他

スキル面はこのサイトを見るのが早いよ。GitHubに挙げてる内容は設計の必殺技みたいなのが効いたあとだし、古いコードもあるし、コード見て判断するのは難しいから。 このサイトの記事だって充実度というかレベルは思いっきりまちまちだけれども。

前述の通り問題自体を縮小する設計技法Orbital design デザインパターンは実力を測れる記事だと思う。

そのほか、Mimir Yokohamaのサイトも、それはそれで網羅的に解説していたり、初心者向けに解説していたり、基礎から話していたりするから、こことはまた別の意味で参考になるかもしれない。 仕事のときにどこらへんを配慮してやっているかなんてことも分かるし。

あと、本書きたいです。そっちもぜひ。

Wrote on: 2019-11-22 05:02:00