docutilsの中見てたら、emacs用のelがあったので入れてみた。
ヘッダの色が分かりづらかったのでM-x customize-faceで変更した。

参考
さくらのVPSで採用されているというKVMに興味を持ったので書籍を探してみたら、これがヒットしたので早速購入して読んでみた。
ちなみにKVMとは
KVMは、Linux Kernel自体をハイパーバイザとする仕組みで、正式名称を「Kernel-based Virtual Machine」といいます。KVMは現時点では、Intel VT-xやAMD-VといったCPUの仮想化支援機能を必要とし、完全仮想化によりOSの仮想化環境を提供します。
本書の内容は、仮想化全般の基礎知識から、インストール、導入まで。あとはコマンドのちょっとしたリファレンスが付いてくる感じ。Amazonのレビューにある通りひと通り試したことある人には物足りない内容かも知れないが、予備知識無しでKVMが知りたいのならば手軽に読めてよいと思う。
僕の場合にはこういう内容が知りたかったのだけど、ライブマイグレーションの話題しか触れてなかったのでそこはちょっと残念だったかな。
自分の職場はサーバー管理のスキルのない人間が管理者をヤラざるを得ず、ハードウェアを移行するたびに、(昔作ったサービスが移行できずに)サーバー環境が劣化していくという結構悲惨な状況だったりするわけだ。そもそもサーバー管理自体が本来の仕事と関係なくて片手間なのでしょうがなかったりするので、仮想化しとけばさくっと移行できて、ハードウェア移行の際のコスト減らせるかなぁという期待感からKVMに興味を持ったのだ。
特に7章でPythonとlibvirtを使ったプログラミングの例が出ているようにPythonを利用して色々できそうなので、サーバー管理の省力化に貢献しそうな気はするんだよなぁ。
04042011 life
サイエンス入ってんのかなと思ったら、ほとんどなかった。単にお得な住宅の話だったのであんま感想はない。
文字の多いパンフレットか?と問われればまぁイエスだろうな。
著者の他の本も住宅関係だしな。
「太陽光発電付きの一戸建てのお得な買い方」ってほうがタイトルにふさわしいかな。
splitの第二引数を与えると分割数を指定できる
>>> "test.tar.gz".rsplit('.') ['test', 'tar', 'gz'] >>> "test.tar.gz".rsplit('.',1) ['test.tar', 'gz']
perlだとこんな感じか(re.plで確認)
$ split /\./, "test.tar.gz" $VAR1 = 'test'; $VAR2 = 'tar'; $VAR3 = 'gz'; $ split /\./, "test.tar.gz", 2 $VAR1 = 'test'; $VAR2 = 'tar.gz';
perlでrsplit相当のことやるにはどうすんだろか?
04042011 三島 静岡 javascript
延期になってた第二回は静岡で4/23開催
今回は三島駅からすぐのゆうゆうホール。
今回は関数の章なので次の5,6章とあわせてこの本のピークに突入
慣れれば生地はサクサク作れるし、ほとんどの工程をボールの中だけでやってしまうことが可能なので洗い物があまり出ない(これ重要)
具を詰める作業は子供と一緒に。難点は数が作れないあたりか(200g打って8個分の生地)
蕎麦打ち用のこね鉢使えば一度に600g位打てるかな。そうすると24個作れるのか

蒸しあがり。「豚バラとねぎ」「鶏肉、椎茸、筍」というオーソドックスな組み合わせ。

今の蒸し器だと一度に5個までしか蒸せないので、2,3段重ねられる蒸し器が欲しいところ。
03042011 Python
Amazon アフィリエイトのレポートをメールで自動で受けとる 2011年版を見て、毎回アクセスして確認すんのは面倒なので僕もやっとこうと思った。
普段こういう作業ってperlでやってしまうことが多いのでPythonのmechanize使うのは初めてだ。あと、pyquery使うのも初めてだったりするが、jQuery知ってればサクっと使えてかなり便利。
#!/usr/bin/env python # -*- encoding:utf-8 -*- # kzfm <kerolinq@gmail.com> from mechanize import Browser import smtplib from email.MIMEText import MIMEText from email.Header import Header from email.Utils import formatdate from pyquery import PyQuery as pq email = 'XXXXXXXX@gmail.com' password = 'XXXXXXXXXXXX' amazon_url = 'https://affiliate.amazon.co.jp/' def get_amazon_data(): br = Browser() br.set_handle_robots(False) br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; \ rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')] br.open(amazon_url) br.select_form(name="sign_in") br["email"] = email br["password"] = password response = br.submit() d = pq(response.get_data()) return [data.text for data in d('div').filter('.data')] def send_mail(data): from_addr = email to_addr = email subject = u'Amazonアフィリエイト' body = u""" 発送済み商品合計: %s 売上合計: %s 注文済み商品: %s クリック数: %s あなたのコンバージョン: %s """ % tuple(data) msg = MIMEText(body.encode("utf-8"),'plain','utf-8') msg['Subject'] = Header(subject, 'utf-8') msg['From'] = from_addr msg['To'] = to_addr msg['Date'] = formatdate() s = smtplib.SMTP('smtp.gmail.com', 587) s.ehlo() s.starttls() s.ehlo() s.login(email, password) s.sendmail(from_addr, to_addr, msg.as_string()) s.close() if __name__ == '__main__': amazon_data = get_amazon_data(); send_mail(amazon_data)
4/1からちょっとデザインが変わったようで、紹介料率の項目がなくなっていたので修正した。
wikiやめたのでSphinxにメモるようにしてます。
で、ちょっと悩んでいるのがmake html後の手順だ。
現在/var/www/html以下はgitで管理していて、/var/www/html/[sphinx_html]みたいにドキュメントを置こうかなと考えているんだが、それってクライアント側でmake htmlして_build/htmlをcp -Rして/var/www/htmlを管理している方のGitに管理させるのがいいのかそれとも分けて管理してサーバー側で改めてmake htmlするようにしたほうがいいのかと。
あとはmake htmlしたあとの_buildディレクトリってもうちょっと自動的に公開されるようにできんかなと。
自動化といえば作業しているrstを監視しといてrstが更新されたら裏で自動的にmake htmlかかるようにできんかなとかも思った。
Makefile読んだらmake htmlは
html:
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
@echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
ということなのでSPHINXBUILDつまりsphinx-buildコマンドを直接呼び出して明示的にBUILDDIRを指定してやればいいってことだった。
粉物は楽しいですね。
薄力粉とお湯なので油断すると手にくっ付く。油を入れる分パン作りよりはましだけど

一次発酵終了後。正方形に延ばしてから、畳みながらドライフルーツを挟んでいく。この重ねあわせがチェンツォンらしい。

子供用なのでドライフルーツはわんさか。あとプルーンを刻んだのも投入した。

蒸しあがり。本当は菱形に切るのがオシャレらしいんだが切り方わからん。

そしておやつタイム。息子の顔が北の国からのおとんみたいになっとんな。

初めてにしてはよく出来た