ゴミクズがスタートアップするブログ

日常に飲まれないためのサードプレイス

将軍とスタートアップ

※ 少々ネタバレあり

キングダムという漫画があります。

秦とか魏とかが入り乱れる戦国活劇です。

主人公・信と武将たちが繰り広げる人間ドラマや兵法の数々にはしびれるものがあるんですよね。

作中で王騎というむちゃくちゃ強い天下の大将軍が

f:id:anconium:20141114221411p:plain

※ 画質悪いのしかなかった

「戯言とは心外ですねェ。"知略"対"本能"! これは武将の中の永遠の題目ですよォ」

という示唆深いセリフを吐いていたのが特に印象的です。

(詳しい内容が知りたい人はここで概要を把握すると良いです。) 秦の怪鳥・到着!!! そして暴☆言☆王・信最大の「あの暴言」が……。。(笑)


これ、スタートアップの経営にも通じませんかね。

リーンスタートアップ・グロースハック・UXD(ユーザーエクスペリエンスデザイン)などの「ユーザー中心設計」の理論に基づいてプロダクトの改善や組織作りをする経営者もいれば、自分のセンスを信じて直感でプロダクトを改善して行く経営者もいると思います。

僕はこれ、状況に応じてどちらを採用すべきか変わると思うんですよね。

プロダクトの成長ステージ・チームの状態・マーケットの状態に応じて、最適な改善プロセスがあると思うんです。

本能型の人はそれらの情報を肌感で分かるからものすごいスピードで改善しまくれるんでしょうね。作中では近距離型という比喩がありました。

知略型の人は仮説検証をしまくるので進みは遅く見えますが、理詰めでより良いプロダクトを目指すので大きなミスをすることは少なそうです。中〜遠距離型って言ってました。

どちらも欠点はありますよね。言語化できないから属人性が高いとか、実践するのは難しいので結局は形を崩して使うハメになるだとか、様々な議論はあるんですが、「とにかくユーザーが欲しいものを作って届ける」という基本を外さずに、要求に応じて柔軟に改善フレームワークを使い分けたいですね。


余談ですが、「要求に応じて柔軟にフレームワークを使い分ける」ってプログラミングにも当てはまるなあって思います。プログラミングにおいて厳密さと早さはトレードオフっぽいので、最適な粒度の技術を選べたら最速で十分な品質のプロダクトを開発できますよね。だから、フレームワークや言語を選択できる地力が重要だと言われる訳ですね。


またまた余談ですが、グロースハックって使えるプロダクトが限定されてますよね。準備にすごい工数かかるから既製品のMixpanelとか使いたくなるし、抽出したデータが真にプロダクトの改善点を表現できるかは指標を決定する人間とエンジニアの連携にかかっているし、おまけに変更に弱い。

場合によってはUXDが有効なケースも多そうです。


さらに余談ですが、見方によってはまたマーケットがない(ユーザーが本当に必要としているか言語化できてない)プロダクトでも作らない限り、Googleなんて倒せませんよね。言語化できることは大体真似されますから。

社会的文脈と技術的文脈の両方から予想できる人は強いと思います。当然人類が進歩するであろうという技術的予想を、現実のしがらみを諸々勘案してベストなポイントに網を張っておく感じ。

リーンスタートアップ的なパッチの小さい仮説検証プロセスをベースにしながらも、根本的には学者か宗教家のような狂ったビジョンをベースにした、検証がしにくいプロダクトを作らないと、せっかく上限青天井のギャンブルなのにもったいないでしょうから。

本能と知略を使い分け、理解できないビジョンを掲げるエンジニア集団には、怖くて投資できないかもしれませんね。

認証(対象の正当性を検証すること)の未来について考えてみた

最も身近な認証とは何だろうか。おそらくそれはパスワード認証だ。 操作する人と操作する情報の組み合わせが正当か否かを検証している。

最も堅牢な認証とはなんだろうか。例えば生体認証だとかSSH公開鍵認証が予想されるだろう。 手続きは違えど、どちらも鍵穴の複雑さを安全性の源としている。

