SyntaxHighlighter

2014年9月1日月曜日

統計 - 閲覧者

イスラエルから1000オーバーのアクセスが8/31にあったらしい。なにそれこわい

Pythonコーディング規約

Pythonのコーディング規約PEP8に準拠するというQiitaの記事で知った。
チェックツールがあるのが良いですね。チェックツール無しのコーディング規約って遵守の判断にコストがかかりすぎると思う。

Python(x,y)ならpep8, pyflakes, pytest, pytest-pep8が導入済みなので手軽に使えるのも便利。

pytest (2.5.2)
pytest-bench (0.2.5)
pytest-cache (1.0)
pytest-cov (1.6)
pytest-flakes (0.2)
pytest-pep8 (1.0.6)
pytest-xdist (1.10)

と色々入っているがそれぞれ何をするものなのだろう? pytest-flakesは上の記事からなんとなく分かるけど・・・

職場で大活躍のAviSynthスクリプト

Gistの埋め込みが単なるHTMLのscriptタグ貼り付けってことはpastbinもいけるんだろうな
同じことが出来るフリーソフトを探すより何倍も早かっただろう。

2014年8月31日日曜日

Pythonのthreadingをサブクラスでやる

サブクラスでやってみる。ついでにちょっとしたトリックも入れてみよう。
何を考えているかというと、エラーがあったときにタスクを一旦Queueに戻して、新しいスレッドを生成して自分は終了しようというもの。
エラーとして考えているのはparamikoでSFTPを使ったときのSSH例外。再度コネクションを張ってコピーをやり直して・・・とかやるよりはスレッドごと作り直すのが楽かなーと。

あれ・・・

さっきのthreading.py動かなくなった・・・って名前をthreadingにしちゃったからかな? ・・・そうだった。

PythonでProducer–consumerパターン

Python標準ライブラリのQueue(Python3ではqueueになるらしい)を使うとこんな簡単にProducer-consumerパターンが書けるんだ・・・へぇー


キモはt.daemonで、これがTrueになっているスレッドは終了していなくてもそのままプロセスが終了するらしい。 q.join()は別にThread.joinとは関係なく、put()した分が全部task_done()するまで待つだけのようだ。 で、メインスレッドが唯一のdaemon=Falseのスレッドなんでプロセスが終了する、と。

ただ、これ、CTRL+Cを受け付けないのが良く分からない。

2014年8月30日土曜日

vagrant-Chef始めました

なんか今更ですけどVagrant/Chefを始めました。

本当の目的はWindowsのプロビジョニングなんですが、まあ、まずはLinuxからということで。


 色々情報に惑わされたけど大事なことは、「vagrant-berkshelf pluginは無かったことにしよう」と、「Berkshelf入門を参照しよう」というところで。

 cookbookの試しにchef-apt-selectというクックブックを公開してみました。ついでに要求されるpython-bs4のクックブックも。

cookbook 'python-bs4', git: 'https://github.com/kounoike/chef-python-bs4.git'
cookbook 'apt-select', git: 'https://github.com/kounoike/chef-apt-select.git'

と書いておくとUbuntuのsources.listを勝手に更新して速いミラーに繋ぎ変えてくれます。

・・・って、実行のタイミングが遅いから、他のレシピがパッケージダウンロードするときにまだ変更されていないかもしれないな。

まあ、今後の課題ということで。

そういえば、aptクックブック見れば分かるかな。あれも他のレシピのパッケージダウンロードが始まる前に処理しなきゃいけないはずだから。

 それにしても、最近Redmine, Jekyll, chefとRubyプロダクトいじりまくりだな。ただでさえ、仕事で(本業とは関係なく)Pythonいじりまくるようになったのに。