みなさま年末、年始はどう過ごしましたでしょうか?

ぼくは年の瀬を北の大地で、寒さに震えながら過ごしておりました。

こんにちは、明けましておめでとう御座います。川又です。

ベーシック大忘年LTの開催!

12/27(火)に開催された第16回、TGIF改め、TGIT-LTのブログを執筆したいと思います。

今回も少し趣向を凝らし、忘年LTと題しまして、12名の弊社エンジニアが5分という短い時間で喋りまくりました。

休憩無しで発表し続けても70分は喋りまくるという、なんとも大変な発表でした。最高です。

今回ぼくはブログ執筆者なので発表はしませんでした。が、せっかくなのでこのTGIFブログシリーズ中、最長の記事にしてみたいと思います。

昼休みや、この後訪れる土日などの暇つぶしにどうぞ。

さてさて、今回12名の発表者に登壇してもらったわけですが、毎度のことながらテーマは息していません。

いつもどおり 話したいことを話す! というスタンスで参りたいと思います。

では早速、発表順を公正な手段で決めます。

さて、今回の取りしきりは弊社が誇る日本一のエンジニアを目指す望月氏による忘年TGIFです。


望月さんが今回の12名を集め、その順を決定しました。


こ、公正な手段....!?それは一体...!?


そう、 あみだくじ です。

厳正な抽選により、以下の順で、以下のようなトーク内容で行われました。

お品書き

  • No.1 佐々木 エンジニアのキャリアを考えてみた 2017
  • No.2 寺田 年末ですね。ところでチャンクって個存じですか?
  • No.3 森 おつかれFerretPLUS ~ まだFerretSEOが残ってます ~
  • No.4 唐澤 みんなのポケットをのぞきたい
  • No.5 望月 Quiz Roomをサーバレスで作った話
  • No.6 小林 CSSで知ってるようでよくしらない、少し知っていること
  • No.7 松元 フォーチュンクッキー(くじ引き)
  • No.8 五島 ゆく年、くる年 ありそうでなかったRuby2.4の新機能紹介
  • No.9 レン Ruby Goldに受かろう!
  • No.10 吉井 スタイルの構成にもコンポーネント指向を取り入れたら少しだけ幸せになれたというお話
  • No.11 桜庭 CPUの気持ち
  • No.12 柿崎 業務を少し効率化するためにぼくがやってること

今回もお寿司を食べます。

お寿司、美味しいもんね。


そしてぼくプレゼンツ CTO (Cheaf Tgif Officer)の乾杯です。


かんぱーい。

一人目の発表者が発表の準備をする僅かな時間の間に皆さん寿司を食べたり、飲んだり、寿司を食べたりしています。

一代目CTOも思わず笑顔全開です。


では早速見ていきましょう。

No.1 佐々木 エンジニアのキャリアを考えてみた 2017


一発目から突然ぶっこんできたなと感じるタイトルです。年の瀬だからしょうがないですね。忘年しよう。

弊社に空前絶後のラップブームを生み出した第一人者。ラッパー系エンジニア、佐々木さん。

そんな彼による発表はまずは韻を踏むところから始まります。


ラップで未だざわつく会場の目線を集め、発表に集中させるプレゼンテクニックを披露。

視線が集まり、場が温まってきた所で佐々木さんの発表は行われます。

これから求められていく人材と言うのは「H型人材」だ。という話です。

Googleやクックパッドのエンジニアの募集要項を調べてみると、スペシャリスト、マネジメント、ゼネラリストと大きく分けて3つほどあった。

ベーシックエンジニアはー型人材(ゼネラリスト)が多い。いわゆるフルスタックエンジニアのような人材です。

しかし、ゼネラリストとは言え、ただなんでもやるだけだと便利屋で終わってしまう。

じゃあどうすればいいか?と言うと例えばT型人材と呼ばれる、一つ専門分野を極めて、そこを軸に広い分野に知見を持つ人材になると良い。

らしいのだが、最近ではそのT型ではなくH型人材になるのが良いと言われているそうです。

これからの仕事ができる人は"H型"人材! | Bizhacker

こちらから引用させていただきますと

強い専門分野がひとつあり、他の人の専門分野と繋がる横棒を持つことで
他の人と繋がりHになるという「人と繋がれる」人材。

というような人材の事を指すようです。イノベーションを巻き起こすしかない。

しかし、極める縦軸部分を何にするか。というのは、人生においてもなかなか難しい選択ですね...