安全性の源が複雑さなのは、パスワードも同じだ。 なぜなら、パスワードを総当りにより解析できる時間の平均値 (解析時間 L) は,

L = P・S / R = AM /(2R)

P:パスワードが推定される確率 (= 1/2) R: 単位時間に行えるパスワード探索回数 S: ユニークなパスワード数(パスワード空間)  S = AM   A: パスワードに使われる文字種類   M: パスワード文字数

で計算でき、大体の認証機構では「回数制限」か「文字種・文字列長制限」が成されているので、現実的な時間ではアクセスが出来ない仕組みになっているからだ。

加えて、パスワードを予想できないなら無理矢理知ってしまおうと言うことで脳から直接情報を取得することを考えたとして、脳に電極を指して複雑な信号の集まりから意味を見いださなくてはならないので、あなたはまずノーベル賞から取得しなければならない。

さて、複雑さによって予想がされない認証情報(生体情報, 公開鍵認証方式に使う秘密鍵, パスワード)だが、人間が全てを管理するには多岐に渡りすぎているのも事実だ。どこでどう管理するかと言う問題が生じてくる。

すごくバカらしい例だけど、もしも認証情報をあなたのブログで公開していたら、どんなことが起こるだろう?たぶん、第三者があなたに成り済まして多額の決済を済ましてしまうと思う。あるいは、イスラム国の国民になる手続きが完了している。

だから、認証情報はなるべく「参照可能性の低い媒体」にまとめたいということになる。ブログのような皆がアクセスできる媒体に認証情報を保存するのはバカらしい例えだった。でも、ローカルのテキストファイルだってパソコンやスマホを奪われれば参照可能だし、evernoteのサーバーがクラックされたり、ベネ○セさんみたいに信頼していたところからパスワードが漏れちゃうかもしれないし、参照可能性は実は至るところにあることが分かっていただけたと思う。

だから、僕は参照可能性が低くて、なおかつ使うためのアクションが少ない、便利な認証情報管理ツールがあれば良いなと思った。だって、あるサービスを使う度にパスワードを聞かれて、いちいちツールを開いて確認するのは嫌だ。出来る限り「認証された証」を元にシームレスに処理を行って欲しい。

そしてそれは例えば1Passwordのようなパスワード一元管理ツールだったり、OAuthのような認可手順簡略化アルゴリズムだったりする。理想の認証情報管理ツールは、認証の手順を簡略化することと、参照可能性が低いことを同時に満たす必要がある。

そこで思いついたのがウェアラブル端末だ。特に、直近では腕時計が良いと思った。なぜなら、常に身につけているし、盗まれないからだ。将来的には、コンタクトレンズ型だとか、皮膚埋め込み型だとか、脳癒着型があってもいい。

ともかく、種々のパスワードとその「認証した証」は一箇所から参照するようにして、それが物理的に奪われにくいことが「参照可能性が低いこと」に繋がると思った。

暗号化された認証情報をBluetoothで操作しているデバイスやサイトに送る。その間にパスワードや生体認証の存在を意識することは無い。そういった「意識されない認証」が認証の目指す姿だと思った。

昨今のWEB界隈を見ていると、皆パスワードを自前で持たない方向に進んでいる。OAuthは登録やログインが簡単だからという以上に、パスワードを持つリスクが必要無いから開発者にとっても喜ばしい。

他にもfirefoxのPersonaはBrowserIDによって(賛否両論あれど)表面的にはemail情報だけで認証を実現する。

Json Web Tokenを用いれば安全に認証した証をサイト間で融通できるし、何なら抜かれたらまずい情報は除いて、初めから登録・ログインを済ませて置いて欲しいと思うケースさえある。(信頼できるサービス運営者のみで相互にログイン情報を融通する形で実現されるイメージ)

そう考えると、twitterfacebookがパスワードを管理している現状は過渡的なもので、未来では「OAuthのサーバーとなるためだけのサービス」が存在しても良いのかもしれない。パスワードとログインという概念が空気のようになって、腕時計とサービスひとつで全てが実現されている未来はもうすぐそこなのかもしれない。

