僕と北海道とPerl、それとMakefileも。

38
僕と北海道とPerl それとMakefileも @azumakuniyuki Hokkaido.pm 第13回 2017/02/18(土) 札幌市産業振興センター

Transcript of 僕と北海道とPerl、それとMakefileも。

Page 1: 僕と北海道とPerl、それとMakefileも。

僕と北海道とPerlそれとMakefileも

@azumakuniyuki

Hokkaido.pm 第13回 2017/02/18(土) 札幌市産業振興センター

Page 2: 僕と北海道とPerl、それとMakefileも。

自己紹介@azumakuniyuki (東邦之)株式会社Cubicroot

2

- インフラエンジニア(ラック実装から構築・保守) - *BSD, Linux, 古くはSolaris, SunOS - ネットワークの設計・サーバの構築と保守 - インフラのコード化支援(Ansible,Serverspec)

- 数年前からプログラマー - 主にPerl, Rubyも - サイトの開発(バックエンド) - メール関連の開発

Hokkaido.pm#13

僕と北海道とPerl、それとMakefileも。 @azumakuniyuki

Page 3: 僕と北海道とPerl、それとMakefileも。

ネコ派3Hokkaido.pm#13

僕と北海道とPerl、それとMakefileも。 @azumakuniyuki

Page 4: 僕と北海道とPerl、それとMakefileも。

僕と北海道

Hokkaido.pm#13

僕と北海道とPerl、それとMakefileも。 @azumakuniyuki

Page 5: 僕と北海道とPerl、それとMakefileも。

5

北海道大好き

Hokkaido.pm#13

僕と北海道とPerl、それとMakefileも。 @azumakuniyuki

Page 6: 僕と北海道とPerl、それとMakefileも。

6

9年ぶり18回目

Hokkaido.pm#13

僕と北海道とPerl、それとMakefileも。 @azumakuniyuki

Page 7: 僕と北海道とPerl、それとMakefileも。

僕と北海道(幼少期)バター飴と六花亭のチョコ

7

- 北海道の親戚からよく貰う - 会ったこと無い親戚 - たぶん帯広 - 布っぽい袋に入ってるやつ- 六花亭のはホワイトチョコ - 虫歯大量生産

http://www.myseclub.com/archives/cat5/

Hokkaido.pm#13

僕と北海道とPerl、それとMakefileも。 @azumakuniyuki

Page 8: 僕と北海道とPerl、それとMakefileも。

僕と北海道(小学生)北海道の形をしたキーホルダー

8

- 金属のメタル- 親に買ってもらった - 「なんで北海道?」 - 「分らんけど北海道がいい」- 北海道以外は持ってない- 今は無い路線が書いてる - 興浜[南北]線 - 天北線- まだ実家にあるはず

http://www.geocities.jp/keyholdertaro/map/L02-01-01map.htm

Hokkaido.pm#13

僕と北海道とPerl、それとMakefileも。 @azumakuniyuki

Page 9: 僕と北海道とPerl、それとMakefileも。

僕と北海道(大学生)セイコーマートでアルバイト

9

- 1990年代後半ちょいぐらい?- 京都にもあった - 家の近所やし - 元は近所の酒屋さん - 他、滋賀・栃木・茨城?- 正しい略称? - セイコマ? セコマ?

http://www.yamamototetsu.com/entry/seicomart

Hokkaido.pm#13

僕と北海道とPerl、それとMakefileも。 @azumakuniyuki

Page 10: 僕と北海道とPerl、それとMakefileも。

僕と北海道(大学生)ポイントカード持ってる

10

- 北海道で作った- 住所が北海道以外でも作れた- 今は違うデザインらしい?- 前回(2008年)は使えた- 果たして今回(2017年)は...

https://twitter.com/azumakuniyuki/status/832518411238273024

Hokkaido.pm#13

僕と北海道とPerl、それとMakefileも。 @azumakuniyuki

Page 11: 僕と北海道とPerl、それとMakefileも。

僕と北海道(大学生)自転車で北海道へ行った

11

