Amazonハンズオンセミナーに参加してみた

先日京都大学で行われたAmazonハンズオンセミナーに参加してみた。

参加前

AWSさんにはイベントで話を聞いてみて、カスタマーサポートの職のほうに興味を持ったところ、内定者の方からセミナーとかあるよーと聞いたために、参加してみた。(京都ということで近かったし)

流れ

・企業説明

AWSを用いたWebアプリケーションを作ってみる

・懇親会

企業説明

AWSがどれくらい使われているとか、どんな部門があるかとかの説明を受けた。

今回AWSさんが募集するのは、カスタマーサポート的な部門とソリューションアーキテクトという部門らしい。

ソリューションアーキテクトは話を聞いているとITコンサルに近いかたちに感じた。

(ソリューションアーキテクトは今年から新卒の募集始めたらしい。)

詳しくは下のHPとか見てもらえるとよく分かると思う。

aws.amazon.com

AWS体験

一通りの説明が終わった後に、実際にAWSを用いて簡単なWebアプリケーションをつくる体験を行っていった。

電球の明るさを切り替えられるアプリ

f:id:shsm385:20170201160033p:plain

Server less のワークショップの一種としてあるみたいなので、興味がある人は是非やってみてください。

以下のURLが完成品。

AWS Serverless Workshop - Master Light Bulb

自分は英語の発音が悪くてなかなか切り替わってくれなかった。

懇親会

東京からサポートエンジニアの方もきてくれていたので、その方々と話をした。

僕は友人と参加していたので、2人でAWSに聞いたり、就活について聞いたりした。

感想

AWSいいっすねえ〜〜〜〜!

今回参加してみて、AWSを触れられてよかったです。

元々学部生のサポート的なアルバイトとかを好きでやっていたりしたので、内容にもすごく興味がもてたし、AWSのサービスだけで、ここまでサーバサイドが楽に管理できるなら、Webアプリケーションも作りやすいし管理しやすいとおもいました。

EC2のサービスは前回使ったことがありましたが、それ以外の部分に触れられてとても良かったです。

第5回 git challenge に参加してきた

株式会社mixiさんが開催しているイベントgit challengeに参加してきました。

                                    f:id:shsm385:20170131012009j:plain

git challengeとは?

Gitを使う上で起こりうる問題を競技形式で解いていくという楽しい技術イベント。

詳しくは下のサイトとか見てください。

alpha.mixi.co.jp

申し込み

git って普段研究のプログラムとか開発で使っているけど、もっと勉強したいなと思っていたところに、逆求人を通じて mixi のかたから紹介していただき、応募しました。抽選とのことでしたが無事に通っていたので、過去の参加者のブログを読んだり、を読んだりして勉強してました。(わりと役に立ちました。)

当日

午前

当日の朝、mixiさんのビルを間違えたり、道に迷ったりとさんざんフラフラしながら遅刻ギリギリについてしまった。今後参加する人は自分みたいにならないようにちゃんとビルの名前は確認しましょう(笑)

午前中は git についての説明や簡単なチュートリアルをおこなって頂きました。

お昼

節分ということで巻きずしを頂きました。

f:id:shsm385:20170131002553j:plain

チームのメンターとしてついてくれた社員さんとご飯を一緒にさせていただき、mixiグループのお話とか楽しく聞かせていただきました。同じ関西出身の方がついてくださったので、話しやすかったです。

午後

チームにわかれて競技を行いました。競技が終わったあとには懇親会がありました。

競技

2人1チームです。

自分はTeam-alphaということで同じ関西地区出身の odan 君と組みました。競プロ勢の方でした。僕自身もちょっとかじっていたりいたので共通の話題で盛り上がったりしていました。

問題の内容は書くと怒られちゃうので雰囲気だけ書いとくと下の感じになります。

  • git の基本的なコマンドは知っとかないとだめ
  • 普段あんまり馴染みのないコマンドとか機能とか使った
  • git のデータ構造とか .git の中身まで知っとくといいかも