2014年も終わりに近づいているのでエンドユーザープログラミングがどのように実現されるのかスタートアップ界隈の視点から想像してみた

チラ裏なのでノークレームノー罵倒でお願いします

田舎者が分不相応にもHikarie.goに行った話

f:id:anconium:20140813160903p:plain

こんにちは

この頃のfrontendの開発環境の複雑さに舌打ちする@_sgtnです

Hikarie.goに行ってきました

原因不明の揺れで倒壊待ったなしらしいヒカリエ上層部、DeNAさんでハンズオン形式の勉強会でした

きっかけ

仕事の関係で東京に越してきたばっかりだったので友達が欲しかった

Docker, Libswarm, Kubernetesなどのコンテナ管理ツールのソースを読んでて気になってきたので来ました。あと@_kai_inuiから教えてもらったHashicorpというVagrantなどを作っている会社がとてもイカしたGolangの会社だったので。

ミームさんありがとうございました

得られたもの

  • 友達
  • golangで1から至極簡便なapiサーバーを作る程度の能力
  • sushi

内容

nodeのすごいひとにしか見えない@yosuke_furukawaさん

17歳PRMLマンこと@7yan00さん

のお二人が主催でした。

時間があったので受付から手伝うことに。

ヒカリエ11F綺麗ですね。

ベタですが受付のお姉さんも綺麗です。

そして20F(たしか)のDeNAさんもきれいですね。

隣の部屋でアイドルがキャーキャーいってたようですが、ショールームというサービスの関係らしいですね。

閑話休題

ハンズオンの内容

@yosuke_furukawaさんのgithubリポジトリ

を見ると分かるのですが、

  1. net/httpを触ろう
  2. net/httpを深く知ろう
  3. jsonエンコード/デコードしよう
  4. fileのioをしよう(DBによるデータ永続化の代わりの意味で)
  5. 簡単なapiを作ろう

という流れになっています。

もくもく書きます。

気付いたこと

  • やはりerr変数多用するなあということ
  • import部分非常に読みやすい
  • importで呼んだのに使ってないライブラリや、宣言して使ってない変数はコンパイル時にエラーを吐いてくれるので変なところで苦しまなくて良い
  • 自分で定義した型にinterfaceを使って関数を追加する様がオブジェクト指向と似ているがどこか違っていて新鮮だった(型システムを学ぶ必要性を感じる)
  • 文字列をbyte型で扱うところやポインタを扱う面はあるけど、アレルギー反応を起こすことなくすんなり使える

よく分からなかったところ

  • 2章でnet/httpを呼んでいた際に内部的にgoroutineが使われていたりしたけれど、自分で書けと言われるとムムムとなる
  • m := user.(map[string]interface{})という一行の解読の辛さ(structやmapの扱いを知らねば)
  • rubyで言うところのインスタンス変数っぽいことがしたいんだけど・・・」とか思ってもすぐに目的の情報にありつけない。golangの語彙を身につけねばならない。

お開き

なんとsushiが出ました。なんたる財力。ありがとうございます。

f:id:anconium:20140812210949j:plain

PRMLやjuliaやErlangHaxeや、こないだローンチしたmilkcocoaやSFラノベの話などしながら楽しい時間を過ごせました。

Hikarie.goで得たもの

学習とか成果とか突きつけられるプログラマーという仕事ですけど、プログラマーとしてリアルを充実させるやり方はいくらでもあるんだなあって感想を抱きました。

福岡から東京にきて4日程度ですが、なんとか生きていけそうです。

宣伝

milkcocoaの便利さをもっとたくさんの人に分かってもらいたい、のですが、とてもじゃないけど今の状況からコードを書き始めるのはハードルが高いので、技術ブログ的なことも始めます。よろしくお願いします。

ライトユーザー向けに進化していく(予定の)開発ツール, milkcocoa. 公開させていただきました.

Backend as a Service, 始めました.

-

Milkcocoa - JavaScript一行に詰め込まれたバックエンド

