Slide 1

Slide 1 text

MyNA 20周年 MyNA 20周年 とみたまさひろ 2020-05-25 #mysql_jp 1

Slide 2

Slide 2 text

おっさんの昔話のコーナー おっさんの昔話のコーナー 2

Slide 3

Slide 3 text

自己紹介 自己紹介 とみたまさひろ MySQL Ruby メール / 文字化け https://twitter.com/tmtms https://tmtms.hatenablog.com 3

Slide 4

Slide 4 text

MySQL Parameters MySQL Parameters https://mysql-params.tmtms.net 5.0〜8.0 8.0.* 4

Slide 5

Slide 5 text

mrubyudf mrubyudf Ruby で MySQL の UDF を書くためのツール https://github.com/tmtm/mrubyudf https://tmtms.hatenablog.com/entry/202005/mrubyud 5

Slide 6

Slide 6 text

MySQL徹底入門第4版 MySQL徹底入門第4版 絶賛校正中! https://www.seshop.com/product/detail/23085

Slide 7

Slide 7 text

おっさんの昔話 おっさんの昔話 7

Slide 8

Slide 8 text

記憶が怪しいので嘘かもしれません 8

Slide 9

Slide 9 text

1997年 1997年 9

Slide 10

Slide 10 text

1997年 1997年 香港がイギリスから返還される マーズ・パスファインダーが火星に着陸 Mac OS 8 発売 サッカー日本代表がワールドカップ初出場 X JAPAN 解散 長野新幹線開業 映画「もののけ姫」「インデペンデンス・デイ」 「タイタニック」 アニメ「ポケットモンスター」放送開始 音楽「CAN YOU CELEBRATE?」「硝子の少年」 「HOWEVER」 ゲーム「ファイナル・ファンタジーVII」 10

Slide 11

Slide 11 text

会社の内製ツール作成&メンテ 会社で使ってたDBがInf◯rmix(伏せ字)だった ESQL/C - C に SQL を埋め込む謎言語 メッチャ使いづらい 11

Slide 12

Slide 12 text

「普通にCから使える無料のDBないかなー」 12

Slide 13

Slide 13 text

MySQL と Postgres95 を発見 当時 Google は無かったらしい どうやって探したんだっけ… 13

Slide 14

Slide 14 text

テキトーに速度測ってみたら MySQL の方が速かった 「じゃあ MySQL でいいや」 「英語苦手だけど日本語マニュアルもあるし」 (廣川類さん @rui_hi 翻訳) 14

Slide 15

Slide 15 text

しかし実はその日本語マニュアルの MySQL の バージョンは古かった… (3.20) 15

Slide 16

Slide 16 text

しかたなく英語のマニュアルを読む… 「英語わからん」 「訳しながら読んでると3行前のを忘れる」 「訳した文を書きながら読むか…」 16

Slide 17

Slide 17 text

マニュアルの全文訳完成 マニュアルの全文訳完成 1997/10 質はそれなり 「せっかくだからウェブに公開しよう」 (たしか Monty にメールで公開許可もらったはず…) 17

Slide 18

Slide 18 text

日本語を検索すると結果がおかしい (当時のUNIXではEUC-JPが主流) 18

Slide 19

Slide 19 text

デフォルトの latin1 だと À(C0) = Á(C1) = Â(C2)… = à(E0) = á(E1) = â(E2)… 19

Slide 20

Slide 20 text

EUC-JPの日本語文字は 0xA1〜0xFE だ(A4C0) = ち(A4C1) = ぢ(A4C2)… = め(A4E0) = も(A4E1) = ゃ(A4E2)… 20

Slide 21

Slide 21 text

「latin1 じゃなくて binary を使えば解決!」 (binary はすべての文字を区別) 21

Slide 22

Slide 22 text

ところが LIKE "%海%" で「続く」がマッチ! 22

Slide 23

Slide 23 text

「海」: B3 A4 「続く」: C2 B3 A4 AF 23

Slide 24

Slide 24 text

「バイト単位の比較ではダメだ…」 LIKE で文字単位にマッチングさせるパッチを作成 24

Slide 25

Slide 25 text

日本語 EUC パッチ誕生 日本語 EUC パッチ誕生 1997/11 文字コード名は jeuc 25

Slide 26

Slide 26 text

1998年 1998年 26

Slide 27

Slide 27 text

1998年 1998年 長野オリンピック 明石海峡大橋開通 国際宇宙ステーション建設開始 任天堂がゲームボーイカラー発売 セガがドリームキャスト発売 音楽「誘惑」「夜空ノムコウ」「my graduation」 映画「踊る大捜査線」「ポケットモンスター ミュ ウツーの逆襲」「メン・イン・ブラック」 27

Slide 28

Slide 28 text

個人宛にメールで問い合わせが来るけど 情報が個人間に閉じるのがもったいない 「誰かメーリングリスト作ってくれないかなー」 とウェブページに書いたら 28

Slide 29

Slide 29 text

「作ってみた」 by ソフトエージェンシー 29

Slide 30

Slide 30 text

メーリングリスト発足 メーリングリスト発足 1998/1 30

Slide 31

Slide 31 text

当時のフリーソフトウェア界隈のMLは 初心者に厳しくて殺伐としてた それは嫌だったのでゆるふわなML運営 31

Slide 32

Slide 32 text

メーリングリストでシフトJISを使いたいという要望 シフトJISは2バイト目に 5C がある 表(95 5C) 5C はエスケープ文字 \ と同じ LIKE だけじゃなくて文字列全般的な考慮が必要 32

Slide 33

Slide 33 text

似たようなマルチバイトcharset BIG5 があったので それを真似てシフトJIS対応パッチを作成 33

Slide 34

Slide 34 text

UJIS&SJIS対応パッチ誕生 UJIS&SJIS対応パッチ誕生 1998/3 この頃から jeuc から ujis に名前を変えたらしい 34

Slide 35

Slide 35 text

3.21.30 にパッチが取り込まれる 3.21.30 にパッチが取り込まれる 1998/5 パッチをあてなくても普通に日本語が使えるように 35

Slide 36

Slide 36 text

2000年 2000年 36

Slide 37

Slide 37 text

MLの過去ログをウェブで公開したい 37

Slide 38

Slide 38 text

どこのサーバー使おうか せっかくだからドメイン名とる? 「日本MySQLユーザ会」とかでっちあげて mysql.gr.jp とっちゃえ 38

Slide 39

Slide 39 text

日本MySQLユーザ会 発足 日本MySQLユーザ会 発足 2000/3 ドメイン名を取るためには 代表者を決めないといけないので 流れで自分が代表者に 39

Slide 40

Slide 40 text

略称候補は色々あったけど ということで MyNA に (当時は PostgreSQL がメジャーだった) MySQLって、日本じゃマイナー (MINOR)だよね。それは昔の話さ。 と言える日をまつ人の集団。 http://www.mysql.gr.jp/mysqlml/mysql/msg/1730 40

Slide 41

Slide 41 text

そしてその後マイナーじゃなくなりましたとさ 41

Slide 42

Slide 42 text

めでたしめでたし めでたしめでたし 42

Slide 43

Slide 43 text

おまけ 43

Slide 44

Slide 44 text

メーリングリストの流量 44

Slide 45

Slide 45 text

いつまでもメーリングリストでいいの? Slack ? んー… 45