春のLT大会まとめ

2019/05/18

トップ画像

↑ これに参加してきたので、その様子をまとめます。

これは?

未来大にIT企業のエンジニアを呼び、ゆるいプレゼン(LT)大会を開くというもの。

学生参加者は 約120人 すごい

参加企業は

すごい!

なお、発表者と イベントをブログで宣伝した学生 は、懇親会に 無料でご招待 。 筆者は 「技術<食欲」 でエントリーしました。 ごちそうさまでした。

LTの内容

予防線

黒い四角の中身は筆者がリアルタイムに書いたノートです。 独自の解釈があったり、内容が間違っていたり、不十分だったりします。 しょうがないね

エンジニアからマネージャーになるってどういうことよ

発表者:@ryo_katsuma(クックパッド株式会社)

スライド

マネージャーって
  何してんの
    基本的な仕事
      予算、人事計画
      目標管理
      行動計画
      進捗管理
      評価
      育成、採用
    本とかを読んでみたけど、即効性はない
      現場は「生物」
        自分の状況に合った行動をとることが大切
  出世すんの
    純粋なキャリアアップではない
      ただの役割の違いで、エンジニアとは対等な関係
        会社によっては考え方が違うかも知れないけど、クックパッドではこういう考え
    給与
      一概にマネージャーの方が多いとも限らない
        @ryo_katsumaさんの場合はちょっと増えました
  二足のわらじは履けない
    「コードを書きながらマネジメントも頑張るぞ!」
      →自分がプロジェクトのボトルネックに
    とはいえ、コードが全くわからない人はマネジメントできない

当時のツイートをもっと見る

開発環境(キーボード)と木こりのジレンマ

発表者:@UVB_76(GMOペバボ株式会社)

物理キーボードの話
  基盤を買ってキーボードを作る話
自作キーボードの何が嬉しいか
  2つに割れているキーボードで肩こりが治る
  スイッチを選べる
    自分だけの重さ、押し心地
  キーマップが自由
    レイヤー機能
      あるキーをおすともう一つのキーマップに切り替わる
    「少し押すとCtrl、長押しするとShift」
自作の欠点
  楽しいんだけど
    接触が悪い
    案外壊れる
    キーマップを変えるたびにビルド&デプロイ
開発と開発環境のバランス
  木こりのジレンマ
    A「切れない斧で何回も切るよりも、まずは斧を研いだほうが良い」
    B「そんな暇はない」
  続・木こりのジレンマ
    「斧を研ぎすぎて、仕事がすすまない」
→バランスが重要

当時のツイートをもっと見る

エスパー力を高める

発表者:@hsbt(GMOペパボ株式会社)

スライド

エンジニアはエスパーだ
  エラーを見ただけで問題がわかる
  触ったことのないソフトウェアの使い方がわかる
  デバッグツールを使って不具合を見つける
    →これらはエスパー能力?いいえ、これも技術です
エスパー能力を高めるためのポイント
  ポイント1:ソフトウェアの特性を見つける
    ソフトウェアはどこにあるか
      ソフトウェアとは僕らの心の中にある理想の動き
      人間の欲求から生まれるもの
    →人を知るとソフトウェアを高速に理解できる
      ○◯さんが作ったソフトウェアなので、〜〜な感じだろう(エスパー能力)
        だれが作っているのかを知ることが結構重要
  ポイント2:「品質の高い」ソフトウェアとは何か考える
    システム工学からソフトウェアの動きを考える
      ソフトウェアの動きをインプット、系(システム)、アウトプットとして考える
      インプットと系から生まれた「アウトプットが期待通りであるかの差分が **品質** 」
    期待通りに動かない場合、インプットが悪いのか、系の認識が悪いのか…
      などと分解して考えることで、素早く問題を解決する(エスパー能力)

当時のツイートをもっと見る

量子コンピュータの凄さ~ IBM Q Experienceで量子ゲートを作る~