難易度は、簡単な ★✕1 からはじまって ★✕2 など難しい問題難易度が ★✕6 までありました。自分たちのチームは ★✕1 の問題を交互に挑戦していく方針で解いていきました。

互いに問題の読み間違いとか、詰まったりする部分があって、結構時間を食ってしまう部分がありましたが、そこはチーム作業ということで、詰まっているときに互いの担当している問題を取り替えてみると一瞬でとけるということが結構ありました。チームって素晴らしい!!

結果的に僕達のチームは4位でしたので入賞は逃してしまいましたが、とても勉強になって楽しかったです。

競技あとは問題の解説ということで、基本的な問題の方針とかを説明していただきました。解説を聞きながら、なるほどと思ったりもう少しで解けたと悔しくなったりしました。

懇親会

f:id:shsm385:20170131010003j:plain

社員の方や参加者の方と問題等について話しました。お酒もでます。プレモルでした。(ビールがでるのは最高だよなあ。)内定者の方も来てくださっていたので、就活の相談とかも気軽にできて良かったです。参加者の方々も近況を聞くと結構就活とか結構進んでたりしたので、自分もしっかりしようと思いました。

感想

今回のイベントに参加することで、Git について勉強になったし、なにより楽しかったです。競技型だと得ることが多いですね。

自分たちは競技中にチームとしての連携をうまくできたなと感じていました。チームの大切さも体験できて良かったです。(最下位からの一転攻勢)

助けてくれたり、アドバイスをくれた相方の odan 君にはマジで感謝!!

あとは、治安の悪い git の怖さも思い知りました。今後は git の治安をよくしていきます。(切実)

最後に、運営に関わってくださったみなさまありがとうございました。また、参加者の皆様お疲れ様でした。

 

 

 

 

 

 

 

 

 

 

 

 

Karabinerでマウスのボタンを設定

最近寒いですね。寒いとこたつに入って作業するのですが、ノートPC使ってると体勢が悪いのか腰痛が酷いです。対策として、PC台をかってその上にmacbookairをおいて作業しているのですが、その時に5ボタンのマウスを使うと便利なんじゃねと思いマウスのボタン設定をしてみた話。

 

macbookair でマウスボタンを有効にするためにはKarabinerというアプリが便利らしいので使ってみました。

どうやら最新のOSであるSierraには対応してないみたいです。

自分は作業の時にデスクトップの数を増やして作業しているのですが、マウスを使っての作業だとトラックパッドのスワイプでの画面移動みたいにスムーズに行かなくていらいらしていたので、今回はマウスボタンに画面移動を割り当てたいと思います。

 

ダウンロードとインストール

ダウンロードは以下のサイトから行えます。

Karabiner - OS X用のソフトウェア

 

設定

インストールまで終えたら設定です。まず、アプリケーションを開いて Misc & Uninstall のタブを選択してください。

f:id:shsm385:20170121053253p:plain

この中の Open private.xml のボタンを選んでください。すると private.xml の場所が表示されます。

この private.xml の中身を書き換えてマウスのボタンとボタンの設定を行っていきます。

private.xml は使い慣れたエディタで開いて編集してください。

 

 nameタグはラベルの設定、identifierタグは名前の設定です。

identifierタグは名前が一意じゃないとエラーがおきます。

autogenタグの中でボタンの動作の設定を書き込んでいます。

--PointingButtonToKey-- PointingButton::BUTTON4 でマウスのボタン4を押した時に

KeyCode::CURSOR_LEFT, でカーソル左のキーを押しなさい。

ModifierFlag::CONTROL_L ただし、修飾キーとして左のコントロールキーを押しながらといった内容になっています。

 

xml ファイルの編集を終えたら Change  key タグを選びましょう。

f:id:shsm385:20170121055249p:plain

この中の Read Xml のボタンを押しましょう。

自分の設定したラベルのチェックボックスが出てくると思います。これをチェックしてエラーがでなければ設定完了です。

 

