週末は久しぶりにピザを作った

娘がピザを作りたいと言い出したのでピザ作り。強力粉400gから直径18cmの生地が8枚くらい出来る分量なので薄い生地ですな。後ろに見えるのは食べるラー油。ピザにかけてみようかと買ってみた。トマトソースもめんどくさかったので市販のミートソースで代用した。

1301211751 1301211748

強力粉は子供には捏ねることができないので混ぜるとこだけやらせたが、捏ねたいと言って聞かなかったので飽きるまで捏ねさせてみた。ちなみに台は蕎麦打ち用のやつだったりする。

1301211755

休ませて8等分して、麺棒でゴロゴロやって延ばす。手でちまちまやるのはめんどくさいし強力粉はなかなか延びない。

1301211750

生地が出来たら色々載せてオーブンで焼く

1301211746 1301211753

勝沼醸造のワインをあわせた

1301211744

Pythonでまだ読んでない標準モジュールのリスト

wikiで必要なデータってこれぐらいしかなかった。

まだ読んでないPython標準モジュール

  • BaseHTTPServer.py
  • Bastion.py
  • CGIHTTPServer.py
  • Cookie.py
  • DocXMLRPCServer.py
  • SimpleHTTPServer.py
  • SimpleXMLRPCServer.py
  • SocketServer.py
  • _strptime.py
  • _threading_local.py
  • aifc.py
  • asynchat.py
  • asyncore.py
  • atexit.py
  • audiodev.py
  • bdb.py
  • cProfile.py
  • calendar.py
  • cgi.py
  • cgitb.py
  • chunk.py
  • cmd.py
  • code.py
  • codecs.py
  • codeop.py
  • cookielib.py
  • copy.py
  • copy_reg.py
  • csv.py
  • decimal.py
  • difflib.py
  • dircache.py
  • doctest.py
  • dumbdbm.py
  • dummy_thread.py
  • filecmp.py
  • fileinput.py
  • formatter.py
  • fpformat.py
  • gettext.py
  • gopherlib.py
  • gzip.py
  • hashlib.py
  • heapq.py
  • hmac.py
  • htmlentitydefs.py
  • htmllib.py
  • httplib.py
  • ihooks.py
  • imaplib.py
  • imputil.py
  • locale.py
  • macpath.py
  • mailbox.py
  • mailcap.py
  • mhlib.py
  • mimetools.py
  • mimetypes.py
  • mimify.py
  • modulefinder.py
  • multifile.py
  • nntplib.py
  • optparse.py
  • os.py
  • os2emxpath.py
  • pdb.py
  • pickle.py
  • pickletools.py
  • pipes.py
  • pkgutil.py
  • platform.py
  • popen2.py
  • poplib.py
  • posixfile.py
  • posixpath.py
  • pprint.py
  • profile.py
  • pstats.py
  • pty.py
  • py_compile.py
  • pyclbr.py
  • pydoc.py
  • quopri.py
  • random.py
  • re.py
  • repr.py
  • rexec.py
  • rlcompleter.py
  • runpy.py
  • sched.py
  • sha.py
  • shelve.py
  • shutil.py
  • site.py
  • smtpd.py
  • smtplib.py
  • sndhdr.py
  • socket.py
  • string.py
  • stringold.py
  • stringprep.py
  • subprocess.py
  • symtable.py
  • tabnanny.py
  • tarfile.py
  • textwrap.py
  • threading.py
  • timeit.py
  • toaiff.py
  • token.py
  • tokenize.py
  • trace.py
  • traceback.py
  • unittest.py
  • urllib.py
  • urllib2.py
  • uuid.py
  • warnings.py
  • wave.py
  • xdrlib.py
  • xmllib.py
  • xmlrpclib.py

実用SSH

今週からさくらのVPSを使い始めた。

sshをきちんと使えなきゃなということで数年前に買って積んでいたこの本をじっくり読んだら、大変勉強になったというかちゃんと読んでよかった。

7章のクライアント使用法 応用編が役に立った。

特にscpは非常に便利で使い方覚えたらこればっか使うようになってしまい、Cyberduck立ち上げなくなった。

ProductName 実用SSH 第2版―セキュアシェル徹底活用ガイド
Daniel J. Barrett
オライリー・ジャパン / 5040円 ( 2006-11-22 )


  • OpenSSHでパスフレーズの変更は-pオプション
  • SFTPとFTPはプロトコル上の互換性はない
  • OpenSSHでは-Tオプションでptyを割り当てない
  • <ESC> .でSSHセッションの終了
  • scpでディレクトリの再帰的コピーは-rオプション
  • sshでトラブったら-vで冗長モードにする
  • scpのポート指定オプションは-P
  • scpの-Cでデータ圧縮して転送

Python の可変引数は関数定義だけじゃなくて実行の際にも使える

defするときに*とか**といった可変引数を取れるのはおなじみ

>>> add = lambda x,y: x+y
>>> l = [1,2]
>>> add(l)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: <lambda>() takes exactly 2 arguments (1 given)

このキーワードは関数実行の際にも使えることを今日知った

>>> add(*l)
3

