python

HTML タグ付き文字列を動的に生成する実装のリファクタリング

1年前に開発したアプリケーションの機能拡張に伴い、徹底的にリファクタリングしてやろうと気合を入れて改修中です。そんな中、HTML タグ付き文字列を動的に生成する - forest book で書いた処理を、いま見返すと見た目があまりよろしくありませんね。もうち…

Python の日本語情報は未だ少ないのか

2008年のお正月休みに「初めての Python」*1 を購入したところから私は Python を勉強し始めました。このブログを書き始めた当初の目的も Python の勉強のためでした *2 。当時、Python を勉強しようと思って自分なりに調べた結果、Python チュートリアル と…

Pythonで5分でシステム運用に役立つレシピ

元ネタ: Pythonで5分で便利なことをするレシピ - 西尾泰和のはてなダイアリーお正月なので(?)、挑戦してみます。Python に限ったお話ではないですが、スクリプト言語の嬉しさを実感するのは文字列の扱いがメインのときではないでしょうか。緊急でちょっとデ…

virtualenvwrapper のドキュメントを翻訳しました

モダンな Python の開発環境で virtualenv/virtualenvwrapper は必須らしいです。 http://labs.unoh.net/2009/12/2009python.html Python開発環境 | Go for it! Good night, Posterous virutualenvとvirtualenvwrapperとpipを使う - YAMAGUCHI::weblog Pytho…

軽量、シンプルな Web フレームワーク bobo を使ってみよう

@ymotongpoo (Python製テンプレートエンジンあれこれとJinja2 - YAMAGUCHI::weblog) さんから Python Web フレームワーク アドベントカレンダー2010 のバトンがまわってきました *1 *2 。今年のお題は「Web フレームワーク」です。普通だったら何を書こうか…

はてなアイデアで要望を行う

はてなダイアリーへの要望 によると はてなアイデア で要望や不具合報告を行うようです。はてなアイデア - はてなダイアリーのスーパー pre 記法(シンタックス・ハイライト)で Python の with 文をハイライトしてくださいPython の予約語は __import__ で…

コマンドラインオプションのテストを書く

