Ruby, MySQL のうるう秒の扱い

2015/7/1 にうるう秒が挿入されるということで、うるう秒の話題が盛り上がってるようなので自分も書いてみます。 Linux 上のプログラムが時刻で60秒を刻むには、うるう秒対応のタイムゾーンを使う必要があります。 通常はうるう秒を考慮していないタイムゾー…

2014年の振り返り

あけましておめでとうございます。 2014年も無事終了したので一年を振り返ってみます。 ブログ 1年間で27件の記事を書きました。2013年が24件だったので少し増えました。 はてなブックマークで2桁以上ブクマされたものを並べてるとこんな感じです。 278 メー…

Postfix Advent Calendar 2014

これはPostfix Advent Calendar 2014の26日目の記事…じゃなくてまとめです。 Postfix Advent Calendar 2014 - Qiita 11月下旬、今年もどっかのアドベントカレンダーに記事を書こうかとQiita の Advent Calendar 2014を眺めてたんですが、Postfix が無いこと…

Postfix から MySQL を使う

これは Postfix Advent Calendar 2014 の15日めの記事です。 Postfix Advent Calendar 2014 - Qiita ルックアップテーブル Postfix のルックアップテーブルは Linux だと通常は hash 形式のファイルですが、ファイルの代わりに MySQL, PostgreSQL, LDAP 等を…

7bit と 8bit の狭間で

これは Postfix Advent Calendar 2014 の6日目の記事です。 Postfix Advent Calendar 2014 - Qiita その昔、電子メールは 7bit データでした。 日本語は ASCII の範囲におさまらないのですが、ISO-2022-JP*1にエンコードすることで 7bit になるので、日本語…

Postfix の拡張メールアドレス

これは Postfix Advent Calendar 2014 の4日目の記事です。 Postfix では拡張メールアドレスを使うことができます。 tmtms@example.com というメールアドレスがあった場合、tmtms+ext@example.com というメールアドレスも自動的に有効になります。ext 部分は…

Postfix の main.cf のフォーマットについて

これは Postfix Advent Calendar 2014 の2日目の記事です。 Postfix Advent Calendar 2014 - Qiita Postfix が登場する以前、MTA と言えば Sendmail でした。Sendmail の設定ファイル sendmail.cf は人間が読むことも書くことも難しくて、設定ファイルを簡単…

Postfixのパラメータ

Postfix 2.9 がリリースされたころに「Postfixのパラメータ」という記事を書きましたが、それ以降の変更について書いてみます。 新しいパラメータ、全然しらない…。 Postfix 2.9.11 パラメータ数 701 Postfix 2.10.5 パラメータ数 709 追加 postscreen_upstr…

MySQLユーザーがPostgreSQLを触ってみたメモ

最近なぜか MySQL を使う Ruby アプリを PostgreSQL に対応する羽目になっているのですが、今までほとんど MySQL 以外の RDBMS を触ってなかったので、色々ハマったりしたのでメモっときます。 なお PostgreSQL 歴が浅いので間違ってること書いてるかもしれ…

RSpec をやめて Test::Unit に戻る

最近の RSpec は、それまで obj.stub(hoge: value) と書けたものが、 allow(obj).to receive(:hoge).and_return value と書かないといけなくなったりとか、正気の沙汰とは思えないような変更をしたりするので、何年かぶりに Test::Unit を使ってみようとリハ…

Rubyのシグナルハンドラ

toRuby & guRuby 出張版 でシグナルについてやってたので、関連して書いてみます。 どのような時にシグナルハンドラを定義するのか どのような時にシグナルハンドラを定義するのかという話がありました。 UNIXのデーモンプログラムは、何が由来なのかわかり…

RubyHiroba 2014 に行きました

去年に引き続き RubyHiroba 2014 に行ってきました。 お目当ては toRuby & guRuby 出張版 です。 渋谷の一角の北関東。 咳さん(@m_seki)とか田中さん(@tanaka_akr)とか角さん(@kdmsnr)とか角谷さん(@kakutani)とか豪華メンバーが参加してました。 guRuby - …

メールアドレスの正規表現

たまにメールアドレスの形式を正規表現で表すのは不可能とかというのを目にするのですが、そんなことはありません。入れ子がなければたいていの文字列の形式は正規表現で表すことができます。 ということで、RFC5321, 5322 からメールアドレスの正規表現を書…

Dockerイメージを作る (NSEG#54)

NSEGの第54回勉強会で「Dockerイメージを作る」という発表をしました。 Dockerイメージを作る (SlideShare にもアップロードしました) スライドにも書きましたが、前回以降にやったことの自分用のまとめみたいな感じで、世間的に目新しい話題は特に無いです…

相手がいないのに ESTABLISHED になってる TCP ポート

最近 ParallelServer というライブラリを作ったのですが、その最中に奇妙な状態になってる TCP ポートを見つけたので、メモっておきます。 Ruby では TCP サーバーは次のような感じで作ることができます。お手軽ですね。 require 'socket' Socket.tcp_server…