Entertainer Engineering

人を楽しませられる技術者を目指すあおかびんのブログ

GitHub駆動学習のススメ

こんばんは、aokabinです。かびです。

今日は琉大情報工のAdvent Calendarがあるということで
CODE BASEの忘年会でもちょっと話したGitHub駆動学習についてお話しようと思います!
(めっちゃ初心者向けです!)

まず、GitHubとは何か?

GitHub
プログラムやサービスなどを作る際に必要なソースコードのバージョン管理や
開発を支援するための機能を持った、IT技術者のためのプラットフォームサービスです。
僕が世の中で一番好きなサービスがGitHubです!

バージョン管理

もしかすると、バージョン管理がいまいちピンときてない人もいるかもしれませんが
ざっくり説明すると
「今の動くソースコードを保存しておいて、後で機能を追加・削除して動かなくなっても、今の状態に戻れれば動く」
というように、「さっきのソースコードの状態に戻る」みたいな機能を、バージョン管理と理解しておけば一旦大丈夫です 🙆

そして、「今の動くソースコード」を念のため自分のパソコン以外にも保存しておけば、
もしパソコンが動かなくなっても、ソースコードは無事だよね、ということを実現してくれるのがGitHubというサービスです。
(他にも、「他の人とソースコードを共有して、同時並行で開発ができる」とか「プロジェクト管理ができる」とかありますが、今回は割愛します)

開発支援機能

また、GitHubは開発を支援するための機能をたくさん有しています。
その中でももっともベーシックな機能として、issueというタスク管理のような機能があります。

このissueは、一般的なタスク管理ツールのように、あるタスクに対してコメントをつけたりすることができます。
また、GitHubのコメントではMarkdownを使うことができ、さらにソースコードを記述した際にシンタックスハイライトすることもできるため
非常に簡単にみやすいコメントを書くことが可能となっています。

GitHub駆動学習では、これら2つの機能を主に使っていきます。

GitHub駆動学習

さて、じゃあGitHub駆動学習ってなんぞや?というお話ですが
技術的な勉強は全部GitHubでまとめてやってしまおう!という学習方法になります。

GitHubを使って開発をするメリット

というのも、GitHubは上記のバージョン管理機能と開発を支援するための機能を提供しているため
オープンソース(公開された)のプログラムの開発にも一役買っています。
そしてオープンソースのプログラムに自分が書いたソースコードが取り込まれると
「この人はこのプログラムの開発に貢献しています」というのが、外からも見れるようになります。
この情報が公開されていることによってその人自身の技術力がある程度把握できるようになっています。

また、それ以外にも、1日にどれくらいプログラムを書いたか(厳密にはcommit量を計っていますが)
ということも公開されるようになっているため、GitHubで開発をすることによって
その人が「どういうコードを書くのか」また「どれくらいコードを書くのか」ということが外部から見れるようになっています。

この情報は、就職活動を行う際にとても有用で
GitHubのMyPage情報を共有することで、ある程度その人の技術力を測る指針にできるわけです。

つまり、自分で勉強する場合も、このGitHubを使って学習を進めておくと
「どういうコードを書くのか」
「どれくらいコードを書くのか」
ということを公開できる状態が作れるため、就活をする際に結構便利だったりするわけです!

具体的な手法

ここからは具体的な手法を説明します。
今回は実際にあり得る例として、やりたいことに対して、Web上のサイトの情報を元に勉強を進めていくことを考えます。
流れとしては以下のような感じ

  1. 学習に関するリポジトリを作る
  2. 関連するissueを作る
  3. 学習をしながら、学んだことをコメントしていく
  4. 学習を進めていくうち、細かく勉強したいものが出てきたらまたissueを作る

今回は最近僕が実際にやったこととして、Kubernetesというツールの勉強をしたので、そのステップを書きます。

github.com
(上記、普通に参考になると思うのでよかったら是非見てみてください)

1. 学習に関するリポジトリを作る

まずは学習に関するリポジトリを作ります。
リポジトリというのは、ソースコードが保存される、ディレクトリとかフォルダみたいなものです。

f:id:aokabin:20181224235706p:plain
リポジトリの作成

2. 関連するissueを作る

