Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Email is Slack

574 views

Published on

NSEG勉強会101の発表資料

Published in: Software
  • Be the first to comment

  • Be the first to like this

Email is Slack

  1. 1. Email is Slack @azumakuniyuki NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん メールとコミュニケーションツール
  2. 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. 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. 4. ニャーン 4NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki
  5. 5. Email is Slack NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki
  6. 6. NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 6 ``UINXは「OS」ではない。 それは「考え方」である。'' 原書は 1995年 翻訳は 2001年
  7. 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. 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. 9. NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 9 メールは 滅びるのか?
  10. 10. NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 10 メールに関する統計
  11. 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. 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. 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. 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. 15. NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 15 メール以外に 関する統計
  16. 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. 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. 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. 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. 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. 21. NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 21 https://www.businessinsider.jp/post-107362 参考
  22. 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. 23. NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 23 1 Billion Monthly Active Users in
  24. 24. NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 24 メールは 滅びるのか?
  25. 25. NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 25 そうでもない
  26. 26. NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 26 滅びない
  27. 27. NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 27 滅べない
  28. 28. NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 28 滅せない
  29. 29. NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 29 そやけど
  30. 30. NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 30 平家は滅びた
  31. 31. NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 31 `` 盛者必衰の 理をあらはす '' 平家物語
  32. 32. NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 32 `` 猛き者も 遂には亡びぬ '' 平家物語
  33. 33. NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 33 `` 偏に 風の前の 塵に同じ '' 平家物語
  34. 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. 35. NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 35 `` 滅せぬものの あるべきか '' 幸若舞・敦盛
  36. 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. 37. NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 37 ``劣る方が優れている'' 小定理 9
  38. 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. 39. NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 39 真正性 機密性 身分証 電話番号 メール アドレス 冗長性 Email Address As Unique Identifier
  40. 40. NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 40 真正性 機密性 身分証 電話番号 メール アドレス 冗長性 - 免許証・パスポート・マイナンバー・保険証 - 原則として其々一つしか持てない - 気軽に他人へ開示しない - PayPalの本人確認で要る - 主にインターネット外で必要 - 携帯電話番号 - 複数個の番号を持てるがコストがかかる - ある程度親しい人に開示する - 信頼できるサービスなら登録するかも - 二段階認証のコードが送られてくる - 会社・学校・フリー・携帯電話・プロバイダ他 - それらを維持するコストは殆どかからない - 追加・変更・廃止も容易 - WEBサービスのユーザ名になったり - インターネットの利用においてほぼ必須 ゆるい ID
  41. 41. NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 41 ``劣る方が優れている'' 小定理 9 ``一方、UNIX愛好者は、劣るものの生存能 力を指摘し、「劣る方が優れている」と主張 する。VHSビデオフォーマットを見てみろと いうわけだ。''
  42. 42. NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 42 Email is Slack
  43. 43. Bounce Mail is also Slack NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki
  44. 44. NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 44 いろいろ雑 とにかく雑
  45. 45. NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 45 多種多様なフォーマットMicrosoft Exchange Server qmail Sendmail OpenSMTPD Exim Postfix
  46. 46. NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 46 自由形式
  47. 47. NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 47 本文の始まり
  48. 48. NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 48 挨拶も 言葉だけの詫びも 要らない
  49. 49. NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 49 「誠意って何かね?」 北の国から'92 巣立ち
  50. 50. NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 50 RFC 3464
  51. 51. NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 51 せめて RFC 3464 に従ってほしい
  52. 52. NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 52
  53. 53. 三つのシステム 人間による NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki
  54. 54. NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 54 `` 人間は 三つのシステム しか作れない '' UNIXという考え方
  55. 55. NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 55 `` 追い詰められた 人間が第一の システムを創る '' UNIXという考え方
  56. 56. NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 56 Sisimaiに至る第一のシステム - 前職(2003-2008)で開発したバウンス解析スクリプト - 配信遅延がひどかった(10万通とか) - 「どう処理します?」「消しといて」「!?」 - 最低限のバウンス処理すらしてなかった - 放置すると売り上げに影響する - 運営部署から僕が追い詰められる(追い詰められた) - 「正しく」やっている時間などない - Perl製・6000行ぐらい・1ファイル・Sendmail専用 - 今思えば酷いコードやった(プログラミングが苦手で...)
  57. 57. NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 57 `` 第二のシステムは 委員会が設計する '' UNIXという考え方
  58. 58. NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 58 Sisimaiに至る第二のシステム - 現職(2008-)で開発したbounceHammer - 広告としての位置付け・オープンソース - 2016年2月29日で公開終了 - bouncehammer.jp - まだ稼働しているところが結構ある - 把握してないとこから問い合わせが来る - Sisimaiへのリプレース案件
  59. 59. NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 59 `` 第二のシステムは 贅肉がつき、遅い '' UNIXという考え方
  60. 60. NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 60 肥大化した第二のシステム - 多機能と肥大化 - 自分にとって必要ではない機能が多くあった - 開発にあたってPerlを1から勉強し直した - コードが書けるようになってきた - 「あれも書きたい」「これも書きたい」 - なんでも釘に見える的な(bounceHammerだけに) - 解析以外の機能 - 解析結果のログ集約 - データベース対応(PostgreSQL, MySQL, SQLite) - WebUI(ブラウザで検索用)
  61. 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. 62. NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 62 直面して理解した問題点 - 利用者の立場で「モジュールとして使いにくい」 - 依存モジュールがメンテされなくなった... - 警告がバンバンでる - インストール時間が長くて面倒でしばしば失敗する - 昔「インストールって構築時の一回だけやん」 - 今「コンテナとか作っては捨て作っては捨て」 - 実際の案件ではDBは既にある物に合わせるから不要 - WebUIもサイト側管理ページに組み込むから不要 - 解析以外の機能が足枷となる
  63. 63. NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 63 `` 第三のシステムは 第二のシステムで 「火傷」 した人が作る '' UNIXという考え方
  64. 64. NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 64 UNIX哲学に 即した ライブラリを
  65. 65. NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 65 メールを送った後 http://libsisimai.org/ @libsisimai
  66. 66. NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 66 Small is Beautiful - 先代の半分ぐらい(8600行/Perl版) - Ruby版も小さく(12000行ぐらい) - 小さく堅牢に - 機能もなるべく小さく - 小さいは正義 定理1
  67. 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. 68. NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 68 効率より移植性を優先する? - ``Shell ScriptはCより移植性が高い'' - ``C言語で書き直す誘惑に負けない'' - ``次の年のマシンならもっと速く動く'' - 上位インスタンスならもっと速い - 移植性・コスト・速度を天秤に乗せる - 自分一人が1日一回だけ実行 - 10万人のユーザが10万回/日実行 - 効率化・高速化の努力はしている - 速いは正義 定理4
  69. 69. NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 69 ソフトウェアを梃子として使う - ``独自技術症候群を避ける'' - 既存ライブラリは精度不足やった - 過度に依存モジュールは増やさない - JSON(Perl), Oj, JrJackson(Ruby) - Class::Accessor::Lite(Perl) - 保守されなくなったら取り込める量で - コアモジュールに寄せて実装 - 実装時間 < 稼働時間 定理6
  70. 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. 71. NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 71 そういえば に入るらしい のパッケージ libsisimai-perl
  72. 72. NSEG 勉強会 #101 | 2018/06/30(土) GEEKLAB. NAGANOさん Email is Slack @azumakuniyuki 72 めでたい
  73. 73.

×