Longhash Hackathon 感想

hack.longhash.com

たまには感想日常ログでも書こうか

なぜ参加したか

ぶっちゃけると運営の @yuzushioh にお世話になっていたので。 Yama が出るっていうから半ば付き合いで出ました。

もしひとりだったら絶対参加しないタイプのイベントで、なんでっていう理由をはっきりとは(なんとなくとしか)述べられないのだけど

  • スポンサー(国含む)から無茶苦茶金が出てそうな感じ -> 色んなものに縛られてよくわからないイベントになってることが多い&「お金があるところにしか居ない人種」みたいなのがいることが多くて、そういう感じが苦手
  • 「ビジネスを考える」経験が殆ど無いので、ベンチャー感出てるイベントだとビジネス考えられなくて死ぬこと多数
  • ハッカソン飽きた/勉強したい/ちゃんと寝たい

という色々が重なって全然乗り気じゃなかったのですが、出ました。

前日まで

一応当日にチームビルディングの時間が儲けられていることを知っていたので、当日までがっつりそれぞれのチームが準備をしてくるタイプのハッカソン(ちなみにそういうのも苦手)ではないと踏んで、しばらくは申し込み以外は何もしてませんでした。

1週間前くらいになって、ハッカソンのトップページに「課題」(ハッカソンで解決すべきもの)なるものがあることを認識し「課題くらいは見てみようぜ」ということで一度集まって「課題を読む会」をやりました。

まじでそれまで何も見てなかった僕達チーム全員は戦慄しました。

だいたい5つくらいある「課題」のなかで、理解できたものが2-3程度しか無く、また理解できたものでもどう実装すればまったく見当がつきませんでした。というのも、どれもブロックチェーン界の最先端で今直面している問題を取り扱ったものだったのです。そもそもブロックチェーンという言葉を適当なブログで目にしてなんとなく仕組みはちょっと知っている、程度のWeb/モバイルエンジニアである自分たちには明らかにオーバーキルであることは一目瞭然でした。

読めば読むほど「わからない」ということだけがわかっていき、万が一のときは全てを押し付ける予定だったたった一人の後輩はいつの間にか失踪し、そのまま当日を迎えました。

当日

出発するときから「帰りたい」と全員が口にしていました。

実は当日のオープニングセレモニーで課題内容が改めて説明される予定で、それで何かわかるかも... と淡い期待を抱いていたのですが英語で全くわかりませんでした(実際にはちょっとヒントにはなったり、認識がずれていたものを修正できたりした。でもペーパーを呼んで全くわからなかったものは話を聞いても全くわからなかった)。

さらにオープニングセレモニー中に「Webフォームからチームを登録してください」というアナウンスに従おうとしたところ、なぜか自分たちのチームだけボタンが押せないというアクシデントが発生。

他のチームは全員スムーズに行えているのに、自分たちのチームメンバーは誰もできない。なぜなのか。周りに中国人しか居ない中日本人チームで肩身を寄せて必死に心当たりを探ったところ、「"Confirmationメール"を無視したかも知れない」という仮説が浮かび上がりました。

そのことを含めて事務局の人に相談したところ、ビンゴでした。そこでわかったのは「2週間前から来続けていた10通のメールを誰一人として開かなかった奇跡の会津大学生達」という伝説がここに刻まれたことでした。

英語で怒られました。

2日目

本格的にDecentralized KYC/AMLの課題に方向性を固め、具体的な実現方法の検討に入りました。

それにしても「ハッカソンマスター」が参加していることには驚きました。最初はピンときませんでしたがしばらくしたら思い出しました。

30分おきに話しかけてきます。

コミュ障なのでそっとしておいてほしいのだけれどコミュ障なので伝えられず、しまいにはハッカソンマスター分のコーヒーまで受け取ってしまいました。