-

初夏のころよりTechnical Rockstars 社にJoinさせていただき, 主にインフラやログ周りを担当させていただきました.

-

開発3名, デザイン1名(非常勤), グロース1名という小さなチームだったので, 現場はさながら阿鼻叫喚のサバイバル状態でしたが, どうにかBaaSという重たいプロダクトを公開することができ, 今はほっと胸をなでおろしております.

-

IaaS, PaaS, SaaS, BaaSと続き、バックエンドエンジニアリングの抽象化の流れは年々加速しており, RailsとJSの相性やフロントの開発環境の複雑さなど難儀なことが多い時代となって参りました.

-

我々はできるだけプロダクトを作る負担をエンジニアだけでなく, 初学者に対しても小さくしていきたいと考えています.

-

Milkcocoaはリアルタイムなゲームやログ収集を始め、無限の可能性を小さな労力で得られる良いツールであり, 今後はその良さをさらに引き立てるように性能や安定性を向上させたり, 補助となるツールを増やしていくつもりです. 技術的には既に取り入れつつあるErlangHaxeなどに注力したいと考えており, 夢が広がりんぐな毎日であります.

-

堅苦しい言葉が並んでしまいましたが, これ以上語るとプログラミング楽しいぜぐへへという想いと疲れも相まって支離滅裂になってくるのでこの辺にしておきます.

-

皆様, BaaS milkcocoaをよろしくお願いいたします.

Milkcocoa - JavaScript一行に詰め込まれたバックエンド

よくわからない量子の話、あるいは情報の話。

情報と物質の関係という古き良きサイトを見つけた。

ジオシティーズとホームページビルダーで作られた頭の良いオッサンが作っているであろう解説サイトだ。

f:id:anconium:20140329081454p:plain

↑こんなの

こういうのを見つけるたびに、街中ですれちがう人たち、いろいろ闇を抱えてるんだろうなあ、と思う。

内容は「量子寄りの計算機科学かじった人の科学哲学」って感じ。

情報ソースは明示してあるようだ・・・数式もソースコードも出て来ない類・・・いや、良いんですけどね・・・自然言語のロジックは破綻を含んでいても気付きにくいから警戒せざるを得ない・・・

トンデモ科学を疑いながらも興味津々で読み進める。

量子力学は、物質と情報とが絡み合う奇妙な世界を扱う理論なのだ。

量子現象の謎を解く鍵は、量子現象と情報概念との不可分な関係にある。

おお!俺たち(エンジニアや科学者)に言えないことを簡単に言ってのける!そこにシビれるあこがれるぅ!

しかしこれは、各方面から猛烈なマサカリが飛んできそうな言い草ですね。

どっかの学者か、挫折したオジサンが趣味で築き上げた独自理論、おそるべし。

いやでも、物質の形態に認識主体が意味を与えて情報になる、その最小のインターフェースが量子なのか・・・。ニューロンの膜電位やそろばんや真空管半導体が情報を保持しうる仕組みとしての物質と情報・・・気になる・・・。

査読済み論文でもないので信憑性皆無ですが、面白そうなのでもうちょっと厳密な根拠が知りたい、ということで読み進める。

以下、目次で気になった箇所を中心に解説。


情報と信号の違い

うーん。タイトルの疑問を解消してくれるような結論めいたものは無し。

これは期待はずれか・・・?


ランダムな無限小数に個性はあるのか

これはグレッグイーガンの順列都市マニアな私にとっては垂涎もののテーマですね〜〜。 円周率πの中の循環小数つまりランダム数列からシェイクスピアの全集から世界をシミュレートするソースコードまで取得できるという脳汁テーマでございます。

さて、このページでは問いが発せられます。

無限小数は、記号としての役割を果し得るのか?

数字がランダムに並ぶ無限小数に個性はあるのか?

そして答え

二つの無限小数が同じか否かを判定する一般的手段はない

無限小数は情報として伝達できない

無限に続く数字列は記号の本質であるディジタル的性格を持たない

