2010-08-03
■[Ruby]連続する奇数番目の改行を除去する
メーラーの関係で、HTMLメールを受信したときに改行コードが連続することがたまにあります。冷静に考えれば送信側のメーラーが動きすぎているんでしょうが、さすがに見づらいので対応するスクリプトなど。
# 連続する奇数番目の空行を除去する def trim_alternate_newlines(s) odd = true s.lines.inject('') { |r, line| # 空行チェック if line =~ /\A\s*\n/ line = '' if odd odd = !odd else odd = true end r << line } end
Enumerable#inject に意味は無し。たぶん、String#gsubで一発でしょう。
例 こんにちは あしたは すずしくなる はず、としんじます では、 さようなら /~~~
これに対して実行すると、こんな感じ。
実行結果 こんにちは あしたは すずしくなる はず、としんじます では、 さようなら /~~~
2010-05-25
■[日記][サーバー管理]チラリズムは時として悪だ!
1ヶ月ぶりのアップがこんなネタになろうとは… タイトル見て妄想に走った人!ごめんなさい、そっち系ではありません。
某所でサーバーの設定をして、さて「サービス開始だ」とばかりにポートを開いたときのこと。
ちょっとだけコネクションが開き、データ転送が始まった、
と思ったら、すぐに強制終了してしまう
という現象に見舞われました。
ルーターの設定を眺めてみたり、Google先生に質問したりすること2時間(!)かけるも、状況を説明できる証拠が見つからず・・・ で、結論はぷらら(プロバイダー)がナイスな無料サービス「ネットバリアベーシック」を開始したことが原因でした。
この中で、パケットフィルタのデフォルト値が「レベル1(弱)」なのですが、下記の説明ページでは、「その他通信(着信)」と「ウィニー」だけが「×」となっています。
「×」ならば通信不能とすれば良いところを、わざわざチラリとだけ通信させてからブロックしていたわけですね。挙動の理解はできたものの、共感はできないなと思った次第です。
2010-01-30 1月ももう終わり
■[Ruby]第40回 Ruby/Rails勉強会@関西参加
前回に引き続き、Ruby関西で発表してきました。アジェンダと発表資料はこちらです。
何というか、まあ相変わらず空気を読まないテーマで話をしてきたわけですが、時間も短かったせいか前回よりは良い感触だったようです。
まあ、それも偏にWatirの紹介が奏功したからなのでしょうが・・・
さて、訂正が2点。

ただ、ボクが意識していた問題空間が微妙にズレがあるようで、空行じゃない改行コードを消すのは勇み足かなぁ。
(もちろん、例と実行結果だけであれば正解)
というわけで、
「こういうロジックって人間が手作業でやることをそのまま愚直に書いた方が紛れがなくない?」
という主張だったりします。あと、pデバッグもできますし(ボソッ
でも簡単にできることで妥協するのも大切かと
puts s.split (全ての空行除去) とか
$ cat -s ファイル (連続する空行除去)とか
で、そのプロセスはもちろん irb で踏んでますよ〜
その上で「もっと見やすい形を」→「公開(晒しモノに)」と。
個人的には、100MB級のファイルを扱えるよう、
IOのループに落とす方が好きですが、今回の問題では不適切でした。