まあ真実は置いておいて、その日は朝から晩までDecentralized KYCのモデルをひたすら試行錯誤し続けていました。いくつか挙げていきます。

  • 個人/KYC事業者/その他企業を含めたソーシャルグラフのような与信ネットワークによって個人やKYC事業者それぞれの信用度が算出できるモデル
  • KYC事業者の信頼性を顧客の投票によって割り出すモデル
  • 投票された複数のKYC事業者からランダムに選択し、それがKYCを行うことがコントラクトされるモデル(寡占を防ぐ)
  • 投票された複数のKYC事業者が顧客のKYC Requirementsの可否(信頼に値するかどうか、KYCの結果)を投票で決めるモデル(寡占を防ぐ)

しかしどれも穴がありうまく機能しないと思われました。特に投票が絡んでくるとSybil Attackを回避することができず、投票券に価値を持たせてPoWのようなアルゴリズムをもたせる必要が出てきました(しかし報酬が弱い)。

ハッカソン会場が11時で閉まるという緊急事態により五反田での作業場所を必死に探した結果、一人3700円を払って駅前のBIG ECHOで作業をしました。

最終日

会場に到着した時点でハッキングタイム残り3時間、前日の時点でモデル/技術が複雑になりすぎていたことを実感していました。

「現実性」と「ハッカソンの成果物として価値あるもの」を改めて考えた時、明らかにスケールしないレベルで複雑になりすぎ考慮すべき課題が爆発的に増えていたため、残り1時間の時点で完全なDecentralizationを諦めることを決定しました。「KYCは政府が必要とするものなので、政府が責任を持つべき」という理論の元、以下のモデルに方針転換しました。

  • グローバルで統一的なKYCのフロー/様式が定義されていることを仮定する
  • 参加する政府とそれが委託した機関は信頼できると仮定する
  • 公開鍵暗号ブロックチェーンを介して顧客から予め定められたKYC業者(達)へと渡る
  • KYC業者(達)はブロックチェーンに結果と顧客のWallet IDを書き込む
  • 信用情報利用者(DEX)は顧客のWalletIDとブロックチェーンを照合する

できるだけ後半はモデルの変更にも汎用的な部分のみ並行でデモを作るようにしていたのですが、なかなか見せられるようなデモを最後に用意することができませんでした。

なんとかかんとか日本語のプレゼン資料と走り書きの英語の図を用意して提出、しばらくぼーっとして、なんか声優さんが来てるっていうんで歌を聴きに行きました。

小見川千明さんという人で、唯一けものフレンズで見かけていました(パンサーカメレオンなんて居たっけ? とか言ってすみません)。結構売れっ子みたいです。さすがスーパースポンサーハッカソン

楽しい人で、歌めっちゃうまかったです。ああいうふうに歌いたい... 喋ってるときの声はすごく高いのに歌声は低めのほうが得意っぽかったのが印象的だった。かっこよかった。あとBINGOをやって、「先着2名は写真集プレゼント!」という企画が会ったのですがなんと2着になり同時にBINGOになった人とのじゃんけんにも勝ってしまい、サイン入り写真集もらいました。なんとハグもしてもらいました(そして激写される)。

(なんかこれハグを遠慮する人みたいになってますが、右手は写真集を持っていたからで、左手はちゃんとハグさせてもらいました)

写真集、せっかくもらったので大事にします。いい思い出になりました。

その後、チームごとにブースを建ててそれぞれのハッカソンの成果を見たり、審査員にアピールする時間に移ります。もうまじで英語わからん。久々に喋りました。喋れてないけど。

初めての他チームのやってることをちゃんと見れる機会でもあったのでいろいろ思うところもあって、まず自分たち技術的なレベル低いなあ... というところ。

もちろんハッカソンは技術的なレベルだけを競うものではないのでそれだけで負けっていうわけではないのですが、全くわからない分野に素手で殴り込みに来てしまった分、インターンに行った時なんかよりぜんぜん「無力さ」を実感し、後悔しました。

ハッカソンに申し込むってわかったときからでももっと勉強できたはず。ブロックチェーンっていう技術をキャッチアップしてなかった技術者としての敗北感。もちろんそんな分野は山ほどあるしきりがないけれど、でもここに来てしまった以上そういう言い訳をする気にはなりませんでした。

まとめると勉強しようって思った。

あとこれはずっと思ってるけど英語もね。必須。

