人間の定量化と低評価について

 私は基本的にネガティブである。喜ばない。その背景には,相当に凝り固まった価値観があるのではないかと思う。13年前に人生が終わってドロップ・アウトしたことは13年かけて解消できたが,もともとの人格に由来するものはなかなか変えられない。その鍵というのが定量化である。

人は産まれてすぐに数字を与えられる

 産まれてきたことのことを覚えているだろうか。これはフリで,覚えているかどうかは特に関係ない。ただ,日本で産まれた人間なら,少なくとも産まれた瞬間に2つの数値が与えられることがわかる。生年月日と出生時体重である。

 この2つは,既に人間の優劣をある程度決定する。年度初めが4月であるため,2月生まれと5月生まれは学校においては幼少期には成長に差があることがわかっている。その優劣は時として一生を左右する場合もある。

 出生時体重については,低いと「未熟児」とされる。私は9ヶ月で産まれた2000gである。持病を持つ母から産まれた時に死にかけていたようで,そのまま死んだほうがよかったのだが,病院においては手と足がついているということで生かす決定がされた。手と足がついているが,あとからいろいろ障害が見つかって困っている。

フェアな数字は人を定義する

 小学校のことを考えよう。身体測定,学力テスト,体育などで1年で自分に関する数値が大量に生産されることがわかるだろう。まあただ,多くの数値は茶番であり,参考にしかならない。

 その中でひときわ異彩を放つ数値がある。偏差値である。これは1つの大学に落ち着くまで人間を序列化するもので,その後の人生でもしばしば言及される。偏差値は小学生にとっては唯一無二の力を持つ。1つには中学受験が人生を決めるということもあるが(これはある程度正しいが,ある程度以上は正しくない),それは副次的だ。

 重要なのは,偏差値によって全国で同じ条件・基準で計測されたユニバーサルな順位がつくということである。他の指標ではそうはならない。例えば平均身長というものがある。しかし,身長に全国順位はつかない。塾ではつく。だから,小学生は自分を定義する指標として偏差値を導入するしかないのである。

 もう1つ重要なのは,偏差値の教育的機能である。一旦数値が決まると,それをもとに何をすべきか推論する。自分がどこの中学に入れるか予測できる。そういった,定量化に基づく意思決定を一通り学ぶのである。この偏差値という数値そのものが妥当かどうか,またその後に役に立つかはさておき,数値によって自分に関する物事を取り扱うということそのものは,今後のものの考え方を左右することになる。

定量化できない世界において人は数値を求める

 さて,時間を飛ばそう。人は一定を超えると偏差値から解放される。同じ条件・基準で計測されたユニバーサルな順位は存在しなくなる。あえて言えば年収だろうか。しかし年収は相当程度に恣意的なので(官僚が課長級まで横並び出世なのは,偏差値競争にさらされた人間が過度な競争をしないようにするアレだと思う),自分がどういった人間かを示す指標には一定以上はならない。年収だけで人を見ると多くの場合破滅する。

 しかし,比較され続けた人間が指標から解放されることは難しい。偏差値の代わりとして社会に登場するのは,莫大な「あの人はこれができて,あの人はできない」である。例えば彼女がいるいない,技術があるない,面白い人間かそうでないか,などである。

 これらについてはいくつかの選択肢が存在する。1つには定量化をしないということ,2つ目は統計を使うというもの(例えば彼女がいるいないは,毎年調査されている),最後ができたことに1,できなかったことに0を付与することである。

無茶な数値化は人間を自滅させうる

 この最後の手法が危険で,使い方を誤れば人間を簡単に破壊する。まず,同じ条件・基準が一見存在するように見えてそうでないことが挙げられる。例えば「彼女がいるいない」においては,同じ日に同じ対象と会ってスタートという条件は通常揃わない(揃っちゃった場合があって…この話はやめておこう)。基本的にはその人固有の人生の中で達成することである。このため,「彼女がいるいない」で0と1を付与したところで,それは優劣を意味しない。しかし,0と1を付与することそのものが,無駄な比較を行わせる。

 もう1つが,指標を自分で設定できるということである。偏差値は指標を誰かが決める。しかし,世の中には指標となりうるものは数え切れないほどある。その中でどの指標を選ぶかというのは,自身の評価を自身で決定することにほかならない。指標的世界観に則れば,指標の選択がうまくいったかどうかの指標を考えなければならない。それは,おそらく指標をうまく使いこなして人生をうまく生きることができたかということだろう。

 私はそこで最悪の選択をした。自分ができたことは胡散臭い。できなかったことは確からしい。だから,自分が0を取るような指標を徹底的に採用した。ここがユニバーサルな指標と異なる点である。「採用しない」ということが許されるのである。その結果,「自分は何もできない」という結論に至った。もちろんこれは単なる指標であって,私が生きているということは何もできないことはないということだろう。しかし,私はそう思えなかった。世の中はできないことで満ちている。そして私は無力である。そういった価値観でずっと生きてきた。

