Emacsでタグジャンプ

いまだに Emacs を使ってるんだけど、タグジャンプ機能をまともに使えるようにしたのでメモ。 今までは全体がだいたい頭に入ってるような環境で開発してたのであまり必要なかったんだけど、最近全容がよくわかってない環境で開発してて、タグジャンプ機能が…

Migu 1MフォントからASCIIだけを抽出する

とある事情により Migu 1M フォントから ASCII 文字だけを抽出したフォントを作ってみたのでメモ。 もとの migu-1m-regular.ttf から 0x80 以降の文字を消してもいけるんじゃないかと思ったんだけど、それだとなぜかフォントファイルのサイズが大きいままだ…

Emacsで異体字とか色付き絵文字とかを表示できるようにしてみた

いまだに Emacs を使ってるんだけど、最近フォント周りを調べてみたのでメモ。 異体字セレクタ Emacs は異体字セレクタに対応してないとずっと思っていたんだけど、実は単にフォントの問題で、ちゃんと異体字セレクタに対応したフォントを使えば異体字を表示…

MySQLの正規表現がGrapheme Clusterに対応していた

「竈門禰󠄀豆子」を MySQL に保存できるとかできないとかいう話題を見て、そう言えば MySQL の Grapheme Cluster 対応ってどうなってるんだっけ…と思ってググってみたら、MySQL 8.0.28 のリリースノートにこんな文を見つけた。 International Components for …

Fiddle で Ruby から C ライブラリを使う

rkremap を作ってるとき、最初は FFI を使ったんだけど、そういや Fiddle だと Ruby 標準だからそっちの方がいいかな…と思って Fiddle で作り直した。 ということで忘れないうちに Fiddle についてまとめておく。 Fiddle Fiddle を使うと Ruby から C のライ…

rkremap: キーボードデバイスの自動検出

https://blog.tmtms.net/entry/202201/rkremap の続き。 blog.tmtms.net Rkremap.new 時に引数でキーボードデバイスファイルを指定しないといけなかったんだけど、USB や Bluetooth キーボードとかデバイスファイル名がわからない場合に調べるのが面倒なので…

Linux用キーリマッパー rkremap を作った

11月から仕事で Mac を使うようになって2ヶ月ちょっとたつけど、いまだにショートカットキーが Ctrl キーではなく Command キーであることに慣れない。 慣れないのは仕事以外で普段使ってる Linux と異なるからだと思うんだけど、普通に考えて Mac のショー…

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 はネットワーク通信で、通…