学習内容に関するissueを作ります。

f:id:aokabin:20181224235934p:plain
issueの作成

今回は、あるサイトを参考に作業を進めていこうと考えたので、サイトの情報を説明のところに書いていきました。

3. 学習をしながら、学んだことをコメントしていく

あとは、具体的な作業内容を学んだことを書いていきましょう。

f:id:aokabin:20181225000457p:plain
コメントの残し方

書くときにオススメなのは

  1. どういう状態になって
  2. どういうことを考えて
  3. どういうことを調べて
  4. どういう情報を得て
  5. 何を実行した結果
  6. どうなった
  7. その理由

あたりを書いていくのがいいと思います。

このissueは、他の人にみてもらうのと同時に、過去の自分がやった作業ログの役割を持つので
何を考えてどう調べてそうしたのか、という情報を出来るだけ細かく書いている方が、読み返すときにもいいですし
他の人が見たときに、自分の考え方のクセも見ることができるので、伝える情報量が増えていいと考えています。

4. 学習を進めていくうち、細かく勉強したいものが出てきたらまたissueを作る

学習を進めていくと、issueのタイトルから脱線することもあります。
今回例に挙げたissueの場合、途中でnb_filterというものに遭遇しました。

nb _filterに関しては、別のissueを立てて、そちらでまた別途学習を進めるようにして
新しいissueを立てました。

f:id:aokabin:20181225001553p:plain
脱線したissue

GitHubのissueを使うと、issueのタイムライン上にissue同士の関連情報が表示されてくれるのも
学習事項同士を関連させて効率化させられるいい機能だと思います。

f:id:aokabin:20181225001615p:plain
issueの関連情報

と、このような形で作業を進めていくと、
この自分の学習ログとして残す際に有用なだけではなく、他の人が同じ内容で学習をする際のサポートにもなりますし
就活の際に思考のクセや考え方、技術レベルなどが見えたりするため、GitHubでの学習自体はとても有用だと僕は考えています。

まとめ

長々と語りましたが、大まかにいうと「学びの過程すらGitHubに残してしまおう」というお話でした。
この方法は、僕がお世話になっているYassLab社で最初のアルバイトの際に活用されている方法で、
それを個人の学習にも応用しようというのがこの方法をオススメしたきっかけでした。

プログラムを学び始めの人も、そうでない人も、是非こういった方法で学習過程の共有をしていきましょう!

それでは良いクリスマスを!

P.S.

本当はこの方法も書きたかったのだけど、リポジトリが増えて管理が面倒なので
そういう場合はghq+pecoを使ってソースコードの管理自体も簡単にやってしまうことをオススメします!
詳しくは以下の参考サイトをご覧ください!

qiita.com

PayPayの支払いではKyash+リクルートカードでファミマ利用が良いと思った話

どうも、aokabinです。

今回お金の体験としてとても嬉しくなることがあったので、共有のためのブログを書きました。

PayPay

PayPay、みなさん使ってますか?

www.paypay-corp.co.jp

今日からえげつない企画が行われているので、僕はめちゃ利用しようと思っている次第です。
何がえげつないかというと、こちら

paypay.ne.jp

100億円のばらまき!!!

PayPayを使って決済をすると、利用額の20%を還元するよ、というものでして
さらに通常ユーザーは40回に1回の確率で利用額の全額が返って来るというとんでもないもの。
ちなみにYahooプレミアム会員は20回に1回
ソフトバンクの携帯ユーザーは10回に1回に確率がアップするらしいですらしいです。

すごいなSoftBankとYahoo。。。

まぁそのランダム性の高い還元はあてにしないで利用していきたいので、
どうにかいい方法ないかなーと思ってこの記事を書きました。

PayPayの利用方法

PayPayはバーコードを提示する、いわゆるバーコード決済という支払い方法になっているのですが
そもそも支払いの流れとして

  1. PayPayに残高をチャージして、残高から支払う
  2. クレジットカードから直接支払う

という大きく2つの支払い方法があります。
残高から支払うのも、クレジットカードから支払うのも、PayPay上はバーコードを提示して支払うだけなので
そこまで大きな違いはありません。

