あの大好評イベントが帰ってきた!TECH Concert(2020年下期)開催!

2020.12.22 制度・イベント

こんにちは!
Mr.Childrenのニューアルバムを聴き、感動で震えているTECH Concert運営委員の沢田です!

大盛況のうちに幕を閉じた前回に引き続き、2020年下期TECH Concertが11月13日にZoomにて開催されました!

「TECH Concertとは何ぞ、いとをかし」という方は前回開催の記事をご参照ください!

TECH Concert〜ハーモナイザーによるハーモナイザーのための技術の祭典〜

2020.6.11

今回はComment Screenという、視聴者の入力したコメントを某動画サイトのように画面上に流せるというツールも新たに導入し、一層盛り上がりを見せました!!

ビジュアルプログラミングでインターンを成功させた話

前回に引き続き登壇してくださった土屋さんは、実は9月に開催された21卒内定者オンラインインターンの立役者の一人です!

内定者オンラインインターンの様子はこちらをご覧ください!

Zoomで内定者インターンを実施しました!

2020.9.29

今回のTECH Concertでは、オンラインインターンのコンテンツの一つであるビジュアルプログラミングの「やまねこの冒険」というゲームの作成秘話をお話してくださいました!

ビジュアルプログラミングとは、プログラム要素をパズルのピースのようなものに見立てて、ドラッグ&ドロップのマウス操作のみでプログラミングが出来るというものです。
視覚的にプログラミングを体験できるため、苦手意識を持たずに楽しくプログラミングを学んでほしいというインターンの目的にぴったりですね!

数あるビジュアルプログラミング言語の中から土屋さんが採用したのは、「Google Blockly」というGoogleが提供している言語です。(読み方は「グーグルブロックリー」。断じて”ブロッコリー”ではございません。)
完全クライアントサイドのみで作られており、HTML・CSS・JavaScriptだけで出来るため作成・公開も楽に出来ることがメリットだそうです。

そんな「やまねこの冒険」の大まかな作成プロセスは6ステップ!

①Workspaceを作る!

下準備として、ブロックを動かしたりする作業場を作ります。

②オリジナルブロックを作る!

Google BlocklyにはBlockly Developer Toolsという、ブロックの定義やデザインを簡単に作成することができるツールが公式で用意されています。
これを使って「前へ進む」など、やまねこをゴールへ導くのに必要なブロックを作成したそうです。
何て便利なグーグルブロッコ…ブロックリー。

③やまねこのフィールドを作る!

9×9のフィールドを作成し、マス一つずつに「X-Y」の座標をつけることでやまねこの移動や障害物・ゴールの位置把握を実現可能に!考え方がとても勉強になりますね。

④移動、方向転換を作る!

移動前のやまねこの位置とその時のやまねこの方向を取得することで、次に移動する先の座標を取得できます。
移動先にやまねこを移動させたら、移動前のやまねこの画像を削除すれば”移動”を実現出来るようです。

⑤処理スピードを制御する!

今回は1マス1マス順番にやまねこが進むように見せたいため、プログラミングにおいて大切な”処理の速さ”が逆に仇となってしまい、とても悩んだそうです。
そんな問題を解決してくれたのが、公式に用意されている「JS-Interpreter」というJavaScriptの1行ごとの実行スピードを制御できるライブラリ!
何でも用意してある、何て便利なブロッコ…ブロックリー!

⑥実行ボタンを作る!

HTMLで作った実行ボタンを読み込み、ボタンが押されたら実行するメソッドを定義したり、押された時のWorkspaceのブロックのコードを読み込んだりすることでコードが実行出来るようです。

内定者の方々の心をがっしり掴んだコンテンツの裏では、こんな努力があったんですね。

私はここ半年ほどプロジェクト先でシステムの設計を行っているため、あまりコードに触れていないのですが、
プログラミング楽しそう!と言う気持ちを思い出し、来たる開発工程が楽しみになりました!
インターンに参加した内定者の方々も盛り上がっただろうなぁと思います!

土屋さん、ありがとうございました!!

人工知能のはなしー機械学習と数学ー

続いてのスピーカーは、今回が登壇者として初の参加、長谷川幸之介さんです!
別名ジョナサンとも呼ばれている彼は、私の誇り高き19卒同期でもあります!
数学の教員免許も取得しているジョナサンは、AIを使った気温予測Webアプリを作成したり、社内SNSでもAIや機械学習の情報を共有してくれていたりと、「AI関連の分野のことなら何でも来い!」という気概が窺える頼もしいお兄さんです。

そんなジョナサン先生の講義を早速紹介していきます!

まず、ジョナサンは「人工知能(AI)とは何ですか?」という質問を視聴者に投げかけるのですが、皆答えに詰まりました。
それもそのはず、何と人工知能には明確な定義が存在していないらしいです。
初めて知った…。
それは人工知能の研究者によって考え方が違うからとのこと。

明確にこれだ!と言えないものを少しでも明らかにするためには、他との比較が有効ですよね。
ということで、まずは人工知能とロボットの違いです!

人工知能は「ロボットの脳」にあたる部分です。
人工知能とロボットの研究分野は、完全に一緒でもなければ完全に違うわけでもなく、重なる部分があるそうです。

次に、機械学習と人工知能を区別していきましょう。
機械学習は、人工知能のプログラム自身が学習する仕組みです。

ジョナサン曰く、”「学習する」とは「分ける」ということ”らしいです。

