CP+に行ってきた

といっても,人生が嫌になって海を見に行こうと思ったらたまたまやっていたので,最後の15分しかいなかった。

時間がなかったのでオリンパスのブースにしか行かなかったんだけど(シグマブースを通過する際にdp quattroを見て「美しい…」と声が出ただけ),いろいろな話をしていたのでまとめない。その過程でカメラに関しての価値観をいろいろ話して再確認できたというか。多分私はカメラマニヤや職業カメラマンとは見方が違う。

最近は開店休業だが,ライターをやっていた。途中で取材にカメラが必要となり,同僚に安く譲ってもらった。初期のデジタル一眼レフ。しかし時代は移り変わり,まともな記事に載せる写真は一眼レフという常識が数年で終わり,皆コンデジで,そしてスマホで撮るようになった。そんな中でやりやすさからマイクロフォーサーズに行き着いてオリンパスを使っている。一貫してカメラは仕事道具だ。最近レンズを色々買って趣味でも始めている。

それより前の時代は(その時代も少し経験している),ちょっとした記事の撮影にもカメラマンを呼ぶことが多かったようだ。職業カメラマンは最高の機材を持ち,ライティングや構図などの基礎技術から,それらを一瞬で判断する判断力,そして重い機材を持ち歩く体力を持っていた。

今,カメラマンでは食っていけないという風潮はどんどん増しているように思う。それと同時に,写真が必要な職業や,今までカメラマンと分業をしていたことを自分でやる,ということも増えたと思う。

そんな中で,写真が職業に関わっている人が,皆職業カメラマンの持つレベルの機材を持つべきか,というとそうは思わない。ライターは執筆が仕事である。執筆以外のことに全力を注ぐことはできないし,撮影のために強靭な体力を身に着けたくもない。例えば携帯電話の新製品発表会の取材においては,一眼レフは急速に廃れていった。

とはいっても自分が欲しい画というのはあるので,コンデジスマホでそれを実現するのは逆に制約があって難しくなる。Web媒体では画質の問題はほぼないのだが,画を撮るのが難しいと動きが遅れて時間の無駄になる。初期のマイクロフォーサーズを不満もありながら使い,高級コンパクト(Powershot G1 X)も使っていたが,結局割と成熟してきたマイクロフォーサーズであるOM-D E-M5に至る。レンズによるが私の感覚ではE-M1でも大きすぎる(ただ,E-M1は遅れない)。カメラバッグは持ち歩きたくないし,バックパックに打ちやすいキーボードを入れられたほうがいい。あと,正直安くてガシガシ使えたほうがいい。

結局の所私はカメラをシステムとして見ている。光学系からASIC,洗練されたUIなど異種のコンポーネントを組み合わせて人が写真を撮るということに至る。その中でどう最適解を見出していくかということになると思う。

Nintendo Switchを買った

日常を報告する,ということをしたい。海外でブログが日常の情報探索行動のロギングから生まれたということ,日本ではWeb日記の文化を引き継いでいることを考えると,正統な使い方と言える。

というのも,今私の情報発信は非常に不健全だと考えるからだ。

「悪いことがあった,辛い」ということ以外何も発信することができなくて,それ自体が辛いし人を遠ざけてしまう。人と関わることは心の安全の基礎となる。私の場合はそうだ。なので非常に危ない。

どうしてそういった状況になったかというと,まず普段ひきこもりのため発信するようなことがない。仕事についてはConfidentialな事項が多いので共有できない。研究の成果は何年も経たないと発信できないし,年1回の研究大会に合わせてブログを書いても,読んでもらえないだろうと思う。ライブや演劇などにはそれなりに行っているが,感想を書けないくらい没入している。最後に残るのが嫌なことに対する自己防衛的な発信である。そして,本当の日常を話せる仲間は私の周りからは少なくなってしまった。

はい,この話はここでおしまい。今この記事を見ているのは気のおける仲間だ。わたしが勝手にそう思うことにする。

----

Switchが欲しかったんですよね。基本的には3月に出る「ヨッシークラフトワールド」を絶対にやりたいので,昨年9月に発表されてから発売までに本体を買おうと思っていた。名作もたくさん出ているし,新作もPS4と同時発売の場合が多いので買って損はない。

automaton-media.com