その時は、自分のなりたいエンジニア像が分からなくなったら他社の募集要項を見たときに、どのような存在が求められているのか言葉になっているので強く参考になるそうです。

No.2 寺田 年末ですね。ところでチャンクってご存知ですか?


なん....だと....!?

もう年末だというのか!

実感が沸かない我々にセンセーショナルな事実を叩きつけて始まる発表。

2016年にやってきた新卒、寺田が発表を行いました。

彼は弊社が誇るDance Dance Revolutionプレイヤー。

平日に頭脳労働した後はゲーセンに寄り、8クレ(30曲)程舞い踊り肉体を酷使する。そんなストイックな彼は、人は7±2程しか上手く覚えられないというのであった。

そもそもチャンク、と言うと


とある、塊ごとのデータ。もしくはバイナリデータの通信のことを指す。

今回は大きな塊ごとに人がどのように感じるのかということを説明してくれた。

HOGEHUGAPIYOMARUBATUWAKUTEKA

このような文字列を覚えろ。と急に言われても 無理だぁ! と感じてしまうかもしれないが

HOGE HUGA PIYO MARU BATU WAKU TEKA

このように見たことあるような文字に分解され、それが7つ程度ならなんとか覚えていられる。というのだ。


これを応用し、Webサービスのメニューや、大きな画面構成などなど。

様々なものを7つの要素に区切り、表現することができれば人は「これは優れている!」「わかりやすい!」と感じやすいそうだ。

成程、これはものすごく参考になりますね。

そして、Dance Dance Revolutionのような難しい音ゲーマーはみな流れ来る激しい譜面をどのようにクリアしているのか。

という問に対し


という解を返してくれた。

激しく来る矢印も、3つごとに、足の動きをインプットしできていれば良い。

そうすると、一つ一つ対処する人間よりスムーズに動けるのだと彼は言う。

成程!しかし、それ絶対チャンク数7以上あるよね?

...と、きっと観客全員が同じことを思っただろうが、その問は飲み込むのであった。

No.3 森 おつかれFerretPLUS ~ まだFerretSEOが残ってます ~


森、彼女は弊社一ストイックで知られる2014年新卒、女性エンジニアだ。

曰く、朝、彼女より早く来ることは出来ないだろう。

曰く、彼女より突き詰めてストイックに考えることは出来ないだろう。

などなど、数多くの噂が絶えない。(ぼく、談)


また、なかなか写真も撮らせてもらえない。

そんな彼女が発表するのは、弊社の中でもかなり歴史の長い一つのサービスをクローズさせた話だ。

FerretPLUSというサービスを途中から引き継ぎ、そしてそのクローズまで共にした彼女だがその苦労は絶えなかったという。


メインで担当していた方が既に辞めてしまっており、何か不具合などが置きた場合は過去のドキュメントを辿ってなんとか解決させていた。

ログを辿ったり、ドキュメントを探したり、気合でソースを読み解き、時には過去のやり取りの雰囲気で解決していた。

本当に同仕様もなくなったときにHELPを求める所もストイックな彼女らしさがある。

そこから得た物は、後世にきちんと技術を引き継げるような準備を予めしておこう。と言うもの。

発表の終わりには良いドキュメントの残し方を質問するほどである。ストイック。

No.4 唐澤 みんなのポケットをのぞきたい


のぞきたい。という言葉だけを切り抜くと急に性癖の話なのかとどきときしますが

決してそんなことはありません。

とてもクリーンないい会社です。


唐澤は寺田と同じ2016年にやってきた新卒エンジニアだ。佐々木さんとタッグを組んで一つの事業部支えている。

なかなか苦労は絶えないようだが、様々な裁量で自由に取り組んでいる様はとても心強い。と佐々木さんが言っていた気がします。(うろ覚え)

さて、ポケットをのぞきたいという話に戻しましょう。

pocketという、後で読みたい記事などを素早く保存するサービスがある。その事を指している。では、皆のpocketをのぞきたいとはどういうことなのか?


彼はその目的を果たすために、そのpocketに保存された記事をランダムで返却するbotをサーバレスで作ったようだ。


google app scriptを使い、postで接続があった際にpocketとapi通信を行い、取得し、slackに返信するというような内容だ。

仕組みだけ確認するとかなり単純そうに思えるが、OAuth認証を自力で実装する必要があったりと、なかなかテクニカルなことをやっている。