これで腰痛に悩まされずに作業できそうです。

参考にさせてもらったサイト

www.thinkingsalad.com

 

 

Texように画像をepsに変換する

Texなどの論文を書く際に画像をepsに変換したいことがあった。

新しいPCにconvertコマンドを入れたいと思ったときのメモ。

 

homebrew で imagemagic を導入する。convertコマンドを実行する。

 

これだけで変換できる。

コロプラの人事さんとピザ会+VR体験

先週の金曜日にコロプラの人事さんが京都に出張してピザを食べながら話をして、VRの体験を行う機会があったので参加してきました。

 

f:id:shsm385:20161124184204p:plain

 

画像は360°カメラで撮影したピザ。人事とのお話ということで、コロプラさんのお話やIT業界での会社の選び方のアドバイス、ぶっちゃけ話などがきけたのでとても良かったです。

 

肝心のVR体験ということで開発中のVRゲームを体験してきました。FPS系統のゲームで立体的な感覚が必要になるため、とても楽しめる内容でした。ただ、狭い一人暮らしの部屋だと大変だろうなと思いました。

 

今回はアメリカで発売予定のOculus Touchに対応しているということで、OculusTouchも触ってきました。

掴んでいる感覚があるので、ゲームだけでなく研究方面にも使えそうだと感じました。

f:id:shsm385:20161124185817p:plain

 

 

GMOエンジニアトークに参加してみた

IT勉強会とかがまとめられているサイトを先輩から教えていただいたのでこれも何かの機会かなと思って参加してみた。

 

eventdots.jp

今回参加してみたのはGMO internet 本社の方々が研究開発したものを発表してくれるというもの。勢いだけで参加してみたけど、インフラも興味の対象だったので、良い機会であった。今回のテーマは VR , ブロックチェーン, Deep Learning の3つ。どれも聞いていて面白いものだった。 

Unity3D と Oculus Rift でウェブ VR コンテンツの表現

VR空間内でウェブコンテンツをみたり、複数のウィンドウをうつす自分の部屋のような空間を作り出して、楽しむといったVRコンテンツの紹介

目的としてはゲーム・エンタメ以外でVRをつかったアプリを作ってみたかったというものらしい。

主にUnityをつかって開発しているらしく、予算も36万ほどかかったらしい(すげえ)

VRコンテンツを作る際のポイントとしては

  • 空間づくり
  • 違和感のない演出、ズームアクション
  • インタラクション

の3つがあげられるらしい。

自分の研究でもVRを使いたいかなと思っていた部分はあったので、このへんのポイントはすごく参考になった。

自分も研究室にVRがあるので、TGSの作品みたいなものにチャレンジしてみたい。

ブロックチェーンを利用したサービス開発について

ブロックチェーンは自分の研究室でも研究している人がいるので、サービス開発にあたってどんな問題点とかがでたのかなと気になって聞いていた。

内容としては、ブロックチェーン自体の内容が難しいのでスマートコントラクトの紹介という形でどういったことができるのか、どういったサービスを開発したのかという内容だった。

 

ブロックチェーンの特徴

この辺の説明は正直後輩の説明よりわかりやすかった...(笑)

 

スマートコントラクトとは?

  • ブロックチェーンに書き込むプログラム
  • トランザクションにコードを入れることができる

今回使っていたということで紹介されていたのは Ethreum を使っていくとのこと

 

Ethreumとは?

  • OSSのブロックチェーンのひとつ
  • 2014年ごろからできた
  • ブロックチェインの上で動くプラットフォーム(プロトコル)
  • Ethreum Solidity というのが使いやすいらしい

主にSolidityを使ってどんなことができるかというデモをしてくれた。今回は実際に通貨を作って中にコードとかを書き込んでみるといったデモであった。

Solidityはブラウザ上で実行できて、扱いやすそうであった。機会があれば触ってみたい。

 