それからもうちょっと技術的で細かい所を行くと、やっぱりプロトコルレベルから新しい何かを提案できないか? ということを考えられる頭を持っていくべきだったなと。ブロックチェーンはそれ自体の開発もまだまだ活発でいつ何がひっくり返るかわからないので、そこから考慮して行きたかった。いや、一番最初に弾いたんだよね。今の自分たちではそこを考えることは無理なので、そこ以外の路線で行こうって。つまり勉強しようってことか。

あとそれに関連して、もう一つ強く実感したのはやっぱり「ブロックチェーン、このハッカソン的面白さは今しか無いかも」という話。こんだけ未成熟で無名の学生だってブロックチェーンの基盤技術の提案がWelcomeな状況。すごく貴重な瞬間に立ち会っているんだなと思った。ただそういう時期独特のしんどさというか、逆に言えば変化が激しい分キャッチアップも無茶苦茶大変だろうなーとも思った。面白いところでもあると思うけど。

まとめると勉強しようって思った。おわり。

まあ話を戻して、とりあえず審査員に伝えたいことは伝えられて(日本語も中国語もわかる人の力を借りて)、最終コンペティションには選ばれませんでした。

んー世界はちゃんと筋が通るようにできてる。

最後に最終コンペティションに残ったチームのプレゼンを聞いて終了だったんだけど、同じKYCのテーマを選択してたところは1チームも残っていなくて残念だった。

あまりその前のブースでも他のソリューションを聞けなかったので(というかそもそも見かけなかった)、かなり残念。「ビッグデータを活用したWalletIDの分類」とかAtomic Swapの課題が多かったかなー。

そんな感じで、あとはめっちゃうまいケータリングの(その場で握ってもらえる)寿司とピザを食べて終了。

その他全体を通して思ったこと

だいたい上記までで思ったことも書いた気がするけど、他にも反省点があって、

まずひとつはせっかく夜遅くまで掛けて(チームメイトが)作ったデモがプレゼンでほとんど活用されず無駄になってしまったこと。

これってなぜ起こったかと言うと、

  • 直前まで仕様変更が続いた
    • 逆にそれが予想されていたので、具体的な部分まで作れなかった
  • そもそも何を作ればいいかイメージがついていなかった
    • 全員で「何を作るか」の共有が必要... ただこれは今回より抽象的なレベルでの変更が続いたので無理そう
    • 誰も技術に慣れていなかったため、具体的な実装がイメージつかなかったというのも大いにあった

という感じで、結局「抽象的な部分に集中しすぎて具体的なデモなんかをちゃんと見れていなかった」というのが大きい気がしているんだよね。

それって結局プロジェクトのマネジメントがうまく行っていなかったということで、そこをよく考えていきたいと思っている。具体的には、

  • ハッキングタイム中のタスクはどう分割できてどう振り分けられるのか?
  • 特に技術者中心のハッカソンでのチームでは技術的に最もできそうな人にマネジメントが集中するケースがあるが、本当にそれは意味があるのか? 逆に情報の集中を招いていないか?
  • ハッカソンにおけるプロジェクトマネジメントで必要最小限の業務は? 本当に必要なことは何か?

みたいなところ。本音を言うとこれらを勉強して、うまくアウトソースして自分は開発に専念したい。

次に感じたことは、「ブロックチェーンって技術的におもしろい」というところ。

特に今回感じたのは「原理的に価値を効率よく集めることができない(ズルができない)」という部分を学ぶのが新鮮で、管理者(つまり見張っている特定の人)がいないのにそれが実現できる「技術」というのは、おもしろいなーと思った次第。「社会をハックする頭」の使い方って論理と言うよりはビジネスを考えるときに使う頭に似ていて、割と目からウロコな体験も多かったのでこういう頭の訓練をしておくと後々技術にも生きてくるのかもなーと思った(実際にブロックチェーン関連技術はそういうアイディアの集合)。

今からブロックチェーンを本格的に学ぶかは気分次第だけど、少なくとも関心はとても高まりました。

