21032011 life
娘作
パンダが怖い。
21032011 life
娘作
パンダが怖い。
21032011 life
実例が参考になった。絞り優先でばっか取ってたけどシャッター優先で撮るのも楽しいということがわかった。flickrもproにしたことだし、もうちょっと写真も上手くなりたい。
三脚どこいったかな?
21032011 life
いつ買ったんだかわからないでかいシュラフしか持っていないので、ザックに詰め込めるようなサイズの物を買っておくことにした。(フェスも行くし)
店員さんに色々質問して、結局ドイターのルナにした
21032011 drum'n'bass
remixものが幾つか入っていてちょっとネタ切れか?と思ったのだけどTorもcletinもremixはよかったのでよし。
個人的に気に入ったのは
20032011 Python
disassembleっていう関数が面白かった
例えば
>>> add = lambda x,y:x+y
っていう関数を定義してdisってみると
>>> import dis >>> dis.dis(add) 1 0 LOAD_FAST 0 (x) 3 LOAD_FAST 1 (y) 6 BINARY_ADD 7 RETURN_VALUE
となっている。
バイトコード命令はfunc_code.co_codeで見ることが出来る
>>> add.func_code.co_code '|\x00\x00|\x01\x00\x17S'
これは整数値を文字にしたものをつなげた文字列として表現されているので、逆の操作をしてopcodeモジュールのopnameで対応を取ることができる
>>> from opcode import opname >>> code = add.func_code.co_code >>> for c in code: ... print opname[ord(c)] ... LOAD_FAST STOP_CODE STOP_CODE LOAD_FAST POP_TOP STOP_CODE BINARY_ADD RETURN_VALUE
20032011 Python
anydbmっていうdbm系の汎用インターフェースがあり、どうやって抽象化してんのかな?とソースコードを読んでみた。
_names = ['dbhash', 'gdbm', 'dbm', 'dumbdbm'] _defaultmod = None for _name in _names: try: _mod = __import__(_name) except ImportError: continue if not _defaultmod: _defaultmod = _mod _errors.append(_mod.error)
__import__組み込み関数を使って_namesリストにあるモジュールがインポート出来るか試していって最初にインポートできたモジュールを返す
19032011 perl
19032011 life
昨日計画停電があって、朝起きてネットに接続しようとしたら繋がらなかった。DNSは返ってくるのでネットに問題はなさそうなんだけどpingが全然通らない。あれーアクセス制限くらったのかなぁ?と。ま、しょうがないのでe-mobileでアクセスしてた。
flickrのプロアカウントとって写真を沢山アップロードしたのが原因かなぁと思ったんだが、どう考えてもアップロードがうちのISPの5G制限には引っかかってないよなぁと。自宅サーバーのトラフィックも300メガくらいだったしトータルで1G届いてないのにアクセス出来ないのはなんでだ?と。半日ほど経ってからふと気がついて、ルーター切断して再接続したらあっさりつながった。
という感じでネット接続の件は解決したのだけど、朝から災害時の重要データの保護つまり、写真データをUSBメモリに突っ込むかDVDに焼こうかとかそんなことを考えていて、結局近所で24枚保管できるDVDケースを買ってきてDVD焼きの作業を始めた。これをジップロックで防水して避難バッグにいれとけばいいだろう。
この作業の過程で、自分は大体半年で1300枚くらいの写真つまり、DVD一枚分の写真データを生成することがわかった(EOS Kiss X2使用)
flickrも使えるのでオンラインでもバックアップしつつ半年ごとにDVD焼き作業もしようっと。
写真のデータはこれは2001年から溜めてある。本当は1998年位からデータがあったんだけど、人災で消失してしまった。
本日は昼間に職場が、夜は(これから)家が停電というかなりヘビーなスケジュールだが、イワセさんのノートに標題のワンカップ酒(初亀)があったので、欲しくなって買いに行った。
ちょっと早めの晩酌をしながらエントリを書いてる。
ところで、ポストに今度市議会に立候補する40代後半か50代の方の決起集会の案内が入ってて、それを見ながら責任世代ってのが気になったのであった。
あの世代はもう責任を担うというよりもサポートにまわる世代なんじゃないかなぁ。今のライフスタイルに草食とか名付けちゃうあたりで、経済が成長しないことを前提にしたライフスタイル、またはそのメタな拡張としての政治というものの肌感覚が薄いよなぁと思うんだよなぁ。
たぶん責任世代ってのは僕らか僕らよりももっと若い30代前半あたりにあるんじゃないかなぁ。
そうじゃないと未来なんて託せないよ。
なんて思ったのであった。
17032011 Python
このブログのデータはSQLiteに溜まっているので、SQLiteのファイル(サイズ10M程度だし)をバックアップすればとりあえずはOK
サーバーのSQLiteデータファイルを手元のmacbookのDropboxフォルダに持ってくればオンラインにも自動的にバックアップされるじゃないかということでparamikoを利用してsftpで定期的にgetするようにした。
import paramiko ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(hostname='[host]', username='[user]', password='[password]') sftp = ssh.open_sftp() remotepath='[remote_datafile]' localpath='[/Users/user/Dropbox/datafile]' sftp.get(remotepath, localpath)