- 友達と日本海沿いを北上 - 国道8号線→7号線 - 必ず銭湯のある町で野宿 - 夏やし臭いし風呂入りたい - 駅とかバス停とか歩道とか - 青森港→苫小牧港- 確か10日目で北海道上陸 - 9日目やったかも?

http://4travel.jp/travelogue/11055053

Hokkaido.pm#13

僕と北海道とPerl、それとMakefileも。 @azumakuniyuki

Page 12: 僕と北海道とPerl、それとMakefileも。

僕と北海道(大学生〜)思いつきで北海道へ行く

12

- 「寿司食べたいな」- 「寿司と言えば小樽やな」- 「よし行くか!」「?」- 金曜日の夜に舞鶴港から乗船- 日曜の朝4時に小樽に到着- (小樽)ほっけ定食・寿司- (札幌)ビール園とラーメン- 出航2分前に小樽港に戻る

http://r.gnavi.co.jp/area/aream5602/sushi/kods00067/rs/

Hokkaido.pm#13

僕と北海道とPerl、それとMakefileも。 @azumakuniyuki

Page 13: 僕と北海道とPerl、それとMakefileも。

僕と北海道(大学生〜)稚内北星学園大学

13

- 当時は短期大学やった- 「最先端は最北端」- サマースクール(8月) - 毎年夏に北海道へ行く理由 - UNIX, Network, Java - 学割があった- 今持つ技術の基礎を学ぶ- 楽しい夏の思い出

http://telemail.jp/shingaku/detail/detail.php?name=wakhok

Hokkaido.pm#13

僕と北海道とPerl、それとMakefileも。 @azumakuniyuki

Page 14: 僕と北海道とPerl、それとMakefileも。

14

技術の故郷

北海道

Hokkaido.pm#13

僕と北海道とPerl、それとMakefileも。 @azumakuniyuki

Page 15: 僕と北海道とPerl、それとMakefileも。

僕と北海道(社会人)学生時代ほど頻繁に行けない

15

- 船で行く - (舞鶴|敦賀|新潟|秋田)港- 最長で3ヶ月ぐらい滞在 - 昼は蕎麦を食べる - 夜は酒場・温泉・銭湯- イベントがあれば行く - 犬ぞりレース(稚内) - 砂金堀り大会(浜頓別)

http://blog.azumakuniyuki.org/2008/03/soba-shop-in-residential-area.html

Hokkaido.pm#13

僕と北海道とPerl、それとMakefileも。 @azumakuniyuki

Page 16: 僕と北海道とPerl、それとMakefileも。

僕と北海道(社会人)思いつきで北海道へ行く

16

- 仕事疲れた、北海道行きたい - 今夜は船が無いのか - 「あしたの新潟便で行くか」 - 翌週は有給で- 退職して有給消化中 - 友達が北海道に行ってる - 「よし、今から行く」 - 「現地集合で」- ほぼ手ぶら・服は現地調達でhttp://blog.azumakuniyuki.org/2008/03/floating-ice.html

Hokkaido.pm#13

僕と北海道とPerl、それとMakefileも。 @azumakuniyuki

Page 17: 僕と北海道とPerl、それとMakefileも。

僕と北海道(行き先)端っこの方が好みっぽい

17

- 稚内(タコしゃぶ・童夢温泉)- 猿払(牛乳を飲む)- 浜頓別(定宿・ウィング温泉)- 北見,網走(玉葱美味い・酒場)- 根室(銭湯・鉄砲汁・花咲蟹)- 釧路(銭湯・和商市場・酒場)- 襟裳岬(朝6時開店・ラーメン)- 函館(温泉・寿司・イカ・酒場)

http://blog.azumakuniyuki.org/2008/03/ramen-shop-in-statation.html

Hokkaido.pm#13

僕と北海道とPerl、それとMakefileも。 @azumakuniyuki

Page 18: 僕と北海道とPerl、それとMakefileも。

僕と北海道(行き先)端っこ以外も行くし好き

18

- 音威子府(黒い蕎麦)- 幌加内(寒い・蕎麦)- 旭川(蕎麦・酒場)- 芦別(美人の湯・宿が安い)- 鹿追,然別(蕎麦・山奥の温泉)- 新得(蕎麦・秋にまた来る)- 小樽(三角市場・ほっけ定食) - 明日行く