不健全な数値で自滅する癖のついた人間に,健全な数値を与えても駄目だった

 さて,私は働きながら博士課程に所属しているが,だからこそ仕事に役に立つこととか研究者としてのキャリアなどは考えず,難しい問題に時間をかけて取り組みたい。生涯学習の視点である。結果的に研究分野から立ち上げることになった,というか,研究分野が作られるまさにその時点にいる。非常にエキサイティングであるが,この戦略が博士号取得そのものにとって良くないことは様々な資料で指摘されているが,それはおいておこう。

 研究は,健全な数値指標が普及している数少ない分野である。つまり論文の本数やIFである。これが健全かどうかは疑義に付されており,様々なオルトメトリクスが提案されているが,例えばソフトウェア開発案件の見積もりに比べたらだいぶましだと思う。ちなみに,ソフトウェア開発については私は常に0点である。ソフトウェアには完成がない。

 その中で研究分野を立ち上げるということは,数値に現れない作業である。例えばある研究者が極めて筋の良い思いつきで研究をして成果を発表する。それをもとに,自分も成果を出せるのではないかという人々がたくさん集まってきて自分の領分で研究をする。それが積み重なった結果「自分たちは一体何を対象に何を明らかにしようとしているのか?」ということが明確ではなくなる。それを明確にしていく作業は骨が折れる。

 骨が折れる数値に表れない作業は,何でもかんでも0点を与える人間には不向きである。学会発表は何度かしたが,投稿論文はまだ一通も出していない。人文では割とよくあることではあるが,自身の論の正当性を論じるには必要なフェーズである。そして,それは本体の相当程度を占める。進んではいる。しかし0点ではあり続ける。優秀な学生は修士論文を雑誌論文としてリライトして投稿し,1点を取る。私はそれができなかった。もう4年目が終わる。0点。

 この0点は,私が自身に与えたものである。論文の本数という健全な数値指標を装っているが,そもそもそれは「研究者の成果」の指標であって,「研究という活動」の指標ではない。回り道をして,間違え,至らず,至りそうで,そうやって行き着くのが「1点」である。それを無だと断ずることはできない。

 ようやくいけそうなところで,上に挙げたような心理的な妨げになっているものを発見した。0であり続けた人間が,否定できない1を得るのは怖い。今戦わなければならない。博士課程からは既に研究の技法以外に多くのことを得ている。過去を克服でき,そして今を肯定できるかもしれない。

競技というもの

 その過程で競技スポーツに関心を持った。私は体力がないので,もちろんゲームである。リアルタイムアタック(RTA)というジャンルがあるが,そこではルールが厳格に決められ同じ条件でタイムを競う。とは言っても私はゲームが下手だ。なんかを競技としてやりたいが,できそうなのはないか。

 そんな事を考えていたら現在開催中の「アイドルマスターシンデレラガールズ スターライトステージ」のイベント「Needle Light」が始まった。このイベントは推しの上条春菜が上位報酬のイベントで,おそらく次はないだろう。前からイベントでできるだけ早く10000pt報酬のアイドルをお迎えするというのはやっていたが,今回は18000pt。本気で最速を目指してみよう。暇がないというのもある。

 さて,これは競技の条件を満たしている。まず,明示されてはいないが15時という横並びでスタートして全力で走る人間が一定数いるということ,次に,ソシャゲの最終的な順位は課金によるのでこれが外部要因になりうるが,18000pt程度なら課金する必要がないということが挙げられる。つまりこれはフェアだ。ちなみに動画記録をする気はないのと,レギュレーションが共有されていないので,RTAではない。

 さて,始まった。ランキングは一定時間で更新されるが,皆全力で走っているので更新のタイミングによっては滅茶苦茶である。私は最高9位だった。だんだん離されていく。時間あたりのポイントが高い曲は難しく,終わったら手が動かなくなって結果的にポイントが下がる。曲をプレイするたびに「アー」とか言ってその分がロスになる。たまにランキングを見てしまいこれもロス。最後の方は嫌になる。嫌になったらとにかく手を伸ばす。走れる。最後の2回をやる直前に,上条春菜役の長島光那さんから「チョクメ!」が届く。読みたいが,ここで走りを止めたらだめだ。

 そして5時間13分の戦いが終わった。もともと理論値と比べて2割ほど低いことを概算していたが,最速は4時間弱のようだったので(人間は理論値にたどり着ける),概ねあっていた。34位くらいだったようだが,まだランキングは暴れていた。この,34位という数値に意味はない。ただ1つ言えるのは,俺はこれをやったということだ。

