このBlogは移転しました。今後は aish.dev を御覧ください。

2011-04-01から1ヶ月間の記事一覧

Twitter 音声読み上げクライアント Tweet it Loud! 0.0.3

Tweet it Loud! はTwitterのタイムラインを音声で読み上げるWindows用アプリケーションです。このアプリケーションは、スクリーンリーダNVDA日本語化プロジェクトの成果物を元に開発しています。 ボリューム・速度・音声の設定 ユーザの読み上げ設定 ダウン…

はてなブックマーク研究

私は従来、「はてなブックマーク」とはあまり縁がなく、特に気にとめたこともなかった。ブックマークサービスとしてはDeliciousを使っていたし、注目エントリにあがるブログも私があまり読まないようなものが多かったからだ。それでも、最近はてな日記でブロ…

はてなダイアリのURL一覧を取得してみる

はてなダイアリの記事一覧を取得し、lxmlを使って日記一覧とタイトルをcsv形式で出力してみるテスト。なんかAPIとかないのか? import urllib2, re, csv, sys, locale from lxml import etree def fetchentries(hatenaid, n): url = "http://d.hatena.ne.jp/…

メソッドオブジェクトの不思議とid()の落とし穴

さて、@aroma_blackさんがこんなスクリプトで悩んでおられたのである。 class C(object): def foo(self): pass c = C() print id(c.foo) == id(c.__class__.foo) print c.foo is c.__class__.foo @aroma_blackさんはメソッドオブジェクトがどこに隠れている…

Python2のstrは死んだ

Python3の概略をざっと聞くと、Python3ではPython2のユニコード型が文字列型になり、文字列型はバイト文字列型になった、というイメージを持ってしまう人も多いだろう。Python2の s="spamspamspam" は、Python3の s=b"spamspamspam" と同じだ、と。しかし、P…

Twitter 音声読み上げクライアント Tweet it Loud! 0.0.2

Tweet it Loud! はTwitterのタイムラインを音声で読み上げるWindows用アプリケーションです。このアプリケーションは、スクリーンリーダNVDA日本語化プロジェクトの成果物を元に開発しています。 TLだけでなく、ハッシュタグなどを検索して読み上げ http://w…

MoinMoinでOpenIDを使う

OpenID専用にしてしまうなら、wikiconfig.pyを from MoinMoin.auth.openidrp import OpenIDAuth auth = [MoinAuth(), OpenIDAuth()] cookie_lifetime = (2,12) 普通のログインも併用するなら from MoinMoin.auth import MoinAuth from MoinMoin.auth.openidr…

【求む】Twitter 音声読み上げクライアント Tweet it Loud!【人柱】

Tweet it Loud! はTwitterのタイムラインを音声で読み上げるWindows用アプリケーションです。このアプリケーションは、スクリーンリーダNVDA日本語化プロジェクトの成果物を元に開発しています。 ダウンロード http://www.pythonpath.jp/download/tweetitlou…

internのひみつ

Pythonにはintern()という組み込み関数がある。結構特別扱いで重要な組み込み関数なのだが、使い道が今ひとつ分かりにくいのか知らない人も多いようだ。 intern (一定の区域内に)拘禁する, 抑留する. [新英和(第7版)・和英(第5版)中辞典 株式会社研究…

プログラミングを学んでみたい人に

Twitterなんかをいろいろ眺めていると、もどかしくってたまらなくなってしまうことがある。プログラミングをやってみたいな〜と思いながらも、いつまでも最初の一歩を踏み出せない、そんな人を見たときだ。踏み出してはみたものの、自分の進路に自信を持てな…

is演算子のふしぎ

Pythonには、二つのオブジェクトが同じオブジェクトかどうか判定する is演算子というのがある。==演算子とちょっと似ているが、==演算子は二つのオブジェクトの値が等しいかどうかを判定し、is演算子は値に関わらず異なるオブジェクトが指定されればFalseを…

Python2のsoftspace

いまさら言うのもなんだが、Python3ではファイルのsoftspaceが廃止されている。これはprintステートメントでテキストを出力するとき、先頭にスペースを付加するかどうかのフラグだ。Python2ではprintステートメントの最後に , をつけると print "a", # 改行…

リストのかけ算

Python初学者が引っかかる落とし穴に、 seq = [[]] * 5 seq[0].append('A') print(seq) としたとき、どのような出力が出るか?というのがある。 一見、 [['A'], [], [], [], []] となりそうだが、実際には [['A'], ['A'], ['A'], ['A'], ['A']] となる。 seq…

さくらVPSでLVMを設定したときのメモ

新しくさくらVPSで 1.5Gプランを契約してみたが、このプランではディスクが仮想ドライブ2台として提供されている。デフォルトで入っているCentOS5のインストールでは、2台目のディスクが /home ディレクトリにマウントされているようだ。いろいろOS入れ替え…

Pythonバージョンの選びかた

Pythonはおよそ18ヶ月ごとに新しいメジャーバージョンをリリースする慣習になっていて、これまでにたくさんのバージョンがリリースされ、広く利用されてきた。Pythonの開発では後方互換性を保つことが非常に重視されていて、通常のアプリケーションであれば…

Pythonで学ぶ「詳解 UNIXプログラミング」(その17) おしまい

以上でPythonで学ぶ「詳解 UNIXプログラミング」シリーズを終える。軽いネタのつもりで書き始めたが、サンプル一つ一つにきちんと目を通すのはなかなか楽しく、思ったよりも時間がかかってしまった。短期間にこんなにたくさんのos.fork()を書いたのは初めて…

Pythonで学ぶ「詳解 UNIXプログラミング」(その16) 第19章 擬似端末

19.1 〜 19.3 Pythonのpty.fork()でptyのオープンとforkを行うことができる。pty.fork()はこのサンプルと同等の機能が実装されており、Linux/BSD/Solaris/Cygwin等の各プラットフォーム対応のコードが入っている。ただし、子プロセス側でのtermioとウィンド…

デコレータの元関数を保存する

テスト等でデコレータのデコレート前の関数を保存する必要があるなら、こんなのはどうだろう? import sys def tee(f): sys._getframe(1).f_locals['_raw_'+f.func_name] = f return f デコレートした関数オブジェクトから元の関数を取り出すのは難しいし、…

func_closureのひみつ

Pythonでデコレータで修飾した関数から、修飾される前の関数を取り出したいというニーズは多いようでデコレータ式を適用した関数から元の関数名を探す - gumi Engineer’s Blog デコレータを外す - logiqboard デコレータを取り除いて見たかった。 - podhmoの…

Pythonで学ぶ「詳解 UNIXプログラミング」(その15) 第15章〜第18章

以下の章 第15章 高度なプロセス間通信 第16章データベースライブラリ 第17章 PostScriptプリンタとの通信 第19章 モデムの発信 のサンプルは省略する。第15章ではプロセス間でファイルディスクリプタを受け渡す技法を解説しているが、この技法はPythonでは…

Pythonで学ぶ「詳解 UNIXプログラミング」(その14) 第14章 プロセス間通信

14.1 パイプを介して親から子へデータを転送する import sys, os r, w = os.pipe() pid = os.fork() if pid: # parent os.close(r) os.write(w, "hello world\n") else: # child os.close(w) line = os.read(r, 80) print line 14.2 ページ表示プログラムへ…