ただ、このクレジットカードから直接支払う方法、実はKyashのカードを登録可能で
20%からさらに還元率をあげることができるという魔力を秘めています。

Kyashとは?

kyash.co

Kyashは、主に個人間送金として使われている(僕らはそう使っている)アプリケーションの一つです。
Kyashのすごいところは、個人間送金する際にクレジットカードから直接引き落として送金ができ、
なおかつバーチャルカードやリアルカードという、通常のVISAのクレジットカードのように利用できる機能を備えていることです。

つまり、個人で送金しあったお金を、VISAカードが使える通常の店舗で利用することができるという体験が魅力のアプリ。
しかも、そのVISAカード、利用額の2%が手元に戻ってきます。その2%もまた個人間送金できるしVISAカードとして利用できるのもまた魅力。
すごい体験ですよこれは。

そしてこのKyashのバーチャル(or リアル)カード、PayPayの支払い用クレジットカードとして登録することができます。
つまり、通常の支払いを

「PayPayの還元率20%+Kyashの還元率2%=22%」

の還元率の利用にできるわけです。

お金がお金を生んでいる魔法を体験しているようです。

そして、Kyashに登録できるクレジットカードを、通常利用還元率が1.2%のリクルートカードにすると

22%+1.2%=23.2%

のポイント還元率の利用にすることもできます。

ファミマ利用

今日、2018年12月4日時点でPayPayの支払いができる店舗は、以下のようになっているようでして
PayPayが利用できる店舗例

この中だと、圧倒的に日常利用が便利なのがファミマだと感じました。
ファミマであれば、PayPayが使えて、さらにTポイントがたまる(200円で1ポイント?=0.5%)ので

23.2%+0.5%=23.7%

のポイント還元率になります。

つまり、ファミマでPayPayを利用すると

1000円使うと250円返ってくる

みたいな謎のお金体験ができるということですね!
(しかも40回に1回は全額返ってくる)

大企業が考えていることはよくわからないな。。。
(いや、キャッシュレスを普及させるインパクトだとは思うんだけど)
一般ユーザーにとってはとてもいいことです、皆さんも積極的に利用していきましょう。

注意点

気をつけないといけないこととして、PayPayでキャッシュバックされるのは、PayPayの残高ということに注意してください。
とはいえ、PayPayが使えるところでは現金とさして変わらないので、あんまり影響はないと思いますが、念の為!

おまけ

PayPayのアプリを見ていると、銀行口座への出金ができそうで、今はできない。

f:id:aokabin:20181204142122p:plain
銀行口座への出金

そのうち対応することになるとのことだが、これができるようになると
PayPayを利用して決済して、PayPayの残高に返ってきたお金を出金する、みたいなことができるのはもとより
YJカードからチャージした金額をそのまま出金する、みたいなこともできるようになる...?ショッピング利用枠の現金化ができちゃう...?
いや、それはないか、流石に対策されそう。

まとめ

PayPayの還元率が高まった今、Kyashとリクルートカードでファミマ利用の還元率が格段に高まったなーと感じました。
みんなでPayPay使っていきましょう!

第8回Golang勉強会 in Okinawa Tour of Go!を開催した話

こんばんは、aokabinです。

ここ最近沖縄では勉強会がラッシュで、めっちゃいいなと思って来ています。

そんな中、今回はハッカーズチャンプルーの時にもさぼさんが宣伝してくれた、
Go言語勉強会を開催しました!

okinawa-go.doorkeeper.jp

タイトルにもあるように、今回はTour of Goをやっていくという緩い会でした。

Tour of Goとは?

Tour of Goは、Go初学者のための、トータルチュートリアル
そのサイト曰く「Go言語基礎文法最速マスター」ができるサイトらしいです。

実際内容はめちゃくちゃ充実しており、
ページ数にしてP100、そのほとんどにプログラムが実行可能な状態で載っているので、情報量がとにかく多い。

A Tour of Go

それでいて結構分かりやすくできているので、
これをスクリーンに映して、みんなで進めるだけで大分勉強になりました。

難しかったところ

SliceのStructのところ、キャパシティのところ