あと、ハッカソンとしての今回のイベントについて。最初に書いたとおり始めはすごい乗り気ではなかったんだけど、やってみるとハッカソンとしてみれば実はすごく良いイベントだったんじゃないかと思った。理由としては、

  • 解決すべき課題を限定し、かつ技術的に難しいものにすることでハッカソンにありがちな「現実性がない」「その場限り」みたいなことを防ぐことができる。アイディアが絶対将来に役に立つ。
  • 海外から沢山の人が来ていて楽しい。翻訳できる人も多いので自分たちでもなんとかなった。
  • お金がたくさんあるところを随所に感じたけれどスポンサー感はまったくなかった。国からとかもお金出てたからだろうか... お寿司とピザまじでうまかった。

みたいなところ。めっちゃいいイベントだなと思った(自分たちはしんどかったけど)。唯一運営として微妙だったところは11時で閉まってしまうような会場と、会場から遠い宿泊場所。

まとめ

以上です!

僕の gdb

この記事は Aizu Advent Calendar の1日目の記事です。

Aizu AdC が毎年人気なので、今年も埋まっているだろうなーと思いつつ開いたらなぜか今日、明日と埋まっていなかったので今日急遽書くことにします。

去年とかも超気合を入れて書いていたのですが、最近尊敬する mattn さんという方が

なんて言っていたのを見かけたので、小ネタで行こうと思います。

重いネタは本業の LT やブログ等で発散することにします。

gdbとは?

CTFでpwnに使うツールです。gdb-pedaを導入することで完全体となります。

デバッガとかではありません。

gdb-peda の導入方法

公式では、 ~/.gdbinit

source ~/peda/peda.py

と追記するとあります。

しかしモダンなLinux Desktop勢であれば、 dotfiles 系はすべて $XDG_CONFIG_HOME 配下に置きたいですよね?

なのでとりあえず設定ファイルは $XDG_CONFIG_HOME/gdb/init とすることにしましょう。

また、もちろんホームディレクトリに peda なんてディレクトリを作ることも許されないので、 ghq のルールに従い $GHQ_ROOT/github.com/longld/peda 以下を参照することにします。

しかし、ここで問題が発生します。 gdbinit の内容は今の所シェルスクリプトっぽく見えますが、実はシェルスクリプトではなく gdb シェルで実行されるのと同じ、つまり GDB コマンドの扱いになります。よって 環境変数をかんたんに読み込む方法がありません。

しかし、 gdb では シェル内でかんたんに Python コードを実行できる という特徴があります。これを応用し、最終的な init ファイルは以下になります。

python
import os
gdb.execute('source {0}/github.com/longld/peda/peda.py'.format(os.environ['GHQ_ROOT']))
end

最後に、 gdb の設定ファイルの場所を変えてしまったので、起動時にちゃんと読み込んでくれるように alias を掛けておきます。

function gdb
    command gdb -nh -x $XDG_CONFIG_HOME/gdb/init $argv
end

(Fish です)

せっかく環境変数で移植性が保てたので、 Makefile を書いてリポジトリに挙げることにします。

.PHONY: install
install:
    ghq get longld/peda
    ln -s $(shell:pwd)/init $(XDG_CONFIG_HOME)/gdb/init

完成です!

acomagu/dotfiles-gdb

studio balabushkaが消えていた話

ちょうど震災の年の次の年辺り(中学生の終わりくらい)に知った、以心伝心テレパシーという曲がある。

聞いた瞬間に惚れて、今でもずっと大好きで、たまに聴いてる。 でもあまり有名じゃなくて、今でもカラオケにもない。

studio balabushka 業務日誌:【初音ミク】以心伝心テレパシー【オリジナル曲】

このブログのエピソードと合わせて大好きだった。

今日久々に作者のブログを開いてみたら、全てが止まっていた。

公式ページもなくなっていた。ツイッターでも、何故なくなっているのかだれもそのことに触れぬまま、ツイートが止まっていたり、なんでもないツイートだけが続けられたりしていた。

悲しかった。

はじめよくわからないまま、漠然とただただ悲しく思った。

続けて、こんな風に消えてしまうんだな、とひとり裏切られたような喪失感を感じた。

何も知らないけれど、きっと知らないうちに、ありがちな感じで消えてしまったんだなと思った もしかしたら、けんかして もしかしたら、自然消滅で もしかしたら…