http://blog.azumakuniyuki.org/2008/03/soba-at-nakasatsunai.html

Hokkaido.pm#13

僕と北海道とPerl、それとMakefileも。 @azumakuniyuki

Page 19: 僕と北海道とPerl、それとMakefileも。

僕と北海道(道の駅)マグネットを集めだした

19

- カントリーサインのあれ- 道の駅に売ってた- 道の駅がない町のは存在しない?- 60枚ぐらい持ってる- 212市町村のうち200は行ってる- 平成の大合併で消えた自治体 - 椴法華村(函館市(広い)) - 女満別町(大空町) - 他?(合併以降の知識は未更新)

https://twitter.com/azumakuniyuki

Hokkaido.pm#13

僕と北海道とPerl、それとMakefileも。 @azumakuniyuki

Page 20: 僕と北海道とPerl、それとMakefileも。

僕と北海道(くるま)今の車は北海道(札幌)出身

20

- 車屋で「札幌」ナンバーを付けてた- 北海道出身の車やし即決で購入- 走行距離1.3万キロの中古で買った- 北海道クライスラー札幌美園が実家 - 整備記録とかに書いてた - 2008年に里帰りした(車に同伴) - 実家(車の)でオイル交換した - 産業振興センターからわりと近い?- 現在16.5万キロhttps://twitter.com/azumakuniyuki

Hokkaido.pm#13

僕と北海道とPerl、それとMakefileも。 @azumakuniyuki

Page 21: 僕と北海道とPerl、それとMakefileも。

僕と北海道(移住?)実は移住を考えていた

21

- 30歳になるまでに移住?- 食物は最高に美味い!- 男山(旭川・男山酒造)が好き- そやけど30歳直前で断念- 方向音痴やし - 命の危険?季節によっては - 熊は怖い- 「北海道へ行く」楽しみ

http://blog.azumakuniyuki.org/2008/04/my-birthday.html

Hokkaido.pm#13

僕と北海道とPerl、それとMakefileも。 @azumakuniyuki

Page 22: 僕と北海道とPerl、それとMakefileも。

22

北海道に住んだら北海道へ行けない

Hokkaido.pm#13

僕と北海道とPerl、それとMakefileも。 @azumakuniyuki

Page 23: 僕と北海道とPerl、それとMakefileも。

23

非日常としての

北海道

Hokkaido.pm#13

僕と北海道とPerl、それとMakefileも。 @azumakuniyuki

Page 24: 僕と北海道とPerl、それとMakefileも。

僕とPerl

Hokkaido.pm#13

僕と北海道とPerl、それとMakefileも。 @azumakuniyuki

Page 25: 僕と北海道とPerl、それとMakefileも。

- バウンスメールを構造化するモジュール- bounceHammerの後継として開発- CPANに置いてる(cpan.org)- Ruby版も作った(RubyGems.org)

25

http://libsisimai.org/

SisimaiHokkaido.pm#13

僕と北海道とPerl、それとMakefileも。 @azumakuniyuki

Page 26: 僕と北海道とPerl、それとMakefileも。

Why Sisimai?26

- 依存を減らしたい- 解析だけをしたい- 名前を短くしたい

Hokkaido.pm#13

僕と北海道とPerl、それとMakefileも。 @azumakuniyuki

Page 27: 僕と北海道とPerl、それとMakefileも。

Less Dependencies27

- Sisimaiは2つだけ依存している - Class::Accessor::Lite (無くてもなんとかなる、たぶん) - JSON (これは絶対要る) - あとはPerl 5.10.1以降のコアモジュール - Time::Pieceとか- インストール時間は短く(CIとかコンテナでは特に)- 依存先のメンテナンス(終了|放置)からの解放- 開発時間 < モジュールとしての存在期間- 開発人数 < モジュールを使うユーザ数

Hokkaido.pm#13

僕と北海道とPerl、それとMakefileも。 @azumakuniyuki

Page 28: 僕と北海道とPerl、それとMakefileも。

More Simple28

