ソフトウェア開発と私 / Software Development and I
by
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
ソフトウェア開発と私 2018-06-30 ハッカーズチャンプルー2018 motemen
Slide 2
Slide 2 text
こんにちは ● id:motemen / @motemen(美顔器) ● 株式会社はてな CTO ● Perl, Go, Git
Slide 3
Slide 3 text
No content
Slide 4
Slide 4 text
CTO & アプリケーションエンジニア ● 2016-現在 ● 組織・技術・情報 ● 古めのサービス全般
Slide 5
Slide 5 text
No content
Slide 6
Slide 6 text
No content
Slide 7
Slide 7 text
CTO室 ● 事業や開発の新しい基盤をつくる横断チーム ● 社内横断で開発効率を上げる取り組み #pepabohatena
Slide 8
Slide 8 text
サマーインターン
Slide 9
Slide 9 text
宣伝終わり
Slide 10
Slide 10 text
アジェンダ ● 自己紹介(40min)
Slide 11
Slide 11 text
エンジニア遍歴
Slide 12
Slide 12 text
199X
Slide 13
Slide 13 text
BASIC ● 本当はゲームを作りたかった(らしい) ● 学校の宿題のドリルを解くプログラム ○ 完成したころには次の単元だった
Slide 14
Slide 14 text
200X
Slide 15
Slide 15 text
Windows ● Visual Basic 5 ● ランチャー、ジョークソフト
Slide 16
Slide 16 text
ホームページ ● BBS(掲示板)置いてたけど、友達だけだった ● 本屋で立ち読みした情報をコピペした技術サイト
Slide 17
Slide 17 text
Perl との出会い(と別れ) ● Perl Poetry(Perl 詩)
Slide 18
Slide 18 text
2005
Slide 19
Slide 19 text
ブログブーム ● 考えたこと、やったことがアイデンティティになる時代 ● Movable Type ● blosxom: 1 ファイルの CGI ○ 1ファイル = 1エントリ ○ プラグイン = .pl ファイル
Slide 20
Slide 20 text
Web 2.0 ● RSS, XML, JavaScript, Ajax ● サイトがつながって、面白いものを生み出す ● ウェブの人はスピード感が違った
Slide 21
Slide 21 text
jsBlogTimes ● Movable Type のプラグイン MTBlogTimes ● の一般化実装 RSSBlogTimes の JavaScript 実装 ● サーバサイドがわからなかった
Slide 22
Slide 22 text
はじめてのトラックバック ● いわゆるメンション ● 相当躊躇した上、送信 ● その後 mixi でメッセージが来る
Slide 23
Slide 23 text
はじめての登壇 ● Shibuya.js ライトニングトーク ○ LT って何? 登壇ってなに? って状態 ● コミュニケーションできる人がたくさんいてビビった
Slide 24
Slide 24 text
アルバイト ● あまりに怠惰すぎて月給1万円なんてこともあった ● 夏休み、インターンとして集中開発したところ、楽しい ● 大学院を中退して、はてなに就職
Slide 25
Slide 25 text
2008
Slide 26
Slide 26 text
就職 ● 余談: 月給を貰うようになって、モチベーションが低下 ○ とにかく他人に認められたかった自分に気づく ○ おれのモチベーションはそんなものか!?
Slide 27
Slide 27 text
うごメモはてな ● 任天堂との協業で開発したウェブサービス ● 自分のプロダクト、という思いが強かった ● ぼくのかんがえるカッコイイコードをガシガシ書く
Slide 28
Slide 28 text
異動後 ● 自分のコードで同僚が苦しんでる姿を見て、辛かった ● 急速に他人を意識したコードを書くようになった ● プログラミングからソフトウェア開発へ
Slide 29
Slide 29 text
登壇(失敗) ● 先輩から LT を打診され、受ける ● よく考えたら人前で話すのは苦手 ● 当日の零時くらいまで準備できず、本番はぐだぐだ ● その後数年間登壇できなかった
Slide 30
Slide 30 text
YAPC::Asia ● Yet Another Perl Conference ● 今なら builderscon とか YAPC::Okinawa とか ● Perl に限らない、ウェブ開発者のお祭り ● 同僚がこぞって参加して、楽しそうだった ● 自分もやっぱり登壇したい
Slide 31
Slide 31 text
2011
Slide 32
Slide 32 text
YAPC::Asia Tokyo 登壇 ● ニコニコ動画のプレイリストを mp3 ストリーミング ● ffmpeg + AnyEvent によるイベント駆動プログラミング ● 懇親会ぼっちも回避できた
Slide 33
Slide 33 text
何をサブミットするか ● “たぶんこれはトークの応募の際の説明とかがだめだったんだ ろうなと予想!” * ← 図星 ● 内心、落ちたらいいな、とか思ってた ● 受け身はやめる、やるならちゃんとやるように *: http://unknownplace.org/memo/2011/10/17/1/
Slide 34
Slide 34 text
App::htmlcat ● ターミナル上のハイライトをブラウザに表示したかった ○ 長い長い git log -p とか ● 当時流行りの AnyEvent と Server-Sent Events を使って リアルタイム化 ● 標準入力をブラウザで tail -f できる htmlcat というのを書い た
Slide 35
Slide 35 text
webtail ● 同コンセプトの Ruby 実装 ● こっちのほうが人気があった… なぜ? ○ カスタマイズ性 ○ Ruby 製 ● パッケージング重要
Slide 36
Slide 36 text
2014
Slide 37
Slide 37 text
Mackerel ● プロジェクトマネージャ的なポジションに ● Scala + Go ● Go 言語が異様に手に馴染んだ
Slide 38
Slide 38 text
ghq ● リポジトリを URL に基づいた階層でクローン・整理する ● Go の練習に ● peco と組み合わせると便利、と話題に(ラッキー) ● ghq: リモートリポジトリのローカルクローンをシンプルに管理 する
Slide 39
Slide 39 text
ghq: インタフェースの変更 ● もともとは zsh スクリプト ○ cd をいい感じにハンドルしたかった ● ツリー構造は Go 風に変更
Slide 40
Slide 40 text
フィードバック ● これは便利! と思ってた機能が不評 ● 同僚にもこの機能いらんでしょと言われた https://twitter.com/miyagawa/status/480950493837926403
Slide 41
Slide 41 text
gore ● mackerel-agent の公開 API の変更を追いたかった ○ 学んだこと: Go による Go プログラムの操作 ● REPL が作れそうだったのでやったらできた ○ go run ○ コンパイル時にエラーになるコードを除く ● コード補完もできる Go の REPL「gore」を作った
Slide 42
Slide 42 text
● ようやく自信を持って発表できた感覚 ● はじめての登壇から10年近く経っていた……
Slide 43
Slide 43 text
CTO としての仕事 ● メカニズム ○ ソフトウェア ○ 人々の how を変える ● メッセージ ○ 言葉 ○ 人々の why を変える
Slide 44
Slide 44 text
教訓
Slide 45
Slide 45 text
「できること」と「やりたいこと」は両輪 ● やりたいことがあれば、できることは付いてくる ● できることが増えれば、やりたいことも広がっていく
Slide 46
Slide 46 text
書くことと話すこと ● 知識や考えや経験を直列化する試み ● 自分にとっては一種のセーブポイント ● 吐き出したら忘れて、新しいことをする
Slide 47
Slide 47 text
自分の小さい世界を変える ● エンジニアの大それた夢 = 世界を変える ● いきなり挑むには世界は広い ● 自分と、自分の周囲を変えることはいつでもできる
Slide 48
Slide 48 text
自分のため、からはじめよう