とにかく、消えてしまっていて。

もうそこに、彼らは居なかった。

多分、ただ僕が"見た"ものが今もそこにあってほしかっただけなんだと思う。 僕は今でも、以心伝心テレパシーがすきで。その向こう側に居た作者とか、ブログの記事にいた人々、彼らが絶望していなくて、その歌のとおりに希望があって。多くの人を動かしていて。

こんなに素晴らしい歌を作っているのに、それを思って一度でも悲しんでしまったことが悲しいなと思って。

もうきっと、僕が「今でも好きです」なんて言ったって何も変わらなくて。その悲しかった過去は変わらなくて、変わるなんて事自体思い上がりだけどさ。

それくらい、なんというか、

終わってしまったんだと思った。

辞めていてほしくなかった。

こんなに素晴らしい歌を書いておいて、こんなに僕の心を動かしておいて、こんなにずっと、当時から僕の心にこびりついておいて、今更、消えていてほしくなかった。人生、残酷だなあw

きっと、彼らもそう思ってる。残酷だな、って。もしかしたらそういうもんだよな、って思ってるかも知れないけど。

でも

僕はその時子供だったから、ずっと信じてたの。この希望は、間違いないものなんだって。

「心が叫びたがってるんだ」感想

「心が叫びたがってるんだ」をみました。

はじまり

「嫌です」と精一杯伝えようとするところから始まります。必死でやりたいことがある、かっこ悪くてもやろうとする人はどんな人から見ても魅力的に見える。

そんな成瀬と同じ「ふれ交委員」になった坂上は、ひょんな偶然から成瀬に「心を見透かされているのでは…?」と疑いを持たれます。

そんなことはないのですけれどねw しかしそこで「歌ならできるかも」と気づくきっかけになります。

自分を救い出してくれる、王子様

音楽を通してまさに二人で助け合いながら、伝えたいことをひとつ、紡ぎあげる。

卵と王子様というメタファーはどこから来たんだろう。チャックをした王子様がいて、卵を破った王子様がいた。

もし卵の王子様が自分が作り出したものなら、そこから救い出してくれる王子様だって幻想になる。

その幻想を昇華してからはじめて、喋ることができない、という観念にとらわれない本当の感情をみつけることができた。

そんな気がした。

言葉は傷つけるだけじゃない

「後悔しても、もう取り戻せないんだから」という言葉から、成瀬が言葉を本当に大切にしていることが伝わってくる。

その言葉には痛みがありありとでている。確かに、言葉ってなれると乱暴に振り回してしまったり量産してしまうことが多い。

だから黙っていた。だから、誰も傷つけたくなくて、自分も後悔したくなくて喋らないことにした。

でもそれだけじゃない。リカバリーしあって、許し合って後悔しあって謝り合うことだって僕達はできると成瀬からは教えてもらったし、クラスのみんなも態度で示してくれた。

「その世界は思ってたよりきれいなんだ。」

成瀬はそう締めくくってる。

感想

世界はちょっとずつ変わる。成瀬以外の世界だって、伝えなきゃいけないことは伝えなきゃってみんな思った。

本当に思った。伝えるのには痛みが伴うことも。

言葉はいつだって相手の心に刻まれる。それが傷つけるのか、刺さるのか、包み込むのかわからないけれど、

そして自分の心も変えていくんだ。取り戻せない。どうにかうまくやっていけばいいじゃんってそんなこと忘れそうになるけど、みんな心の中では昨日言われたことや何年も前に言われたことを嬉しいとか悲しいとか、ちゃんとしなきゃとか、そういう感情に昇華して生きてるんだ。

誰も言わないけれど。みんな何らかの卵に閉じこもっていて、その卵に気づいてさえいないけど、ちゃんと自分の言えないことも、まずは見つめようって。

そう教えてくれるストーリーでした。

すごくない本

「名著じゃない本」を買うのには、ある程度の踏ん切りが必要だと思う。少なくとも僕には。

なんでかって本ってどんなのでもある程度の値段はするし、本はずっと残るし売らない限り本棚を見ればいつもそこに鎮座し続けるということだ。家に来た友達に背表紙を見られる可能性も高い。