この小数は、ウィトゲンシュタインの言う「語り得ないもの」の実例である

おお!おもしろい!これは頭の良い人の着眼点や! 近頃、科学的方法論で扱えない観察不可事象に対するアプローチを考えていたんですよ!何かヒントがあるかも! ちょっと見直したぞ、ホームページビルダーおじさん!

でもちょっと過激だなってのはこのへん

数字がランダムに並ぶ無限小数は論理と矛盾する存在だ。

数学者がこの状況に気付かないのは実に不可解だ。

基本的に神経科学者と物理学者と数学者を目の敵にしております。

しかし、科学的方法では到達できない地点を哲学的思考実験で整理仕様というモチベーション自体はとても理解できるものであります。(世の中には<ウィトゲンシュタインの言う「語り得ないもの」>がたくさんありますもんね)


カントルが対角線論法に仕掛けた罠

カントールの対角線論法を知らない方はここが良いですよ

個性がない数字がランダムに並ぶ無限小数と個性がある有理数とを対等に扱っている

とのことですが、これは「個性」というオリジナル定義ワードにまどわされてしまうのでアレなので、厳密さをある程度犠牲にして簡単にオジサンの言いたいことを要約します。

曰く、

カントール

想像してごらん、無限小数を考えうる限りありったけ全部並べきってみよう。

そこからちょこっとテクニック使って

『いつだって』新しい無限小数をもう一個作れてしまったとしたらですよ、

『考えうる限りありったけ全部並べきる』なんてことは

『いつだって』不可能だと言えるんじゃないですかねぇ・・・?

と言った訳だけど、それって『無限少数を横にずっと記述しきる』ことを

前提としていてアウトじゃないですか?

とのこと。

さて、これって数学マンからマサカリが飛んでくる案件なので言及するものヒヤヒヤものなんですが、「無限」という概念を定義して証明に盛り込む時点でそのあたりの定義付けはされているんじゃないんですかね?ちょっとこのオジサン数式あんまり使わないし感覚で言ってるんじゃないか疑惑感じますね僕。

完全な三角形は数学的イメージとして存在するのに、完全な三角形はデジタルで扱えないから数学は不完全だ!

みたいな主張に感じる・・・。三角形のイデアや無限のイデア虚数イデアは「あると定義する」ものでしょ・・・。


連続体濃度には曖昧さがある

これも前述のカントールさんの内容に絡みますね。

現代集合論の出発点であるカントルの定理は 「実数の濃度は、自然数の濃度より大きい」ことを主張する。 しかし、先の議論からこれは定理ではなく公理とすべきものだ。 ランダムな無限小数に個性(=実在性)を認めること ⇔ 実無限を認めること である

おうふ。これは・・・。

概念の実在性って数学においてそんなに大事だったっけ・・・。

現実に無限が存在することは科学的方法論で観察しうることの範疇ではない形而上学なのは確か。

しかし、数学的対象としての無限は虚数と同様に実在しなくても良いし、無限小数も同様なのでは・・・。

誰か解説plz...


情報の基本的要件

(1)情報の定義 (2)情報表現物質(情報対応物質) (3)情報の読取り (4)読取り結果の利用

物質→情報の変換の定義、気になっていたけど定義てきでいなかったので面白かった。

自然言語によるモデル化という意味で哲学は面白い。


明示的情報と非明示的情報の違い

ニューラルネットが定義する情報は明示的に定義されない 脳の内部で情報が (1)記号化されて表現されているのか(明示的情報)、 (2)記号化されないで分散的に表現されているのか(非明示的情報) について熱心な議論がある

外部から存在を客観的に確認できない情報(主観の領域の情報)として非明示的情報を定義したのかな


情報と物質の相互作用を実現する機械

「非物質的な情報は、物質に直接作用できない」 という結論を心身問題に敷衍すれば、 「心という非物質的な存在が脳という物質に直接作用できない」ことは自明だ。 心身問題の解決には先ず情報物質問題を解決する必要がある。

情報→物質の作用を知ることは大事かもしれない。