昔揉めたときに「あなたには興味がない」と言われたことについて

 いろいろ速くやりすぎたせいか精神がバテて,Switchのけものフレンズピクロスをやりながらクール・ダウンしていました。そのとき,ふと昔の,どうしても理解できないことを思い出しました。

 みなさんは,コミュニケーション不全が原因で大学の単位を取れなかったことはありますか?私はあります。理系の実験はコミュニケーションに著しい問題があっても割とどうにかなったりならなかったりするようですが,美大などだと致命的なようで,ドロップアウトの原因のそれなりの割合を占めているようです。

 さて,私が映像制作の実習をやったときの話です。雑にチームを作って街を回って思い思いの表現をするというものでした。とりあえずなんでもいいから出せば単位が出ます。しかし,私は単位を落としました。

 その科目をとっていたときは私ははるかに尖ったガラの悪い人間で,歩けば揉め事を起こす人間でした。その時は比喩ではなく,本当に歩いていたら揉め事が起きてしまいました。街を移動する際にバスで移動するかどうかという話があって,私は準引きこもりだったので体力が落ちており,バスで移動したかった。しかし,一般的な大学生は金がないため,歩ける範囲でバスを使いたくない。そこでなぜか大揉めして私だけ帰りました。

 とはいえ私は単位を取るために何もしないというわけにもいかず,次の授業で映像を作ってチームメンバーに見せました。普通はそういった際は事前に謝ったりするのですが,いかんせん揉め事を途中で切り上げた関係からこちらも謝る筋合いがありませんでした。

 そのときに言われた言葉が,今に至るも理解できません。「正直,僕はもう君に興味ないんだよね」という言葉です。

 全く理解できないというと嘘になります。ニュアンスとして「関わりたくない」「お前が気に食わない」「顔も見たくない」「来るな」などがあることはなんとなく感じ取り,その後話していたら実際に全部言われました。

 しかし,どうにもこうにも理解できないのが,なぜ「興味がない」という表現を先に使ったかということです。興味が無いことと,私に対して不快感を感じたり排除したりすることがどうも結びつかない。

 一つありうる解釈としては,彼らの文化圏では,「興味を持たれなくなる」ことが最も恐ろしく,避けるべきことなのではないかということが挙げられます。特に,この科目は学部1年のもので,私が編入学の関係から3年で受けていたという事情もあり,相手は元高校生です。文化的ギャップはあるかもしれません。特に,私は普通の高校に行っていないので,高校特有の村社会的文化は聞いたことはあってもなじみがありません。

 ある人やコンテンツが「興味を持たれなくなる」ということは,Webの社会では致命的です。ソーシャルメディアは興味を引き合うことで成立しているからです。この記事をここまで読んだということは,あなたはこの記事に一定の興味があると思うのですが,興味のない記事は読まないでしょう。

 高校の文化もそういった側面が強いように思います。ヒエラルキーなどがあると聞きますし。しかし私はそれを知る由もない。なので,もしかしたら「興味ないんだよね」と言われた瞬間に土下座し,興味を持っていただくことを乞うことが正解だったかもしれません。しかし,私はそれがわからなかった。

 私が非を責められることは問題ありません。それが非であれば謝りますし,そうでなければ反論します。しかし,非かどうかそもそもわからないものについて判断を下すことはできません。ただ混乱するしかありません。その点で,昔揉め事をたくさん起こしてきた中で,印象に残っています。それだけの話なのですが。

 もっとも,今は丸くなったので,そもそもバスに乗るのは我慢しますし,具合が悪ければ伝えて帰ります。また,揉めたとしても速やかに謝るでしょう。