発表者:@adamu_of_FUN(学生1)

スライド

今日知ってほしいこと
  量子コンピュータとはなにか
  量子コンピュータはクラウドで体験可能
量子コンピュータとは
  実物は、数m規模の大きさ
  従来のコンピュータとの違い
    従来は、1/0の2状態で情報を管理
    量子コンピュータは、1/0の状態を同時に持てる(重ね合わせ)
IBM Q
  五線譜上に量子ゲートを配置して、感嘆に量子コンピュータでの計算を体験可能
→あとは筆者がよくわかりませんでした…

当時のツイートをもっと見る

最強のChrome OS

発表者:@materialofmouse(学生2)

スライド

Chrome OSとは
  LinuxベースのgoogleせいのOS
  Chromeしか動かない
  Androidアプリの互換性を持つ
  →???
    何が動くの?
      →A.なにもうごきません
      →ネットサーフィンとかはできる
Webで全ての作業を行うのは「時代が早すぎた」
最近は、Chrome OSでVMを動かし、その上でアプリを起動するという狂ったプロジェクトがある
  →Chrome OSはどこに向かうのか…

当時のツイートをもっと見る

動かして理解するGitの内側

発表者:@n_atmark(クックパッド株式会社)

スライド

Gitの内側について(.gitの中身について)
  Gitオブジェクトについて
    ブロブ
      コミットしたファイルのこと
    ツリー
      ディレクトリを表すもの
    コミット
    コメント付きタグ
  インデックスファイル
    Gitのステージング情報
    コンフリクト情報
Gitは内部的にスナップショットを記録していて、差分管理を行っているわけではない

当時のツイートをもっと見る

マンガサービスを開発するエンジニアに転生したが実質 ○○ だった件について

発表者:@m4kvn(ピクシブ株式会社)

Palcyという女性向け漫画サービスのアプリ開発を1人でやっている
漫画サービスが持つ技術的な特徴
  横スクロールするバナーが必ず存在する(カルーセルバナー)
    トップにある
    タップできる
    左右にちょっとはみ出る
  なぜ存在する?
    作家が怒るから
      縦に並べる→優劣を表現していると思われる
漫画アプリエンジニア=最高の横スクロールを実現するエンジニア
  漫画サービスを開発するエンジニアになったと思ったら、横スクロールを実現するエンジニアになってた
  横スクロールを見れば、アプリエンジニアの実力がわかる(?)
  スクロールを見れば、作家と企業との関係性がわかる

当時のツイートをもっと見る

これだけは伝えたい設計の技術

発表者:河辺さんの代打で宍倉功一さん(Sansan株式会社)

モデリングとコンセプトの話
  Sansanでは、事業の方向性やコンセプトが変わってきた
  しかし、作っているアプリは同じ
    コンセプトが変わってもアプリは変わらない
    →堅牢なモデリングが重要
      自分たちが本当にやりたいことの「核」を定める
本質をシンプルに表現することの重要さ
  自分たちのやりたいことは、いろいろな方法で記述可能
    →煩雑になちがち。ぶれがち
    →極力シンプルに表現するほうが良い
  →本質を見定めることで、コンセプトや方向性の変更に堅牢になる
抽象的な課題を具現化する力
  モデリングによって、抽象的な課題をシンプルに課題化する力が重要

当時のツイートをもっと見る

河辺さんが話す予定だったスライド資料

神龍「お前の悩みを一つ自動化してやろう」

発表者:@SaKu_2018(学生3)

スライド

このまえの出来事
  授業中にOSがこわれた
    →1年前にセットアップした環境だった
古い環境の災悪
  古い
  急に壊れる
定期的に環境を新しくしたいが、セットアップが面倒
→環境の構築を自動化する
  Vagurantのプロビジョニング機能を用いて環境構築を自動化する
    Vagrantファイルで環境を定義しておけば、イミュータブルな環境が実現でき、環境が壊れたときにも復旧が簡単

当時のツイートをもっと見る