実際「Tour of Goをやっていればまぁ、資料作らなくていいしゆるくいけるやろ!」と思っていましたが
その緩さはよかったもののポインタのあたりをささっとやって
構造体、Sliceあたりまで来た時に雲行きが怪しくなって来ました。

具体的にはこの辺りを説明するのが難しい!

Tour of Go | Slice literals
Tour of Go | Slice length and capacity
Tour of Go | Creating a slice with make

同居どうするかはわかっていても、それをうまく伝えられないあたり、まだまだだなぁと感じました

クロージャのところ

Tour of Go | Function closures

普通に読むのに苦労した!というかここで述べていることに触れずに進めてしまった!
これは大反省...

学びになったところ

SliceのTipsのところは結構面白かった。
キャパシティがオーバーした場合、自動的にキャパシティが確保されるが
そのキャパシティは今のメモリ領域の隣ではなく、また別の場所に作られる、というのが驚きだった。

あとは日本語がかけること、日本語のコードが書けるのが個人的には面白かった。
読みづらいコードとか書けそう。
https://play.golang.org/p/acG1kO9qlxD

まとめ

めちゃくちゃゆるくやりましたが、みなさん今日は来ていただいて本当にありがとうございます。
次回以降ももっとゆるくやっていこうと思いますので、是非参加してください!

あ、あとTogetterにまとめたのでよければご覧ください。

togetter.com

次回は8月の9~18のどこかでやります!是非参加してね!(ゲストも来るかも??)

P.S. オープニング資料
speakerdeck.com

ChromeのExtentionを作った話

こんばんは、aokabinです。

ちょっと久々にがっつりコード書いてみようと思って、今日は一日開発してました。

作ったのはこれです。
github.com

何を作ったか

何をするExtentionかというと、
Twitterの公式Webクライアントで、検索結果を自動で更新&スパムを除去してくれる」
というツールです。

実際に前回のハッカーズチャンプルーでツイートをストリーム表示するツールを使っていたのですが
RTが表示されたりスパムが何度も登場したりと使いづらい。

かといって公式Webクライアントはユーザーが更新のショートカットキー「.」を押さないといけず
うまく更新されない問題があったため、ちょっとうまく使えないなという問題がありました。
なので、今回はその反省を生かして
「公式Webクライアントを使ったまま、自動更新&スパム除去してしまおう」
と思ったのが作るきっかけです。

めんどくさかったこと

console.logが表示されない

さすがTwitter、色々対策をしているっぽく、console.logを何も実行しない関数でオーバーライドしているようでした。
おかげでデバッグ最初は苦労しましたが、どうやら以下のコードで初期化できるっぽい。

(function(){
  var f = document.body.appendChild(document.createElement('iframe'));
  f.style.display = 'none';
  window.console = f.contentWindow.console;
})();

これはいい知見。

ショートカットキーイベントの発火

今回この機能を作るのに、どうせなら公式のショートカットを使おうと思ったのですが
普通にKeyboardのkeydownイベントを飛ばしてもうまくショートカットが実行されない。

keyupやkeypressを試してもダメだったので、
chromeのdeveloper toolの機能であるEventListnersからイベントを引っ張り出し
その中から怪しいイベントを引っ張り出してきて片っ端から試すという力技に出ました。

Chromeのdeveloper toolのEventListenres

その方法を知るまでに時間がかかりましたが、なんとかそれっぽいイベントに辿り着き
そのイベントがどうやら発火しているらしいということはわかった

getEventListeners(document) // イベントリスナーの一覧表示
monitorEvents(window, ["イベント名"]) // イベントの発火を検知

イベントリスナー側からイベントオブジェクトにアクセスしてそいつを発火できればいいかな?
とか考えたけどそんなにうまくいかず...というか取得できないらしく

色々試行錯誤を重ねた結果、そのイベント名のイベントを発火させることができるコードを発見

var evt = document.createEvent("HTMLEvents");
evt.initEvent("イベント名", true, true);
document.dispatchEvent(evt);

これを見つけるのに3時間くらいかかった...

とはいえまぁうまくいったので、今回はこれでよしとします。

しかしフロントエンドは奥が深い...フロントエンドエンジニアの人、本当に尊敬します 🙏

沖縄・宜野湾エンジニア勉強会(大LT大会) でKubernetesの話をしてきた話