加齢と普通の人になることについて

気がついたらこんなタイトルの記事を書く年齢になってしまった。このタイトルは非常にbroadなので,何を言いたいかをもうちょっと説明する。

 

オタクにしてもテックにしても,集まって何かをやったり語ったりしたことのある人は,すごく面白い人とか,いい意味でも悪い意味でも狂ったり外れたりした人を1人は見たことがあると思う。そういった人々が加齢とともに「丸くなった」「普通になった」とか言われるのを最近よく見るようになった。それを言った人がどう捉えているかは別として,私は単に寂しいな,と思う。

まあ普通じゃない人が普通の人になるという経緯はいろいろ考えられて,

  • 長くやってたからやる気がなくなった
  • 体力や精神の衰えによって面白いことをやろうとしてもできなくなった
  • 結婚したら人生が良くなったり悪くなったりした
  • 通常の楽しみでは満足できない人が異常なことをやっていたのが,新しい楽しみを見つけて自分でなにかしなくても満足できるようになった

などがあるかなーと思う。まあ前者2つについては加齢が直で効いてくるので寂しいな,となる。やる気については外野がどうこう言う領域ではない。外野は面白い行動や成果物に関心を持ってきたのであって,その人が根気をもって長年取り組んできたことには,ほとんどの人は目を向けない。長く続けることは,面白さそのものとは別の才能であり,あまり面白くないことでも長く続けている人には独特の凄みが出てくる。結婚については私は語る資格はない。

しかし最後については良い傾向なんじゃないかとも思う。最近出てきたVTuberやゲームで良い落とし所を見つけた人は数多い。私も現代の娯楽は十分に面白いと思うし,中世に生まれていたら本当に面白くなさそうで間違いなく狂人を目指しただろう。

(正直,自分で自分が関心を持てるものを作り続けないと今後厳しいと感じていた時期はあり,博士課程で研究をしている理由の一つでもある。しかし実のところ世の中は少しずつ面白い方向に行っており,この大義名分は成り立たないのでは,とも思う。もっとも,頭を使って苦労することそのものが面白いと感じる人間だったので,方向性自体は良い)

 

まあそれはそれとして,なんか違和感を感じるのは,周りが「普通じゃない人が普通になった」とあえて言うのはなんでなんだろう,ということである。私は単に納得してしまうし,「つまらなくなった」と言うのはコミュニティにつまらない人間が集まってきたりしたときである。

言っている人々の中のそれなりの割合で,「結局皆自分と同じで特別な個性なんてなかった」とか「自分も年をとったり結婚したりしてつまらない人生を送るようになってしまったが,あんな外れた人間でもそうなった」みたいな,一種の自身に対する慰めを感じることがある。

その慰めはあまり私には響かない。何か少し独創的なことをやればそれが個性になるし,何かで人と比較すれば差はついて,それも個性になる。年をとるということはそういった個性の積み重ねでもある。もっとも,それは結婚によってガラガラと全て崩れ去っていったりもするのだが(註:もちろんそうじゃない人も多く見ている)。

 

むしろ,普通になった元普通の人を見て安心している周りを見るのが,寂しいのではないか。そこに本当の加齢が見えてくる。

俺は面白い人間ではないし,年寄りにはなるしかないが,そういう年寄りにはなりたくないなあ…

「動くものを作る」という呪縛

前回の記事では自分の経験に基づいてどうやってプログラミングで食うに至れたかについて書いたが,ここでずっと不思議に思っていたことがある。

soudai.hatenablog.com

ここでも言及されていたのだが,

もし、質問者がすでにプログラミングとしての基礎、言語はなんでもいいけどを書くことができるなら次は「動くもの」を一つ作ることをお勧めする。 