おれおれ開発環境がさらにおれおれになるために。

発表者:@na0noma(学生4)

スライド

dein.vimの紹介
  vimにおける闇の力
  NeoBundleの後継版
    より早い
dein.vimの利点
  プラグインの導入が楽
    1行書くだけで、プラグインをインストール可能
  プラグインの管理が楽
    いろいろ便利なコマンドが用意されていて、Vimのカスタマイズが楽
  dein.vimの環境構築自体が楽
    ドキュメント通りポチポチするだけ
vimのconfigだけいじって学業がおろそかになるのはいけない
→続・木こりのジレンマ

当時のツイートをもっと見る

Dockerイメージのダイエットが成功するまで帰れまてん

発表者:@nabeo(株式会社はてな)

スライド

nginxのDockerイメージを作ったが、イメージサイズが400MBくらいあった
  nginx自体は10MBくらい
    →イメージサイズが大きすぎる
不要なファイルを消してみよう
  GCCやいらないライブラリなど、nginxをビルドするためのツールを消す
    消したけど増えてる…
    →レイヤードFSのせい
    →開発環境が含まれるレイヤーが残ってしまっていた
  レイヤーをまとめることが重要
  →110MBくらいまで減った
ホストのディストリビューションをdebian→debian-slimへ
  →100MB以下まで減った
Dockerのマルチステージングビルド
  nginxを静的リンクでビルドして、必要なファイルのみを他のイメージへ持っていく。
  →60MBくらいまで減った

当時のツイートをもっと見る

構造化思考法

発表者:玉田雄基(株式会社サイバーエージェント)

こんなことを言われたことはありませんか?
  ロジカルに考えられていない
  整理してから持ってきて?
  一番重要なことは?
  一番言いたいことは?
    →説明が構造化されていないかも
構造化とは
  ファクトと示唆を分離
    事実と、仮説を分離すること
    何が事実で、何が仮説化を切り分けて話する
  MECEに分類する
    もれなく
    ダブり無く
    全体を網羅する
      →ファクトと示唆をちゃんと列挙する
    情報をカテゴライズすることで、漏れをなくす
  マクロからミクロにストーリーをを整形
    ある結論は何が根拠になっているかを整理すること
      後から「なぜ」がわかる
構造化は相手を納得させる武器
  自分の言うことが構造化されていれば、相手にも伝わる。
  相手の漬け込む空きがなくなる

当時のツイートをもっと見る

あるSWEの例をここに

発表者:@b4b4r07(株式会社メルカリ)

スライド

自分が好きなものを見つける過程
  講義でプログラミングを初めたが、環境に慣れない
    →「ここをなんとかしたい」というモチベーション
    →自分のオレオレ環境を作る沼にハマる
    →気づいたら3年経つ
「好きなこと」「作りたいもの」は日常にあふれている
  自分の場合は必修講義にあった
  日常に目を向けることが重要
何かを勉強しているときに「ここをこうしたい」みたいなモチベーションが湧くはず
  完璧じゃなくても誰かの役に立たなくても良いので、まずは作ってみること

当時のツイートをもっと見る

よわよわPCでの姿勢推定

発表者:@bannerforest(学生5)

スライド デモ

姿勢推定ってなに?
  カメラの映像から、人の骨格(姿勢)がわかるやつ
  数年前までは、特殊なデバイスとグラボが必要だった
    技術の進化で、PCのWebカメラで実現可能に
OpenPose
  一般的なライブラリ
  問題点
    商用利用は有償
    スポーツ領域には使えない
    マシンパワーが意外と必要
      →よわよわPCでも姿勢推定したい
PoseNet
  Googleが作った
  オープンソース
  JavaScript上で動く
  Apache License 2.0!
    使いやすい
  よわよわPCでも動く!

当時のツイートをもっと見る

C#の良さを伝えたい(仮)

発表者:@atriasoft(学生6)

スライド