こんばんは、aokabinです。

最近は沖縄でも勉強会ラッシュで、めっちゃ良い。
最近は「勉強会はブログに書くまでが勉強会」を体現していこうという気持ちです。

そんな中、沖縄のエンジニアたちが一同に介したりしなかったりした
沖縄・宜野湾エンジニア勉強会(大LT大会) #1
connpass.com

が開催されました。

僕が勝手にまとめたまとめはこちら
togetter.com



今回のイベントはJewelさん主催の元、
沖縄のいろんなエンジニアの方が集まってLT大会をする、自己紹介をする的なイベントでした。

一応トーク枠が3つほどあったので、LT Drivenで資料を作ることを決め
とりあえずKubernetesの話をすることにしました。

なぜKubernetesなのか

一応インターン先でちらっと触ったり、実際にGKEにアプリケーションをデプロイしてみたりしたものの
具体的に自分の手元で動かしてみるとかいうのは半年以上なかったのと
研究でちょうど余剰リソースを使った分散システムの構築をやろうとしているのもあって
今回はそれに合っていそうなKubernetesについて話をしてみることにしました。

実際、Kubernetesは色々なところで実用事例もあり、
マイクロサービスアーキテクチャの流行り、また個人的にDockerとかインフラ周りが好きということもあって
今回はKubernetesの話をすることにしました。

申し込んでから勉強し始めた

何分久々にKubernetesを触るので、色々と調べながらやって行きました。
Kubernetesについて調べていると、流石はBig Project、公式ページに情報がめちゃくちゃ充実
TutorialをWebブラウザ上で動かせるというのはめちゃくちゃ良かったです。

そこから色々学んで行き、知っている知識を存分に出して
薄いカルピスを水くらいまで薄めたのが今回のトークでした(← 浅い話で大変申し訳なかったです 🙏)

研究への利用

具体的にはお話しできませんでしたが、研究にKubernetesのCluster環境を利用しようとしており、
自分でクラスタホスティングとかもやっていく予定なので
今後新たに学びがあれば、どこかでまた話そうと思います。

めっちゃいい仕組みだなと思うので勉強して行きたいと思います!

そして資料を置いていくので、良かったら何かの参考にしてください。

speakerdeck.com

次はOkinawa.goなのでゆるくやっていきます!
okinawa-go.doorkeeper.jp

TFUG okinawa vol.1 に参加した話

こんにちは、aokabinです。

今回は昨日あったTFUG Okinawa vol.1に参加して来ました。
tfug-okinawa.connpass.com

ちゃんとブログ書かないとですよね、書きます。

TFUG とは

TFUG(ティーフグ)とは、TensorFlow User Groupの略で
Googleが出している機械学習&数値計算ライブラリのTensorFlowについて勉強していくコミュニティ(だと思っている)です。

その沖縄版第一回が開催されたので、あんまり機械学習とかに詳しくはないですが参加してみました!

Yabooさんパート1 TensorFlowを用いた深層学習活用事例

GoogleのYabooさんが話をしてくれたのは実際にどのようにしてTensorFlowが実務で使われているか、という活用事例のお話でした。
実務での利用もさることながら、TensorFlowのバージョンアップの話、コミュニティの話等々もされていて
個人的に一番興味が惹かれたは multi-node に学習をすることができる、という部分です。

現在僕が分散処理系の研究室におり研究も複数ノードで分散処理させるつもりだったので
機械学習はmulti-nodeで学習するのは難しいだろうな」
と思っていた矢先に「TensorFlowはmulti-node間で学習ができる!」というお話を聞いて衝撃を受けました。

もちろんネットワークのオーバーヘッドや学習モデルが収束しないことがある問題、モデルの適切な評価を行えない問題等々はありそうでしたが
それでもできなくはない、ということを聞いて僕の研究自体にも意義がありそうだなと感じました。

藤原秀平さん TensorFlow 入門の入門

現メルペイの藤原さんによる、TensorFlow入門のための入門のお話でした。
このセッションでは
Python数値計算ライブラリの代表格であるNumPyの行列計算とTensorFlowの行列計算とでは何がどう違うの?」
という疑問に答える形のセッションで、
実際に藤原さんが用意した資料をもとに、Colaboratoryを使ってハンズオン形式で理解を進めていくというものでわかりやすかったです。

