ページに広告や余計なリンクがあると異常にウザく感じる。本体のコンテンツ以上のスペース喰いやがってそんなに読ませたくないのか。Apple は大嫌いだが iOS 用のスタイルのあるページはシンプルでいい感じだったよクソめ。

mork

要するにデータベース。なんで XML 使わないのかは知らん。 Dict (値の配列)、テーブル、Update(トランザクションだが Dict の更新をしたりする) からなる。順序は決まっていないが、mab ファイルとかはバージョン情報、コラム名などのメタ情報の分の Dict、…

Mozilla の JavaScript の tips

JavaScript Reference E4X XML 宣言があると例外吐く。 英語のページには bug として書いてあった。 Known bugs and limitations DTD DTD の情報には JavaScript からはアクセスできない。 しかし の中なら展開してくれるらしい。 debug Debugging a XULRunn…

Thunderbird extension の tips

XPCOM から Thunderbird の Application オブジェクトを得る var Application = Components.classes['@mozilla.org/steel/application;1'].getService(Components.interfaces.steelIApplication); How do I search for multiple contacts? アドレス帳から検…

XUL の tips

Events DOM events Gecko-Specific DOM Events XBL Properties, XBL Methods にアクセスする: レンダリング後に有効になる。XUL のイベントには詳しくないので正確なタイミングはよく分からない。 window.addEventListener('load', function(event){ // ここ…

XPCOM と JavaScript って絶望的に相性悪い気がする。 XPCOM は COM の悪いとこまで受け継いで何がしたいんだろうか。

iOS

色々な要因でハードウェアは素晴らしいがソフトウェアはウンコ気味。App Store が儲かるとか喧伝されてるせいで世界中で車輪の再発明・再実装。 共通の名前空間がない アプリケーション間でファイルのやりとりが難しい 関連づけ、パイプ的な機能がない ネッ…

プロセス生成のコスト

Cygwin のトロさが納得いかないので Windows と Linux でプロセス生成にどんだけ差があるのか適当に測定。Windows XP x64 SP2 @ Phenom II 550BE: 43.6312226426 Ubuntu 10.04 LTS @ Phenom II 550BE: 30.2954580784 Ubuntu は上の xp64 マシン上の vmware …

[Linux] [Cygwin] Cygwin cross compile environment

古い情報ばかりなので書いとく。Ruby のクロスコンパイル環境を構築している人が複数いるので、その辺が参考になる。 Fedora-12-i686-Live-KDE.iso を入手。 仮想マシンに CD をマウントして起動、HDD にインストールする。HDD 容量は 6-8 GiB 見ておけばよ…

[Python] class の code object

example import traceback class Klass(object): class __metaclass__(type): def __init__(self, name, bases, dict): print '__metaclass__' traceback.print_stack() type.__init__(self, name, bases, dict) print 'class' traceback.print_stack() resu…

[Python] [unicode] unicodedata だけで半角->全角の変換ができるか

# -*- coding: utf-8 -*- """ Unicode Standard Annex #11 East Asian Width: http://www.unicode.org/reports/tr11/tr11-14.html """ import unicodedata def convert(s, errors=''): assert isinstance(s, unicode) result = [] for c in s: #unicodedata.…

[Python] SYSTEM アカウントでの os.environ

環境: Windows XP >>> service = {'FP_NO_HOST_CHECK': 'NO', 'TMP': 'C:\\WINDOWS\\TEMP', 'COMPUTERNAME': 'COMPUTER', 'COMSPEC': 'C:\\WINDOWS\\system32\\cmd.exe', 'TEMP': 'C:\\WINDOWS\\TEMP', 'WINDIR': 'C:\\WINDOWS', 'SYSTEMDRIVE': 'C:', 'PROC…

[Python] *.pth のインポート

sys.path *1 の中のディレクトリに配置されている *.pth は再帰的なインポートが行われない。 sys.path に存在しないディレクトリに *.pth を配置してインポートするには sitecustomize 辺りで import site site.addsitedir(path) とする。再帰インポートの…

IODATA HDLP-G320

Buffalo の適当な USB 2.5" HDD をバスパワーで駆動*1 USB ケーブルを USB HDD に差し込んだら自動でバックアップ開始*2 ていうのが出来た。面倒くさがりにはいい。NAS はもっとバックアップ機能を前面に出すべき。 *1:二股 USB ケーブルが付属してるような…

[Python] custom urllib2 opener

from urllib2 import * class MyHttpHandler(HTTPErrorProcessor): #parent = OpenerDirector() handler_order = 1 def http_request(self, request): return request https_request = http_request def default_open(self, request): """return None for pr…

[HTML] [JavaScript] [CSS] ポップアップメニュー

CSSだけじゃ無理。html とか ajax とか js とかのサンプル載せてるサイトはどうしてサンプルに余計な装飾付けんだろうか。分かりにくいだけだのに。 <html xmlns="http://www.w3.org/1999/xhtml"> <head> <style type="text/css"> #popup1 { display: none;…</head></html>

メモ

multiprocessing.Pool() *1 を使って、「JPEG ファイルのサムネイル生成」というタスクを適当に書いたら 4 コアで 2.1 倍くらいの速さになった。2 コアだと 1.7 倍… 多分 IPC かディスク IO がボトルネック。 適当に書いて 2 倍も速いと取るか、4 コアもある…

pickling a PIL's Image object

未だに classic class なライブラリは多い。Python 3 への道は遠い… # register a pickle handler for Image.Image object import Image, copy_reg def Image_unpickler(mode, size, data): return Image.fromstring(mode, size, data).im def Image_pickler…

Google Apps with VALUE DOMAIN

DNS の設定よく分からんというか UNIX 系の設定はやった端から忘れてく。 cname じゃなくて a で指定する。dns をきちんと実装してないのメールサーバーがあるんじゃないの。 小文字で書く。そもそも Google の例が大文字なのがよく分からん。 SPF の設定は…

Tix Grid サンプル

KeyPress ハンドラ設定してもセルに入力したらハンドラ設定が消される。もうやだこの tk。 import Tix as tk r= tk.Tk() r.title("test") g = tk.Grid(r, name="a_grid", selectunit="cell", editnotify=lambda x, y: True) g.pack(fill=tk.BOTH) for x in x…

Tkinter の Pythonic なサンプル

tk はよく分からん。凝ったことはしない方がいいみたい。 from Tkinter import * class Application(Frame): def __init__(self, master=None, cnf={}, **kw): Frame.__init__(self, master, cnf, **kw) self.pack() def pack(self, cnf={}, **kw): Frame.pa…

sudo 的 runas

なんだよこれ便利じゃん savecred。 パスワード聞かれるの最初だけだし保存はユーザー毎だし。 root の名前固定だけどどうでもいいよね。 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\exefile\shell\sudo] [HKEY_CLASSES_ROOT\exefile\shell\s…

[Python Imaging Library] ImageDib.py

"""Helper functions for Image object.""" from ctypes import * from ctypes.wintypes import * gdi = windll.gdi32 def todib(image): """Image.tostring('raw', rawmode, stride=0, ystep=1) "rawmode" is a pixel format. (ex. RGB, GBR...) "stride" i…

[Python Imaging Library] convert Image object to HBITMAP.

上を踏まえて HBITMAP に変換。 色々決め打ちだけど GDI なんてレガシーはこれでいいんだ。 ああメンドクサイ。 import ImageDib ImageDib.tohbitmap(image) ImageWin? 動かんかった…

[Python Imaging Library] convert Image object to DIB.

CreateDIBSection() で作った DIB にコピーできるようなバイト列に変換。 tostring() のまともな __doc__ は [Image-SIG] Re: Explaination of encoder in tostring(encoder_name='raw', *args) くらいしかない。後はソース見ないと分からん。一発で変換でき…

Windows x64

setupapi 使ってたら x64 版 Windows で ERROR_IN_WOW64 (0xe0000235) と言われた。Windows の仕様で 32 bit / 64 bit 間では両方向でコードの呼び出しはできない。それはいい。ホントは良くないけどイケてない Windows プログラミングの歴史に一項目加わっ…

[Python] dynamic type を pickle

def save_type(self, obj, name=None): """add support for pickling a dynamic type >>> class A(object): pass >>> class B(object): pass >>> t = type('DynamicType', (A, B, ), {'a': 1, 'b': 2, }) >>> t2 = loads(dumps(t)) >>> t.__name__ == t2.__n…

[Firebird] SQL References

Firebird の SQL リファレンスは調べにくい。 InterBase 6.0 SQL Reference に Firebird Reference Material の Language Reference Update を重ねて読んでいくことになる。

[Firebird] 文字列を分割する的な何か、str_split とか str.split みたいな

可変引数的な使い方をしたくて作った。 SQL は単体で動かす分にはいいけど(それだけで使い物になるわけ無いが)、プログラミング言語から叩くと途端に泥臭くなるから困る。 長さ? 可変長文字列型くらい用意しとけよ今時… SET TERM !! ; CREATE PROCEDURE str_…

[Python] [setuptools] easy_install で任意のディレクトリにモジュールを突っ込む

easy_install で site-packages じゃないところにインストールしたい。 cd <任意のディレクトリ> python -m easy_install -a -d . -S . -s <bin> setuptoolsとかまず cwd を任意のディレクトリにしておくことで sys.path に入るようにする。 そんで -a でコピー指</bin>…