C#とは
  2000年生まれの若い言語
    未来大と同じ
  JavaとCのいいとこ取り
  直感的で初心者に優しい
なにができるの?
  ゲーム開発
    Unity
      なんでもできる
      個人開発では無料
      C#で書ける
  モバイル開発
    ザマリン
      C#で書ける
  Web開発
    ASP.net
      C#で書ける
  ほかにも環境が充実
    VSのスニペットが優秀
    マルチプラットフォーム対応の各種ライブラリ

当時のツイートをもっと見る

HTTPの話

発表者:t_kyt(はてな株式会社)

最近やったHTTPの仕事の話
  普通のWebアプリケーション
    冗長化構成
    リバースプロキシによる処理の外だし
  最近のWebアプリケーションでは
    アプリケーションサーバーがブラウザのリクエストを直接受けることはありえない
      →ブラウザ(UA)のIPアドレスが得られない
      →ログイン処理などの都合上、UAのIPアドレスを知りたいことが多い
X-Forwarded-Forヘッダ
  プロキシやロードバランサを通過するたびに、IPを連ねて記録していく
  問題点
    HTTPヘッダなので、UAが勝手に操作可能
      →偽装可能
        解決策
          →エンドポイントでヘッダをリセット(捨てる)
            →しかし、ネットワークの前に、更にCDNなどがあるとリセットできない
          →信頼できるIPアドレスを保持しておき、挙動を変える
            →しかし、信頼できるIPを保守する必要があったり、そもそも信頼できるIPがわからない場合がある

当時のツイートをもっと見る

pixivでReact/Reduxを使うようになった理由

発表者:村井良行(るんば)(pixiv株式会社)

React/Reduxを導入した理由
  pixivでは、SPAのようなユーザー体験を得たかった
    いろいろな作品を1つのページで手軽に見てほしい
  コンポーネント設計を導入したかった
    部品を再利用可能
    バグの範囲が限定できる
  デザインガイドラインがしっかりしていた
  複雑な状態管理が求められた
  ページ遷移間でコンポーネントが再利用されるので、ページ遷移が早い
    ユーザーが沢山の作品を見るので、ページ遷移の速さが重要
  TSに対応していた
    型は重要
  →一人あたりのPVが30%向上!
開発に参加してみて
  コンポーネントが良い
    パズル感覚でプログラミングできる
  型がしっかりしていたので、迷わなかった。

当時のツイートをもっと見る

これだけは伝えたい(仮)

発表者:@hironomiu(voyage group)

VGのエンジニアが重視しているもの
  人が必要としているものを作る
    いらないものは作らなくていい
  新しい技術を素早く学ぶ&適用→評価
  過剰に学ばない
    時間は有限
    必要十分だけ学ぶ
  「筋」の良さを重視
    イケてる人ほど、様々なコンテキストで答えを出す
    引き出しを増やす
  点と点を繋ぐ技術
    せっかく学んだことをいろいろなことに活かしたい
  ロックインされない
    いろいろな技術を学んで、ロックインを減らす

当時のツイートをもっと見る

誰でも・簡単・今すぐ始めるAlexaスキル開発

発表者:@ottori0(学生7)

Alexaを使っていて、スキルを作ったことがない人はもったいない!
  →いろいろなルーチン作業を効率化できる
    例:「今日の水やりは?」と聞くと、ルーレットで担当者を決める
    例:「次の講義室は?」と聞くとおしえてくれる
簡単にAlexaのスキルを作る方法
  Alexa Skill Blueprintsを使う

当時のツイートをもっと見る

まるわかり!Android向けARアプリ開発!!

発表者:@HSAU_Dosei(学生8)

スライド

AndroidでARする方法
  AR Core
    Google製
    Tangoから派生
ARの開発環境
  Unity
    AR CoreのSDKをインストールしてポチポチするだけで脳死でARできる
  Android Studio
    Scene Formを使うことで、Unityと同等の開発を行うことができる
  →どっちを使えばいいの?
    A. 宗教による
