MySQL Shell / X DevAPI / X Protocol

MySQL 5.7.12 で突如登場した MySQL Shell とか X DevAPI とか X Protocol とかが面白そうだったので調べてみました。 Document Store とかも同じ文脈で語られてて、それぞれの用語が何を表してるのかややこしかったので、まずその辺から。 X Protocol mysql…

MySQL ソケットピア証明書認証プラグイン

全然知らなかったんですが、MySQLに「ソケットピア証明書認証プラグイン」というのがあるのを知りました。 http://dev.mysql.com/doc/refman/5.6/ja/socket-authentication-plugin.html これを使うとOSのログインユーザーと同じ名前のMySQLユーザーであれば…

Twitter からの文字化けメール

Twitter を名乗るメールアドレスからメールが届いたのですが、Subjectが文字化けしていました。 Subject: ã¨ã¿ãŸã¾ã•ã²ã‚さん、Twitterからの感謝のメッセージです。 いまのTwitterがあるのは、皆さんのおかげです。 10年前の今日、ひとつのツイートからすべ…

flock(LOCK_EX) で EBADF

ちょっとハマったのでメモ。 ファイルを flock() で排他的にロックするために次のようにすると成功します。 % ruby -e 'File.open("hoge").flock(File::LOCK_EX); puts "OK"' OK が、NFS 上で同じことをやると失敗します。 % ruby -e 'File.open("hoge").flo…

Postfix 3.1 の新機能 / JSON形式キュー表示と配送流量制御

Postfix 3.1 がリリースされました。 個人的に気になった新機能は JSON-format Postfix queue listing. Destination-independent delivery rate delay の2つです。 JSON形式キュー表示 今までは mailq や postqueue -p コマンドで次のような表示がされていま…

Crystalの文字エンコーディング

2/16 に Crystal 0.12 がリリースされました。 0.12 では Crystal に文字エンコーディング変換の仕組みが導入されました。 Ruby と同じような感じで String#encode や IO#set_encoding 等が追加されました。 といっても Crystal の文字エンコーディングは Ru…

文字化けメールその2

スパムメール…というかフィッシングメールが送られてきたのですが、文字化けしていました。 文字化けメール研究家としては(ry メーラーで見ると Subject と本文が次のようになっていました。 From: 【りそな_y行】 <mp@resona-gr.co.jp> Subject: 本人_J_^サ_`ビス 文字化けとし</mp@resona-gr.co.jp>…

文字化けメール

DELL にユーザー登録したらメールが送られてきたんですが、そのメールが文字化けしてました。 文字化けメール研究家としては解析せざるを得ません。 メーラーで見ると Subject が次のようになっていました。 デルアカウントに$4EPO?$$$?$@$-!"$"$j$,$H$&$4$6…

1kg 前後のノートPC

自分のメインPCはノートPCで ThinkPad X220 を使ってるんですが、もう4年半前に買ったものだし重いので、新しくてもっと軽いPCが欲しいと思ってます。 重量 1kg 程度、画面は13インチ、CPUは Core i5、メモリ8GB くらいを条件にして探してみました。 なお、…

Crystal でバイナリデータを扱う

前回も書いたように Crystal の String のエンコーディングは UTF-8 固定です。なので Ruby のようにバイナリデータを String オブジェクトで扱うことはできません。 バイナリデータは Pointer, Slice, MemoryIO で扱うことができるようです。 自分でもよく…

Crystal に String#scrub と String#valid_encoding? を追加

前に次のような記事を書きました。 tmtms.hatenablog.com Ruby と異なり、エンコーディングを変換したり UTF-8 として正しいバイト列かどうかを判定する方法もありません。つらい。 これを解決するために Crystal に String#scrub と String#valid_encoding?…

Crystal の名前付き引数は自然に書けてつらくない

これは「Ruby脳にはCrystalつらい Advent Calendar 2015」の25日目の記事です。 qiita.com Ruby の名前付き引数の例です。 def hoge(a, b=1, c: 2) p [a, b, c] end hoge(123) #=> [123, 1, 2] hoge(123, 456) #=> [123, 456, 2] hoge(123, c: 789) #=> [123…

Crystal はソースコードも Crystal でつらくない!

これは「Ruby脳にはCrystalつらい Advent Calendar 2015」の24日目の記事です。 qiita.com Crystal のソースコードは Crystal で記述されています。最初は Ruby で書かれていたようですが、現在はすべて Crystal で書かれています。 Ruby は本体と組み込みラ…

Crystal はブロックがエラーになることがあってつらい

これは「Ruby脳にはCrystalつらい Advent Calendar 2015」の23日目の記事です。 qiita.com メソッドに渡されたブロックを実行するには次の2つの方法があります。 def hoge yield end hoge{ p 123 } def hoge(&block) block.call end hoge{ p 123 } ですが、…

Crystal には Thread がなくてつらい

これは「Ruby脳にはCrystalつらい Advent Calendar 2015」の22日目の記事です。 qiita.com タイトルのまんまですが、Crystal は Thread がなくてつらい。 Thread というクラスはありますが、ソースを見ると、 # Don't use this class, it is used internally…