また、google app scriptなので、Googleスプレッドを用いてデータベースの代わりのように扱う事ができる。

それを利用し、いま弊社で話題のサーバレスな実装にしてある。

これを用いて、様々な人のpocketアカウントを認証しておいて、自分のだけじゃない、人の溜めた記事をランダムでピックアップしたいんだ!

というような話でした。成程。

No.5 望月 Quiz Roomをサーバレスで作った話


ツイッター勉強会など弊社に様々な勉強会文化を巻き起こす、日本一を目指すエンジニア望月氏。

彼が発表したのはQuiz Roomというサービス。


観客を巻き込む参加型の発表で場が沸き立ちます。

実際に出題された問題はこちらです。

class Hoge
  attr_accessor: huga
  def piyo
    fuga = 7 unless fuga
  end
end

obj = Hoge.new
obj.fuga = 3

obj.piyo => これは何?

どうでしょう?

ぱっと回答できますか?


引っ掛け問題、ですかね。なんとなく、答えは2,3通りくらいだと思いますが、確実にこれだ!というのが思いつきません。

言語仕様をきちんと把握していないと恐らく運に頼ってしまうことでしょう。

3や、nilという回答もありましたが、答えは「7」でした。

ちなみに、実装したものはQiitaにまとまってあるので是非。

社内でクイズ番組的なノリを実現したくて、簡易的なWebアプリケーションを Lambda でととのえる。

Quizが終わった後はこの実装の苦労話などを話していただけました。

No.6 小林 CSSで知ってるようでよくしらない、少し知っていること


みんなのこびーさんでお馴染みの、小林さんからはCSSの様々なクイズをして頂きました。インフラより、フロントが好きだという噂です。

小林さんは長いことベーシックの開発に携わっており、様々な事をやっています。

エンジニアブログも様々な記事を書いていて、新年一発目にもブログを書かれていますので、是非目を通してみて下さい。

アウトプットは面倒だが役に立つ


柔らかな物腰から急変して放たれる鋭い問題に皆、唸り声を上げます。

皆さん、わかりますか?

案外、こういうのは実行してみてから結果見よう!

ってなりがちですよね。

cssを書くときって何かと調べながら、書いては実際にブラウザで確認しながら。

ということが多いと思うのですが、実際書き方によっては影響範囲がまるで違ってきます。

子要素にどのような影響があるのか?どのような影響を与えたいのか?

予め、脳内で結果が予測できていれば素早くcssの実装ができそうです。

休憩しようそうしよう


佐々木さん、弊社CTO(Chief Technology Officer)の桜庭さんのワンショットです。

半分終わって少しの休憩です。

この時点で1時間が経過しております。さぁ、まだまだあるぞー。

No.7 松元 フォーチュンクッキー(くじ引き)

弊社には女性エンジニアは二人しかいない。森さんと、松元さんだ。


小林さんと近しい柔らかな物腰で話す方です。ディレクター的な立ち位置も、企画的な発想もするスーパーエンジニアな松元さん。

そんな方から放たれたネタは


まさかの観客爆撃

※モザイクは大人の事情で付いてます。

フォーチュンクッキーというクッキーの中に入っている御神籤を見る。的なところから着想を得た。ということだそうです。

ランダムで話す方、お題、そしてつっこみが選出されるというシステムをgoogle app scriptで作ってきたというのだ。

その事実を知った観客は会場に凄まじい動揺が走る。


早速と、選出された吉井はもはや笑うしか無かった。


何度か続けていると、松元さん自身に当たってしまう回がありました。

その時のテーマは「うちのチームの問題はこんなのあって解決策を求めたいことは?」という内容。

それに対して、少し悩みながら出た回答が、「中間のエンジニアがもっと増えると良いな」というもの。中間と言うのは、30代前後の経験豊富なエンジニアの事。

松元さんはferretを担当するエンジニアで、最近1人のエンジニアが会社を辞められてしまった。それにより、技術的なものではなく、経験から導き出されるアドバイスなどが得られにくくなっている状態だそうだ。

他の事業部を担当する上司から時々もらうアドバイスなどが有益であるがゆえに、ということなんでしょう。確かに、ぼくも欲しい。

弊社では色々なサービスをやっており、その一つ一つに担当のエンジニアが付く。担当となったエンジニアはそのサービスの全体を見ることが出来る。

