ブログ移行しました。

色々思うところあって、ブログを移行することにしました。

こちらでの更新はこれが最後です。

移行先はこちらです。

http://d.palmtb.net/

コメントなど、まだ部分的に未設定のところもあったり、ちゃんと移行できていない箇所(画像も表示できてないな…。)も所々ありますがはてダの記事&コメントは基本的に全て移行済みです。

はてなさん、今までありがとうございました。

グズりにやられる。

この2週くらい、おまめちゃんのグズりが酷くなり何をしても泣き止まないので泣き止むまで=寝付くまで抱っこしていたりします。こっちが先に眠くなってしまうこと多々。帰宅してからヨメさんと話をすると、一日グズってばかりだった、という日がほぼ毎日。帰宅してから寝付くまでの数時間で音を上げているワシに比べ、ヨメさんすごいなぁと。感謝。

おまめちゃんの泣き声は耳塞いでも空気越しの骨伝導で聞こえる…。

一回お休み。

ちょっと今日は余裕が無いのでネタなしです。

pystacheで使ってはいけない文字列。

pystacheは、ヒゲテンプレートエンジンMustacheのPython版なのですが、あるファイルをpystacheを使うとコケる、という問題に遭遇しました。

$ python mt2rest.py data/mkouhei.txt
Traceback (most recent call last):
  File "mt2rest.py", line 201, in <module>
    print(o.render().encode('utf-8'))
  File "/usr/lib/python2.7/dist-packages/pystache/view.py", line 110, in render
    return Template(template, self).render(encoding=encoding)
  File "/usr/lib/python2.7/dist-packages/pystache/template.py", line 42, in render
    template = self.render_sections(template, context)
  File "/usr/lib/python2.7/dist-packages/pystache/template.py", line 78, in render_sections
    insides.append(self.render(inner, item))
  File "/usr/lib/python2.7/dist-packages/pystache/template.py", line 42, in render
    template = self.render_sections(template, context)
  File "/usr/lib/python2.7/dist-packages/pystache/template.py", line 78, in render_sections
    insides.append(self.render(inner, item))
  File "/usr/lib/python2.7/dist-packages/pystache/template.py", line 43, in render
    result = self.render_tags(template, context)
  File "/usr/lib/python2.7/dist-packages/pystache/template.py", line 96, in render_tags
    func = modifiers[tag_type]
KeyError: u'#'

入力元のファイルは、はてなダイアリーのエクスポートデータだったのですが、コケていたのは この記事 。原因は”{{“と”}}”でした。納得。そりゃエスケープしないとアカンすな。

TonicDNSでレコードの一括登録・削除するためのJSONを生成する。

TonicDNSを使う場合、APIに投げるためのJSONの生成が面倒なので、 半角スペースまたはタブ区切りのテキストファイルからJSONを生成するスクリプト を書きました。例えば、

# name type content ttl priority
test0.example.org A 10.10.10.10 86400
test1.example.org A 10.10.10.11 86400
test2.example.org A 10.10.10.12 86400
example.org MX mx.example.org 86400 0
example.org MX mx2.example.org 86400 10
mx.example.org A 10.10.11.10 3600
mx2.example.org A               10.10.11.10 3600

と記述したファイル(example.org.txt)を引数で指定すると、

$ python json-convert.py example.org.txt
{"records": [
{"content": "10.10.10.10", "priority": null, "type": "A", "name": "test0.example.org", "ttl": "86400"},
{"content": "10.10.10.11", "priority": null, "type": "A", "name": "test1.example.org", "ttl": "86400"},
{"content": "10.10.10.12", "priority": null, "type": "A", "name": "test2.example.org", "ttl": "86400"},
{"content": "mx.example.org", "priority": "0", "type": "MX", "name": "example.org", "ttl": "86400"},
{"content": "mx2.example.org", "priority": "10", "type": "MX", "name": "example.org", "ttl": "86400"},
{"content": "10.10.11.10", "priority": null, "type": "A", "name": "mx.example.org", "ttl": "3600"},
{"content": "10.10.11.10", "priority": null, "type": "A", "name": "mx2.example.org", "ttl": "3600"}],
"name": "example.org"}

のようにTonicDNSのレコード登録および削除用のフォーマットを生成します。

いつものように GitHubで公開 しています。