Email is Slack
@azumakuniyuki
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
メールとコミュニケーションツール
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
自己紹介
@azumakuniyuki (東邦之)
株式会社Cubicroot (京都市)
2
- インフラエンジニア(ラック実装から構築・保守)
- *BSD, Linux, 古くはSolaris, SunOS
- ネットワークの設計・サーバの構築と保守
- インフラのコード化支援(Ansible,Serverspec)
- 数年前からプログラマー
- 主にPerl, RubyでSMTP関連の開発
- たまにサイトの開発も(バックエンド)
https://nyaan.jp/
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
取材をうけた
3
https://employment.en-japan.com/engineerhub/entry/2017/08/23/110000
去年の八
月一日に
高瀬川で
ニャーン
4NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
Email is Slack
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
6
``UINXは「OS」ではない。
それは「考え方」である。''
原書は
1995年
翻訳は
2001年
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
7
重要な九つの定理
1. Small Is Beautiful
2. 一つのプログラムには一つのことをうまくやらせる
3. できるだけ早く試作する
4. 効率より移植性を優先する
5. 数値データはASCIIフラットファイルに保存する
6. ソフトウェアを梃子として使う
7. シェルスクリプトによって梃子の効果と移植性を高める
8. 過度の対話的インターフェイスを避ける
9. 全てのプログラムをフィルタとして設計する
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
8
10の小定理
1. 好みに応じて自分で環境を調整できるようにする
2. オペレーティングシステムのカーネルを小さく軽くする
3. 小文字を使い、短く
4. 木を守る
5. 沈黙は金
6. 同時に考える
7. 部分の総和は全体より大きい
8. 90パーセントの解を目指す
9. 劣る方が優れている
10. 階層的に考える
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
9
メールは
滅びるのか?
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
10
メールに関する統計
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
11
https://www.statista.com/statistics/547520/e-mail-provider-ranking-consumer-usa/
85%
93%
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
12
https://www.statista.com/statistics/547531/e-mail-provider-ranking-consumer-usa-age/
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
13
https://www.statista.com/statistics/432390/active-gmail-users/
2015
May
2012
Jun
10億
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
14
https://www.statista.com/statistics/253790/number-of-e-mail-users-in-the-united-states/
2.3億
In 2015, 232.8 million internet
users sent an e-mail at least once
per month
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
15
メール以外に
関する統計
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
16
https://www.statista.com/statistics/327292/number-of-monthly-active-line-app-users/
2.2億
In October 2014, LINE had also
reported 560 million registered
users worldwide.
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
17
https://www.statista.com/statistics/417295/facebook-messenger-monthly-active-users/
13億
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
18
https://www.statista.com/statistics/255778/number-of-active-wechat-messenger-accounts/
9.6億
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
19
https://www.statista.com/statistics/282087/number-of-monthly-active-twitter-users/
3.3億
As of the first quarter of 2018,
Twitter averaged at 336 million
monthly active users
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
20
https://www.statista.com/statistics/253577/number-of-monthly-active-instagram-users/
10億
As of June 2018,
Instagram had
reached 1 billion
monthly active
users.
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
21
https://www.businessinsider.jp/post-107362
参考
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
22
https://www.statista.com/chart/6643/slack-hits-4-million-active-users/
500万
Daily
参考
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
23
1 Billion Monthly
Active Users in
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
24
メールは
滅びるのか?
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
25
そうでもない
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
26
滅びない
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
27
滅べない
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
28
滅せない
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
29
そやけど
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
30
平家は滅びた
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
31
`` 盛者必衰の
理をあらはす ''
平家物語
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
32
`` 猛き者も
遂には亡びぬ ''
平家物語
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
33
`` 偏に
風の前の
塵に同じ ''
平家物語
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
34
https://www.statista.com/statistics/462172/usa-email-usage-development/
In 2015, the number of monthly
e-mail users
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
35
`` 滅せぬものの
あるべきか ''
幸若舞・敦盛
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
36
https://www.statista.com/statistics/274978/internet-messaging-platforms-used-in-great-britain-by-lifestage/
Both
Mostly email
Mostly SNS
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
37
``劣る方が優れている''
小定理 9
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
38
10の小定理
1. 好みに応じて自分で環境を調整できるようにする
2. オペレーティングシステムのカーネルを小さく軽くする
3. 小文字を使い、短く
4. 木を守る
5. 沈黙は金
6. 同時に考える
7. 部分の総和は全体より大きい
8. 90パーセントの解を目指す
9. 劣る方が優れている
10. 階層的に考える
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
39
真正性
機密性
身分証
電話番号
メール
アドレス
冗長性
Email
Address
As
Unique
Identifier
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
40
真正性
機密性
身分証
電話番号
メール
アドレス
冗長性
- 免許証・パスポート・マイナンバー・保険証
- 原則として其々一つしか持てない
- 気軽に他人へ開示しない
- PayPalの本人確認で要る
- 主にインターネット外で必要
- 携帯電話番号
- 複数個の番号を持てるがコストがかかる
- ある程度親しい人に開示する
- 信頼できるサービスなら登録するかも
- 二段階認証のコードが送られてくる
- 会社・学校・フリー・携帯電話・プロバイダ他
- それらを維持するコストは殆どかからない
- 追加・変更・廃止も容易
- WEBサービスのユーザ名になったり
- インターネットの利用においてほぼ必須
ゆるい
ID
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
41
``劣る方が優れている''
小定理 9
``一方、UNIX愛好者は、劣るものの生存能
力を指摘し、「劣る方が優れている」と主張
する。VHSビデオフォーマットを見てみろと
いうわけだ。''
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
42
Email is Slack
Bounce Mail
is also
Slack
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
44
いろいろ雑
とにかく雑
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
45
多種多様なフォーマットMicrosoft
Exchange Server
qmail
Sendmail
OpenSMTPD
Exim
Postfix
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
46
自由形式
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
47
本文の始まり
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
48
挨拶も
言葉だけの詫びも
要らない
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
49
「誠意って何かね?」
北の国から'92 巣立ち
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
50
RFC 3464
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
51
せめて
RFC 3464
に従ってほしい
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
52
三つのシステム
人間による
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
54
`` 人間は
三つのシステム
しか作れない ''
UNIXという考え方
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
55
`` 追い詰められた
人間が第一の
システムを創る ''
UNIXという考え方
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
56
Sisimaiに至る第一のシステム
- 前職(2003-2008)で開発したバウンス解析スクリプト
- 配信遅延がひどかった(10万通とか)
- 「どう処理します?」「消しといて」「!?」
- 最低限のバウンス処理すらしてなかった
- 放置すると売り上げに影響する
- 運営部署から僕が追い詰められる(追い詰められた)
- 「正しく」やっている時間などない
- Perl製・6000行ぐらい・1ファイル・Sendmail専用
- 今思えば酷いコードやった(プログラミングが苦手で...)
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
57
`` 第二のシステムは
委員会が設計する ''
UNIXという考え方
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
58
Sisimaiに至る第二のシステム
- 現職(2008-)で開発したbounceHammer
- 広告としての位置付け・オープンソース
- 2016年2月29日で公開終了
- bouncehammer.jp
- まだ稼働しているところが結構ある
- 把握してないとこから問い合わせが来る
- Sisimaiへのリプレース案件
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
59
`` 第二のシステムは
贅肉がつき、遅い ''
UNIXという考え方
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
60
肥大化した第二のシステム
- 多機能と肥大化
- 自分にとって必要ではない機能が多くあった
- 開発にあたってPerlを1から勉強し直した
- コードが書けるようになってきた
- 「あれも書きたい」「これも書きたい」
- なんでも釘に見える的な(bounceHammerだけに)
- 解析以外の機能
- 解析結果のログ集約
- データベース対応(PostgreSQL, MySQL, SQLite)
- WebUI(ブラウザで検索用)
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
61
UNIX哲学に反したシステム
Small is Beautiful
* 小さくない(Sisimaiに比べて長く複雑なコード)
* 18000行ぐらい
一つのプログラムには一つのことをうまくやらせる
* プログラムが一つどころではなかった
* 全体を見れば「解析」だけをするべきやった
ソフトウェアを梃子として使う
* そもそもモジュールとして使いにくかった
小文字を使い、短く
* 名前が長い(Sisimaiと比べて)
定理 1
小定理 3
定理 2
定理 6
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
62
直面して理解した問題点
- 利用者の立場で「モジュールとして使いにくい」
- 依存モジュールがメンテされなくなった...
- 警告がバンバンでる
- インストール時間が長くて面倒でしばしば失敗する
- 昔「インストールって構築時の一回だけやん」
- 今「コンテナとか作っては捨て作っては捨て」
- 実際の案件ではDBは既にある物に合わせるから不要
- WebUIもサイト側管理ページに組み込むから不要
- 解析以外の機能が足枷となる
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
63
`` 第三のシステムは
第二のシステムで
「火傷」
した人が作る ''
UNIXという考え方
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
64
UNIX哲学に
即した
ライブラリを
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
65
メールを送った後
http://libsisimai.org/
@libsisimai
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
66
Small is Beautiful
- 先代の半分ぐらい(8600行/Perl版)
- Ruby版も小さく(12000行ぐらい)
- 小さく堅牢に
- 機能もなるべく小さく
- 小さいは正義
定理1
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
67
一つのことをうまくやらせる
- バウンスメール解析以外のことはしない
- INPUT = バウンスメール全文
- OUTPUT = データ構造(解析結果)
- Perl OR Rubyのデータ(配列)
- JSON文字列(シーケンス)
- ライブラリとしての道を踏み外さぬよう
- 名前で縛る
- LIBSISIMAI.ORG
- libcとかlibz的なアレ
定理2
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
68
効率より移植性を優先する?
- ``Shell ScriptはCより移植性が高い''
- ``C言語で書き直す誘惑に負けない''
- ``次の年のマシンならもっと速く動く''
- 上位インスタンスならもっと速い
- 移植性・コスト・速度を天秤に乗せる
- 自分一人が1日一回だけ実行
- 10万人のユーザが10万回/日実行
- 効率化・高速化の努力はしている
- 速いは正義
定理4
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
69
ソフトウェアを梃子として使う
- ``独自技術症候群を避ける''
- 既存ライブラリは精度不足やった
- 過度に依存モジュールは増やさない
- JSON(Perl), Oj, JrJackson(Ruby)
- Class::Accessor::Lite(Perl)
- 保守されなくなったら取り込める量で
- コアモジュールに寄せて実装
- 実装時間 < 稼働時間
定理6
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
70
90パーセントの解を目指す
- ロングテールを意識(でも全部は無理)
- OSSなMTAにはなるべく対応
- ユーザの多いESPにもなるべく対応
- そうでもないMTA/ESPは放置
- パッチ or P-Rがきたら対応するけど
小定理8
`` 90パーセントの解とは、難しい部分を故意に無視
することを意味している。難しい部分とは、問題
の中で高くつく部分、時間のかかる部分、実装し
にくい部分だ。 ''
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
71
そういえば
に入るらしい
のパッケージ
libsisimai-perl
NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん
Email is Slack @azumakuniyuki
72
めでたい
終