何ですかこの名言、深イイ話始まったかと思いましたね。
人間は、学習したことで一つのものを要素に分解して分けることが出来ますが、それと同じことを機械でも実現するのが機械学習だそうです。分かりやすい!

そんな機械学習は大きく3つに分けられています。

・「教師あり学習」:入力データを元にデータのパターンを予測する。
・「教師なし学習」:入力データそのものの構造や特徴を学ぶ。
・「強化学習」:将棋やゲームなどで導入されている行動を学習する。


機械学習と一口に言っても、色々ありますね。

それでは、機械はどのようにして学習するでしょうか。
パーセプトロンという、ディープラーニングの起原にもなるアルゴリズムを使用します。
人工知能と言うだけあり、このアルゴリズムは人間の脳内の構造に似せているらしいです。

学習するためには、学習するための訓練データと、学習出来たかどうかテストするためのテストデータという2種類のデータを使用します。
私たち人間がテスト勉強をして、その勉強の成果を試験で計るのと同じことを機械もやっているんですね。
そして学習出来たかどうかは、損失関数という指標の値が出来るだけ小さくなるようなパラメータを探すことで分かるそうです。

ジョナサンは講義を通して、数学的なお話で「難しいいいい!!!」となっている視聴者にもわかりやすいように、身近な例を交えつつ発表してくださりました!さすが先生ですね!
教育現場でも本格的にプログラミングが導入され始めた昨今、ジョナサンのエンジニアとしての経験とAIの智見を組み合わせて、ALHでも何かすごいことをやってくれるのではないかと密かに胸を膨らませています!

ありがとうございました!!

怖くないDocker

そして当記事最後のスピーカーは、土屋さん同様二回目の登壇である長谷川翔一さんです!

長谷川さんが今回紹介してくださったDockerとは、Docker社が開発した「コンテナ仮想化」を提供するオープンソフトウェアです。
2013年に登場してからわずか1年足らずでGoogleに採用されるなどして、一躍世間に知れ渡るようになったこともあり、長谷川さんの肌感覚としては「Dockerは使えて当たり前という日が近いうちに来る」らしいです!
時代に取り残されないように、私たちも長谷川さんの講義を聞いてDockerの知識を深めておきましょう…!

まずはじめに仮想化とは、一台のマシンで複数環境の動作を実現することです。
仮想化には2種類あり、Dockerが提供するコンテナ仮想化は、比較的重いホスト型仮想化に比べて軽量なのが特徴です。

Dockerを使うにあたり重要な要素として、コンテナの実行に必要なパッケージの集合体である「イメージ」と、そのイメージから起動されたプロセスである「コンテナ」があります。

イメージのメリットとして、同じイメージから同じコンテナがいくつも作れるということがあります。
つまり、イメージを共有出来れば他の人と同じ環境を使用することが出来るということです。
ふむふむ、これがDockerが選ばれる理由の一つでもあるんですね。

そんなイメージから作られるコンテナは、コンテナごとに完全に独立しています。
そのため同じイメージから複数のコンテナが作成されている場合でも、他コンテナやホストからの影響を受けたり逆に影響を与えたりする心配がないので、一つのコンテナの中で色々なアプリケーションを実行できる優れものです。

そんな便利なコンテナですが、いくつか注意点があります。

まず、何をするにも付きまとうこちら、「セキュリティ」です。
Dockerのメリットとして、環境を他の人と簡単に共有できるということがありましたね。
この素晴らしいメリットをデメリットにしないためにも、セキュリティには気をつけましょう!

具体的には、他の人が作成したイメージを使用する際には世の中に出回っている中で信頼できるイメージを使用したり、自分がイメージを配る際には、コンテナからホストを操作されないようにコンテナの権限を最小限にするなどの対策があります。

そして次に、「揮発性」です。
コンテナ内での変更は基本的に保存されません。
例えば、コンテナの中で何かのテキストを作成しても保存されないため、そのコンテナを削除してしまうとテキストも二度と取り出すことができなくなってしまいます。
変更を保存するためには、イメージやホストに保存するという工夫が必要になってきます。

長谷川さんは社内SNSに、私たちも簡単にDockerを試せるようなコードを載せてくださっています。
WSL2(Windows Subsystem for Linux)の正式リリースによってWindowsで気軽にDockerが使えるようになったこともあり、益々勢いを増すであろうDockerを皆さんも試してみてはいかがでしょうか?

実際に皆で構築していけたらより理解が深まると思うので、次回のTECH Concertでは是非ハンズオン形式での登壇をお待ちしています!

長谷川さん、ありがとうございました!!

最後に

今回CANTABILEで紹介させていただいた方以外にも、たくさんの方に登壇していただきました!
前回に引き続き登壇してくださった方もいれば、今回初登壇の方も!
TECH Concertは登壇してくださる方々がいないと始まらないため、運営委員として本当に感謝しています。

そしてそして、当日視聴者として参加してくださった社員は60名以上!
今回もTECH Concertというイベントを一緒に盛り上げてくださり、ありがとうございました!

まだまだコロナが落ち着く目処は立たない世の中ですが、部署や社歴の枠などと言うものは取っ払って、TECH Concertの歴史がこれからも続いていくことを心から願っています!

沢田優香
ALH株式会社 Development Scale Unit (通称:DSU)所属。
2019年新卒入社。大学は文学部出身のド文系。現在は銀行系文書管理システムの移行案件に参画中。
最近among usにどハマりし、一緒にプレイしてくれる仲間を随時募集している。