NumPyはインスタンス生成時に行列として計算がされるが、
TensorFlowでは流れを最初に定義しておいて、後から必要な箇所だけ実行する、ということができるというお話がありました。

具体的に機械学習数値計算の際にそれがどういいのかは理解はできていないのですが
定義と実行を分ける良さはわかる気がするので、フローが複雑で計算量が大きい機械学習においては
必要な時に必要なだけ実行できるということがとても大事なんだろうな、と漠然と考えています。

資料はここに上がっていました。
docs.google.com

Yabooさんパート2 TensorFlow APIs

再度Yabooさんのパートにうつり、今度は藤原さん同様Colaboratoryを使って再度ハンズオン形式でTensorFlowを触ってみるセッションでした。

こちらでは、TensorFlowの中でもいわゆる数値計算に近い部分のLow-level APIから始まり
通常機械学習のフローを組む場合にはこういうステップでやっていくよ、長いけどTensorFlowでやろうとするとこんな感じ、というMiddle-leve APIの話をし、
最終的にはEstimetorという「いいと言われているモデルを勝手に作ってチューニングもいい感じにするよ」的役割を担ってくれるHigh-level APIの説明するという
超絶ボリューミーなハンズオンのセッションでした。

実際、機械学習に興味があって触ってみたい、という人も参加対象としていた勉強会だったため
全く触ったことがない人にとっては難易度が高いというか理解するのも極めて大変みたいな状況だったかとは思いますが
個人的には「わからないことはいっぱいありそうだけど、この資料に機械学習のセオリーと場合による使い分けが書いてあるから、実際に作ろうと思った時はこれを参考にしよう」
と思えた程度には理解した(≒ 理解していない)ので非常にいいセッションだったかなと思います。

何か困ったらYabooさんに直接聞けばいいかなとか思ったり?笑←

知らないことが減り、わからない部分は増えましたが、わかることも増えた、ということを実感した時間だったなぁと思います。

LTパート

LTパートでは、個人的にはやはりKubaさんの話が面白かったです。
いや、やりたいことはわかって、やっていることは全然わからなかったんですけど、いいコードの所在をしれたというのは大きい。
github.com

まとめ

総じてとてもいい勉強会だったなぁと感じます、というか個人的な興味のところが深掘りできてよかった。

懇親会でもMulti-Nodeの話を詳しく聞けたし、満足度の高い勉強会でした!
また次回は三ヶ月後らしいので、その時も参加しようと思います!オーガナイザーの方々、ゲストの方々、ありがとうございました!

P.S. 7/17にOkinawa.goの初心者向け勉強会があるよ!みんな来てね!(県外からも大歓迎!)
okinawa-go.doorkeeper.jp

ハッカーズチャンプルー2018を運営した話

みなさんご無沙汰です、aokabinです。 Twitterではかびさん@d_ishitakaでやらせてもらっています。

日付が変わって昨日はハッカーズチャンプルー2018の開催がありました! 結論から言うと、とんでもなく楽しい1日でした!!

と言うわけで、ハッカーズチャンプルーの運営をした話をしたいと思います。

ハカチャン2017の時の話

ハッカーズチャンプルー自体の存在は知っていたのですが、 2015年、2016年と都合がつかず参加できずにいて、初めて2017年にボランティアとして参加しました。

昨年度のハッカーズチャンプルーは合宿があったり同級生とisuconで競ったりした後 カンファレンスの部でじゃんけんでグーを出し続けてサーバーレスアーキテクチャの本をもらったり 懇親会で面白い話をたくさん聞いたりして非常に楽しかったのを覚えています。

そんなこんなでハッカーズチャンプルー、いいイベントだなぁと思いつつその日を終えていたのですが、 イベントお疲れ会で意外な話を聞くことになりました。

ハッカーズチャンプルー、2017年が最後説

実はハッカーズチャンプルーは昨年で5回目を迎えていたのですが、 メインで運営していたメンバーの都合がつかず、開催できないかもしれないと言う危機に立っていました。

