Ruby 3.2 - String / Encoding / ユニコード

Ruby 3.2 アドベントカレンダーの11日目の記事です。 qiita.com String String#byteindex / String#byterindex Feature #13110: Byte-based operations for String - Ruby master - Ruby Issue Tracking System String#byteindex, String#byterindex が追加…

Ruby 3.2 - Data / Struct

Ruby 3.2 アドベントカレンダーの10日目の記事です。 qiita.com Data Feature #16122: Data: simple immutable value object - Ruby master - Ruby Issue Tracking System Ruby 3.2 で Data クラスが新設された。Struct とほぼ同じなんだけどオブジェクト作…

Ruby 3.2 - Class

Ruby 3.2 アドベントカレンダーの9日目の記事です。 qiita.com Class Class#attached_object 追加 Feature #12084: Class#instance - Ruby master - Ruby Issue Tracking System Ruby では、オブジェクトのクラスには存在しないメソッドをオブジェクト専用に…

Ruby 3.2 - IO / FileUtils

Ruby 3.2 アドベントカレンダーの8日目の記事です。 qiita.com IO IO#timeout 追加 Feature #18630: Introduce general IO#timeout and IO#timeout= for blocking operations. - Ruby master - Ruby Issue Tracking System IO#timeout でタイムアウトを設定…

Ruby 3.2 - Coverage

Ruby 3.2 アドベントカレンダーの7日目の記事です。 qiita.com Ruby 3.2.0 RC1 がリリースされたので、ネタ元を Ruby 3.2 RC1 の NEWS.md に変更。 6日目までに書いた内容は特に変更なさそう。 Coverage eval でもカバレッジデータを取得可能 Feature #19008…

Ruby 3.2 - インストール

Ruby 3.2 アドベントカレンダーの6日目の記事です。 qiita.com インストール libyaml と libffi が同梱されない Feature #18571: Removed the bundled sources from release package after Ruby 3.2 - Ruby master - Ruby Issue Tracking System libyaml と …

Ruby 3.2 - 無くなったメソッド

Ruby 3.2 アドベントカレンダーの5日目の記事です。 qiita.com 無くなったメソッド Dir.exists? / File.exists? Ruby 2.1 で Dir.exists? と File.exists? は deprecated になった。 Dir.exist? と File.exist? を使えと。 Warning[:deprecated] = true Dir.…

文字化け復元ページを作ったよ

これは SmartHR アドベントカレンダーの4日目の記事です。 qiita.com といっても内容は会社とは関係ありません。 文字化け復元ページを作った。 tmtms.net 使い方 最初に「繧ゅ§縺ー縺代r縺オ縺上£繧薙☆繧九h」という文字化けした文字列が入力されてる。 「…

Ruby 3.2 - 無くなったクラス/定数

Ruby 3.2 アドベントカレンダーの4日目の記事です。 qiita.com 無くなったクラスや定数 Fixnum / Bignum Ruby 2.4 から Fixnum と Bignum は deprecated になって Integer の別名になった。 Warning[:deprecated] = true Fixnum #=> Integer #=> warning: co…

ruby-mysql と ruby-mysql2

これはMySQLアドベントカレンダーとRubyアドベントカレンダーの3日目の記事です。 qiita.com qiita.com ruby-mysql 誰も使わないだろうけど、ruby-mysql 4.0 をリリースした。 ruby-mysql | RubyGems.org | コミュニティのGemホスティングサービス ruby-mysq…

Ruby 3.2 - 代入式の評価順 / パターンマッチ

Ruby 3.2 アドベントカレンダーの3日目の記事です。 qiita.com 代入式の評価順 Bug #15928: Constant declaration does not conform to JIS 3017:2013 - Ruby master - Ruby Issue Tracking System 定数設定時、定数の定義元オブジェクトと代入する式の評価…

Ruby 3.2 - キーワードパラメータその3

Ruby 3.2 アドベントカレンダーの2日目の記事です。 qiita.com キーワードパラメータその3 Bug #18625: ruby2_keywords does not unmark the hash if the receiving method has a *rest parameter - Ruby master - Ruby Issue Tracking System Ruby 2.7 で…

Ruby 3.2 - キーワードパラメータその1、その2