知ってしまえば自然に感じるが、なぜそういう思考に至らなかったのだろうか?

さくらのVPSにWiki入れるかどうか迷った結果Sphinxでいいことになった

計画停電で自宅サーバーがしょっちゅう止まったり、電気代比較してみると、さくらのVPS使ったほうがエコっぽいので移行することにした。

最近楽しく移行作業を始めたわけだが、ちょっと悩んでいたのがwikiをどうするかだ。そもそも自分がなんでwikiを必要としているのかをよくよく考えてみるに(blogに書くまでもないことの)メモまたは備忘録を構造化された文書形式で残しておきたいということかなぁと。

今はHikiを使っているんだが、利用している理由がEmacsのHikiモードがあるというのが一番大きいし、一人でしか使ってないしなぁ。

となると

  • 構造化された文書形式
  • Emacsのようなエディタで気軽に編集できる
  • それが、さくっとhtmlにコンバートできる
  • あとで見返せる自分用メモ

を満たせばwikiでなくても構わない。で、Sphinxが候補にあがった。以前SAR Newsの原稿書いた時に使ってたので、使い勝手が非常にいいことは分かっているが、運用どうすっかなと悩んでいたら渋川さんにアドバイスもらった

さくらのVPSではwikiのかわりにSphinxでいくことにした

ProductName エキスパートPythonプログラミング
Tarek Ziade
アスキー・メディアワークス / 3780円 ( 2010-05-28 )


PlaggerでBase class package "DateTime" is empty

さくらのVPSにperlbrew+cpanm+plaggerって入れてて

Base class package "DateTime" is empty.
    (Perhaps you need to 'use' the module which defines that package first.)
 at /home/kzfm/plagger/lib/Plagger/Date.pm line 3

というエラーが出ていてなんだかなぁと思ったらシェバンだった

#!/usr/bin/env perl

で解決

R Cookbook

欲しい!最近はR使ってないけど。

ProductName R Cookbook
Paul Teetor
Oreilly & Associates Inc / 3413円 ( 2011-03-28 )


来週になったら所属が変わって「パソコンの電源を入れたり消したりするだけの簡単なオシゴトをするおじさん達」と一緒になるのだけど、まぁ、当然今やっている仕事はそのまま持っていくという話なので、給料据え置きでインフラまわりの仕事を上乗せされるだけなんだろうなぁ。チームごと移しているからそういう意図はビシビシと感じられるが、ここは空気を読まずに「給料上がんないってことはもちろんゼロサムですよね」という精神で明るくやっていこうと思う。

ちなみに今の上司は、(外資出身に総入れ替えしたという事情もあって)みなさん優秀で、僕も色々新しい事を学べて大変よかった。

Pythonでロードされているモジュールはsys.modulesをみればいい

sys.modulesにリスト化されてる

>>> from sys import modules
>>> modules1 = set(modules.keys())
>>> import sqlite3
>>> modules2 = set(modules.keys())
>>> modules2.difference(modules1)
set(['sqlite3.datetime', 'datetime', 'sqlite3._sqlite3', '_sqlite3', 'time', \
'sqlite3', 'sqlite3.dbapi2', 'sqlite3.time'])

ふむ

import *とimport __all__でモジュールの読み込みを続けてやる理由がわからん

標準モジュールの_dummy_threading.pyを読んでいて

51     from _dummy_threading import *
52     from _dummy_threading import __all__

これってなんなの?なんの意味があんの?ドキュメント読んでみたけどわからんかった。

「ひとりで抱え込まない仕事術」を読んだ

外資の研究チームと共同研究するとチームに対する感謝のコトバはしょっちゅう出てくるし、外資出身の上司も似たような感じ。一方、うちの生え抜きは叱咤激励の叱咤率が妙に高い。年功序列的な上下関係が背景にあんのかな?なんて思うようになった。

ま、そのあたりはおいておいて、最近はプロジェクト単位で仕事をすることが多いし、プロジェクトの組み換えも頻繁に起こるので、プロジェクトをうまく回す技術ってのも結構重要だなぁと思う。プロジェクトやプロジェクトのメンバーをプロアクティブにするにはどうすればいいのか?ということに対して色々と参考になることが書いてあった。

ProductName ひとりで抱え込まない仕事術―「お願い上手」の5ステップでラクになる
リチャード・アクセロッド
ダイヤモンド社 / 1365円 ( 2007-02-09 )


  • ROI(リターンオブインボルブメント)つまり、ヒトを巻き込む手間に対しどれくらいのメリットが得られるかをよく考える
  • なぜ助けが必要なのか?を考えることで「どんな助け」が必要なのかが明確になる。ノウハウが欲しいのか、手足がほしいのか、関心とコミットメントが欲しいのか、学ぶチャンスが欲しいのか?
  • 人々に意見を求める場合にも工夫が必要で漠然とした依頼では何も意見は集まらない
  • チームのメンバーが抜ける際に一緒に振り返りをやっとくといい
  • 感謝の意を示す
  • 仕事を終える際には次に役立つ教訓を残そう
  • 敢えてプロセスが失敗する方法を出すことで、逆に成功する方法を見出す