僕はそのことを全く知らず、ただただいいイベントに参加させてもらってありがたいなと言う気持ちだったのですが とても衝撃を受けました。 「こんなにいいイベントが今年で終わる」とは信じられなかったのを覚えています。

でもやはり僕としても「せっかくこんなにいいイベントなので、2018年はなんとかして継続したい!」という気持ちがあったので 今回から学生が継続して運営メンバーに携わっていくという計画を(一応)立てて 2018年度のハッカーズチャンプルーの副実行委員長に名乗りを上げました。 結果今年も開催できてとても良かったです。

運営になってやったこと

僕が運営チームに入ってからやったことはざっと以下のような感じ

  • スポンサーの募集
  • スピーカーの招致
  • 学生の参加枠を増やす
  • 前夜祭のMC
  • 指笛

スポンサーの募集

とにかくイベントを運営するには最初はスポンサー集めが重要だと思っていた僕は 僕のつながりとトポセシアの寺地さん@GGtera2014からの紹介を元に スポンサーの募集をさせて頂きました。

募集の結果、全体で過去最多の14社の協賛を頂き、 無事、お昼ご飯無料、ノベルティ配布、さらには懇親会費用を学生無料+社会人も千円で提供できるまでになりました。 スポンサー各社には本当に感謝の気持ちでいっぱいです!本当にありがとうございました!!

hackers-champloo.org

スピーカーの招致

今回のスピーカーの方々は錚々たる面々で、東京でもなかなかお目にかかれないような方々ばかりでした。 というのも、これは完全に運営に携わった福利厚生になるのですが 「スピーカーの招致は、コアメンバーが好きなように提案できる」というのがハッカーズチャンプルー運営の仕組みなので 今回僕はisucon&Goのトーク枠としてfujiwaraさんを招待させていただくことにしました。

本当にありがたいことにfujiwaraさんは関係者各位に話をしていただき、すぐに登壇を決めていただきました。 登壇OKを頂いた時は本当に感無量でした、そしてご登壇、本当にありがとうございました!! (めっちゃ幸せでした)

改めまして今回ご登壇いただいた 赤塚さん、あやぴーさん、fujiwaraさん、motemenさん、常名さん、本当にありがとうございました!!! また機会があったら是非、よろしくお願いいたします!!!

学生の参加枠を増やす

これはちょっと意図してやったところで、実際ここまでうまくいくとは思っていなかったのですが 実は今回学生の参加枠を増やすために1つだけ工夫したことがあります。

現在僕は琉球大学に通っているのですが、琉球大学情報工学科では、周りの人に聞くと意外とWeb系に興味がある人が少ない。 分析系に寄っている人の方が多い。また新入生にはWebも分析もあまり刺さらない。 ということが個人的な課題設定としてあって、その壁を超えて情報工学科(知能情報コース)の学生に参加してもらうために 今まではWebやインフラに寄っていた登壇枠に、さらに「ゲーム系」の枠を入れてみることにしました。

そこで、IGDA RyukyusのKooくんに声をかけ、ゲーム系に興味のある学生にも声をかけてもらうようにし Kopくんが呼びたい登壇者の方も呼んでもらうことしました。 結果常名さんに来てもらうことになり、VTuberのお話をしていただき 目論見が当たっていたかどうかはわかりませんが、例年より学生参加が増えた気がします! やっぱりゲーム系は学生の気持ちを惹くには強い気がしますね! IGDA RyukyusのKooくんと安田くん、そしてUnityの常名さん、本当にありがとうございました!!

前夜祭のMC

今年のハッカーズチャンプルーには前夜祭もありまして、スピーカーやマイクの用意はしていたのですが 当日になって「そういえばMCとかのことは考えてなかった」ということに気づき、急遽マイクを持ってMCをしました。

とはいえ、乾杯を3回やったり、LTの案内をする程度でしたが。。。

この前夜祭、嬉しい誤算が1つありまして、これは今後のイベント開催でも参考になるんじゃないかなと思うのですが 元々LTをやろうという話をしていたのですが、会場の都合上プロジェクターを入れることがどうしても難しい状況で それならスライドなしLT、つまりTED Talk形式(TEDも本当はスライドあるんですが...)にしてLTをやろうという話になっていました。 事前の応募では2件しか応募がなかったので、ゆるっとやろうという感じだったのですが とりあえず飛び入りもどうぞという感じにすると、意外にもバンバンLT登壇者が出てくれて 結果として8人くらいがLTをするという非常に意義のある会になったのは、とても良かったなぁと思います。

