2008-01-01から1年間の記事一覧

スーパーpre記法がおかしい件について

このブログの過去の記事を見るとわかるが、スーパーpre記法で記述したものがおかしなことになっている。例えば、コードが途切れていたり: 色分けが無効になっていたりする: http://i.hatena.ne.jp/idea/22423 を見ると、12日に報告がなされ、16日に「修正…

メールのタイトルを取得

poplibで取得したメールヘッダからタイトルだけを抜き出して列挙したかったのだが、emailパッケージの使い方がよくわからん。 リファレンスと格闘して何とか取れるようになったのだが、これでいいのだろうか。 # Python 2.6 import poplib from email.parser…

timeには関数が多すぎる

timeライブラリには色々な関数があるが、関係がよくわからんので、図にまとめてみたが、分かりやすくなってなのは気にしないでくれ。 「float」は1970年1月1日が開始してからの秒数。 「tuple」は (年, 月, 日, 時, 分, 秒, 曜日, 年日, 夏時間フラグ) とい…

伸びる画面

こんな画面を作ろうと思った:右側だけ伸び縮みするのだよ:コードはこんな感じなのだよ: import wx class MainPenel(wx.Panel): def __init__(self, parent, idn, *args, **kw): wx.Panel.__init__(self, parent, idn, *args, **kw) stext1 = wx.StaticTex…

ElementTree の思い出

昔、訳あってElementTreeのソースコードを電車の中で読んでいたら、となりの人に、これは何かと尋ねられたことを思い出した。その後、プログラムとは何か、ソースとは何かを説明することになるのだが、まぁ、どうでもいいか。 要素の後に来るテキスト <p>hello<span>w</span></p>…

defaultdict を使うのだ

collections.defaultdictを使うと要素のカウントがシンプルに書けるね。 # Python 2.5 from collections import defaultdict d = defaultdict(int) s = "abrakadabra" # 文字別にカウント for i in s: d[i] += 1 # 結果表示 for k, v in d.iteritems(): prin…

Adblock Plus の日本語訳

http://adblockplus.org/en/filters を読みながら Adblock Plus の使い方*1を覚えていたら気になる訳を発見した。設定画面のメニューにある“Collapse blocked elements”だ。日本語では「ブロック要素を隠す」になっている。blocked elements は「ブロック要…

Foxit Reader でページ表示が逆順に

PDF

なんかページが逆順に表示されるようになちゃったと思っていたら、メニューの View → Reverse View にチェックが入っていただけだった。少し前、何かの拍子に全画面表示になったのを元に戻そうとして、F11を押した覚えがある*1。これでページが逆に表示され…

urllib.unquoteとunicode

urllib.unquoteはURLエンコードされた文字列を元に戻す関数だ。よくURLで使われている「%E6%97%A5%E6%9C%AC%E8%AA%9E」みたいな文字を元に戻す時に使う。 # Python 2.5.2 on win32 >>> a = urllib.unquote('%E6%97%A5%E6%9C%AC%E8%AA%9E') >>> print a.decod…

バッテリーの状況

Windows でバッテリーの状況は Win32API の関数を使うと取れる。しかし pywin32 *1 には肝心の GetSystemPowerStatus 関数 *2 がないじゃないか。しょうがないので伝家の宝刀 ctypes *3 を使うべ。GetSystemPowerStatus 関数自体はそう難しくない。所定の構…

NTFS のバージョン

NTFS には細かいバージョンがある。Windows 2000 が古い NTFS を見つけると勝手にバージョンを上げるので、Windows NT で読めなくなってしまうというとかいう話が昔あったっけ。話は進んで今、Windows 2000 は NTFS 3.0 を、XP と Vista は NTFS 3.1 を使っ…

ファイル名を指定して実行とパス

Firefox 3 のベータ版を入れてみた。軽くなったとリリースノートに書いてある。確かに体感速度が速くなっているように感じなくもない。それはそれで正式リリースが楽しみなのだが、1つ気になったことがある。インストールを説明したページの「Firefox 2 と…

Explzh に乗り換えた

今まで圧縮ファイルは Lhaz で中身を見て、大きなファイルはそれで展開、小さなファイルは Lhaplus で展開というふうにしていた。今回、思う所があり、中身を見るためのアーカイバを Explzh に変えてみた。最初の印象は少々やぼったいが、設定を少しいじった…

寝たら翌日とす

datetime は便利だなぁ。 例えば朝5時までは前日と見なす処理: import datetime now = datetime.datetime.now() if now.hour < 5: now = now - datetime.timedelta(hours=5) print "感覚的に言えば今は%d月%d日です。" % (now.month, now.day) 時間が5よ…

デコレータの引数

デコレータは引数を取ることができると Python 2.4 の What's new に書いてあった。 http://www.python.org/doc/2.4/whatsnew/node6.html Decorator functions can take arguments. If arguments are supplied, your decorator function is called with only…

誰か僕のプログラムを見張ってください

SHFileOperation を使ってファイルをゴミ箱に送るコードを書いていたんだが、文字列操作が面倒くさすぎる。 C言語は昔ちょっと本を読んだだけなので、ちゃんと書けているのかどうか不安になってくる。スクリプト言語と違って、一旦コンパイルを通ったら誰も…

Unknownの関連付け

HKEY_CLASS_ROOT\Unknown\Shell\Command をいじって、登録していない拡張子の関連付けを変更することができるという話は結構有名。Vistaでも同じように設定しようと、Openキーを作って、その下に Commandキーを作ってみた。しかしアイコンをダブルクリックし…

phone home (実家に電話)

Vistaの「セキュリティが強化されたWindows ファイアウォール」とやらについて調べていたら"phone home"なる単語が出てきた。 Outbound packet filtering, reflecting increasing concerns about spyware and viruses that attempt to "phone home". (Althou…

プロファイルがない?

firefox -p でプロファイルを選択すると以下のようなメッセージが出る。 現在使用中であるため Firefox はプロファイル"hoge"を使用できません。 起動中の Firefox を終了するか、別のプロファイルを選択してください。 プロファイルの情報が入っているフォ…

見様見真似だったJavaScript

A re-introduction to JavaScript (JS tutorial) - JavaScript | MDN を読む。既に他のスクリプト言語を知っている人にピッタリな文書だと思う。日本語訳は途中っぽいがJavaScript の「再」紹介 にある。英文で、わからなかった所が2つ。 The named paramet…

gdiplus.dll が古いような

古いVisual Studio 2003をひさしぶりに実行したら壊れていたので再インストールしたら、Windows Updateで「GDI+ 検出ツール」を確認するツールを実行せよと出てきた。「ご丁寧にどうも」と思い実行すると、脆弱性のあるバージョンが見つかったと言っている。…

os.startfileというかShellExecuteWの奇妙な動作

Pythonでos.startfileを呼ぶと、ちゃんと引数が関連付けどおりに実行されるのだが、以下のように例外が発生する場合がある。 >>> os.startfile('http://www.yahoo.co.jp/') Traceback (most recent call last): File "<stdin>", line 1, in <module> WindowsError: [Error 2</module></stdin>…

EditLabelメソッド

wx.ListCtrlクラスのEditLabelメソッドを実行しても項目が編集できないなと思い、色々いじっていたら、wx.LC_EDIT_LABELSを付け忘れていたことに気付く。 なってこった。 import sys import wx app = wx.PySimpleApp() frame = wx.Frame(None, -1, u"/(^0…