MySQL Technology Cafe #9
2020-08-26
とみたまさひろ
とみたまさひろ
日本MySQLユーザ会の名ばかり代表
文字化け担当
Ruby / メール
Ruby で MySQL の UDF を書くためのツール
https://mysql-params.tmtms.net
https://www.seshop.com/product/detail/23085
記憶が怪しいので嘘かもしれません
会社の内製ツール作成&メンテ
会社で使ってたDBがInf◯rmix(伏せ字)だった
ESQL/C - C に SQL を埋め込む謎言語
メッチャ使いづらい
「普通にCから使える無料のDBないかなー」
MySQL と Postgres95 を発見
当時 Google は無かったらしい
どうやって探したんだっけ…
テキトーに速度測ってみたら MySQL の方が速かった
「じゃあ MySQL でいいや」
しかし実はその日本語マニュアルの MySQL の
バージョンは古かった…
しかたなく英語のマニュアルを読む…
「英語わからん」
「訳しながら読んでると3行前のを忘れる」
「訳した文を書きながら読むか…」
1997/10
質はそれなり
「せっかくだからウェブに公開しよう」
(たしか Monty にメールで公開許可もらったはず…)
日本語を検索すると結果がおかしい
(当時のUNIXではEUC-JPが主流)
デフォルトの latin1 だと
À
(C0) = Á
(C1) = Â
(C2)…
= à
(E0) = á
(E1) = â
(E2)…
EUC-JPの日本語文字は 0xA1〜0xFE
だ
(A4C0) = ち
(A4C1) = ぢ
(A4C2)…
= め
(A4E0) = も
(A4E1) = ゃ
(A4E2)…
「latin1 じゃなくて binary を使えば解決!」
(binary はすべての文字を区別)
ところが
LIKE "%海%"
で「続く」がマッチ!
「%海%」: * B3 A4 *
「続く」: C2 B3 A4 AF
「バイト単位の比較ではダメだ…」
LIKE で文字単位にマッチングさせるパッチを作成
1997/11
文字コード名は jeuc
個人宛にメールで問い合わせが来るけど
情報が個人間に閉じるのがもったいない
「誰かメーリングリスト作ってくれないかなー」
とウェブページに書いたら
「作ってみた」 by ソフトエージェンシー
1998/1
当時のフリーソフトウェア界隈のMLは
初心者に厳しくて殺伐としてた
それは嫌だったのでゆるふわなML運営
メーリングリストで「シフトJISを使いたい」
シフトJISは2バイト目に 5C(\
) がある
表
(95 5C)
「十倍の能力が噂の表計算ソフト」
「表n」→「95 \ n」→「95 改行」
LIKE だけじゃなくて文字列全般的な考慮が必要
似たようなマルチバイトcharset BIG5 があったので
それを真似てシフトJIS対応パッチを作成
1998/3
この頃から jeuc から ujis に名前を変えたらしい
当時は ujis または eucjp が一般的だった
(ujis と sjis で韻を踏んでるし…)
1998/5
パッチをあてなくても普通に日本語が使えるように
リリース頻度が早くてパッチのメンテも大変だったのでパッチを送ったら取り込まれた
MySQLで日本語が使えてるのは私のおかげ(?)
(その後ユニコード対応時に実装され直したけど)
でもその後も configure --with-charset=ujis
でエラーになるとかあったらしい
パッチが取り込まれたといっても安心できない…
1998/8
1998年頃から Ruby を使い始めたらしい
Perl を使ってたけどCライブラリとのバインディングが作りにくかったので Ruby を使い始めた
Ruby の MySQL ライブラリが無かったので作った
RailsとかでMySQLが使えてるのは私のおかげ(?)
(今はもう使われてないけど)
MLの過去ログをウェブで公開したい
どこのサーバー使おうか
せっかくだからドメイン名とる?
「日本MySQLユーザ会」とかでっちあげて
mysql.gr.jp とっちゃえ
2000/3
ドメイン名を取るためには
代表者を決めないといけないので
流れで自分が代表者に
略称候補は色々あったけど
MySQLって、日本じゃマイナー(MINOR)だよね。それは昔の話さ。と言える日をまつ人の集団。
http://www.mysql.gr.jp/mysqlml/mysql/msg/1730
ということで MyNA に
(当時は PostgreSQL がメジャーだった)
2000/4 に出版社から打診(早!
2001/1 発売
2001/1
2003/3
2004/10
文字コードまわりの突然の変更!
バージョン 0.1 しか違わないのに…
文字コード変換まわりで日本語の闇が表面化
「JISに無い文字が消える」
MyNA でパッチ作成したり
2005/10
2008/11
2010/12
2013/2
2015/10
2018/4
デフォルトが utf8mb4 に 🎉
文字化けさよなら
十分メジャー
もうマイナーじゃない
最近はだいたい問題ない
4.1 以降は文字コードまわりは安定してる
これか!?
主に sakaik さんと yoku0825 さんとオラクルさん
メーリングリストの流量
外部サービスに依存するのは避けたい
登録しないと見れないのもアレ
🙄
考え中
😪
おわり
😴