気軽にAWSを触らせてくれる環境もあります。もし、自分でサービスを一つ持ってみるということに興味がありましたら是非ご連絡を下さいませ。(急な勧誘)

No.8 五島 ゆく年、くる年 ありそうでなかったRuby2.4の新機能紹介


ここで満を持して登壇する、八番キャッチャー(?)2015年新卒エンジニアの五島。通称ごっちん。

ぐっと忘年感がでるタイトルですね。

彼はferret Oneの裏側を主に見ているエンジニアです。どっしりと彼が構えることで安心して他の方々が作業できるわけですね。

さて、LTの内容といえば、Ruby 2.1がサポートを終了するよ!と言うところから始まりました。

セキュリティ面を考えると早めにバージョンを上げないといけないですね。


それと同じくして、Ruby 2.4が正式リリースされました。

彼はRuby 2.4で追加された、今までのrubyにはありそうでなかった機能を少し紹介してくれました。

sumの追加

array = [1,2,3,4,5,6,7,8,9,10]
array.inject {|sum, i| sum += i } => 55 # 2.3以前
array.sum => 55 # 2.4以降

なんだか地味に使いそうで、今まで無かったやつですね。これは嬉しい。

match?メソッドの追加

matchメソッドを普通に使うより4.7倍ほど早いとかなんとか。

正規表現地獄にはうってつけ!とのこと。

concatメソッドに複数の配列を渡すことが出来る。

これは普通に便利ですね!

Ruby 2.4はより、便利になりました。そしてferret Oneもより使いやすく鳴っていきます!

という締めで発表が終わりました。LTっぽくてとても良かったです。

No.9 レン Ruby Goldに受かろう!


レンは愛称であり、本名はドゥック。ベトナムからやってきたferret Oneエンジニアである。ベトナムでは愛称をつけて呼びあうことが珍しくないらしい。

さて、そんな彼は様々なrubyの問題をLTの場に持ってきた。

今回の発表は問題が多く、観客参加型が多いですね。楽しい。


全部で10個の問題をやったのですが、ここでは一部を紹介します。

# 問題5 以下のコードの実行結果を答えよ

ary = [:job1, :job2, :job3]
ary.push(:job4)
ary.unshift(:job5)
ary.pop
ary.shift

p ary

皆さん、分かりましたでしょうか?

今回レンが持ってきた問題の8割を正解できれば

Ruby Association Certified Ruby Programmer Gold

に合格できるほどの実力があるかもしれないということだ。そう言われると闘争心の強い弊社エンジニアは意地でも正解してやろうと、躍起になります。

ちなみに、この回答は「 [:job1, job2, job3] 」になります。

きちんとメソッドの動きや、挙動を把握していないと騙されるような問題が多く、rubyは奥が深いなぁと再認識できるいい機会でした。


また、難しい問題の回答の後は詳しい解説つきです。講義を無料で受けれた気分です。

No.10 吉井 スタイルの構成にもコンポーネント指向を取り入れたら少しだけ幸せになれたというお話


先程、松元砲を受けた吉井です。彼はごっちん、五島と同じく2015年新卒エンジニアです。

ferret Oneのフロントを大部分を担っているフロントエンドエンジニアです。前述の五島と協力して色々やっている感じがなんだか心強く思います。

また、安定感のある内容と、どっしりとした安心感のある発表で定評もあります。

弊社におけるごりごりのフロントエンドエンジニアといえば吉井。というくらい、最近はフロントを集中的にやっている様子ですので、皆その話に興味津々です。終盤にガチの話がきたわけですが、皆集中して耳を傾けます。

こういった記事も書いておりますので、御覧ください。

【2016年冬】最新CSSフレームワークまとめ

さて、スタイルの構成に、コンポーネント指向を取り入れるとはどういうことなのか。

そこでAtomic Designの考え方と利点について話してくれました。


そもそもコンポーネント指向というのが、パーツ単位でまとめて考えよう。というような考え方です。

その考え方をferret Oneのスタイルにも当てたい!というところからAtomic Designを採用したようです。

これをやることでこれまでよりもメンテナンス性が高く、高品質な物が出来るようになったそうです。

Atomic Designはページ単位でデザインを考えないようです。

小さな小さな文字、カラーパターン、いわゆるレギュレーションなど、単独では意味を持たないパーツ。(原子 ATOMS)

ボタンなど、文字やカラーが組み合わさり、意味を持つパーツ(分子 MOLECULES)

