2011/12/23

MacVimのColorSchemeで日本の伝統色を使う話

今日は天皇陛下七十八回目のお誕生日、今上陛下はうちの親父と同じ昭和八年生まれです。

最近知ったのですが、天皇陛下の束帯は黄櫨染(こうろぜん)という色を使う、そして黄櫨染という色は禁色(きんじき)と呼ばれ天皇陛下以外の何人も使用してはならないそうです。同じように皇太子殿下だけが身に付けることができる黄丹という色も禁色指定とあります。

丁度、日本の色名カッコよすぎワロタwwwwwwwwwVim Advent Calendar 2011で色の話(Vim の Color Scheme を自作するためのあれこれ - あじーん)が12月に出てきたので、今日はMacVimでこれらの日本の伝統色を名前で指定する話です。

2011/11/26

SendmailのキューID覚書き

``pAP2lEJm030284''のような文字列であるSendmailのキューIDは一見ランダムに生成されているようですが、コウモリ本によれば一定の規則によって生成されているとあります。Sendmailはキューを格納するファイルをディスクに作成するときにキューIDをファイル名(qf,df)に使用します。受信したメールがどこかでSendmailを経由している場合、ほぼ確実にキューIDがReceived:ヘッダに記録されているはずです。

2011/11/20

殺伐としたTerminal.appを合理的に美しくする話

PowerBook G4を使っていた頃、MacOS X Tiger(10.4)からLeopard(10.5)にアップグレードして最も困ったのは、
  • ターミナルの背景に画像の設定ができない(10.4の設定ファイルを用いて出来ないことはないけど...)
  • アプリケーション毎のIMEの状態保持が無くなった(Terminal.appに切り替えたらIME OFFの状態になれ)
の二点です。