この「動くものを一つ作る」という,10年以上前から言われ続けていたワードだ。私に関しては,仕事を始める前には,自分が果たしたい目的を満たすようなものはたくさん作ってきたが,人に見せられるクオリティのものを作れたためしがない。前回の記事から,職を得るまでに1人で作って一応完成したものを列挙すると

  • 2004年(工学系学部1年):mixiからスクレイピングして今で言うソーシャルグラフを取ってきて,ネットワーク構造の特性を分析するソフトウェア。既存のソフトウェアだと取れる特徴量が限られていたし,恐らくRにはあったがゼロから覚えるのが面倒くさかったので数式から実装した。例えばレコメンデーションエンジンの基礎的なものを作れたとしたら,その手の会社にアピールできただろうが,関心はなかった。
  • 2009年(社会学修士1年):iOSで写真を回りながら撮っていくと合成して1枚のパノラマにするアプリケーション。当時画像処理やコンピュータビジョンに対する認識が欠けていたので,自動で特徴点をマッチング→アフィン変換という方法などをとれなかった。球体に貼る形にするとうまくいくらしく,既存のアプリでそのような実装があった。本アプリではUIでカバーする方針をとり,前に撮った画像を右端に半透明でオーバーラップさせることで,それっぽいものを人が目で見て判断して貼り付けるという方針をとった。ただ,作った段階で面白くて満足してしまい,大量に存在するカメラアプリの中で自分一人で完成度を高める自信もなく,頓挫。
  • 2010年-11年:(社会学修士2年):半球ミラーを上から撮影した画像を,OpenCVで処理して全方位画像を作るアプリケーション。それ自体は悪くないし,RICOH THETAVRコンテンツなどを見るに,需要はそこそこあったように思う。しかし,そもそも半球ミラーを東急ハンズで買ってくる必要があるアプリケーションは敷居が高いし,落とし所がなかった。結果としてどうせならもっと高度にしようということで,3Dで半球のオブジェクトにマッピングしなおし,さらにARマーカーを使うことで手で操作できるようにして卓上でパノラマを見られるようにした。しかし,そもそも人間の視覚に対して不自然なものだったので,有効性を実験して学会発表の草稿を提出した。学会発表は当日体調を崩したので行けなかったのだが,その日東日本大震災が発生した。

 プログラミングを仕事にしている今なら,どれに対してもそれなりの落とし所は考えられる。ソーシャルグラフからのマイニングなんて枯れた技術だし,データを持ってるところならいろいろ組み合わせたり機械学習をやったりすればそれなりの成果は出るだろう。カメラアプリにしても画像処理の一連の知識はあるし,iPhone XのTrueDepthカメラなどを使えばより幅が広がるだろう。ARも地味にソリューションとして浸透しつつあるので,全方位画像と組み合わせれば情報提示の幅が広がるんじゃないか。当然どれも簡単ではない。しかし良いものに広げていくには何が足りないかはわかる。

 しかし,しかしだ。仕事にする前は全然そこまで思いつかず,中途半端なものを作り続けていた。はっきりいって「人に見せられる動くものを作る」というのはハードルが高かったし,むしろ「動くものを作る」という言葉が呪いのように劣等感を刺激していった。既存のものと比較し,こんなもの人に見せられない…と嘆いていた。

 結局自分がものを作れるようになったのは機会である。Railsで何度も挫折した私も,仕事でLAMP環境でのMVCフレームワークを使った開発に参加したら割とすんなりできた。全方位画像で培った技術は詳細は言えないが仕事で十二分に役立っている。やればできるくらいのスキルセットはあったといえる。しかし,仕事でないとできなかった。

 はっきり言おう。私はプログラミングで仕事をしようとする人に対する「動くものを作る」というアドバイスが嫌いである。それは自身の経験もあれば,人に無責任にアドバイスして不毛だった経験でもある。

 そもそも,「動くもの」というスコープが曖昧である。単に何でも動きゃいいというのなら,Hello World!で良い。そうでないことは明らかで,それ以上のものが求められている。その中で,「動くものを作る」というアドバイスは具体的に何を要求しているかを覆い隠してしまう。

 次に,敷居の高さである。自分で目標を設定してゼロから登頂するというのは,仕事で人から言われたものを作るより難しい側面がある。完成品を作るより,技術自体に関心を持って掘って,未完成でもいいからいろいろ触った痕跡を見せるだけじゃだめなのだろうか。そもそも「動くもの」で見られるものは,動くもので使われているスキル以上のものではなく,関心を持っていろいろやっている人間からしたら氷山の一角に過ぎない。プロダクトに現れない埋もれた技術をどう引き出すかは,今働いている人にとっての問題でもあると思う。

 じゃあある人を採用するにあたってどのように見たらいいかというと,やはりタスクを与えてみることじゃないかなーと思った。元記事ではインターンについて言及されていたが,インターンやバイトの門戸が広がると良いと思う。やばい会社を事前に見つけて逃げることもできるだろうし。