そんな「名著じゃない本」「大抵の人にとっては下らない本」が、自分には今必要だ、ということがあると思う。

いや、「あって良い」と思う。

本を買うときにAmazonのレビューや口コミを参考にすることも多い時代だから、そこであまり評価が良くないとすごく不安になる。いつもは評価の良い本しか買わないならなおさら。

でも直感が今こいつを買えと言っている。

なら買えば良い。

人生は「名著で語られるようなこと」ばかりでないと思う。ぜったいに「下らない本」の入り込む余地がある。

そしてそれが後になって思いもよらないところでデジャブになったりする。役に立ったりする。

そういうほうが面白いと思う。

データと統計や素晴らしい成功体験から得られる教訓に支えられた人生も立派だと思うが、実際そうじゃないことも多いだろう。何が役に立つかなんてわからない。だったら面白くたっていい。人と違ったって良い。

そう思って割とどうでもいい本を買ってみたりしている。

笑われて考えること

たまにまちなかで笑われる。

これは大抵遠方に出ているときに起こる。なんだろう。田舎臭いのだろうか。

とりあえずいろいろと笑われるのだ。今日は歩いていたら、前を歩いていた女子高生がちらちらっと時々こっちを見てくる。

で、爆笑。毎回爆笑。

その笑い方もものすごいのだが、とりあえずそれはおいておくとしてまあ、笑われるたびに色々考える。

まあその年齢の頃って他人は単なるコンテンツ(イケメン/不細工等含め)だよねとか、箸が転んでもおかしいよねとか。 僕も結構なエンターテイナーになったなとか。なんせ5分くらい爆笑してたからね。これ下手なお笑いより才能あるんじゃないか。

でそれから「何がそんなにおかしいんだ?」と考える。

これは誰もが考えざるを得ない。「こいつ失礼な奴だな」くらいには思うにしても、だからといって「自分のどこがおかしいのだろうか?」くらいは考えると思う。

で、まあそれはそれで自分を客観視できるということなのである程度興味深い体験ではあるのだが、彼(女)らは基本的に箸が転んでも爆笑なのでわかりっこない。いや、普通分かるのかもしれないが少なくとも僕には絶対にわからない。分かったとしても絶対に下らないことだ。

だから、結論この現象についてイライラするのは精神リソースの無駄遣いだなということになり、考えるのをやめる。

ちなみに今回の件についてネタばらしすると、笑われていたのは僕の歩き方だったらしい。「リズム刻んでる(爆笑)」と言われてた。会津でこの歩きかたで笑われたことないので、福島地方の学生は意識が高いなあと思った。

まあ奇妙である可能性は認める。僕はいろいろと奇妙な人間なので真面目にしてても傍から見たら疑問を覚えることもあるだろう。

これを聞いて思ったのは、まあ基本的にそんな感想なんてないんだけれど、無理やりひねり出すとすれば「そんなんで爆笑してていいのか」ということ。僕もまだまだだけれど、もっと奇妙なことが世界と言わず身の回りにたくさんあるのに、こんな地方出身のオタクを馬鹿にしてる暇があるのか。もっとなにか、せめて今隣りにいる人の変な行動を探すとかのほうが絶対有意義だと思う。

というわけで、お互いに時間の無駄なので黙ってコード書きましょうねーというお話。まあでも、人の歩行動作にリズムを見出す点に関しては君たちおもしろいね! とも思うかな。

親指しふたーとさくらとゆずと

例えば、で文章を始めるのが好きだ。

例えば、桜が咲いている。

例えば、小鳥がさえずっている。

例えば、例えばで文章を始めるのが好きなあなただとしよう。

想像してほしい。あなたがもし「例えば」で文章を始めるのが好きなひとりの冴えない20歳だったとして。

例えば、手紙を書いてみたらどうだろうか?

メタファーで一杯になってしまってその手紙はきっと捨てられるだろう。

メタファーにはふつう受け皿が必要だ。

こんなことばっかり書いてるから技術系はQiitaに移動させなきゃなんなくなるんだ