Email is Slack

  • 1.
    Email is Slack @azumakuniyuki NSEG勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん メールとコミュニケーションツール
  • 2.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 自己紹介 @azumakuniyuki (東邦之) 株式会社Cubicroot (京都市) 2 - インフラエンジニア(ラック実装から構築・保守) - *BSD, Linux, 古くはSolaris, SunOS - ネットワークの設計・サーバの構築と保守 - インフラのコード化支援(Ansible,Serverspec) - 数年前からプログラマー - 主にPerl, RubyでSMTP関連の開発 - たまにサイトの開発も(バックエンド) https://nyaan.jp/
  • 3.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 取材をうけた 3 https://employment.en-japan.com/engineerhub/entry/2017/08/23/110000 去年の八 月一日に 高瀬川で
  • 4.
    ニャーン 4NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki
  • 5.
    Email is Slack NSEG勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki
  • 6.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 6 ``UINXは「OS」ではない。 それは「考え方」である。'' 原書は 1995年 翻訳は 2001年
  • 7.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 7 重要な九つの定理 1. Small Is Beautiful 2. 一つのプログラムには一つのことをうまくやらせる 3. できるだけ早く試作する 4. 効率より移植性を優先する 5. 数値データはASCIIフラットファイルに保存する 6. ソフトウェアを梃子として使う 7. シェルスクリプトによって梃子の効果と移植性を高める 8. 過度の対話的インターフェイスを避ける 9. 全てのプログラムをフィルタとして設計する
  • 8.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 8 10の小定理 1. 好みに応じて自分で環境を調整できるようにする 2. オペレーティングシステムのカーネルを小さく軽くする 3. 小文字を使い、短く 4. 木を守る 5. 沈黙は金 6. 同時に考える 7. 部分の総和は全体より大きい 8. 90パーセントの解を目指す 9. 劣る方が優れている 10. 階層的に考える
  • 9.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 9 メールは 滅びるのか?
  • 10.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 10 メールに関する統計
  • 11.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 11 https://www.statista.com/statistics/547520/e-mail-provider-ranking-consumer-usa/ 85% 93%
  • 12.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 12 https://www.statista.com/statistics/547531/e-mail-provider-ranking-consumer-usa-age/
  • 13.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 13 https://www.statista.com/statistics/432390/active-gmail-users/ 2015 May 2012 Jun 10億
  • 14.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 14 https://www.statista.com/statistics/253790/number-of-e-mail-users-in-the-united-states/ 2.3億 In 2015, 232.8 million internet users sent an e-mail at least once per month
  • 15.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 15 メール以外に 関する統計
  • 16.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 16 https://www.statista.com/statistics/327292/number-of-monthly-active-line-app-users/ 2.2億 In October 2014, LINE had also reported 560 million registered users worldwide.
  • 17.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 17 https://www.statista.com/statistics/417295/facebook-messenger-monthly-active-users/ 13億
  • 18.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 18 https://www.statista.com/statistics/255778/number-of-active-wechat-messenger-accounts/ 9.6億
  • 19.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 19 https://www.statista.com/statistics/282087/number-of-monthly-active-twitter-users/ 3.3億 As of the first quarter of 2018, Twitter averaged at 336 million monthly active users
  • 20.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 20 https://www.statista.com/statistics/253577/number-of-monthly-active-instagram-users/ 10億 As of June 2018, Instagram had reached 1 billion monthly active users.
  • 21.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 21 https://www.businessinsider.jp/post-107362 参考
  • 22.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 22 https://www.statista.com/chart/6643/slack-hits-4-million-active-users/ 500万 Daily 参考
  • 23.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 23 1 Billion Monthly Active Users in
  • 24.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 24 メールは 滅びるのか?
  • 25.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 25 そうでもない
  • 26.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 26 滅びない
  • 27.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 27 滅べない
  • 28.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 28 滅せない
  • 29.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 29 そやけど
  • 30.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 30 平家は滅びた
  • 31.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 31 `` 盛者必衰の 理をあらはす '' 平家物語
  • 32.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 32 `` 猛き者も 遂には亡びぬ '' 平家物語
  • 33.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 33 `` 偏に 風の前の 塵に同じ '' 平家物語
  • 34.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 34 https://www.statista.com/statistics/462172/usa-email-usage-development/ In 2015, the number of monthly e-mail users
  • 35.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 35 `` 滅せぬものの あるべきか '' 幸若舞・敦盛
  • 36.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 36 https://www.statista.com/statistics/274978/internet-messaging-platforms-used-in-great-britain-by-lifestage/ Both Mostly email Mostly SNS
  • 37.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 37 ``劣る方が優れている'' 小定理 9
  • 38.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 38 10の小定理 1. 好みに応じて自分で環境を調整できるようにする 2. オペレーティングシステムのカーネルを小さく軽くする 3. 小文字を使い、短く 4. 木を守る 5. 沈黙は金 6. 同時に考える 7. 部分の総和は全体より大きい 8. 90パーセントの解を目指す 9. 劣る方が優れている 10. 階層的に考える
  • 39.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 39 真正性 機密性 身分証 電話番号 メール アドレス 冗長性 Email Address As Unique Identifier
  • 40.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 40 真正性 機密性 身分証 電話番号 メール アドレス 冗長性 - 免許証・パスポート・マイナンバー・保険証 - 原則として其々一つしか持てない - 気軽に他人へ開示しない - PayPalの本人確認で要る - 主にインターネット外で必要 - 携帯電話番号 - 複数個の番号を持てるがコストがかかる - ある程度親しい人に開示する - 信頼できるサービスなら登録するかも - 二段階認証のコードが送られてくる - 会社・学校・フリー・携帯電話・プロバイダ他 - それらを維持するコストは殆どかからない - 追加・変更・廃止も容易 - WEBサービスのユーザ名になったり - インターネットの利用においてほぼ必須 ゆるい ID
  • 41.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 41 ``劣る方が優れている'' 小定理 9 ``一方、UNIX愛好者は、劣るものの生存能 力を指摘し、「劣る方が優れている」と主張 する。VHSビデオフォーマットを見てみろと いうわけだ。''
  • 42.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 42 Email is Slack
  • 43.
    Bounce Mail is also Slack NSEG勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki
  • 44.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 44 いろいろ雑 とにかく雑
  • 45.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 45 多種多様なフォーマットMicrosoft Exchange Server qmail Sendmail OpenSMTPD Exim Postfix
  • 46.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 46 自由形式
  • 47.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 47 本文の始まり
  • 48.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 48 挨拶も 言葉だけの詫びも 要らない
  • 49.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 49 「誠意って何かね?」 北の国から'92 巣立ち
  • 50.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 50 RFC 3464
  • 51.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 51 せめて RFC 3464 に従ってほしい
  • 52.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 52
  • 53.
    三つのシステム 人間による NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki
  • 54.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 54 `` 人間は 三つのシステム しか作れない '' UNIXという考え方
  • 55.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 55 `` 追い詰められた 人間が第一の システムを創る '' UNIXという考え方
  • 56.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 56 Sisimaiに至る第一のシステム - 前職(2003-2008)で開発したバウンス解析スクリプト - 配信遅延がひどかった(10万通とか) - 「どう処理します?」「消しといて」「!?」 - 最低限のバウンス処理すらしてなかった - 放置すると売り上げに影響する - 運営部署から僕が追い詰められる(追い詰められた) - 「正しく」やっている時間などない - Perl製・6000行ぐらい・1ファイル・Sendmail専用 - 今思えば酷いコードやった(プログラミングが苦手で...)
  • 57.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 57 `` 第二のシステムは 委員会が設計する '' UNIXという考え方
  • 58.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 58 Sisimaiに至る第二のシステム - 現職(2008-)で開発したbounceHammer - 広告としての位置付け・オープンソース - 2016年2月29日で公開終了 - bouncehammer.jp - まだ稼働しているところが結構ある - 把握してないとこから問い合わせが来る - Sisimaiへのリプレース案件
  • 59.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 59 `` 第二のシステムは 贅肉がつき、遅い '' UNIXという考え方
  • 60.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 60 肥大化した第二のシステム - 多機能と肥大化 - 自分にとって必要ではない機能が多くあった - 開発にあたってPerlを1から勉強し直した - コードが書けるようになってきた - 「あれも書きたい」「これも書きたい」 - なんでも釘に見える的な(bounceHammerだけに) - 解析以外の機能 - 解析結果のログ集約 - データベース対応(PostgreSQL, MySQL, SQLite) - WebUI(ブラウザで検索用)
  • 61.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 61 UNIX哲学に反したシステム Small is Beautiful * 小さくない(Sisimaiに比べて長く複雑なコード) * 18000行ぐらい 一つのプログラムには一つのことをうまくやらせる * プログラムが一つどころではなかった * 全体を見れば「解析」だけをするべきやった ソフトウェアを梃子として使う * そもそもモジュールとして使いにくかった 小文字を使い、短く * 名前が長い(Sisimaiと比べて) 定理 1 小定理 3 定理 2 定理 6
  • 62.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 62 直面して理解した問題点 - 利用者の立場で「モジュールとして使いにくい」 - 依存モジュールがメンテされなくなった... - 警告がバンバンでる - インストール時間が長くて面倒でしばしば失敗する - 昔「インストールって構築時の一回だけやん」 - 今「コンテナとか作っては捨て作っては捨て」 - 実際の案件ではDBは既にある物に合わせるから不要 - WebUIもサイト側管理ページに組み込むから不要 - 解析以外の機能が足枷となる
  • 63.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 63 `` 第三のシステムは 第二のシステムで 「火傷」 した人が作る '' UNIXという考え方
  • 64.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 64 UNIX哲学に 即した ライブラリを
  • 65.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 65 メールを送った後 http://libsisimai.org/ @libsisimai
  • 66.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 66 Small is Beautiful - 先代の半分ぐらい(8600行/Perl版) - Ruby版も小さく(12000行ぐらい) - 小さく堅牢に - 機能もなるべく小さく - 小さいは正義 定理1
  • 67.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 67 一つのことをうまくやらせる - バウンスメール解析以外のことはしない - INPUT = バウンスメール全文 - OUTPUT = データ構造(解析結果) - Perl OR Rubyのデータ(配列) - JSON文字列(シーケンス) - ライブラリとしての道を踏み外さぬよう - 名前で縛る - LIBSISIMAI.ORG - libcとかlibz的なアレ 定理2
  • 68.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 68 効率より移植性を優先する? - ``Shell ScriptはCより移植性が高い'' - ``C言語で書き直す誘惑に負けない'' - ``次の年のマシンならもっと速く動く'' - 上位インスタンスならもっと速い - 移植性・コスト・速度を天秤に乗せる - 自分一人が1日一回だけ実行 - 10万人のユーザが10万回/日実行 - 効率化・高速化の努力はしている - 速いは正義 定理4
  • 69.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 69 ソフトウェアを梃子として使う - ``独自技術症候群を避ける'' - 既存ライブラリは精度不足やった - 過度に依存モジュールは増やさない - JSON(Perl), Oj, JrJackson(Ruby) - Class::Accessor::Lite(Perl) - 保守されなくなったら取り込める量で - コアモジュールに寄せて実装 - 実装時間 < 稼働時間 定理6
  • 70.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 70 90パーセントの解を目指す - ロングテールを意識(でも全部は無理) - OSSなMTAにはなるべく対応 - ユーザの多いESPにもなるべく対応 - そうでもないMTA/ESPは放置 - パッチ or P-Rがきたら対応するけど 小定理8 `` 90パーセントの解とは、難しい部分を故意に無視 することを意味している。難しい部分とは、問題 の中で高くつく部分、時間のかかる部分、実装し にくい部分だ。 ''
  • 71.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 71 そういえば に入るらしい のパッケージ libsisimai-perl
  • 72.
    NSEG 勉強会 #101| 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 72 めでたい
  • 73.