ヘッダーやフッター、組み合わせて意味を持ったパーツ(組織体 ORGANISMS)

のように、細かい部分から大きなものを組み立てていくような事だそうです。

これをやることにより、細かなパーツが様々な所で再利用できるようになったそうです。似たようなページを制作するときの時短になり、少しだけ幸せになれたそうです。


このAtomic Designというのが必ずしも良い。

というわけではないですが、こういったやり方を知っておくと選択肢が増えていいですね。

エンジニアなので、様々な武器は持っているに越したことないです。とても丁寧なLTで皆いい勉強が出来ました。

No.11 桜庭 CPUの気持ち

ぼくのようなお祭り隊長のCTOではなく、ちゃんとCTO(Chief Technology Officer)の桜庭さんの発表です。


なんとその日の朝4時まで時間をかけて発表資料を作っていたと発言があり、皆の期待は極限まで高まります。


その発表内容とは CPUの気持ち を理解したい!というものでした。


「それは一体どうゆうことなんだ...?」と、みんなの気持ちが一つになったところで、その発表が始まります。

桜庭さんは今までコードをドットにしたり、コードをリズムに変換する発表を行ってきました。

コードをリズムにする話はコチラ 学生向けサマーハッカソン開催して、突然の大人ハッカソンも開催しました

githubにソースがありますのでそちらも是非

codesound

codedots

そして、今回はコードをリズムにした。その過程でCPUの気持ちも知ろうという試みのようです。

とあるrubyのコードを「0001000110101110101」のような機械語に変換し、それを人力で入力するとその結果を


このように返してくれるというものだ。ちなみに

p 1

というのを実行するのに0と1は全部で521個CPUがガリガリ計算して処理をしてくれているらしい。CPU凄い。

また、人力で0や1を入力するとピコーンと音がなったりする。キーボードにぞれぞれ音を割り当てて、CPUの気持ちになりながらリズムに乗って音を響きわたらせることが出来る。ということのようです。

CPUの気持ちがわかって良かった。とのことでした。

そんな桜庭さんの考え方などに興味がありましたらコチラの記事など如何でしょう。

CTOとして、プログラマとしての2016振り返り

No.12 柿崎 業務を少し効率化するためにぼくがやってること


2014年新卒エンジニアの柿崎からは業務効率化の話をしてもらった。

2014年新卒の中でかなりツールに詳しい柿崎。彼と同期であるぼくも色々なツールを教えてもらった。

そんな彼の最近のツール事情となると、なかなか気になるLTテーマです。

BetterTouchTool

BetterTouchTool, BTT Remote, BetterSnapTool and more – Great Tools For Your Mac By Andreas Hegenberg

様々なジェスチャーやキーバインドを登録することが出来るツールです。

これを使えば、アプリケーションを開くときに「cmd+1」とかで開く事ができるように設定できます。

また、三本指でトラックパッドを操作したときの挙動をアプリケーションごとに割り当てたりすることが出来ます。

繰り返し行う操作や、マウス操作のついでに行ってしまいたいことなど予め設定しておくだけで時短になりますね。

神ツールだな。400円ほどで購入出来ますので是非。

Prezto


Zsh + Prezto で快適コマンド環境を構築する | Developers.IO

こちらはコマンドライン環境をより使いやすくする工夫する話ですね。

簡単にテーマを変更することが出来る上、カスタマイズがとても簡単です。

コマンドを打ち込み、tabキーを押すことでオプションを表示したり。

その表示したオプションを十字キーで選んで実行する。

なんてことも出来ます。これ一つインストールするだけでコマンドラインの使い勝手が劇的に変わります。

便利そうだ。

こういったテクニックなどはLTのような短い時間で紹介するのはとてもちょうどよくていいですね。

終わりに

さて、年末一発目のLT記事でしたが如何でしょう?

発表内容にも触れつつ、弊社エンジニアのそれぞれの個性を同じエンジニア視点でご紹介させて頂きました。

視点としてはちょっと偏りがあるかもしれませんが、今後の活動に色々参考になりましたら幸いです。

TGIFの最後はボーイスカウトの気分で


使った場所は使う前よりきれいにしましょう。

それでは、皆様良いお年を!

TGIF以外の活動

つぶやき勉強会と題した、呟くようにライトで気軽な内容の勉強会

「"つぶやき勉強会"」の検索結果 - Qiita

2016 Qiitaアドベントカレンダー

ベーシック Advent Calendar 2016 - Qiita