Ruby 3.2 アドベントカレンダーの1日目の記事です。 qiita.com Ruby は毎年クリスマスにバージョンが上がります。 今年も順調にいけば 12/25 に Ruby 3.2 がリリースされるはずです。 3.2 がリリースされるまで毎日少しずつ変更点を見ていきながらリリースを…

Ubuntu 22.10 に rbenv を使わずに Ruby をインストールする

Ruby 3.1.3 / 3.0.5 / 2.7.7 が出たので普段使いの Ubuntu 22.10 にインストールした。 rbenv とかを使えばいいんだけど、自分は普段から rbenv は使ってないので。 Ruby 3.1.3 特別なことは何もしていない。 % tar xf ruby-3.1.3.tar.xz % cd ruby-3.1.3 % …

RubyKaigi 2022 に行ってきた

RubyKaigi が3年ぶりにオフラインで開催されたので行ってきた。 希望者は出張扱いで行けるので前泊後泊で4泊5日の出張だった。 勤務先がスポンサーになってる RubyKaigi は初。ブースも出してたんでときどきブース番もした。 フルリモートで家に閉じこも…

ThinkPad トラックポイントキーボード II を買った

2013年10月に ThinkPad トラックポイントキーボード(旧型)の日本語配列を買って以来ずっと使ってるんでもう9年弱。その前は Happy Hacking Keyboard だった。 転職して会社の PC が Mac になったので、できるだけキー配列を Mac に合わせて [無変換] [変換] …

ThinkPad T14 Gen3 のサスペンド問題

[2022-09-23 追記] BIOS アップデート(n3buj05w)で解決した! https://support.lenovo.com/jp/ja/downloads/ds557163-bios-update-utility-bootable-cd-for-windows-11-10-64-bit-thinkpad-t14-gen-3-p14s-gen-3-t16-gen-1-p16s-gen-1 前回の続き ThinkPad T…

ThinkPad T14 Gen3 の Linux 化

ThinkPad T14 Gen3 Intel版を購入 2016年10月に買った ThinkPad T460s をずっと使ってたんだけど、6年前のPCだとさすがに処理が遅く感じることもあったんで、そろそろ新しいのが欲しくなったんで、ThinkPad T14 Gen3 を買った。 安かったんでAMD版にしたんだ…

MySQLに独自charsetを追加する

MySQL に独自 charset を追加できる…という話はずっと前に聞いたことあったけど、やったことなかったんでやってみた。 詳しくは MySQL :: MySQL 8.0 リファレンスマニュアル :: 10.13 文字セットの追加 を。 マルチバイト charset は C でプログラムを書いて…

MySQLのシノニム

sakaik さんが MySQL: desc は explain !? - sakaikの日々雑感~(T)編 という記事を上げてたのを見て、そういや最近はほかにどんなのがあるんだっけ…と思って調べてみた。 以下はMySQL 8.0.29 の sql/lex.h から抽出したもの。字句解析上のシノニム。 <> !…

GitLab Pages

GitHub Copilot がなんか気味悪いんで、GitLab に移行しようかなーと。 まあ、もともと前職で GitLab を使ってて GitHub よりも良かったんで、そのうち移行しようと思ってたので良い機会ではある。 とりあえず GitHub Pages で管理してた tmtms.net のコンテ…

Ubuntu 22.04 でメールサーバーを作ったのでメモ

令和にもなって自分でメールサーバーを作ってみたのでメモ。 OS は Ubuntu 22.04。 パッケージ更新後に自動的に再起動 メールとは関係ないけど apt で再起動が必要な更新があった場合は自動的に再起動するようにした。 /etc/apt/apt.conf.d/50unattended-upg…

LinuxでシフトJISが使えた

ふと、最近の Linux って EUC-JP ロケール使えるんだっけ? と思ったんで調べてみた。環境は Ubuntu 22.04。 EUC-JP ロケール locales パッケージが入ってない場合はロケールはこれだけ: % locale -a C C.utf8 POSIX locales と language-pack-ja をインスト…

Firefox バージョン100 アップデート直後の起動時の画面をもう一度出す方法

Firefox がバージョン100になった。めでたい。ということで、アップグレード後の再起動でこんな画面が出た。 へー…と眺めてたら消えてしまったんで、もう一度見てみたいと思ったがもう出てこなかった。 Firefox -P で起動して新しいプロファイルを指定したら…

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 キーボードとかデバイスファイル名がわからない場合に調べるのが面倒なので…