プログラミング,どうやって学んだっけな

note.mu

が話題になり,様々な意見が飛び交う中,そういえば自分はどうやってプログラミングを学んだかなと考えていた。ここでいう「プログラミングを学んだ」は仕事で売れるレベルのプログラムを書けることを指す。私は今プログラミングを仕事にしており,死んでいないので,「学んだ」といえるだろう。

 結論から言うと,完全な独学でもないし,学校での演習にも限界があった。しかしいろいろな積み重ねが現場での経験でコードに結びついたような感じだ。

 最初にプログラミングに触れたのは中学に入る直前の98年だった。プログラミングに興味はあったのだが,親が厳しかったのでパソコンは実質的に使うことができなかった。このため,親にとって意味不明な機械であるポケコンを買ってもらった。当時既にポケコンはひどい時代遅れで,電気屋では「こういうのは買わないほうがいいと思いますよ」と言われた。工業高校では生き残っていた。ポケコンにはBASIC,CインタプリタCASLが入っていたはずである。なんだかんだいってBASICを使った。変数やループなどの基礎的な概念はそれで学んだように思う。

 で,BASICには限界がある。そもそも私が買ったポケコンは予算の問題からグラフィックを出力できず,見栄えの良いものを作れなかった。図書館にあった本で勉強していたのだが,図書館のBASICの蔵書はN88-BASIC中心のため,いろいろ言語上の制約もあった。途中でやめてしまった。

 中学時代は母親が統合失調症を発症したので家にいられず,パソコンはネットカフェで使っていた。今もネットカフェに行くと安心する。しかし,ネットカフェなので開発をするならポータブルな開発環境が必要で,しかも当時の記録媒体の中心はフロッピーディスクである。ブラウザで動くJavaScriptで学べ?何年前だと思っているんだ。JavaScriptの実行は危ないから切れって言われてた時代だぞ!ということでいろいろ駄目で挫折した。

 高校は東工大附属というところに入ったのだが,そこでプログラミングの授業があった。486のPC-9821 CanBeにFreeBSDを入れたクソ遅いX環境でMule(多言語対応のEmacs。のちに本線に統合。当然Emacsなのでメモリを沢山食う)を使い,C言語を学んだ。内容としては最初はこの記事

kirimin.hatenablog.com

にあるような,簡単なアルゴリズムから始めたが(ひし形を横に並べるとジャイアンの服の柄になる),同級生の中にはターミナルで大文字と小文字の区別ができないなどして挫折したのもいた。電子科なので,プログラミングに向いていない人はハードウェアに行った。プログラミングをさらに学びたい人はXlibを使ったGUIプログラミングや,8086アセンブラに触れ,課題研究などでやっていくことになった。私は友人とIA-32 プロテクトモードで動く原始的なOSを作ったが,友人と能力の差がありすぎたためコードはほぼ書かず,2chFlashやMADなどを見てゲラゲラ笑っていた。これが平成ネット史である。

 自分で何かいじってみようと思ったのは高校を出る直前である。当時2ch「繰り返し囚人のジレンマ」のアルゴリズムを戦わせる大会があり,大会の運営形式がスレにCプログラムを投稿するというものだった。洗練されたバージョン管理などはなく,一人の人間がとりまとめていた。私がこれを知ったのは大会が終わったあとだったが,コードはあったのでそれに自作アルゴリズムを追加して勝てるものを作ろうと思った。結果的に興味関心はブレていき,アルゴリズムだけでなく大会の運営コード自体をいじり,「デフォルトの設定では勝てるが,そもそもこれはパラメータによって勝敗が異なるような大会だ」ということにいたった(この辺はゲーム理論の領域である)。基本的には既存の小さいプログラムの修正にとどまっていた。

 大学は04年に電通大の情報通信工学科に入ったが,正直大半のことは高校でやったので3年前期「アルゴリズムとデータ構造演習」に至ってもまだ物足りなかった。Pascalは嫌な言語だった。個人では当時勃興していた社会ネットワーク分析に関心があった。Pythonを使ってmixiから引っ張ってきた人間関係のグラフの解析や,その構造に基づいたシミュレーションを行うプログラムを書いたりしていたが,バリバリ大きいプロダクトを作ったり,OSSに貢献するには至らず,途中で文転した。

 さて,07年から文転したので文章が主要な戦場となったのだが,はてなブックマークはやっていたし,プログラミングに関する興味は消えなかったので,ちょいちょい最新の技術はいじってはいた。最初にgitに触れたときはおおっとなったし(のちにsvnを仕事で使ってウーンとなった),VM立ててなんかやったりした。あと当時はiPhoneというものが流行っていて,アプリで一儲けすることを思いついたが,大したものは作らなかった。ちょっとずつ画角を変えて複数の写真から360度画像を作るものなどは作ったが,Objective-C部分はほぼコピペで,ほぼすべてをCで書いた。全方位画像に関してはなぜか関心があり,OpenCVを覚えて実験をいろいろやっていた。