- 解析だけをしたい- bounceHammerは重厚長大 - WebUIは個人的になくても良い(運用スタッフ向け) - DB対応とかCUIとかいろいろ有った- ライブラリとして呼び出したい - use Sisimai;- バウンスメールを解析して構造化するだけの仕事 - Perlの配列リファレンス OR JSON文字列 - JSON化したテキスト

Hokkaido.pm#13

僕と北海道とPerl、それとMakefileも。 @azumakuniyuki

Page 29: 僕と北海道とPerl、それとMakefileも。

Short Name29

- use BounceHammer; 長い、名前が長い。 - ちょっと名前に飽きてきたのもある- use Sisimai; 短い、入力しやすい- bounceHammer version 4として開発開始した - 4 = 「し」 - なんかAPI的なカッコイイAcronymない? - MAI = Mail Analysing Interface - 4(し) + MAI = 姉妹(終い?) OR 獅子舞 - 獅子舞のほうが目出度い Shishimai > Sisimai 短い方

Hokkaido.pm#13

僕と北海道とPerl、それとMakefileも。 @azumakuniyuki

Page 30: 僕と北海道とPerl、それとMakefileも。

開発時間 < 稼働時間30

- 開発時間 < モジュールとしての存在期間・稼働時間- 開発速度を上げるために依存モジュールを増やさない派 - 極少人数開発やし - commitするのは僕だけやし - 少し頑張って実装する > モジュールをバンバン使う- 小さいモジュールなら依存してもいいかも? - 最新版で突然Moose依存になったりしたら?- 但しコアモジュールはじゃんじゃん使う・とにかく使う - 使いすぎて遅くなるようなケースは除いて

Hokkaido.pm#13

僕と北海道とPerl、それとMakefileも。 @azumakuniyuki

Page 31: 僕と北海道とPerl、それとMakefileも。

開発人数 < ユーザ数31

- 開発人数 < モジュールを使うユーザ数・ホスト数- 古い環境でも動くように(Perl 5.10.1)- 最新の環境でも動くように(Perl 5.24.0)- 自分が必要な機能だけを実装する - 要望が来たら検討 - いずれ自分が作りそうな機能なら実装 - そうでも無いなら却下(forkして・Plugin?) - モジュールの呼び出し側でやるべきことは実装しない - 解析したファイル名の保持・ファイルの削除とか

Hokkaido.pm#13

僕と北海道とPerl、それとMakefileも。 @azumakuniyuki

Page 32: 僕と北海道とPerl、それとMakefileも。

32

なるべく小さく、堅牢に。

Hokkaido.pm#13

僕と北海道とPerl、それとMakefileも。 @azumakuniyuki

Page 33: 僕と北海道とPerl、それとMakefileも。

それとMakefileも

Hokkaido.pm#13

僕と北海道とPerl、それとMakefileも。 @azumakuniyuki

Page 34: 僕と北海道とPerl、それとMakefileも。

p5-Sisimai/Makefile34

- 開発用のMakefileとして$ make test$ make author-test$ make push$ make fix-commit-messagegit commit --amend$ make/usr/bin/make git-statusgit status

Hokkaido.pm#13

僕と北海道とPerl、それとMakefileも。 @azumakuniyuki

Page 35: 僕と北海道とPerl、それとMakefileも。

p5-Sisimai/Makefile35

- ユーザ用のMakefileとして$ make cpanm$ make install-from-local$ make install-from-cpan

Hokkaido.pm#13

僕と北海道とPerl、それとMakefileも。 @azumakuniyuki

Page 36: 僕と北海道とPerl、それとMakefileも。

~/Makefile36

- SSH公開鍵の束を指定ホストへ送りつける$ make deploy-publickey SSHREMOTEHOST=10.2.2.2

- 細かい処理は~/.ssh/Makefileに書いてる.ssh $ make deploy-publickey

Hokkaido.pm#13

僕と北海道とPerl、それとMakefileも。 @azumakuniyuki

Page 37: 僕と北海道とPerl、それとMakefileも。

Page 38: 僕と北海道とPerl、それとMakefileも。

2017.3.4