意識が脳という物体に作用するインターフェース、謎だもん。

これは観察しようが無いから科学という方法では扱えない形而上学の問題。もちろん極限まで客観的事実を集めることは推論を容易にするけど。

情報という物理で扱える範囲外の事象が、電子の運動を制御していることを科学と哲学の両サイドから議論しよう

というのがこのサイトの狙いっぽい


情報法則と物理法則 -メタ因果律-

物理法則による説明には一般に時間概念が不可欠だ 一方、関係駆動型制御/情報駆動型制御システムの理解にはメタ因果律が不可欠だ

キーワード

メタ作用 時間についての言及

ちょっとよくわからないけどなんかすごい(適当)


情報概念による物理学の限界定理

球あるいは立方体の何れかの形状をもつ物体がある。 物体の形状を認識して

(1)球であればそれに近づき

(2)立方体であればそれから遠ざかる

仕組みをもつシステムを考える。

このシステムの現象は物理法則のみで予測できるだろうか?

システムの機能を実現するには形状認識という情報処理が必要だ。

球や立方体という概念は、原子/物体の大きさ/質量などの物質的属性に還元できない。

従って、このシステムの現象を物理法則のみで予測することは不可能になる。

(1)情報が非物質的概念であること

(2)情報は動物の脳で定義されて生成されるものであること

を考慮すれば、動物に関する現象を物理法則のみで説明することは不可能だ。

この点は同意


時計は「時間を計る」機械ではなく「時間情報を定義して出力する」機械

時計で時間を計る」という言い方は、日常的に使われる。

これは、時間が実在することを前提にしている。

その点に問題がある。

今後の論理展開のための準備項っぽい


波動関数の静的理解 -電子の世界面-

読み物として面白かった。物質波を定義する波動関数について、実際に物質が波として存在するのではなくて、未確定情報 を波としてモデル化しる解釈で系を再構築すると納得いくよねって話。


ふう、疲れた。でも面白かった。根拠が弱い点、査読を経てない点、穴は多いですが、着想の出発点としては大変よい教材ではあると思いました。こういった哲学的下地をしっかり学ぶほど課題が明確になりモチベーションが上がって良いですね。

心のアーキテクチャについて

社会的所属がないことは、そんなに不安なことか? - 空想島(6畳半)より

 

みなさん、なにかしらの「自己肯定感」がないと不快っぽいですね。

 

なんでですかね。

 

「あの人みたいに綺麗になりたい」

 

「起業家としての俺かっこいい」

 

「科学が楽しい」

 

「禅の神髄を極めたい」

 

「あいつより稼いでいる」

 

そういった「心の支え」を何かしら用意しないと人は心が不安定になる傾向があるっぽいですね。

 

「心の支え」つまり「信仰」「信条」「宗教」「信念」って表現したらいいのかな。

 

自分の中に「ルール」を設けることで、人はそれを勝利ひいては幸福への指針としているっぽい。

 

どんなルールを設定するかによって意思決定とか性格とか趣味が芋づる式に構築されていくと思うんだけど、あなたはどんなルールをどのように設定していますか?

 

たとえば、戦略の階層を個人向けに修正 : 地政学を英国で学んだに見るように「抽象的な信念から具体的な手段へと階層構造を作る」というのがひとつのライフハックとしてある。

 

「暖かい家庭を作る」という信念(大分類)を持っていたとして、「仕事を頑張る」という手段(小分類)を選んだとき、子どもが死んだり妻が死んだ場合、信念を成立させる前提が崩壊するために精神の不安定感は増すと考えられる。

 

この例から示唆したいことは、「信念の粒度を細かくすると危うい」ということだ。信念に失われやすい要素を含有させると、長い人生の間で何度も何度も傷つき動揺するハメになるだろう。

 

社会的所属がないことは、そんなに不安なことか? - 空想島(6畳半)で言う「社会的所属」も信念の構成物なんだろうな、と思った。

 

自分の心の構成物を定期的に因数分解することは大切だし、よりよいアーキテクチャを模索することは心を強くする。