見てしまった、、、 で、optparseをテストしたいのだが、どうすんべ2010-11-24 17:47:14 via Echofon 昨日の今日なのでやりましょう、頼まれていませんがー(> テスト対象のサンプルとして http://d.hatena.ne.jp/t2y-1979/20101124/1290534464 から optparse…

ログ解析ツールを作る

ログ解析ツールを作っててノッテきてつぶやいたら、 ログ解析ツールを python で書いているときの嬉しさを誰かに共有したい、本当に簡潔に書けて便利なんだよ2010-11-18 20:29:14 via TweetDeck @t2y 例題とかみてみたいです。2010-11-18 22:37:54 via TwitB…

言語設計者たちが考えること

プログラミングは創造性を発揮できる創作活動の1つです。機能を実現したり、決められた仕様通りに出力すること自体は単なるお仕事の作業でしかありません。しかし、要件を満たすためにどう設計、抽象化してメンテナンスし易く拡張性の高い仕組みに創り上げる…

PyQt4 の QtWebKit モジュールを使う

Python Hack-a-thon 2010.11 : ATND で @ransui による PyQt4 のハンズオンに参加してきました。お題は以下の通りです。 「メディアプレーヤ&スクリーンショット作成機能付き俺様ブラウザを作りながらPyQt4の基礎を学ぶ」 GUIとPhononというマルチメディア…

エキスパートPythonプログラミング読書会04に参加しました

エキスパートPythonプログラミング読書会04 : ATND に参加してきました。今回は第3章のクラスのお話です。私は小規模開発や普通のアプリケーション開発にしか携わったことがないのですが、wikipedia:オブジェクト指向プログラミング を行うところの、本質的…

エキスパートPythonプログラミング読書会03に参加しました

エキスパートPythonプログラミング読書会03 : ATND に参加して講師のお手伝いをしてきました。2章の後半、以下の内容を行いました。 イテレータとジェネレータ itertools モジュール デコレータ with と contextlib エキ Py 読書会02 2章後半最後にこんな質…

pypoppler を使用して PDF からテキストを抽出する

最近の Linux だと Poppler というライブラリを使用して PDF の処理を行っているようです *1 。Poppler をインストール(Fedora13 だと poppler-utils パッケージ)すると pdftotext というコマンドが付属していて、そのコマンドからテキスト抽出することもで…

PyQt4 のメインウィンドウの構成を把握する

Qt でフォーム画面を作成する際に QDialog や QWidget でちょっとした画面を作成することもできますが、メイン画面は QMainWindow で作成します。Qt Main Window Framework によると、QMainWindow にはメニューバー、ツールバー、ドックウィジェット、中央ウ…

PyQt4 のスロットを関数名で対応付ける

Qt Designer を使用してウィンドウやフォームを作成すると .ui という XML ファイルが作成されます。そして pyuic4 というコマンドを使用して .ui ファイルから uic モジュール(Python モジュール)へ変換することができます。ここで生成された uic モジュー…

PyQt4 の UI 操作のマルチスレッド処理

PyQt4 のシグナル/スロットの新旧スタイルの違いを比較するサンプル - forest book で紹介したサンプル、指定したディレクトリ配下にあるファイル数を数える簡単なアプリケーションでは、大量のファイルがあるディレクトリを指定した場合、全てのファイル数…

PyQt4 のシグナル/スロットの新旧スタイルの違いを比較するサンプル

wikipedia:Qt ではオブジェクト間通信、具体的には「ボタンをクリックした」「ラベルの表示を変更する」といったオブジェクトやウィジェットの状態の変更を通知する仕組みにシグナルとスロットを使用します。シグナルとスロットの詳細はここ *1 を参照してく…

エキスパートPythonプログラミング読書会02に参加しました

エキスパートPythonプログラミング読書会02 : ATND に参加して講師のお手伝いをしてきました。今回の読書会でお話できたのは第2章のうち以下の内容だけでした。 リスト内包表記 イテレータとジェネレータ ジェネレータ コルーチン ジェネレータ式 準備不足で…

0と1を次々返す方法の実装

0と1を次々返す方法 - When it’s ready. を考えてみました。私だったらこう実装するかな。 #!/usr/bin/env python # -*- coding: utf-8 -*- from operator import not_ def toggle(obj): while True: obj = not_(obj) yield obj def main(): g = toggle(True…

2010/8/12 から 2010/9/1 までの更新

以下の標準モジュールのチュートリアルを翻訳しました。 mailbox – メールアーカイブのアクセスと操作 - Python Module of the Week mhlib – MH メールボックスと連携する - Python Module of the Week os.path – プラットホーム独自のファイル名を操作する …

エキスパート Python プログラミングに学ぶ PyMOTW 翻訳の進め方

Taru-hime's waterfall posted by (C)t2yPyMOTW-ja *1 という Python 標準モジュールのチュートリアルを翻訳しています。2009年の5月頃から始めて、一時中断していたものの、現在は数10個のチュートリアルの翻訳が完了し、まだまだ鋭意翻訳中です。PyMOTW そ…

Pikzie でデータ駆動テストをやってみた

クリアコード さんが開発している Pikzie (ピクジー) という Python のための書きやすさとデバッグのしやすさを重視した Unit Testing Framework があります。ブログでデータ駆動テスト *1 の紹介をされていました。以前、素数を求めるアルゴリズム -エラト…

2010/8/4 から 2010/8/11 までの更新

以下の標準モジュールのチュートリアルを翻訳しました。 abc – 抽象基底クラス - Python Module of the Week dis – Python バイトコードディスアセンブラ - Python Module of the Week functools – 関数を巧みに操作するためのツール - Python Module of the…

calendar モジュールを使う

アリエル・ネットワークさんで Python を学び始めた @na_toi さんの パスワード認証 を見て、私だったらこう実装するなって書いてみました。calendar.weekday() が曜日を表す値を返すなら、そのままタプルのインデックスとして使用すると良いと思います。リ…

2010/7/20 から 2010/8/3 までの更新

以下の標準モジュールのチュートリアルを翻訳しました。 array – データ型固定のシーケンス - Python Module of the Week contextlib – コンテキストマネージャユーティリティ - Python Module of the Week difflib – シーケンスを比較する - Python Module …

ジェネレータへ値を渡す

呼称: send() メソッドを使用してジェネレータへ値を渡す 目的: yield を式として使用する際の動作を学ぶ 特徴: 特になし 用例: コルーチンの実装の一つ 備考: エキスパート Python プログラミングの第2章「構文ベストプラクティス - クラスの世界」-イテレ…

select モジュールの基本

呼称: select モジュールの基本 目的: select モジュールの動作を学ぶ 特徴: 標準出力/エラーの判別をファイルディスクリプタで行う 用例: 複数のソケットやパイプから非同期にデータのやり取りをする 備考: subprocess の PIPE 経由でデータをやり取りする…

IPython で簡単プロファイリング

methane のつぶやき を見て IPython で timeit を使用すると、簡単に実行時間を計測することができるのを知りました。例えば、[1,3,2,3,4,1,5] -> [1,3,2,4,5] のような、同じ値を含むリストから順序を保持した上で重複を取り除きたいときに色んな実装が考え…

フラグのような条件比較にブール演算を利用する

呼称: ブール演算による条件比較 目的: 条件比較に定数を利用してメンテナンス性を高める 特徴: 条件のグループ化ができて、且つソースコードが読み易くなる 用例: コマンドラインのオプションや設定ファイルの設定項目などに使用する 備考: エキスパート Py…

Plone で RSS フィード付きのポータルタブコンテンツを作成する

nakagami さんから Zope/Ploneアドベントカレンダー 2009 のバトンが贈られてきました。Plone サイトにブログプロダクトを追加して RSS フィードを配信するのに挑戦してみます。ポータルタブの News や Events がどのようにして作成されているのかを確認しな…