Clojure、Go、Unity……ハッカーズチャンプルー2018 #hcmpl はとっても「ちゃんぷるー」だった!

こんにちは、さくらインターネットの大喜多です。

2018/6/30(土)に沖縄でハッカーズチャンプルー2018が開催されました。本記事では6/30(土)に開催されたカンファレンスに加え、6/29(金)に開催された前夜祭の模様もあわせてレポートいたします(さくらのナレッジは、メディアスポンサーとしてハッカーズチャンプルー2018に協賛しました)。

会場のようす。広い!

140名以上の方が参加されたそうです!(クロージングセッションのスライドより)

esaのデザインの話 〜 自分たちのWebサービスを作るデザイナーとしてやっていること

合同会社esa 赤塚 妙子(@ken_c_lo)さん

社員3名の会社で自社サービスのデザインをおこなっている赤塚さん。社名にもなっているesaとは、『「情報を育てる」という視点で作られた、Markdownで書ける情報共有サービス』とのことです。自分たちのサービスをデザインすることをテーマに、esaのデザインプロセスについてのセッションでした。

業務で使われることもあるサービスでありながら、業務っぽさを感じないこと・使ってて楽しいことや、競合サービスとは一線を画していながらも、新しすぎずなじみやすいUIにするなど、様々な要素を考慮してデザインされているとのことでした。

そんなesaにはメインカラーが設定されていますが、利用上の要件に合致する色を、いろいろな色から消去法で選んでいったとのことでした。

また、メインカラーが決まってもそれで終わりではなく、明度をどうするかというところまで、調整をしていったとのことでした。

自分たちのプロダクトを作ることの特徴として『デザイナーとしての興味・関心を追求できること』『ユーザーに対して良いものを提供することだけに注力して正面から取り組める』『楽しんで作ることとビジネスとして成立させることの両立』を挙げていました。

Webサービスのデザインプロセスに触れることはめったにないことなので、非常に新鮮な発表内容でした!

Clojureという言語が私達にもたらしたもの

Webアプリケーションのスタートアップ企業であるサイボウズスタートアップス株式会社で開発と採用に携わっているあやぴー(@_ayato_p)さん。Clojureという言語を採用した経緯と得られた結果についてのセッションでした。

Webアプリケーションの開発には、(Ruby on RailsやCakePHPなどの)Webアプリケーションフレームワークを使用する場合が多くあります。Webアプリケーションフレームワークは用意された機能を活用することにより強力な開発支援機能を果たしますが、一方でアップデートにかかる労力が非常に大きいなどの問題も抱えています。ClojureにおけるWebアプリケーション開発はWebアプリケーションフレームワークを使用せず、ライブラリと呼ばれる様々な機能を提供するプログラムを複数組み合わせておこなわれます。

また、REPLという仕組みによって非常に速くフィードバックループを回すことができるのも特徴だそうです。

このような特徴を持つClojureが採用された経緯は、有用性ももちろんながら、「他企業との差別化」という技術マーケティングの側面もあったということで、PHP等と比較するとエンジニアの母数は少ないものの、ニッチゆえの優秀なエンジニアが集まることで採用上の優位性を確保できているとのことでした。


Goとコンテナで作るWebアプリケーションベンチマーカー

面白法人カヤック 藤原 俊一郎(@fujiwara)さん

ソーシャルゲームのインフラを担当する藤原さん。ベンチマークをおこなうにあたり、ツールを自作した理由や工夫した点などが共有されたセッションでした。

既存のツールも検討されたようですが、アプリケーションとのデータの親和性や、「ユーザーのアクセスを模したベンチマークにする」という要求仕様をコードで表現できることなどから、自作することになったそうです。Go言語が選択された理由のひとつには「並列処理を実行するのに適している」という理由がありました。

多くのユーザーからのアクセスを模したベンチマークを実行しようとなると、CPUやIPアドレスのNAPTポート数などが枯渇することから複数のベンチマーク用マシンが必要になるとのことで、Amazon ECSを用いて複数のコンテナ(=ベンチマーク用マシン)を自動配置させ、CloudWatchのカスタムメトリクスとしてログを出力させ複数台のログをマージするという方法を採ったとのことでした。

リリース前のベンチマークは総合テストのような意味合いを持っていることが理解できたことと、ユーザーのアクセスをプログラムで再現するためにどのような点に注意すべきか、実装にはどのような工夫が必要かなどがわかるセッションでした。

ソフトウェア開発と私

株式会社はてな 大坪 弘尚(@motemen)さん

株式会社はてなのCTOである大坪さん。ブログにも書かれているとおり『ネタは Perl やコミュニティに関する話であればなんでも、ということだったのですが、考えているうちにこれは自分の話になるな、ということで路線変更して、自分のことをふり返った内容にしてみました。』とのことで、自身のキャリアの振り返りを通じて得てきた学びに関するセッションでした。

学生時代からプログラミングをやってきた大坪さん、Shibuya.jsでイベント初登壇した際に「Webエンジニアはスピード感や実装能力が高いうえにコミュニケーション能力が高かった」という実感を得たとのこと(この後大坪さんは大学院を中退して株式会社はてなに入社することになります)。

株式会社はてなに入社後のキャリアで、『自分はこれまでプログラミングをひとりでやってきて、チームでやることがなかった。チームでやるようになって、プログラミングとソフトウェア開発の違いに気づき、ステップアップした』とのことでした。

また、htmlcatというアプリケーションを開発した際にカスタマイズ性やパッケージングの重要性を理解したというエピソードがありました。
htmlcatは、類似するアプリケーションであるwebtailのほうが人気があったそうで、その理由を『webtailは結果を加工しやすくなるよう考えられていた。htmlcatはカスタマイズ性のことを考えていなかった。また、webtailはRuby製でインストールが簡単だったが、htmlcatはPerl製でインストールが難しかった』と説明していました。