これらの技術は通貨で使われることが多い(ex.ビットコイン)がものの所有権等にも応用できるということで、その方面で開発を進めていたみたい。

Deep Learning による株価変動の予測

Deep Learning を用いて株価の変動が予測できるかやってみようというもの。

目的としては過去のデータを使って予測を行いたいというもので、金融は良いターゲットになったとのこと。

確かにみんな一度はやりたくなる内容。

今回はDeep Learning として使ったものの種類と、精度を上げるためのポイントを紹介していただいた。

 

今回はDeep Learning として紹介されたのは

  • RNN
  • LSTM

の2つ。今回はLSTMを使った話を聞いた。

LSTMはディープラーニングの中間層部分を何度か行き来を繰り返して学習精度をあげるといった手法。

深層学習ライブラリの Keras を使って実装してったらしい。

直感的にDeep Learning を行えるので、是非自分でも少し触ってみたい。

 

Deep Learning の精度を上げるためのポイント

  • 学習回数
  • 入力データを増やす
  • Model 構造を変えてみる

の3つがポイントになるらしい。ただし、学習回数は注意で、多すぎるとノイズまで学ぶことにより学習率が下がる過学習が起こってしまうらしい。

 

結果として、株価のVolatilityの予測の精度をある程度上げることができたらしい。

参考にした論文よりも高い精度がでたのはすごいと思いました。

 

感想

自分の知らない分野や、自分の研究に使えそうな分野などを知ることができたので非常によかった。暇があったらまた参加してみたいと思います。

 

 

OpenMPと OpenMPIの導入で苦労した話

きっかけ

授業で並列プログラミングの比較をする機会があったので、円周率の計算でどの程度の差がでるかということを試してみた。

今回試すのはCでの並列処理を行う OpenMP と MPI の 2つを試すこととなった。

Mac でこれらをハイブリッドで試すのに OpenMPI が便利ということで入れてみたが苦労した話。

OpenMP の導入

OSX の標準で入っている gcc では OpenMP が動かないらしいので、gcc -5 をhomebrew を使って導入してみた。

調べてみるとMacPorts のほうが簡単に導入できるらしい。

  1. brew update を行ったあとにbrew doctor を行ってエラーがないことを確認
  2. 以下のようにしてgcc-5 を導入

  3. 作ったファイルを次のようにコンパイルする

  4. gcc ってだけで動かしたい人はシンボリックリンクを張ってください

OpenMPI の導入

  1. まず、OpenMPIを取ってきて解答する

  2. wget コマンドとかが使えない場合は以下のサイトから取ってくる

    https://www.open-mpi.org/

  3. 次に取ってきた Openmpi のディレクトリに移動して make ファイル(コンパイルの設定ファイル)を作成する

    • シンボリックリンクなどで設定してgcc などの場所が違う場合は適宜自分の設定している場所にしておいてください。
    • OpenMP を上の手順のとおりに入れたままならこの設定で大丈夫です。
    • --prefix でインストールしたいフォルダが特になければ /usr/local/bin で設定してください
  4. make ファイルが作成されたので、実行します

  5. path を通してください bash 使ってるなら以下のような形で設定できます

    • 3 で /usr/local/bin に設定した人は /usr/local/bin に設定してね
  6. mpic++ --version でバージョン確認ができたら入っています

OpenMPI 実行時

  • OpenMPIの使い方は調べてもらったらわかりますが、mpic++ でコンパイルして使います
  • 実際に実行するときには mpirun で実行します
  • 今回 El Capitan の OS 使ってる場合には多分下のようなエラーがでます

    f:id:shsm385:20161011005706p:plain

  •  

    libmpi.20.dylibがないっていわれているので、シンボリックリンクを貼ってあげます

  • これで実行できるはずです

感想

コンフィグの設定とかで苦労しました。あと自分の場合はなぜかシンボリックリンクがうまく貼れない事態とかおこったから、時間がかかってたなあ。(震え)

あと先生のプログラムバグってるの多かったなあ。

参考

qiita.co