sites.google.com

sites.google.com

Androidへのポート

http://www.interaction-ipsj.org/archives/paper2011/interactive/0282/2INH-12.pdf

 その間にOpenPNEというSNSを作っている手嶋屋でバイトを始めた。文転して修士課程にいたものの,プログラミングは飯を食う手段としてはいいんじゃないかと思い,はてな含めIT企業のバイトを受けては落ちていた。手嶋屋では手嶋屋トライアルという試験一発で採用という仕組みがあり,Linuxサーバを1つ与えられ,Webサーバの立ち上げからOpenPNEのデプロイ,小さいプラグインの開発までやるものだった。全部やるとそこそこ広い知識を要求されるのだが,そこは器用貧乏がうまく働いて完走し,バイトを始めた。

 ということで

github.com

OpenPNE3が私が関わった最初の大規模プロダクトである。そこで,初めて大規模なプログラムに携わるということを学んだ。コードを読み,構造を理解し,そして小さい修正をする。それならできるし,その経験が結果的にゼロから作ることにつながったように思う。主にバグ修正だったが,バグチケットの粒度が適切だったのが成長を促した。

 とはいっても,最初にスタートアップに関わってそこそこ大きなプロダクトを作ったときは大失敗だった。iOSアプリのコードベースは最終的に手のつけられないものになった。なぜか莫大なメモリリークが起きていたが,その原因はわからなかった。

 その後,某大学の研究成果である物体認識手法をiOSに移植するという仕事をした。C++OpenCVの,学生が書いたような,というか実際に学生が書いたプログラムを渡されて,それをほどいてObjective-C++につなぐというものなので,スキルに合っていた。その仕事を振ってもらった社長に拾ってもらって就職し,今に至る。いろいろな仕事をやったが,基本的に既存のプロジェクトやOSSの改修,もしくは小さいアプリケーションがメインだった。今の仕事は初めてゼロから書き始めた中規模なアプリケーションで,基本的にコード側は試行錯誤しながら今に至る。いつできるようになったのかは不明である。

おまけ GNU/Linux をどう学んだか

 RMSの理念を支持し,コンピュータというものに向き合えば自然についてくる

日記

いろいろあって人との関わりを減らしているのだが,誰かと喋りたいことは少なからずあり,一部の友人との会話が激増していて良くないと考えている。かといってツイッターで今までやってきたようにコミュニケーションを求めない形で書いていくのもどうかと感じている。結果として日記を書こうと思う。

LenovoのサポートにPCの修理依頼を出し,今日引き取りに来るとのこと。9時から18時と広く取ってしまったので予定が取りづらい。早めに引き取りに来たら,Tokyo 7th シスターズの4Uのライブ映像が新宿で流れるのと,少女歌劇レヴュースタァライトの宣伝トレーラーが新宿を通るのだが,ちょうどライブ映像の前を通るようなので,両方写っているのを撮影できないかと思ったが,やめておいた。10/2にもう1回新宿にトレーラーが来るのでその日にしよう。