その後開発したghqというアプリケーションでは『もともと自分がzshを使っていたのでzshスクリプトで書いていた。しかしそれではzshでしか使えない。もっとターゲットは広いはずで、パッケージの配りやすいgo言語に移植した』と、過去の経験を生かして開発に反映させたとのことでした。

大坪さんは現在CTOという役職に就いており、『CTOになって直接的なエンジニアリングからは離れていったが、CTOの仕事はエンジニアリングの延長線上にある』と語り、これまでの経験が生きていることを示し、『自分の小さい世界を変えること。エンジニアの大それた夢=世界を変える、を捨て、自分と自分の周囲をよくすることからはじめよう』と語り、セッションのしめくくりとなりました。

VTuberの仕組みの話

ユニティ・テクノロジーズ・ジャパン合同会社 常名 隆司(@takashijona)さん

統合開発環境を内蔵した複数のプラットフォームに対応するゲームエンジンであるUnityを提供する会社に所属する常名さんからは、今まさにホットなバーチャルユーチューバー(VTuber)に関して、VTuberを実現する技術や3Dモデルに魅力を与える演出などについてのセッションがありました。
※スライド非公開セッションのため、スライドの掲載はありません。

3Dモデルを動かすための技術~VTuberのはじめかた

3Dモデルを動かす方法、ウェブカメラで撮った画像をモーションキャプチャーして3Dモデルに反映させる手法にはいくつかあり、VTuberを一番手軽にやるなら『iPhoneX+ARKitの組み合わせ』、VTuberを本格的にやるなら『HTC VIVE、Oculus RiftなどのVR機材を使う』など、具体的な機材についての言及もありました。これらの機材を使ってトラッキングしたデータを3Dモデルに反映させるところでUnityが使われているそうです。

自然さ、魅力の演出~VTuberには作り手の愛情が凝縮されている

『VTuberは作り手の愛情が凝縮されている。有名VTuberは「まばたき」にものすごくこだわっている。まばたきを全くしないのは視聴者に不自然さを与える』
『また、目の向き、ちゃんと視聴者のほうを見るようにすることも重要』
『3Dモデルが自然に見えるようにするためにはいろいろなこだわりポイントがある。リップシンク(しゃべった通りに口の動きを再現する)、髪の毛ゆらゆら(揺れ方にもこだわり)、服がひらひら(重くなるのでやらない人も多いが、とことんこだわっている人もいる)など』

LinkedInの急増職業第7位にUnityエンジニアが入ったとのことで、ビジネス面でも注目されている技術のようです!

どれも個性派、LT9本!

メインセッションの合間に、ライトニングトーク(LT)がありました。

  • Unity(ソーシャルゲーム)における画面遷移基盤設計の話 | 古波倉 正隆 さん
  • 沖縄Ruby会議ラクラク運用 | 安川 要平 さん
  • CYDASアジャイル開発状況報告 | 吉田 真吾 さん
  • 学生フリーランスをする良さ悪さ | @d_ishitaka さん
  • Okinawa.pmと3年目のPerl入学式 | AnaTofuZ さん
  • 3分ハッキング | てっぷ さん
  • Picodom改めultradom改めsuperfineを元にLibraryを作った話 | atomita さん
  • 80年代ゲーム機の技術をFPGAに実装してみた | mgwsuzuki さん
  • Cloud Native & Cloud Design Patterns | saboyutaka さん

個人的に釘付けになったのは、mgwsuzuki さんの「80年代ゲーム機の技術をFPGAに実装してみた」でした!

過去のゲーム機で使われていた、ドット絵キャラクターを自由に動かす「スプライト」という技術を、FPGAボード上で再現したLTでした。

実際に動くものもいくつか紹介されていました。以下の写真は、『画面上部の敵キャラクターに対して、画面下部にいる自機から追尾ミサイルを発射する』ゲームっぽいものをmrubyを使って実装した例です。

クロージング&懇親会

クロージングは昨年に引き続き米須渉さんが担当。その後近くの会場で懇親会が催され、活発なコミュニケーションがおこなわれていました。

沖縄ではクロージング芸人と呼ばれている、JAWS-UG沖縄の米須渉さん

懇親会

前夜祭、そして後夜祭???

ハッカーズチャンプルー2018前日の6/29(金)、那覇市内で前夜祭がおこなわれました。

前夜祭のLTはプロジェクターなし、スライドなしのTEDスタイルでおこなわれました。

中には紙のスライドを使って発表する猛者も。

前夜祭LTは当初2名が名乗りを上げていましたが、最終的には飛び入りを含め6名となったとのことです。ちなみに筆者も飛び入りLTをしました!

飛び入りLTで『みなさんMastodonって覚えてますか?』と会場に質問する筆者

なお、ハッカーズチャンプルー2018翌日の7/1(日)は台風の影響により飛行機の欠航が相次ぎ、ほとんどのゲストスピーカーは帰れなかったようです。

まさにこのタイミングで台風

筆者は翌日7/2(月)午前中の飛行機に乗って東京に戻ったのですが、7/2(月)夜に、残っているメンバーによって後夜祭が開催されたようです。熱い・・・なんて熱いんだ、ハッカーズチャンプルー!!


まとめ

今年のハッカーズチャンプルー、まさに「ちゃんぷるー(ごちゃまぜ)」でした。メインセッションもLTもスポンサーLTも、近すぎず遠すぎず絶妙のバランスだったと思います。この素晴らしいイベントが来年も開催されるよう、さくらのナレッジではハッカーズチャンプルーを応援しています!!