僕と北海道とPerl
それとMakefileも
@azumakuniyuki
Hokkaido.pm 第13回 2017/02/18(土) 札幌市産業振興センター
自己紹介
@azumakuniyuki (東邦之)
株式会社Cubicroot
2
- インフラエンジニア(ラック実装から構築・保守)
- *BSD, Linux, 古くはSolaris, SunOS
- ネットワークの設計・サーバの構築と保守
- インフラのコード化支援(Ansible,Serverspec)
- 数年前からプログラマー
- 主にPerl, Rubyも
- サイトの開発(バックエンド)
- メール関連の開発
Hokkaido.pm#13
僕と北海道とPerl、それとMakefileも。 @azumakuniyuki
ネコ派
3Hokkaido.pm#13
僕と北海道とPerl、それとMakefileも。 @azumakuniyuki
僕と北海道
Hokkaido.pm#13
僕と北海道とPerl、それとMakefileも。 @azumakuniyuki
5
北海道
大好き
Hokkaido.pm#13
僕と北海道とPerl、それとMakefileも。 @azumakuniyuki
6
9年ぶり
18回目
Hokkaido.pm#13
僕と北海道とPerl、それとMakefileも。 @azumakuniyuki
僕と北海道(幼少期)
バター飴と六花亭のチョコ
7
- 北海道の親戚からよく貰う
- 会ったこと無い親戚
- たぶん帯広
- 布っぽい袋に入ってるやつ
- 六花亭のはホワイトチョコ
- 虫歯大量生産
http://www.myseclub.com/archives/cat5/
Hokkaido.pm#13
僕と北海道とPerl、それとMakefileも。 @azumakuniyuki
僕と北海道(小学生)
北海道の形をしたキーホルダー
8
- 金属のメタル
- 親に買ってもらった
- 「なんで北海道?」
- 「分らんけど北海道がいい」
- 北海道以外は持ってない
- 今は無い路線が書いてる
- 興浜[南北]線
- 天北線
- まだ実家にあるはず
http://www.geocities.jp/keyholdertaro/map/L02-01-01map.htm
Hokkaido.pm#13
僕と北海道とPerl、それとMakefileも。 @azumakuniyuki
僕と北海道(大学生)
セイコーマートでアルバイト
9
- 1990年代後半ちょいぐらい?
- 京都にもあった
- 家の近所やし
- 元は近所の酒屋さん
- 他、滋賀・栃木・茨城?
- 正しい略称?
- セイコマ? セコマ?
http://www.yamamototetsu.com/entry/seicomart
Hokkaido.pm#13
僕と北海道とPerl、それとMakefileも。 @azumakuniyuki
僕と北海道(大学生)
ポイントカード持ってる
10
- 北海道で作った
- 住所が北海道以外でも作れた
- 今は違うデザインらしい?
- 前回(2008年)は使えた
- 果たして今回(2017年)は...
https://twitter.com/azumakuniyuki/status/832518411238273024
Hokkaido.pm#13
僕と北海道とPerl、それとMakefileも。 @azumakuniyuki
僕と北海道(大学生)
自転車で北海道へ行った
11
- 友達と日本海沿いを北上
- 国道8号線→7号線
- 必ず銭湯のある町で野宿
- 夏やし臭いし風呂入りたい
- 駅とかバス停とか歩道とか
- 青森港→苫小牧港
- 確か10日目で北海道上陸
- 9日目やったかも?
http://4travel.jp/travelogue/11055053
Hokkaido.pm#13
僕と北海道とPerl、それとMakefileも。 @azumakuniyuki
僕と北海道(大学生〜)
思いつきで北海道へ行く
12
- 「寿司食べたいな」
- 「寿司と言えば小樽やな」
- 「よし行くか!」「?」
- 金曜日の夜に舞鶴港から乗船
- 日曜の朝4時に小樽に到着
- (小樽)ほっけ定食・寿司
- (札幌)ビール園とラーメン
- 出航2分前に小樽港に戻る
http://r.gnavi.co.jp/area/aream5602/sushi/kods00067/rs/
Hokkaido.pm#13
僕と北海道とPerl、それとMakefileも。 @azumakuniyuki
僕と北海道(大学生〜)
稚内北星学園大学
13
- 当時は短期大学やった
- 「最先端は最北端」
- サマースクール(8月)
- 毎年夏に北海道へ行く理由
- UNIX, Network, Java
- 学割があった
- 今持つ技術の基礎を学ぶ
- 楽しい夏の思い出
http://telemail.jp/shingaku/detail/detail.php?name=wakhok
Hokkaido.pm#13
僕と北海道とPerl、それとMakefileも。 @azumakuniyuki
14
技術の故郷
北海道
Hokkaido.pm#13
僕と北海道とPerl、それとMakefileも。 @azumakuniyuki
僕と北海道(社会人)
学生時代ほど頻繁に行けない
15
- 船で行く
- (舞鶴|敦賀|新潟|秋田)港
- 最長で3ヶ月ぐらい滞在
- 昼は蕎麦を食べる
- 夜は酒場・温泉・銭湯
- イベントがあれば行く
- 犬ぞりレース(稚内)
- 砂金堀り大会(浜頓別)
http://blog.azumakuniyuki.org/2008/03/soba-shop-in-residential-area.html
Hokkaido.pm#13
僕と北海道とPerl、それとMakefileも。 @azumakuniyuki
僕と北海道(社会人)
思いつきで北海道へ行く
16
- 仕事疲れた、北海道行きたい
- 今夜は船が無いのか
- 「あしたの新潟便で行くか」
- 翌週は有給で
- 退職して有給消化中
- 友達が北海道に行ってる
- 「よし、今から行く」
- 「現地集合で」
- ほぼ手ぶら・服は現地調達でhttp://blog.azumakuniyuki.org/2008/03/floating-ice.html
Hokkaido.pm#13
僕と北海道とPerl、それとMakefileも。 @azumakuniyuki
僕と北海道(行き先)
端っこの方が好みっぽい
17
- 稚内(タコしゃぶ・童夢温泉)
- 猿払(牛乳を飲む)
- 浜頓別(定宿・ウィング温泉)
- 北見,網走(玉葱美味い・酒場)
- 根室(銭湯・鉄砲汁・花咲蟹)
- 釧路(銭湯・和商市場・酒場)
- 襟裳岬(朝6時開店・ラーメン)
- 函館(温泉・寿司・イカ・酒場)
http://blog.azumakuniyuki.org/2008/03/ramen-shop-in-statation.html
Hokkaido.pm#13
僕と北海道とPerl、それとMakefileも。 @azumakuniyuki
僕と北海道(行き先)
端っこ以外も行くし好き
18
- 音威子府(黒い蕎麦)
- 幌加内(寒い・蕎麦)
- 旭川(蕎麦・酒場)
- 芦別(美人の湯・宿が安い)
- 鹿追,然別(蕎麦・山奥の温泉)
- 新得(蕎麦・秋にまた来る)
- 小樽(三角市場・ほっけ定食)
- 明日行く
http://blog.azumakuniyuki.org/2008/03/soba-at-nakasatsunai.html
Hokkaido.pm#13
僕と北海道とPerl、それとMakefileも。 @azumakuniyuki
僕と北海道(道の駅)
マグネットを集めだした
19
- カントリーサインのあれ
- 道の駅に売ってた
- 道の駅がない町のは存在しない?
- 60枚ぐらい持ってる
- 212市町村のうち200は行ってる
- 平成の大合併で消えた自治体
- 椴法華村(函館市(広い))
- 女満別町(大空町)
- 他?(合併以降の知識は未更新)
https://twitter.com/azumakuniyuki
Hokkaido.pm#13
僕と北海道とPerl、それとMakefileも。 @azumakuniyuki
僕と北海道(くるま)
今の車は北海道(札幌)出身
20
- 車屋で「札幌」ナンバーを付けてた
- 北海道出身の車やし即決で購入
- 走行距離1.3万キロの中古で買った
- 北海道クライスラー札幌美園が実家
- 整備記録とかに書いてた
- 2008年に里帰りした(車に同伴)
- 実家(車の)でオイル交換した
- 産業振興センターからわりと近い?
- 現在16.5万キロhttps://twitter.com/azumakuniyuki
Hokkaido.pm#13
僕と北海道とPerl、それとMakefileも。 @azumakuniyuki
僕と北海道(移住?)
実は移住を考えていた
21
- 30歳になるまでに移住?
- 食物は最高に美味い!
- 男山(旭川・男山酒造)が好き
- そやけど30歳直前で断念
- 方向音痴やし
- 命の危険?季節によっては
- 熊は怖い
- 「北海道へ行く」楽しみ
http://blog.azumakuniyuki.org/2008/04/my-birthday.html
Hokkaido.pm#13
僕と北海道とPerl、それとMakefileも。 @azumakuniyuki
22
北海道に住んだら
北海道へ行けない
Hokkaido.pm#13
僕と北海道とPerl、それとMakefileも。 @azumakuniyuki
23
非日常としての
北海道
Hokkaido.pm#13
僕と北海道とPerl、それとMakefileも。 @azumakuniyuki
僕とPerl
Hokkaido.pm#13
僕と北海道とPerl、それとMakefileも。 @azumakuniyuki
- バウンスメールを構造化するモジュール
- bounceHammerの後継として開発
- CPANに置いてる(cpan.org)
- Ruby版も作った(RubyGems.org)
25
http://libsisimai.org/
Sisimai
Hokkaido.pm#13
僕と北海道とPerl、それとMakefileも。 @azumakuniyuki
Why Sisimai?
26
- 依存を減らしたい
- 解析だけをしたい
- 名前を短くしたい
Hokkaido.pm#13
僕と北海道とPerl、それとMakefileも。 @azumakuniyuki
Less Dependencies
27
- Sisimaiは2つだけ依存している
- Class::Accessor::Lite (無くてもなんとかなる、たぶん)
- JSON (これは絶対要る)
- あとはPerl 5.10.1以降のコアモジュール
- Time::Pieceとか
- インストール時間は短く(CIとかコンテナでは特に)
- 依存先のメンテナンス(終了|放置)からの解放
- 開発時間 < モジュールとしての存在期間
- 開発人数 < モジュールを使うユーザ数
Hokkaido.pm#13
僕と北海道とPerl、それとMakefileも。 @azumakuniyuki
More Simple
28
- 解析だけをしたい
- bounceHammerは重厚長大
- WebUIは個人的になくても良い(運用スタッフ向け)
- DB対応とかCUIとかいろいろ有った
- ライブラリとして呼び出したい
- use Sisimai;
- バウンスメールを解析して構造化するだけの仕事
- Perlの配列リファレンス OR JSON文字列
- JSON化したテキスト
Hokkaido.pm#13
僕と北海道とPerl、それとMakefileも。 @azumakuniyuki
Short Name
29
- 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
開発時間 < 稼働時間
30
- 開発時間 < モジュールとしての存在期間・稼働時間
- 開発速度を上げるために依存モジュールを増やさない派
- 極少人数開発やし
- commitするのは僕だけやし
- 少し頑張って実装する > モジュールをバンバン使う
- 小さいモジュールなら依存してもいいかも?
- 最新版で突然Moose依存になったりしたら?
- 但しコアモジュールはじゃんじゃん使う・とにかく使う
- 使いすぎて遅くなるようなケースは除いて
Hokkaido.pm#13
僕と北海道とPerl、それとMakefileも。 @azumakuniyuki
開発人数 < ユーザ数
31
- 開発人数 < モジュールを使うユーザ数・ホスト数
- 古い環境でも動くように(Perl 5.10.1)
- 最新の環境でも動くように(Perl 5.24.0)
- 自分が必要な機能だけを実装する
- 要望が来たら検討
- いずれ自分が作りそうな機能なら実装
- そうでも無いなら却下(forkして・Plugin?)
- モジュールの呼び出し側でやるべきことは実装しない
- 解析したファイル名の保持・ファイルの削除とか
Hokkaido.pm#13
僕と北海道とPerl、それとMakefileも。 @azumakuniyuki
32
なるべく
小さく、
堅牢に。
Hokkaido.pm#13
僕と北海道とPerl、それとMakefileも。 @azumakuniyuki
それとMakefileも
Hokkaido.pm#13
僕と北海道とPerl、それとMakefileも。 @azumakuniyuki
p5-Sisimai/Makefile
34
- 開発用のMakefileとして
$ make test
$ make author-test
$ make push
$ make fix-commit-message
git commit --amend
$ make
/usr/bin/make git-status
git status
Hokkaido.pm#13
僕と北海道とPerl、それとMakefileも。 @azumakuniyuki
p5-Sisimai/Makefile
35
- ユーザ用のMakefileとして
$ make cpanm
$ make install-from-local
$ make install-from-cpan
Hokkaido.pm#13
僕と北海道とPerl、それとMakefileも。 @azumakuniyuki
~/Makefile
36
- SSH公開鍵の束を指定ホストへ送りつける
$ make deploy-publickey SSHREMOTEHOST=10.2.2.2
- 細かい処理は~/.ssh/Makefileに書いてる
.ssh $ make deploy-publickey
Hokkaido.pm#13
僕と北海道とPerl、それとMakefileも。 @azumakuniyuki
終
2017.3.4

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