2021-01-01から1年間の記事一覧

Mac で日本語ThinkPadキーボードを英語配列で使う

これは SmartHRアドベントカレンダー の20日目の記事です。 qiita.com SmartHR に入社して50日が経ちました。社内では tommy と呼ばれています(社内では Slack 名で呼び合う文化で、tmtms だと呼びにくいので tommy にした)。 会社の PC は MacBook Pro なの…

ruby-mysql

これはMySQLアドベントカレンダーとRubyアドベントカレンダーの12日目の記事です。 qiita.com qiita.com ruby-mysql は Ruby だけで書かれた MySQL 用のクライアントライブラリです。 今は Ruby から MySQL を使う場合は普通は mysql2 を使うだろうから、た…

転職した

これは「Rubyist近況[1] Advent Calendar 2021」の6日目の記事です。 adventar.org 自称 Rubyist なので近況を書きます。 2021年10月末で30年ほど勤めた富士通グループを退職しました。 11月からは SmartHR という会社で働いてます。 3年ほど Ruby は仕事で…

MySQL の認証プロトコル

認証がプラグイン化された最近のMySQL(5.5くらい?)の認証時のプロトコルをちゃんと理解してなかったので調べてみた。 基本的にはこんな感じ クライアントが接続するとサーバー(mysqld)から次の内容のパケットが送られる: プロトコルバージョン: 現在のとこ…

Linux で X よりも低レイヤでキーマップを変更する

まとめ USB 接続の ThinkPad トラックポイントキーボードで、半角/全角 を Esc、CapsLock を Ctrl として使うには、/etc/udev/hwdb.d/10-tmtms.hwdb というファイル(ファイル名は何でもいい)を次の内容で作って: evdev:name:Lenovo ThinkPad Compact USB Key…

MySQL で max_allowed_packet を超過した場合

MySQL で max_allowed_packet を超過した場合にどうなるんだっけ…と思って試してみた結果。 サーバーの max_allowed_packet をクエリが超過した場合 MySQL 5.6 サーバー起動 % docker run --name mysql56 -e MYSQL_ALLOW_EMPTY_PASSWORD=yes -d mysql:5.6 --…

広告のエロ画像をブロックしたい

ウェブの広告は別にいいんだけど、エロ画像の広告は見たくない。 エロ画像広告を見かけたらその画像の URL のサーバー名を記録しておいて、HTTP リクエスト時に実際のサーバーにアクセスしないようにすれば良さそう。 たとえば、サーバー名の名前解決で 127.…

Postfixでオレオレ認証を作る

Postfix で SMTP 認証するには、Cyrus SASL と Dovecot SASL のどちらかを使用できる。 Cyrus SASL は、Postfix のビルド時に SASL ライブラリを組み込む必要があるが、Dovecot SASL は特殊なライブラリは必要ない。 Dovecot SASL はネットワーク通信で、通…

sudo su とかしてる人はだいたいおっさん

sudo に -s がついたのは 1995年、-i は 2004年なので、sudo su とかしてる人はだいたいおっさん。— とみたまさひろ (@tmtms) 2021年5月21日 テキトーに書いたこれが「ややウケ」だった。 そういや自分が sudo 使い始めたのは20年以上前で、うろ覚えなので調…

1ベイのQNAPのディスク交換

我が家では1ベイのQNAP(TS-121)を 2TB HDD で使ってるんだけど空きがなくなってきたんで、4TB HDD に交換することにした。 ダメだったやつ Linux PC に新旧両方の HDD を繋いで dd if=/dev/sdb of=/dev/sdc で丸ごとコピーすればいいかと思ってやってみた。…

MySQL 8.0.24 の文字コードまわり

2021/4/20 にリリースされた MySQL 8.0.24 について私が気になったものについて。 まあ文字コードまわりだけなんだけど。 utf8 を utf8mb3 として出力する Client applications and test suite plugins now report utf8mb3 rather than utf8 when writing ch…

Postfix 3.6

4/29 に Postfix 3.6 がリリースされたので、その変更点などを。 3.5 と 3.6 のパラメータの差分はこちら。 デュアルライセンス whitelist / blacklist が allowlist / denylist に変更 内部プロトコル変更 TLS まわり compatibility_level が Postfix のバ…

Ruby の Socket.tcp を知った

Ruby で TCP のクライアントとしてサーバーに接続するには TCPSocket.open(TCPSocket.new)を使うもんだと思ってたんだけど、最近 Socket.tcp というのもあることを知った。 どうやら 1.9.2 で追加されたらしい。10年以上も気づかなかった…。サーバー側の Soc…

UPDATE1文だけでもデッドロックするという話

デッドロックは複数のトランザクションが複数のレコードをロックする場合にタイミングによって発生する。 トランザクションAがレコード1をロック→成功 トランザクションBがレコード2をロック→成功 トランザクションAがレコード2をロック→2のロックの解放待ち…

MySQLマニュアルの差分

MySQL 8.0.x はパッチレベルのリリースで機能追加がされていくんだけど、マニュアルは常に 8.0 の最新版しか公開されてない。 MySQL は OSS だけど、MySQL のマニュアルは自由なライセンスではないしリポジトリも公開されてない。 ライセンスは自由でなくて…

MySQL徹底入門第4版からの差分

2020年7月に出た「MySQL徹底入門 第4版」という本は MySQL 8.0.20 をベースとしてたんですが、ご存知の通り MySQL 8.0 はパッチリリースでどんどん機能が追加されてったりするんで、同じ 8.0 でも最新版とは機能の差分が出てしまってます。 ということで、自…

Ubuntu で Vuetify を始めるためのメモ

Node も npm も Yarn も Vue もよくわかってないけど見様見真似でやった。どうせ忘れるのでメモ。 Node.js のインストール OS の nodejs が入ってる場合はなんだかわからないけど依存関係でエラーになったので削除しておく。 sudo apt remove nodejs https:/…