Pythonのトレース情報を表示する disptrace ってのを作ってみた

Pythonには実行したスクリプトの行番号なんかを表示するtraceモジュールというのがあって、デバッグの時などうまく使うとデバッガでブレークポイント仕掛けるより効率的にデバッグできるときもあったりするんだけど、いまいち低機能で使いにくく、あんまり使…

Ubuntuをスリープさせても、マウスが動いただけで復帰してしまう件

最近、Thinkpad君にドッキングステーションをつけてデスクトップとしても使っているが、スリープ中ちょっとでも机にふれてマウスが動くとすぐ目を覚ましてしまう。敏感過ぎるだろ!夜泣き激しすぎて育児ノイローゼになるわ!っということで、Ubuntu 12.04 で…

BeProudでの仕事を終えて

昨年11月から参加させていただいていた BeProud でのプロジェクトは6月いっぱいで一区切りということになり、私のBeProudでのバイトもいったんお休みということにさせていただいた。 当初は3月ぐらいまでという予定だったのだが、プロジェクトの都合と、居心…

あなたの知らないPython3の秘密

関数の引数は最大255個まで def f(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p4…

Zipファイル一個で実行可能なPythonアプリケーションを作ってみる - 第2夜

さて、先日 http://d.hatena.ne.jp/atsuoishimoto/20120503/1336050988 を紹介したが、Flaskアプリケーションの Blueprint 機能を使うと正しく動作しないようだ。Blueprintでは独自にテンプレートや静的ファイルのディレクトリを指定できるようになっている…

Zipファイル一個で実行可能なPythonアプリケーションを作ってみる

アプリケーションを作成して配布するとき、配布するのは複数のファイルやディレクトリではなく、ファイル一つだけで済ませることができたらそれに越したことはないだろう。Pythonには cx_Freeze や py2exe のような、プラットフォーム固有な実行可能ファイル…

安くて便利なだけの電子書籍に未来はあるか!?

紙の本に負けないくらいの“わくわく感”を、電子書籍ならではのオリジナル機能を用いて実現できたとき、ぼくたちはもっともっと電子書籍を読みたくなるはずだと思うのです。 http://www.appbank.net/2012/03/28/iphone-news/387513.php 本のワクワク感を実現…

pykf 0.4をリリースしてみるなど

ひさしぶりに pykf をリリースした。pykf 0.4では、特に機能追加などは行っていないが、Python3対応となっている。Python3で使う局面はそんなに多くは無さそうだけど…一応注意しておくと、Python3ではpykfが扱うのは文字列ではなくbytesだ。Python3の文字列…

Python Developers Festa 2012.03 出陣記

毎度おなじみ Python Developers Festa 2012.03 にお邪魔してきた。会場をご提供頂いた Oracle 様、また丸一日おつきあい頂いた @yokatsuki様には心からお礼を申し上げます。@voluntas が迷惑かけてほんとすんません。さて、今回はPython2から3への移行の話…

mockはこう使え

最近、Mockライブラリ http://www.voidspace.org.uk/python/mock/ を使ってみたのでメモ。このライブラリは、その性質上、動的にメソッドや属性を作成するケースが多く、普通のPythonライブラリのようにイントロスペクションに頼って使い方を調べるのは難し…

Vimさん?ちょっとVimさん???

なんで 1 返すの? ishimoto@mbp-aish:~/vimrc$ vim a ishimoto@mbp-aish:~/vimrc$ echo $? 1 ishimoto@mbp-aish:~/vimrc$ /usr/bin/vim a ishimoto@mbp-aish:~/vimrc$ echo $? 0 おかげでbzrやらhgやらでコミットできないんですけど? ishimoto@mbp-aish:~/…

メモ ー Ubuntu 11.04のオーバーレイ スクロールバーを無効にする

メモ。邪魔臭いっちゅうねん。慣れないし。http://www.webupd8.org/2011/04/how-to-disable-overlay-scrollbars-in.html より $sudo echo "export LIBOVERLAY_SCROLLBAR=0" > /etc/X11/Xsession.d/80overlayscrollbars

メモ - libvteのビルド

Ubuntu 11.10 oneiric にて $./configure with-gtk=3.0 $ make

Cygwin版VimでIME自動切り替えへの道 - 野望編

さて、ようやく Cygwin版VimでIME自動切り替えへの道 - 立志編 の続きである。 minttyの置き換え まず、Cygwin版VimでIME自動切り替えへの道 - 立志編にあるパッチを当てた mintty.exe をビルドする。とりあえず、私の方でビルドしたバイナリを http://www.g…

iTerm2でもIME自動切り替えへの道 - 青雲編

昨夜はCygwinのminttyにIMEの制御機能を付けてみたが、職場のMacでもやってみたのである。標準でついているターミナルはソースが公開されていないようなので、人気があるらしいiTerm2でやってみた。 https://github.com/atsuoishimoto/iTerm2-IMEOS Xにはあ…

Cygwin版VimでIME自動切り替えへの道 - 立志編

さて、vimでリモートに置いてあるファイルを編集したいとき、なにが腹立たしいと言ってIMEの切り替えが非常に腹立たしいのである。ローカルであれば http://sites.google.com/site/fudist/Home/vim-nihongo-ban/vim-japanese/ime-control 等を使ってまあ我慢…

tse 0.0.2 - Text Stream Editor in Python

先日公開した tse をちょっとアップデートした。http://pypi.python.org/pypi/tse $ sudo easy_install -U tse 等でインストールできる。 コマンドラインオプションの修正 0.0.1 では -a オプションでコンディションとアクションを両方指定していたが、0.0.2…

tse - Text Stream Editor in Python

久々にsedを使ってちょっとしたテキストを処理をしてたら、やっぱりこういうのもPythonで出来ないかなぁ思った訳である。Pythonスクリプトというのは改行とインデントが不可欠なので One Liner に向かないというのはご案内の通りだが、ちょっとは何とかなる…

菊地時夫先生への、GNU Mailmanコミュニティからのメッセージ

すでにご存じの方も多いと思いますが、PythonやApache、Mailmanなど、様々なオープンソースコミュニティで活躍なさっていた、元高知大の菊地時夫 名誉教授が、平成24年1月14日にお亡くなりになりました。菊地先生はGNU Mailmanという、メーリングリスト…

僕たちPythonistaは、プログラミングに、Excelを使います!

みんな、Excel使ってますか!?もちろん使ってますね!?休暇届も、作業日報も、見積書も、スケジュール表も、みーんなExcelですね!? もちろん、プログラミングだってExcelですね!? 当然です!みんなそうやって仕事してるんです! Excel版のTwitter公式…

Python3 Advent Calendar 二十日目 PEP 380 -- Syntax for Delegating to a Subgenerator

Python3 Advent Calendarとやらに参加しろ、なんか書けと言われて泣く泣くキーボードを叩くatsuoishimotoです。書けと言われてもネタがないのでどっかからパクろうと Python3 Advent Calendar を最初から目を通してみると、しょっぱなから良いネタがあった。…

Motorola Photonに乗り換えた

携帯を、HTC DesireからMotorola Photonに乗り換えたので、感想など。DesireとPhotonではAndroid 2.2と2.3の違いもあるので単純には比較できないが。 Photonの方が断然バッテリの持ちが良い 速い。DesireではWeb版Twitterは実用的な速度で表示されなかったけ…

Python Developers Festa 2011.10 の発表資料

Python Developers Festa 2011.10で、「Pythonのシグナル処理」というネタを発表させて頂いた。 Pythonのシグナル処理 View more presentations from atsuoishimoto 内容的には、Pythonがどのようにシグナルを受け付けているのかという初歩的な解説と、一般…

BeProudさんで草鞋を脱ぐ

まだ100%確定という訳ではないが、著名なPython企業である BeProud さんで、11月からお仕事をさせていただくことになりそうだ。ちょっとお話でも、という事でお邪魔させていただいたら、なかなか面白そうな案件を伺って、決めてきてしまった。自分でもちょっ…

Re:Python とクロージャ

@kumagi: @shomah4a 記法をちょっと改める事で回避出来るというのも謎ですし、なぜリストならクロージャ出来るのかわからないのですがどういう哲学でこんな設計になってるのでしょうorz http://d.hatena.ne.jp/shomah4a/20110909/1315542720 関数をネストで…

いまさらながら、エキスパートPythonプログラミング

遅ればせながら、エキスパートPythonプログラミング を読んでみた。翻訳者の一人、森本さんに頂いたのだが、なんと彼は本をやるから書評を書けと私に強制するのだ。ひどい男である。聞くところによればこの本、すでに第4刷まで増刷されたヒット作であり、い…

Consoleの日本語入力対応-その3

ダウンロード: http://wiki.pythonpath.jp/moin/ConsoleIme 修正内容 半角/全角キーだけでもIMEをオン・オフできるようにした

Consoleの日本語入力対応-その2

ダウンロード: http://wiki.pythonpath.jp/moin/ConsoleIme 修正内容 変換ウィンドウの位地・フォント設定 IMEオンの状態でEnter等のキーが正しく動作していなかった。 問題が無さそうなら、パッチを本家に送ろうと思う。動作報告を@atsuoishimoto までご連…

Consoleの日本語入力対応

Windows用のコマントプロンプトの置き換えアプリに、Console というのがある。タブで複数のコマンドプロンプトを切り替えたり、ドラッグだけでウインドウ幅を変えられたりと、色々と便利なツールである。Consoleは結構昔からあるツールで、私も以前試してみ…

お前ら効率悪い勉強してんなー

って思う人たちがたくさんいる。何かを学びながら、その対象の悪口をTwitterとかに書き込んでるような人たちだ。勉強するなら、嘘でもいいからその対象を愛した方が良い。気に入らなくても、どっか褒めるところがあるだろう。キャバ嬢になったつもりでコビま…

ANS-prog : プログラマが質問し、プログラマが答える Q&Aフォーラム

先日もちらっと書いたが、 ANS-prog : プログラマが質問し、プログラマが答える Q&Aフォーラム をオープンした。既に一週間ほど運用しているが、十分安定しているようだ。 Stack Overflowとは さて、「Q&Aフォーラム」と聞いて、どんなイメージを持たれるだ…

uniq()あれこれ

ふとこちらの記事を拝見して、頭に浮かんだことをメモってみる。id:aroma_blackさんの [y for x,y in enumerate(seq) if seq[:x+1].count(y) == 1] や、id:cocoatomoさんの [x for i, x in enumerate(a) if i == a.index(x)] でも良いんだけど、あえて別解を…

許されざる悪事

djangoの中に、こんな処理がある。 def get_cache(backend_uri): scheme, host, params = parse_backend_uri(backend_uri) … … … return getattr(module, 'CacheClass')(host, params) cache = get_cache(settings.CACHE_BACKEND) (http://code.djangoprojec…

オープンソースQ&Aシステム OSQAのインストール方法

さて、 昨日紹介した オープンソースQ&Aシステム OSQAのインストール方法を解説する。ここではUnuntu Linux 10.4 を対象に、インストール先ディレクトリは /home/osqa とした。 動作環境 Python 2.6以上 ソースの取得 まだ正式なリリースが出ていないので、S…

オープンソースstackoverflowクローン OSQA

IT技術者の皆さんなら、Stack Overflow というサイトをご存じだろう。いわゆるQ&Aサイトだが、非常に使い勝手の良いサービスで、この手のサイトにはあまり足を運ばないようなプログラマでも、ここでは書き込んでいるのを見かけることも多い。Stack Overflow…

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の開発では後方互換性を保つことが非常に重視されていて、通常のアプリケーションであれば…