一番面白かったのは黒曜さんが技術書展で「本を出した方がいい」という前振りの時に質問した 「じゃあ本を書いたことがあるよ、という方どれくらいいらっしゃいますか?」の質問に会場の半分が手を挙げた時でしたww

指笛

こちらも嬉しい誤算。 カンファレンスのLTの部で、いつもは時間切れの合図でドラを鳴らすようにしているのですが、 今回はドラがないという状況だったので、代わりに大きい音が出るということで指笛で時間切の合図をすることにしました。

意外にもこれが功を奏し、最初こそ 「無慈悲の指笛」とか「スポンサーセッションの途中で鳴り響く指笛」とか言われていたものの 後半になってくると 「指笛を期待してしまう」とか「指笛で終わるのいいな」とか評価を貰えるようになって 結果指笛芸人を襲名できて良かったなと思います。

様々なカンファレンスの際にドラではなく指笛芸人の僕@d_ishitakaの起用を是非検討して頂ければと思います。 buildersconも行こうと思っているので、何処かのタイミングで一度でもドラ役出来ないかなー?←

とまぁそんな感じで

運営とはいえ、ハッカーズチャンプルーがゆるさを赦しているイベントなので、僕としてはめちゃくちゃ大変だったことはそこまでなくて でもそれは他のcoreスタッフの方、ボランティアスタッフの方が一生懸命動いていてくれたからだと心から感謝しています。 LTはちょっとあったまってくれたし、良かったと言ってもらえたし あ、LTでは税金の話をしました、良かったら見てね。

反省すること

もちろん、イベントを運営していて、反省すべきところもたくさんあったなという気持ちで居ます。 次から同じ過ちをしないようにしなきゃという気持ちで反省点を書いて行きます。

スポンサー対応

完全に僕個人的な反省点なのですが、初めてだったのでスポンサーの方々に個別に連絡をとったり諸々手続きをお願いするのに手間取りました。 しかも、今回スポンサーブースがあったのにも関わらず、うまく誘導ができず、ブースがグダグダになってしまったのは本当に反省点だと思います。 次回からはちゃんと席を決めてそれぞれのブースを用意し、ちゃんと配布物を配布できる環境を整えるところまで考えるようにしたいと思います。 また、スポンサーの方に参加申し込みの案内をして居なかったのもだいぶミスです、結果うまくまとまったので良かったですが、次回以降はちゃんと生かしたいと思います。 ご迷惑をおかけして申し訳ありませんでした。。。

Twitterハッシュタグのstreaming

今回は流ツイというサービスを使って左前のスクリーンにTwitterハッシュタグ情報を流して居たのですが 残念なことに変なbotやRTがやたら流れてくるということもあり、あまりうまく動作させれませんでした。 ないよりはめちゃくちゃ良かったと思うのですが、わがままをいうとbotやRTは表示させないような仕組みができるといいなぁと思いました。

まとめ

本当は書きたいこともっといっぱいあるのですが、 反省点も色々とあるものの、前夜祭、カンファレンス、懇親会(、二次会)とすごくいい流れにできてとても良かったと思います!

今回僕が運営をしていてすごくいいなぁと思ったことは 「主導権を持つということは素晴らしいことである」ということです。 好きなゲストスピーカーを呼び、好きなことを喋り、好きなように場を動かす。 主導権、裁量が与えられている現場ってこんなに楽しんだと、こんなに充実感があるものなのだと改めて実感するとてもいい機会になりました! 一緒に運営をやっていただいた西島さん、富田さん、そしてcoreスタッフの皆さん、当日スタッフの皆さん、本当にありがとうございました。 今回のイベントは本当、感謝してもしきれないくらい楽しく充実した会でした。 また来年もやりましょう!読んでいただきありがとうございました!!

P.S. Go言語の勉強会を開くので良かったらみんな来てくださいね!! okinawa-go.doorkeeper.jp