その間仕事でもするかと思い,10/2「ARの教科書」勉強会のスライドを作成。短い章なのだが,基礎技術に関するまとめの章でもあるので,自分の頭の整理も兼ねて今までやってきたこと,トラッキング,較正,位置合わせがどういうことかを前段で丁寧にまとめた。本文の方では,数式をあまり使わないつもりだ。証明が載っているなら説明の必要もあるが,プレゼンでそこまで丁寧に説明する事項でもないだろう。それより本文の数式を丁寧に読むことが重要だと思った。最後に,本当に短い章なので,尺が余ったときのために「よもやま話」として事例紹介を行おうと思ったが,Confidentialなので口頭での説明に止めよう。45分で20枚は正直短いが,議論などを活発にできればと思う。オンラインでの勉強会なので議論は試行錯誤な感があり(発話の権利配分がわからないのではと考えている),うまくできたらと思う。

その後,学会のスライドに着手。こっちで45分話したいが,15分しかない。アウトラインで構成を考えたら15分ぴったりそうなので,そのままスライドに起こしている。

結局引き取りは17時40分に来た。眠い。無償修理で済めばよいのだが。

眠いので怪盗団のゲームをやっていたのだが全然進まない。もともとアニメで表現しきれない「雰囲気」を求めてやっているので,ダラダラとやっている。そうこうしている間にアニメの最終回が始まった。ここまでいくのにだいぶ時間がかかるだろうなーと思いつつも,重要なところで幕引き。年末の特番で終わらせるようだが,その時までにクリアできるだろうか。

寝ていたら夢を見た。旅館の大広間みたいなところで酒盛りをしていて適当にやっていたら,「今日は〜さんの誕生日です」という言葉が聞こえたので,誰かは知らないが適当に祝ったところ,間違えて別の人を祝ってしまった。誕生日を迎えた人物は台湾で博士号も取ったようで,博士号を取った人がかぶるあの帽子で記念撮影をしていた。その後キャリアの話になり,「就職あまりないすよね」と話したら「そこまでひどくないけどまあ…」と返ってきた。「俺はコンビニの工場で,弁当がベルトコンベアで来るのを監視して,悪いのがあったら除けるバイトでもするかな」とか喋っていたら目が覚めた。

空間に時間のマネジメントを埋め込む

また普通の人には役に立たないクソみたいなライフハックを書くぞ。

私は時間を守れない人間だ,というと正確ではない。「時間を守れない」と言った場合,特定の時間を認識しており,それを守る守らないの次元だが,よりもさらにダメなのだ。

どういうことかというと,時間に区切りを作ることができない。もっとも,区切りがはっきりしていてすぐに終わるタスクはどうにかなる。例えばトイレは水を流して手を洗うという明確なゴールがある。しかし,仕事や研究などの生きていくのに重要な多くのことは,すぐ終わりが見えないくらいには長い期間やることになるし,一区切りついたとしても,次何やる?という話になる。そういったとき,時間の感覚を全く作ることができない。時間を守るためにあれやれこれやれみたいな仕事術は全部一瞬で失敗した。

特に厄介なのが娯楽である。インターネットには終わりがない。終わったときは私の人生の終わりだ。延々とコンテンツを享受し続けることには終わりがない。そして実際に延々と享受する。結果的に,時間を守れないようになる。逆に,仕事とか研究のことも寝ている間以外は常に頭にある。しかし,それをちゃんとできるように時間を区切ることができないのだ。無限にやるか全然やらないかのどちらかになるし,最終的に気分に左右されてしまう。

さて,そんな私でも割と区切って作業できる条件がある。外だ。カフェで作業をしまくっているし,カラオケとかネカフェでやることもあるし,本気の時はホテルもとる。そういったノマドワーキングの利点欠点は様々に議論されているが,どれも本質ではない。例えばこれらは快適な環境とは限らない。ホテルは快適だが,疲れているときにカフェにいると雑音で集中できないし,カラオケなんてやばい。ネカフェは脳が慣れた。いずれにせよ,家やオフィスに比べたアドバンテージはない。

ではなぜそういった場所で作業ができるかと考えてみたところ,時間制限があるからではないかと考えられる。ホテルはチェックアウトという明確な期限がある。ネカフェやカラオケは基本的にパックの範囲内だし,従量課金による圧もある。カフェも,事実上数時間いることはできない。

そうなると,「ここはいつまでに出なければならない」という制限ができ,時間の区切りが強制的に作られる。それをそのままやることの区切りとしてしまえばよい。これを,空間に時間を区切らせると解釈することができる。

そうやっていろいろ捗ってきた。皆様の参考になるかは知りませんが。ちなみに,この記事は気分で書きましたし,重要なことをいろいろ放置しているので,カフェに行きます。