google-code-prettify

2007-10-26

Xenによる仮想化はセキュリティを高めるわけではない

kerneltrapより。

Theoのコメント

If the actual hardware let us do more isolation than we do today, we
would actually do it in our operating system.

The problem is the hardware DOES NOT actually give us more isolation
abilities, therefore the VM does not actually do anything what the say
they do.

要は、OS A,B,Cの危険度をそれぞれ5,10,20とした場合、仮想化で全体として危険度は5くらいにはなるかもしれないが、いきなり1とか2になったりはしないよ、という話。

2007-10-25

IEのお気に入りをMarkdownに変換する

いろいろなサイトのURLをIEのお気に入りで管理していたのだが、破綻したので、Markdownで管理する事にした。

で、以下、IEのお気に入り(.url)をMarkdown書式にするscript。
なぜかファイル名に「≫」が入っているとopenに失敗するので、try/exceptを入れている。なぜだろう。


import os

def mywalk(arg, dirname, fnames):
#print "dir=", dirname
first = True
for f in fnames:
if f.endswith('.url') or f.endswith('.URL'):
if first:
print ''
print dirname[2:] # remove './'
print '==============='
print ''
first = False
#for l in open(os.path.join(dirname, f), 'rb'):
try:
for l in open(dirname + '/' + f, 'rb'):
l = l.strip()
if l.startswith('URL=') or l.startswith('url='):
print '- [%s](%s)' % (f[0:-4], l[4:]) # remove '.url' and 'url='
except:
print "cannot open %s" % (dirname + '/' + f)

os.path.walk('./', mywalk, None)

2007-10-15

svv - /etc/以下のファイルをバージョン管理する

subversionやCVSで/etc/以下のファイルをバージョン管理しようとした場合、通常、/etc/にCVSや.svnを置く事になる。
この方法だと、以下の問題がある。

・/etc/にCVSや.svnが作られるので、いちいち何をするにもrootになる必要がある。
・/etc/以下のほとんどのファイルは管理したくない。そのため、ignore指定すべきファイルが多量になる。

そこで、できるだけrootになる必要が無く、管理したいファイルだけを指定するバージョン管理ソフトを作った。

svv

2007-10-09

pysvn - Subversion APIをpythonから使う

SubversionはもともとpythonからAPIを使うためのSWIG bindingが存在する。
しかしこのSWIG bindingは、
・CのAPIを変換した物なので、pythonからはあまり使いやすい物ではない。
・ドキュメントがほとんど無い
という、非常に使いにくい物だった。

pysvnは、pythonユーザーにやさしいAPIを提供してくれ、しかもドキュメントがちゃんとある。

Subversion APIでちょっと作りたい物があったので、pysvnの存在はかなり助かる。

2007-10-01

Thunderbirdのタグを、ベイジアンフィルタで自動で付ける事ができないか

Thunderbird2から導入された、メールにタグを付ける機能があるが、いちいちタグを付けるのは結構めんどくさい。
そこで、ベイジアンフィルタを使って自動でタグ付けする機能はどうだろう。

事前に、いくつかのメールにタグを付けておくと、フィルタが学習し、以後は自動でタグが振られると。
あと、既に受信したメールにも後から自動でタグを振る機能もあるとなお良い。