AR開発の注意点
  「AR」を売りにするのはどうなの?
  →それARじゃなくてもよくね?
  →ARは表示の手段

当時のツイートをもっと見る

この業界でサバイブする技術

発表者:@kajiken(株式会社メルカリ)

転職を繰り返した経験の話
なぜ転職を繰り返したのか
  30歳になる頃には自分が会社を選べるようになるというゴールを持っていた
  自分がやりたいことしかやりたくなかった
  (意外と簡単に転職できた)
楽天株式会社
  なかなかつらい新卒研修
    エンジニアで入って営業を経験させられる
  とにかく楽しいと思う技術を極める
サイバーエージェント
  toCの経験がほしかった。ものを作る経験が欲しかった
  Load Engineerをやった
  スクラム開発を経験した
株式会社ペロリ
  2人目のエンジニアとして、開発全てに関わった
    好き勝手やれる反面全てに責任が突く
株式会社メルカリ
  入りたいタイミングで会社に入れるスキルが身についていた
成長の方法
  何をしたいか、どうなりたいかを言語化して目標を言語化する
  自分がどうなりたいかを言語化して、アップデートする
  (転職しても収入はそんなに上がらない)

当時のツイートをもっと見る

これからのモバイル市場について

発表者:@BowyerApp(株式会社サイバーエージェント)

最近はAndroidのシェアが伸びてきた
  iPhoneよりも多くなった
    OSが安定した
    格安Simが認知された
なぜAndroid開発をやっているか
  開発コストが安い
    デベロッパーライセンスが安い
    開発マシンを選ばない
  ストア公開が楽
    面倒な審査などが少ない
      修正をすぐにデプロイ可能
  Androidはレイアウトの差分がわかりやすい
    xmlでレイアウトするので、Gitで差分を確認可能
今後のモバイル市場について
  jetpack composeの登場
    コードでUIを書く
  flutter webの登場
    flutterでWebアプリが書ける!
  →Googleはjetpack composeを皮切りにAndroidエンジニアをflutterに以降させようとしている?

当時のツイートをもっと見る

AIでできるHTMLコーディング

発表者:@tkr12051(学生9)

Sketch2Codeについて
  ワイヤーフレームをHTMLに変換するもの
    矩形→テキストボックス
    矩形に文字→ボタン
      など
  サイトにワイヤーフレームを投稿するだけで、HTMLが生成可能
  生成されたコードは汚い
  精度が低い
    30回くらい思考して成功した
  実用性はぶっちゃけ低い
  →あんまり使えない(NHK・終)

当時のツイートをもっと見る

わざわざ学ばなくて良い言語第1位をわざわざ学ぶ理由

発表者:@takachan_mirai(学生10)

スライド

わざわざ学ばなくて良い言語とは?
  codementorによる「2019年わざわざ学ばなくて良い言語ランキング」
    言語の市場価値に基づく
    →1位が **elm**
市場価値≠学ぶ価値
  成長した言語は概念が複雑
    学ぶことで、自分の成長にとってノイズになる
  elmを学ぶことで、自分の成長のプラスになる
elmのいいところ
  学習コストが低い
    言語仕様が薄く、わかりやすい
  関連技術がイケてる
    関数型
    テスタブル
    elm archtecture(フロントエンド)
  エラーチェックが優秀
    ランタイムエラーが出ない
    エラー表示が親切

当時のツイートをもっと見る

おわり!

続けて読む…

ハッカソンでやってはいけないこと(Hack U函館2018)

2018/03/17

Blenderでフォトリアリスティック電球

2018/10/07

お菓子作り(Blender)

2017/06/04

JPHACKS2017雑記

2018/01/27

Blenderでモーションをトラッキングする

2016/12/24

Blenderと魚

2017/06/13

書いた人

sititou70のアイコン画像
sititou70

都内の社会人エンジニア3年生。Web技術、3DCG、映像制作が好き。