タグ tmtms
人気順 10 users 50 users 100 users 500 users 1000 usersRuby の CSV が nil を返さないようにする - tmtms のメモ
Ruby の CSV ライブラリはとても便利なんだけど、ひとつだけ問題があって、CSV をパースしたときに nil を返すことがある。 つぎのような CSV をパースすると2番目のカラムが nil になる。4番目のカラムは空文字になるのに! hoge,,fuga,"",piyo require 'csv' CSV.parse_line('hoge,,fuga,"",piyo') #=> ["hoge", nil, ... 続きを読む
文字ときどきRuby - tmtms のメモ
これはRubyアドベントカレンダーとSmartHRアドベントカレンダーの17日目の記事です。 qiita.com qiita.com 12/9 に nagano.rb で文字について発表して、同じのを 12/15 に SmartHR 社内で LT しました。 スライドはこちら 同じ文字? この2つの文字は同じものに見えますか? 実はこれは同じ文字を異なるフォントで表示... 続きを読む
ruby.wasm で MySQL Parameters を作り直した - tmtms のメモ
プライベートでは基本的に誰の役にも立たないプログラムを作ってるんだけど、たまにうっかり MySQL Parameters みたいな役に立つものを作ってしまう。 MySQL Parameters は5年くらい前に Vue.js の勉強のために作ってみたんだけど、結局そのまま Vue.js は触らず放置状態だった。MySQL の新しいバージョンが出るたびにデ... 続きを読む
Ubuntu 22.10 に rbenv を使わずに Ruby をインストールする - tmtms のメモ
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 % ./configure --prefix=$HOME/ruby31 --with-ext=openssl,zlib,... 続きを読む
ThinkPad T14 Gen3 のサスペンド問題 - tmtms のメモ
前回の続き ThinkPad T14 Gen3 の Ubuntu がサスペンドすると正常に復帰しない。 画面が消えたまま。10秒くらい待ってると点灯するけど数秒でまた消える…というのを繰り返し。 X が起動してると何もわからないので、コンソールでサスペンドを試すとこんなメッセージが出てた。 i915 0000:00:02.0: [drm] *ERROR* Failed ... 続きを読む
Ubuntu 22.04 でメールサーバーを作ったのでメモ - tmtms のメモ
令和にもなって自分でメールサーバーを作ってみたのでメモ。 OS は Ubuntu 22.04。 パッケージ更新後に自動的に再起動 メールとは関係ないけど apt で再起動が必要な更新があった場合は自動的に再起動するようにした。 /etc/apt/apt.conf.d/50unattended-upgrades: Unattended-Upgrade::Automatic-Reboot "true"; Lets E... 続きを読む
Migu 1MフォントからASCIIだけを抽出する - tmtms のメモ
とある事情により Migu 1M フォントから ASCII 文字だけを抽出したフォントを作ってみたのでメモ。 FontForge で Migu 1M フォントを開く % fontforge migu-1m-regular.ttf 0x20-0x7F の範囲をコピー 「ファイル」メニューの「新規」 新しく開いたウィンドウの 0x20 でペースト なぜか 0x20 はペーストされないので、も... 続きを読む
Emacsで異体字とか色付き絵文字とかを表示できるようにしてみた - tmtms のメモ
いまだに Emacs を使ってるんだけど、最近フォント周りを調べてみたのでメモ。 異体字セレクタ Emacs は異体字セレクタに対応してないとずっと思っていたんだけど、実は単にフォントの問題で、ちゃんと異体字セレクタに対応したフォントを使えば異体字を表示することができた。 普段は使ってる Migu 1M フォントだと Ema... 続きを読む
Linux用キーリマッパー rkremap を作った - tmtms のメモ
11月から仕事で Mac を使うようになって2ヶ月ちょっとたつけど、いまだにショートカットキーが Ctrl キーではなく Command キーであることになれない。 慣れないのは仕事以外で普段使ってる Linux と異なるからだと思うんだけど、普通に考えて Mac のショートカットキーの方が合理的だと思うので、Linux 上で Mac と同じ... 続きを読む
転職した - tmtms のメモ
これは「Rubyist近況[1] Advent Calendar 2021」の6日目の記事です。 adventar.org 自称 Rubyist なので近況を書きます。 2021年10月末で30年ほど勤めた富士通グループを退職しました。 11月からは SmartHR という会社で働いてます。 3年ほど Ruby は仕事ではあんまり使ってなかったのですが、また Ruby を仕事で使うよ... 続きを読む
MySQL 8.0.22 DNS SRV レコードサポート - tmtms のメモ
MySQL SRV レコードサポート MySQL 8.0.22 の新機能で DNS SRV レコードのサポートというのがあったので試してみた。 https://dev.mysql.com/doc/refman/8.0/en/connecting-using-dns-srv.html MySQLサーバー3台 (a.example.com, b.example.com, c.example.com)とそれに接続するためのクライアントの計4台を docker-comp... 続きを読む
オープンソースの定義について - @tmtms のメモ
こんな Togetter が話題になってた。 togetter.com オープンソースソフトウェアはOSIに認められたオープンソースライセンスで配布されるソフトウェアのことであり、それ以上でもそれ以下でもない これに違和感が。「オープンソースの定義(OSD)」に準拠したライセンスのソフトウェアであればオープンソースだったような記... 続きを読む
Ruby 2.7 の変更点 - 復活したものや入りそうで入らなかったもの - @tmtms のメモ
Ruby 2.7 アドベントカレンダーの1日目の記事です。 qiita.com Ruby は毎年クリスマスにバージョンが上がります。 今年も順調にいけば 12/25 に Ruby 2.7 がリリースされる予定です。 2.7 がリリースされるまで毎日少しずつ変更点を見ていきます。 ソースは NEWS(とか git log とか)です。 Ruby 2.7 までに復活したもの ... 続きを読む
MySQLと「令和」その2 - @tmtms のメモ
MySQLでは異なる字が等しいと見なされることがあるということを書きました。 tmtms.hatenablog.com この動きはMySQLが独自に変なことをしているわけではなく、Unicodeの規則に則っています。 MySQL 8.0 のデフォルトのCollationは Unicode 9.0.0のUnicode Collation Algorithm(UCA) に従っています。 文字にはそれぞれ W... 続きを読む
MySQLと「令和」 - @tmtms のメモ
新元号が「令和」に決まったことなので、MySQLでの扱いについての話を。 普通の文字 「令」も「和」もJIS第一水準に含まれている基本的な文字なので普通に日本語が使用できるcharsetで使用できます。 mysql> create table t ( utf8mb4 varchar(255) charset utf8mb4, utf8mb3 varchar(255) charset utf8mb3, utf16 varch... 続きを読む
Ruby 2.6 の変更点 - IO - @tmtms のメモ
Ruby2.6アドベントカレンダーの10日目の記事です。 qiita.com IO ファイルオープン時のモードに x 追加 IO ファイルオープン時のモードに x 追加 https://bugs.ruby-lang.org/issues/11258 ファイルを作成用にオープンするには w を指定しますが、これはファイルが既に存在していた場合に上書きして空にしてしまいます。... 続きを読む
Ruby 2.6 の変更点 - Array - @tmtms のメモ
Ruby2.6アドベントカレンダーの3日目の記事です。 qiita.com Array Array#union 追加 https://bugs.ruby-lang.org/issues/14097 引数に指定した配列を結合した新しい配列オブジェクトを返します。重複した要素は削除されます。 ary1 = [1, 2, 3] ary2 = ary1.union([2, 3, 4, 5]) ary1 #=> [1, 2, 3] ary2 #=> [1, 2, 3,... 続きを読む
Windows のキーボードまわりをいじる - @tmtms のメモ
今まで十何年か Linux デスクトップ環境で過ごしてきたんだけど、最近いろいろ環境が変わったのを気に、デスクトップ環境を Windows にしようかと思ったり。 といっても、最低限のカスタマイズは必要なので色々とやる。 「A」の左隣のキーを CapsLock から Ctrl に変更 Change Key というのが便利だった。 https://fores... 続きを読む
そろそろMySQLのutf8について一言いっとくか - @tmtms のメモ
MySQLのutf8 charsetは、やれ「罠」だの「絵文字が入らなくて使えない」だの「utf8という名前はutf8mb4の別名にすべき」だの、散々な言われようでディスられてかわいそうな charset なんだけど、というか主に私がそう言ってる気もするんだけど、そろそろ utf8mb3 のエイリアスとしての utf8 は消え去ろうとしてるみたい... 続きを読む
DNSで浸透って言っちゃだめなの? - @tmtms のメモ
2018 - 05 - 13 DNSで浸透って言っちゃだめなの? 別に言ってもいいよ。 以下想定問答。 「浸透が何を意味しているのかわからない」 ホント? 「浸透いうな」って言われてるってことは、逆に言うとそれなりに広く使われてるってことでしょ。 個人的には「DNSの設定を変更した後、徐々に新しい情報を見ることができるクライアントが増えていく」ことだと思ってるんだけど、これとは異なる意味で使われて... 続きを読む
MySQLパラメータ比較 - @tmtms のメモ
2018 - 02 - 26 MySQLパラメータ比較 MySQL Vue.js の勉強をしようと思ってMySQLのバージョン間のパラメータを比較できるページを作ってみました。 MySQL Parameters やってることは、あらかじめ mysqld --no-defaults -v --help の出力からパラメータの名前と値を JSON にしておいて、それを表示しているだけです。 環境によっ... 続きを読む
クラスはクラスクラスのインスタンスである - @tmtms のメモ
2017 - 12 - 04 クラスはクラスクラスのインスタンスである Ruby タイトルで出落ち感がありますが…。 naruby で時間があまった時のために用意してあったのですが、時間が余らなかったので発表しなかったネタです。ここで公開して供養します。 Rubyはほぼすべてがオブジェクトです。 クラスもオブジェクトです。オブジェクトということはクラスがあります。オブジェクトのクラスはオブジェクト... 続きを読む
Ruby 2.5 - @tmtms のメモ
2017 - 12 - 04 Ruby 2.5 Rubyは毎年クリスマスにバージョンアップされます。 今年も問題なければ12/25にRuby 2.5が出ると思います。 https://docs.ruby-lang.org/en/trunk/NEWS.html を元に変更内容を調べてみました。 言語仕様 トップレベル定数参照 class Foo end class Bar end # Ruby 2.... 続きを読む
本当はこわいMySQLプロトコル - @tmtms のメモ
2017 - 11 - 30 本当はこわいMySQLプロトコル MySQL 11/28 に Haskell で MySQL の Xプロトコルを実装したという話が聴ける Club MySQL というイベントがあったので参加してきました。 clubmysql.connpass.com MySQLのプロトコルの話ということで、平日の夜とは言え東京で参加者9人(発表者含む)というマニアックな集まりでした。... 続きを読む
Gitでコメントを無視して差分を見る - @tmtms のメモ
2017 - 11 - 14 Gitでコメントを無視して差分を見る Git Ruby 古いRubyのコードのコメントを独自のRDoc形式からYARD形式に変換して、さらにその後にプログラムを変更したんですが、その後に差分を見ると大量のコメントの差分が表示されて、実際のコードの差分が何かわからなくなったりしたので、コメントを無視して差分を取る方法を調べてみました。 普通に git diff するとこ... 続きを読む