2015-01-01から1年間の記事一覧

さくらのレンタルサーバで自分から届いたメールを.Sentディレクトリに自動的に移動する

メールを送信するときに自分宛てにBccして送信したメールを保存しておく、ということはよくやるけれども、自分からのメールはやっぱり別フォルダに分けておきたい。IMAPを使えばサーバ上で自動的にフォルダを分けて送信済みメールは専用フォルダに行くように…

2重起動したくない時のための起動スクリプト

1時間に1度起動するスクリプトが実行し終わるまでに1時間以上かかってしまうかもしれないとしたら? 前の処理が終わる前に新しい処理が始まってしまうと処理しているデータの整合性が失われて困ったことになるかもしれない。 なので、ロックファイルを使って…

MWSのRuby向けサンプルコードをオブジェクト指向っぽくしてみた。

AmazonマーケットプレイスWebサービスというのを触る機会があり、以下のページを参考に勉強しているのだけどサンプルコードが全部ベターっと書かれていて再利用しにくいなあと思った。 ※ベターっとのニュアンスがわからない方は以下リンク参照aws.typepad.co…

mod_rewriteで条件分岐

URLがある条件にマッチした場合にはURLを書き換えたくない場合がある。 そういうときは [S] (Skip) フラグを使用する。 このフラグを使うとURLが条件にマッチした場合にはn行下までの条件をスキップすることができ、擬似的にIF文のような条件分岐を実現でき…

Raspberry Pi買ったのでシェルからLチカ

何年も前から欲しい欲しいと言って買ってなかったRaspberry Piをとうとう購入した。 日経BPのラズパイマガジンとケースのセットで8000円位だったか。 とりあえずOS入れて無線LANの設定やらなんやらを済ませ、SSHでログインしてLチカを試した。 Pythonのライ…

便利なライブラリが使えなかったのでrubyからsendmailコマンドを直接叩いて添付ファイル付きメール送信

ruby1.8.5しか入っていないサーバでメール送信するスクリプトを書くことになった。 rubyでメール送信するときはponyを使うと便利なので愛用していたのだけど、ruby1.8.5では最新版が動かない。シンタックスエラーが出まくる。記法とか{key:val}記法とか">*1 …

WordPressのWordPressアドレスとサイトアドレスを別にすると管理バーが出なくなる。(あるいはWordPressのWordPressアドレスとサイトアドレスを別にしても百害あって一利なしということはもっと拡散されるべき)

百害というか一害なんですけども。admin-barが表示されないfield-archive.com まったくもう。 管理バーが表示されないんですよ。 他の人が作ったサイトを引き継いで、ファイルやらDBやらをまとめて別サーバに移動させ、動作確認してみるとログインしても管理…

さくらのレンタルサーバに入っているVimでもUTF-8使えるやん。(export LANG=ja_JP.UTF-8 だけで十分だった話)

さくらのレンタルサーバスタンダードプランにSSHログインしてVimを使おうとしたがUTF8なテキストが文字化けしてどうにもよろしくない。 手元のMacに入れてる.vimrcをコピーしてもダメ。 これはイカンとぐぐってみるとさくらのレンタルサーバのVimはUTF8が化…

続・Windowsがシャットダウンするとき、動作中のrubyプログラムはどうなるのか? あるいはシグナルを他プロセスに投げられるとか甘えだし〜

昨日書いた記事の続編。 Windowsがシャットダウンするとき、動作中のrubyプログラムはどうなるのか? - koki-h's diaryWindowsでシグナルってどんなふうに扱われてるのかな、と思ってググってたら以下の記事を見つけた。 そもそも他プロセスにシグナル投げら…

Windowsがシャットダウンするとき、動作中のrubyプログラムはどうなるのか?

まあ強制終了されるのだけど。 普通、rubyプログラムは外部から強制終了させられるとき(INTシグナルが送られてきた時)はInterrupt例外を吐いて死ぬのだけど、OS自体がシャットダウンするときはどうなるのか?今回はWindows7で確かめてみた。ちなみにRubyは…

sinatraとmechanizeを一緒に使うと動かない(動かす方法が悪いので)

sinatraで今WEBアプリを作っている。 WEBアクセスがあったらMechanizeで別のサイトへデータを取りに行く、みたいなの。 require 'sinatra' require 'mechanize' get "/" do agent = Mechanize.new agent.open("http://example.com") #とかなんとか end で、…