ヨッシーの負け姿は、自分の価値のすべてを失ったように見える。こんな落ち込んだ恐竜を今まで見たことがない。罪悪感が強く、ヨッシー相手に試合をすることができない。

ヨッシーは昔から良いと思っていたが,このクソみたいな記事を見てから再燃し,難易度が高すぎると評判の「ヨッシーアイランドDS」や難易度がついにまともになった「ヨッシーウールワールド」をやっていた。Switchで「Yoshi(仮)」が出るという情報があり,2018年発売予定が2019年になった。そのままの題名で出したら凄いと思っていたが,その後ちゃんとしたタイトルになった。

しかし,金銭的な障壁がある。75000円のRyzenノートブックを買ったり,本を大量に買ったり,ソシャゲに課金したりはするが,なぜかゲーム専用のハードに3万払う気がしない。3DSを買ったときも15000円に何日も躊躇していた。ただ,ヨッシーは重要なのでいつかは買わなければならず,それを後押ししてくれるような相対的な安さが必要だった。

そんな中,先日,秋葉原に行った。ツクモVRで「訳あり品・展示処分品決算市」が行われるのと,ラジオデパートの地下に「秋葉原最終処分場」というすごい名前の店舗ができたので,仕事や研究の気晴らしに行ってみたくなった。その結果,Windows MRのヘッドセットや怪しいMacの補修部品が目に入り,買いそうになってしまった。しかし,Windows MRは放置してしまうだろうし,今Macをリペアしている余裕はない。ストレスから「なにか買いたい」というどうしようもない欲望が渦巻いていたのだ。

なにか買いたい。ならSwitchを買おう。そう思ってツクモVR秋葉原最終処分場の真ん中にあるトレーダーに入ったところ,一発で自分の求めていたSwitchを見つけた。私が良いと思うのは

  • 本体は良好
  • ACアダプタ欠品:前述のRyzenノートに使われているACアダプタを,ケーブルが長いためSwitch用に買う人がそれなりにいるらしい。逆に言えば兼用できる。
  • 微妙な状態のジョイコン:ジョイコンは高いし,そんなに高度なゲームはやらない。今のところ動けば良い。
  • ドックその他はあってもなくてもよい。

で,見つけた中古は本体がきれいだがmicroSDの蓋が開いてしまう(テープで止めればOK),ACアダプタが韓国仕様,HDMIケーブルが非純正品,ジョイコンの左がうまく止まらない,ドックはあるといったものだった。税抜き21000円。

状態を入念にチェックした。店員が「ジョイコンがガッチリはまらないで外れちゃうんですよね,スプラトゥーンとかスマブラとかをやるなら問題になります」と言われたが,スプラトゥーンスマブラはやらないし,私の使い方で外れそうにない。購入。

とはいえ不安だったので電源のあるカフェに行き,ACアダプタをつないでいろいろやってみた。ヨッシークラフトワールドの体験版が出ていた。どうやら私が秋葉原をさまよっていた時に任天堂が発表を行ったようで,そこで体験版が配信されたようだ。なんというタイミング。

さて,ヨッシーの体験版だけでは物足りないので,ソフトを1つは欲しい。中古屋に行ったら名作だらけだ。スマブラは難易度が高すぎるし,スプラトゥーンは中毒性が高すぎるらしいのでやらない。ポケモンは,良い…良い…のだが,懐古になってしまう…。マリオ,ウーン…ヨッシーだろう。ゼルダBotWは猶予数フレームのバグ技や,フレームレートそのものを操作する手法を使ったRTAを見すぎてしまった。任天堂だけでこれだし,他のソフトハウスを含めればいくらでも正解が出てくる。ソフトそのものの少なさを考えれば驚異的だ。

その中で選んだのは「オクトパストラベラー」だ。これは1つの正解である。

www.gamecast-blog.com

この記事で話題になったし(実際,Switchを買う時が来たかと思ったが買わなかった),明らかに好きそうな,というか快適そうなゲームだ。少しずつやっているがあらゆる面でバランスが取れている。

ということで,しばらく適当にやりながら「ヨッシークラフトワールド」の発売を待っている。持ち歩いて適当に暇つぶしでできるし,ACアダプタをPCと共用できるのでかさばらない。良い感じである。

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

 私は基本的にネガティブである。喜ばない。その背景には,相当に凝り固まった価値観があるのではないかと思う。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の理念を支持し,コンピュータというものに向き合えば自然についてくる