ちょっと前の話なんですが、croniterというモジュールを書きました。これは何かというと時間に紐付いた繰り返し処理を扱うモジュールです。例えば「毎週火曜日と木曜日の9時」とか「日曜日の5時から10時まで1時間ごと」にとか、そういう繰り返しを扱いたいときに使う事を想定しています。
‘programming’ カテゴリーのアーカイブ
時間のインターバルをcron的に扱うPythonモジュール書いた
2010年8月11日 水曜日Pythonでタイムゾーンを扱うメモ
2010年8月10日 火曜日日本だと普段扱わないので、忘れがちなタイムゾーンの処理をメモ書きです。ここでは例として、日本時間とアメリカ東海岸標準時の変換してみます。
Pythonでいろんなバイナリファイルを覗いてみる
2010年8月1日 日曜日プログラマをしていると、ちょくちょくバイナリデータから情報を読みたくなりますね。そんな時は、ブツブツ言いながらバイナリエディタと睨めっこすることになるわけですが、これが結構大変なので、何とか楽にならないかなぁと思って探していると、hachoirというナイスなpythonモジュールが見つかりました。このモジュールを使うとバイナリデータをパースして様々なデータを取得できます。かなり多くのデータフォーマットに対応している(現時点で70種類)のが素晴らしいです。
Hello elisp World
2010年7月23日 金曜日以前にtrampのデバッグでちょろっとだけ触ったきりのelispですが、emacsユーザである以上いつまでも避けては通れなさそうです。とりあえず触りだけ覚えておくことにしました。ただ今のところelispの習得度がpythonやperl並みになることは考えにくいので、elispから外部コマンドを叩いて出力を受け取るというところまでをメモしておきます。
何故かAppleScriptが動かない時はactivateしたら良いよという話
2010年7月9日 金曜日覚えたばかりのAppleScriptが動かなくて、ハマり倒したのでメモしておきます。まず動かなかったのは以下のコードで、やろうとしてるのは一番新しい送信ボックス中のメールに返信する形で新しいメールを作って件名と本文に適当な文字列を設定すると言うことです。単純ですね。
on run tell application "Mail" set last_msg to the first message of sent mailbox set reply_msg to reply last_msg with opening window tell reply_msg set subject to "replied" set content to "this is replied message" end tell end tell end run
パッと見は動きそうなのですが、実行するとsubjectの設定でAppleEvent handler failedという謎のエラーが出ます。replyではなくて新しくメールを作った場合は動作するので、さっぱり原因が予想できず自己解決できませんでした。
Hello AppleScript World
2010年7月3日 土曜日最近ではデザイナさんもAppleScriptを使いこなすようで、プログラマの自分がまったく理解してないのはどうかと言うことでかじってみる事にしました。まぁ日常的に使ってるのはTerminalとEmacsとYoruFukuroだけなので、個人的にはあんまり使う機会が無いかもなのですが、ひょっとするとXcode周辺で役に立つかもしれないという甘い期待を抱いています。
Hello Yacc & Lex World
2010年6月18日 金曜日最近ちまちまとyacc/lex(実際はbison/flex)を触っているのですが、やたらと苦労しています。真面目に学校に行ってなかったのが悔やまれますが、愚痴っていても仕方が無いのでメモ書きです。
ここでは以下の様なTinyCモドキのコードをyaccとlexで扱ってみます。
main() { var i; var s; s = 0; i = 0; while(i < 10){ s = s + i; i = i + 1; } println("s = %d",s); }
TinyCについてはコチラのページを参考にさせて頂きました。何故モドキかと言うと、僕にはTinyCですら複雑だったので、TinyCを更に小さくしたモドキをパースする事にしました。ヘタレですいません。
[メモ] Pythonのデコレータ
2010年5月30日 日曜日出てくる度に調べる割に、いつまで経っても覚えられなかったデコレータですが、今回こそ仕留める為にメモエントリーです。まずよく見かけるのは関数の時間を計測するという例ですね。僕はこの形だけを何となく覚えては忘れていました。
#!/usr/bin/python # -*- coding: utf-8 -*- import time # デコレータ定義 def time_func(func): def decorator(*args): start = time.time() ret = func() print '%s was executed, it took %s sec' % (func.func_name, time.time() - start) return ret return decorator # デコレータ適用 @time_func def test(): time.sleep(1) def main(): test() if __name__ == '__main__': main()
Hello Autotools World
2010年5月13日 木曜日名前とぼんやりとした役割や機能だけは知ってるけど、腰が引けて使えないという状態だったautomakeやautoconfですが、覚える必要が出てきたので概要だけでも把握しようという事で調べてみました。出てくるツールや中間ファイルの種類が多いので、まずは図を書いて整理してみました。