サーバ管理者が主たる業務なのでTerminal.appの挙動が作業効率にかなり影響します。この二点の不満だけを考えてもTigerの方が良かったとは思いつつ、先日MacBook Airにしたと同時にLion(10.7)のTerminal.appの不満点が改善されていました!すばらしい(´∇`)

2011/11/06

後任のMacBook Airが京都に到着

Steve Jobsさんが亡くなった十月五日を過ぎて、うちのPowerBook G4の調子が次第に悪化しだしI/O Errorが頻発するようになりました。さすがにディスク障害はマズいと思って後任のMacを注文して到着したのが十月下旬、MacBook Airが京都に到着しました。

まだ辛うじて生きているうちのPowerBook G4とは約七年弱のつきあい、2006年正月に買った最後のPowerPCモデルです。

去年までは液晶のドット抜けがわずかにある程度で、それ以外はChromeが使えないと言ったPPC非対応な不便さぐらいで、特に困るようなこともなく使ってました。

今年の秋になるまでIntel Macに換えなかったのは単にデータの移行が面倒、環境構築が面倒、PowerBook G4が壊れたわけではない、と言った理由です。

2011/10/22

YAPC::Asia Tokyo 2011に行って聞いた話

10月13,14,15の三日間、YAPC::Asia Tokyo 2011に行ってきました、2年連続2回目の出場です。去年は初参加で初登壇して発表してきました。今年は法要のスケジュールが確定する前にトークの締め切りがきたので、LTだけ申し込んで最終日に5分だけ喋ってきました。

先に感想を書くと、YAPCで喋れる人って皆、大企業や有名企業の看板がなくても個人で通用する人ばっかりやなぁって印象です。

2011/10/05

bouncehammer 2.7.6で直したバグ(ヘッダの処理)

10/03(月)にbouncehammer 2.7.6をリリースしました。一番大きな変更点は、解析処理を行うmailboxparserコマンドが、ある条件を満たしたバウンスメールを解析すると、途中で停止するという酷いバグの修正です。これはbouncehammerのユーザさんから報告を貰って修正しました。

ある条件とは、不正な形式のメールヘッダで、且つ``@''とESC(0x1b)が含まれている、というものです。

2011/09/29

オープンソース関連のFacebookページまとめ

九月になってからFacebookページについて作り方や使い方を調べる&&実際に作る機会を得て、先日、勉強と練習を兼ねてbounceHammerのFacebookページを作ってみました。今のところ[Like]ボタンを押すメリットは次のリリース日が少し早く分かるという程度でしかないので、もうちょい[いいね]を押したくなるような利点を考えないとあかんわけですが。

Facebookページについて勉強・調査する過程で幾つかオープンソース関係のページを参考にしたので、そのまとめを公開します。

2011/08/31

SendmailからSendGridへリレーする4つの方法

SendGridの紹介SendGridを使ってテストメールを送った話の続きです。SendGridにSMTPでメールをリレーするには、SMTP認証が必須です。なので毎回opensslで認証用文字列を作るのは面倒ですし、Mail.appやOutlook Express, ThunderbirdなどのMUAから[送信]ボタンを押して送るのは、機械的にメール送信する上では非現実的です。

という事で、通常メールをリレーする場合はMTAを使います。PerlのNet::SMTPやEmail::Senderを使って送るのもよいですが、ここではSendmailに渡したメールをSendGridにリレーする話を書きます。Twitterのタイムラインでは毎日誰かがSendmailを罵倒してますが、僕はSendmailが好きなのでSendmailでやります。

2011/08/27

bounceHammer 2.7.5 Release

八月二十五日木曜日、bounceHammer 2.7.5をリリースしました。今回のリリースでは下記が主な変更点です。

  • CSV形式で出力する時にフィールド名が先頭行以外にも入ってしまうバグの修正
  • BIGLOBEとBIGLOBE系CATVのバウンスメール解析対応
  • 米国のShtrudel M@ilの81ドメイン分類対応(Webmail)
  • ロシアのQIP.RUのドメインを幾つか追加で分類対応(Webmail)
  • 管理画面MTAモジュールのページを新設(デモサイト内)

2011/08/20

Net::SMTP vs. Email::Send(er)?

Perl Email Project
Perlでメールを送信(SMTP)する時は、今まで殆どのケースでNet::SMTPを、たまーにEmail::Sendを使っていました。しかし、gihyo.jpの「モダンPerlの世界へようこそ 第20回 Email::Sender:メールを送信する」を読んで、Email::Sendはもう使うな、かわりにEmail::Senderを使えって話が書いていました。内部で呼んでいるReturn::Valueモジュールに問題があったりするそう(←ソースまでは読んでない)です。

Email::Senderを始めEmail::*な名前空間にあるモジュールは、古典的なMail::*やMIME::*の複雑さに業を煮やしたユーザ数名が始めたPerl Email Project(PEP)が管理しているモダンなメール関係モジュールです。モジュールの一覧はTask::Email::PEP::Allで確認できます。

時期的に旬なのでついでに書きますと、Email::Senderを作ったRicardo Signesさんが今年のYAPC::Asia TOKYO 2011来られるそうです。

2011/08/18

魚が旨い、京都の「あんじ六角店」という居酒屋

あんじ六角店」という居酒屋が京都市中京区六角通東洞院西入ルにあります。僕がよく行く居酒屋で、かつ人に勧められるお店の一つで、一言で表現すれば「魚が旨い居酒屋」です。

よく行くとは行っても酒飲みではないので、三ヶ月に一回連れと行くぐらいですが行けば必ず満足します。

2011/08/14

SendGrid Free Planでテストメールを送信した話

SendGridでアカウントを作ったので、送信テストを手始めにいろいろ試してみた覚書です。

簡単にSendGridをおさらいしておくと、SendGridは米国のSMTPリレーサーバサービス、今どきのWebサービスのようにAPI完備、クリック・開封などの追跡機能、バウンス検出、着地ページ作成、メールテンプレート、送信の統計など多くの機能があり、5つの料金プランと200通/日のFree Planが選べます。

2011/08/13

API完備、今どきのメール配信クラウドSendGrid

米国のSMTPリレーサーバサービスのSendGridに申し込んだ時の覚書です。たいした内容ではないですが、もしかしたら誰かの役に立つかもしれない気がするという事で、ブログに書き残します。

SendGridの事を知ったのは米国のQ&AサイトQuoraでメール関係の質問を眺めている時に見つけました。SendGridは基本的に有料で一定数の電子メールをリレーしてくれるサービスですが、一日200通までであれば無料です。今回はこのFree Planに申し込んでみました。

米国のサービスなのでアカウント作成・名前や住所の入力・SendGridから送られてくるメールなど、全て英語です。

2011/07/31

祇園祭2011・近所の山鉾

うちのまわりが鉾町ばかりなので、七月に入ると夜は祇園祭の囃子(練習?)が聞こえてきます。

更に七月十日頃からまわりで鉾立が始まるので、車輌通行止めの道が増える+いつもの一方通行でかなり移動が困難かつ複雑になります。

そして、七月十四日から宵宵宵山でお店が立ち並び、歩行者いっぱいで夜間の外出もなかなか難しくなります。逆にちょっと買い物や郵便局に行くだけでも祇園祭の雰囲気が味わえるので、そこはよいところでもあります。

今日で祇園祭も終わり、今年はいつもより近所で山鉾の写真撮った(iPhoneで)ので、それをいくつか。

2011/07/30

bounceHammer 2.7.4 Release

7/29(金)にbounceHammer 2.7.4をリリースしました。主な変更点はやや特殊な条件下における解析精度に関する問題を含む、3件のバグ修正と、予告どおりfacebookから返ってくるバウンスメールを正しく解析できるようになりました。facebookから返ってくるバウンスメールは、現在把握しているのは@facebook.comと@groups.facebook.comの2つで、双方ともWebMailとして分類されます。

2011/07/29

Open Source Conference 2011 Kansai@京都

受付けで貰えるFirefoxのふくろ
オープンソースカンファレンス2011関西@京都に行ってきました。場所は昔働いていた京都リサーチパーク(KRP)、近所なので炎天下でしたがシーブリーズ塗って自転車で行ってきました。

オープンソースカンファレンスはつい最近存在をしったイベントで、京都で開催ということもあり、今回初めて行ってきました。

会場はKRP1号館4F、1号館は七本松通の東側の建物です。折角参加したので、覚書程度のたいした内容ではないですし、行ってから時間経ってますが、忘れないうちに記録に残しておきます。

2011/06/23

Facebookのブロックで返ってくるエラーメール

Twitterは気楽なのですが、Facebookの方はちょっと気分的に続けるのが重いかなという事で、去年の冬になるまで手を付けていませんでした。が、しかし、Facebookで@facebook.comのメールアドレスを使えるようになるという記事を見てすぐさまFacebookに登録しました。

目的は、開発しているbounceHammerで、@facebook.com関連のバウンスメールをちゃ〜んと解析できるようにするための調査です。

いつから@facebook.comが使えるようになるのかと首を長くして待っていましたが、今日Messagesを確認したところ、使えるようになっていました。ユーザ名@facebook.comに送ると、FacebookのMessagesにメールが入り、返信すると、相手のメールアドレスに返信内容(+元のメッセージが引用された形)が届きます。

そこで本題のFacebookから返ってくるエラーメールについて。

バグ修正のbounceHammer 2.7.3 Release

6/20(月)にリリースしたbouncehammer 2.7.2で、au(@ezweb.ne.jp)の解析精度が落ちているという問題をユーザさんから連絡を受けました。

解析精度が以前よりも低下するというのは、「解析システム」を名乗るソフトウェアにとっては致命的な問題で、すぐさま修正版Version 2.7.3を作って出す事にしました。

問題となっている部分は、厳密にバウンス理由を確定するためのコードのバグでした。

実装の方針としては、宛先不明でないのに宛先不明(userunknown)として検出する、という事を避ける方向でコードを書いていますが、結果としてユーザさんにご不便をおかけしてしまって申し訳ない限りです。

2011/06/21

bounceHammer 2.7.2 Release

昨日(6/20)にbounceHammer 2.7.2をリリースしました。

前回2.7.1をリリースして暫く立ってから気がついたバグの修正だけを予定していましたが、週末にbounceHammerを使ってもらっているユーザさんから、解析できないauのバウンスメールをサンプルとして頂いたので、それの対応もリリースに含めました。

データをもらったりパッチをもらったりするのは開発者としては嬉しい限りです、ありがとうございます。 >> ユーザの皆さん

2011/05/29

花押を作った時の話

エンジニアですが、全く関係のない花押(かおう)の話を書きます。

ご先祖はともかく、僕は武将でもないし、大臣になる予定も今の所ありませんが、自分の花押を持っています。初めて自分の花押を作ったのは学生時代、伊達政宗さんの鶺鴒(セキレイ)を模した花押にある針の穴の話を知ったときです。「花押カッコイイ!」という好奇心と「大人になったら使うかもしれない」という勢いだけで作ってみる事にしました。

何が言いたいか先に結論を書くと、いつ戦国時代になってもいいように、またはいつ入閣してもいいように日本人たるもの花押の一つぐらいは用意しておくべき、です。

2011/05/26

Rで順列(nPr)と組み合わせ(nCr)を計算するメモ

Rは統計や解析でよく使われるオープンソースソフトウェアですが、R用に順列(nPr, P=Permutation)と組み合わせ(nCr, C=Combination)の関数を作ったメモです。このあたりはCRAN, The Comprehensive R Archive Network (PerlのCPANに相当)を探せばあると思いますが、簡単な計算なので自作しました。

2011/05/25

SSHdのポートは何番に変更すべきか

通常、企業のサーバはデータセンターに設置されていて、SSHで接続できるのは限られたIPアドレスからのみ、あるいは、そもそも外部のネットワークからSSH接続が許可されていないものです。しかし、小規模な場合はレンタルサーバ数台や、最近では安価なVPSを数台という構成で運用しているところもあるでしょう。

レンタルサーバやVPSで運用する場合、ネットワークの入り口:ゲートウェイから全てのパケットが入ってきますので、サーバ毎にFirewallを設定する必要があります。OpenBSDであればpf, FreeBSDであればipfw, Linuxであればiptablesを使いますね。

この記事は、SSHdを動かす際に標準の22番ポート以外のポートでListenさせる時の話です。簡単に言うとSSHdをListenさせるポート番号の決め方の紹介です。

2011/05/10

サーバ管理に役立つ(かもしれない)FIGletというツール

FIGletは↓の様な文字を大きくするツールで、言わば文字専用のアスキーアートを出力するプログラムです。同じような目的のプログラムとしてはbannerコマンド(MacOS Xなら/usr/bin/banner)がありますが、figletコマンド方がより柔軟に多彩な文字を表示できます。


僕はサーバ管理の補助的なツールとしてこのFIGletを使っていますが、どんな感じで役立つのか書いてみます。

2011/05/04

bounceHammer一周年記念式典

bounceHammerを2010年3月にオープンソース化して一年と少しが経過しました。式典は執り行っていません。公開から二、三ヶ月の間は深刻なバグがあってリリースした数日後に修正版をリリースしたりしていましたが、やっと落ち着いてきた感じではあります。自分のブログを再開した最初のエンジニア的な記事なので、bounceHammerの事を少し書いてみます。

ブログ再開、というかやっと公開

ブログ再開、というかやっと公開。ここに至るまでの経緯は次の通り