Python

FizzBuzzをかんがえた

Rubyでかんがえた Pythonでかんがえた

Pinoco等でも様々な列でのソートを改善してみる。

アプリケーションハンガリアンを用いて徳丸本の「様々な列でのソート」のサンプルを改善してみた。 http://tech.ecnavi.co.jp/archives/4606152.htmlという記事に触発されて、さらに、言語としての表現力がどれぐらい貢献できるか考えてみたいと思います。ブ…

Subversionで、あるリビジョン以降の差分をいきなりFTP

昨日の Subversionで、あるリビジョン以降の差分をファイルで抽出 - なんたらノート 第二期 をもとに、エクスポートファイルを吐出さず、直接FTPするツールを作りました。本当なら、ファイルとしてエクスポートして、きっちり確認しながらアップロードするべ…

Subversionで、あるリビジョン以降の差分をファイルで抽出

Subversionのexportコマンドは作業コピー内の全ファイルを吐き出してしまいます。ぜんぶですよ、ぜんぶ!! Web仕事の場合、この大量のファイルをすべてFTPで再アップロードしなくちゃいけない、となるとたいへんです。できれば、内容が変わってないファイルは…

Pythonで全ファイルに何かする、たとえば改行コード変換

日常の便利ツールPythonですが、いつもの頻出タスク、「全ファイルに何かする」をやるとき、いちいち書いていた(書きはじめが書きやすすぎて)のですが、あまりにも頻出するので、もういっそ、最小基本パターンを決め、今後書き換えて使う基本形にしようと決…

PythonでExcelを上手に読む

PythonでExcelを読むには、http://pypi.python.org/pypi/pyExceleratorかhttp://pypi.python.org/pypi/xlwtを使うんですが、このpyExceleratorのパース結果が、Excel向きのメソッドのあるオブジェクトじゃなくて、リストとタプルと辞書だけでできていたりし…

エルビスよ、aかbかcかdから肯定値を取り出せ

新しいPHPとかGroovyとか次のJavaとか、三項演算子の省略でElvis演算子(?:)なるものがあるそうで、どのぐらいおいしいのかを考えました。エルビス演算子へのニーズって、三項演算子(cond ? a : b)はやっぱり評価されるべきものだよね、ってことを意味してる…

指定日以降に変更されたファイルを抽出

指定日以降に変更されたファイルを抽出するPythonスクリプトです。何らかのバージョン管理システムで管理している場合なら、ログをもとにパッチを作成できるけど、それができないときに使います。日付表現が柔軟なので、しばらくして使い方忘れたとき、適当…

Pythonでコルーチン

Luaはコルーチンがとても特徴的で、こんなに継続オブジェクトが扱いやすい言語は、他にありません。 http://www.lua.org/manual/5.1/manual.html#2.11 Luaまではムリでも、Pythonでそれに近いことができないか、挑戦してみました。 Python2.5以上じゃないと…

Python3.0で話すように素数

Scalaで話すように素数 - なんたらノート 第二期 のついでに、まだ使い物にならないけど、一応Python3.0の場合を書いときます。 続・話すようにプログラムするPythonチュートリアル - なんたらノート 第二期 と比べてどうでしょう? from decorator import *…

続・PythonがRubyに似てないところがあるからって、そんな…

Rubyist Magazine - Rubyist のための他言語探訪 【第 1 回】 Pythonで言われてることが一般認識みたいになっているので、ちょっと違うなと思うことをメモっとこう。あなたがもしPythonを作る前のGuidoに憑依して - ネットリサーチ - livedoor ニュース とか…

Pythonのselfはなぜ必要かをJavaScriptのthisで考える

あなたがもしPythonを作る前のGuidoに憑依して - ネットリサーチ - livedoor ニュース が面白すぎた。2位と3位の すべてを式にする lambdaの構文を変える は、同じ願いを別の言い方でしてるような気がした。lambdaにifとforを入れたいをかなえるには、ifとfo…

続・話すようにプログラムするPythonチュートリアル

話すようにプログラムするPythonチュートリアル - なんたらノート 第二期の続きです。前回は努力と根性でどうにかなるところまでやりました。今回は、前回再び泥臭いコードになってしまったプログラムを、もっと綺麗にしてみようと思います。前回はできるだ…

MacOS 10.4 にPythonとSubversionを入れる

MacOS 10.5にはいろいろおいしいコマンドがそろっているけど、実質、仕事の現場にいちばん多い環境は10.4じゃないかと思います。そんなMacでも、コマンドラインツールとして、PythonとSubversionを使えるようにしておきたいですね。※10.3.9未満はもう誰もサ…

メタ言語PythonでPHPのラインタイムをモデル化して理解する

メタ言語としてPythonを使い、PHPの変数やらリファレンスやら周辺の、ランタイム実行モデルを表現してみた。あの変な「リファレンス」ってやつの正体はなんなのか、ってね。今の自分の解釈を書き留めておきたいんだけど、いくら自然言語で説明しても、マニュ…

Pythonが他の言語に似てないからって、そんな…

はじめてのひき - PythonSucks が気になった。 raw_input("hoge") とかで出力もできる まともな標準入出力は import sys sys.stdout.write("Hello, world!\n") めんどくさいなぁ。 Pythonは標準入出力の存在を前提としない言語だから。PerlやRubyとはちょっ…

PIL以外でTrueType日本語フォントを使う -- リベンジ

http://d.hatena.ne.jp/tanakahisateru/20081008/1223450159 のリベンジPyGameを使えば、sbit(TTFに埋められたビットマップフォント)のあるTrueTypeフォントでは、文字サイズが小さいとき自動的にビットマップフォントが使われる。 import pygame, pygame.fo…

PILでTrueType日本語フォントを使う

PIL(Python Image Libraly)で日本語フォント使おうとすると、ラスタライズ結果がぐちゃぐちゃになることがある。これはハマった。つぶれる条件はどうやら、ビットマップを持つフォントのビットマップが適用される場合のようだ。ビットマップが適用されないぐ…

HTTPチャンク転送をPythonで受ける

HTTP1.1には、「アプリケーションが明示的にちょっとづつデータを送る」ための、チャンク転送符号化という仕様があります。ヘッダの項目について http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.41 転送方式そのものの説明 http://www.w3.or…

Pythonデコレータが熱い

今回は decorator 3.4.0 : Python Package Index のお話。Pythonのデコレータは便利です。関数の実体定義直後に、任意のフィルタをその関数に施すことができます。 def special(func): def invoker(*args, **kw): return "special " + func(*args, **kw) inv…

Rubyで話すようにしてみた

話すようにプログラムするPythonチュートリアル - なんたらノート 第二期 を、Rubyで書いてみた。リファクタリング後 def is_prime_number(n) (2..n-1).find {|m| n % m == 0 } == nil end def prime_numbers_until(limit) (2..limit).select {|n| is_prime_…

話すようにプログラムするPythonチュートリアル

Pythonでえらくハッキッシュなコードを書き散らして遊んだ 3の倍数と3が付く数字だけアホになり、5の倍数だけガルマっぽくなるスクリプトにチャレンジ - なんたらノート 第二期 うえ、他人のエッセイをえらくこき下ろし OOコード養成ギブス - rants OOコード…

3の倍数と3が付く数字だけアホになり、5の倍数だけガルマっぽくなるスクリプトにチャレンジ

http://d.hatena.ne.jp/CortYuming/20080731/p1 …に触発されて、「3の倍数と3が付く数字だけアホになり、5の倍数だけガルマっぽくなるスクリプト」にチャレンジ。Python2.5専用。 #!coding: utf-8 #3の倍数と3が付く数字だけアホになり、5の倍数だけガルマっ…

pyExceleratorの日付解釈

pyExceleratorは、PythonでWin32.COMを使わずにExcelを読み書きするモジュールです。Excelファイル作成のサンプルコードは豊富なのですが、読み込みサンプルは添付されていません。読み込みは、とにかく文字か数字が読めればいいということ?たしかに、簡単…

複合的なKidテンプレート

このエントリは2007/10/06の再掲です TurboGearsの標準テンプレートエンジン、Kidの説明です。Kidの基本構文は簡単なので一見初めてでもすぐできそうですが、いざtg- admin quickstartで作成されたwelcome.kidとmaster.kidを見てみると、本当に初めてでは、…

最新Subersionとeasy_installの罠

Pythonの標準モジュール管理ツールsetuptools(easy_installコマンド)は、Subversionリポジトリからモジュールをインストールする機能を持っていて、svnコマンドを要求します。ところがこの機能、setuptools-0.6c8の時点では、svnコマンドのバージョンが1.5…

TurboGears1.0.2.2をmod_pythonで起動する

このエントリは2007/06/22の再掲です TurboGearsの1.0と0.9の境目、そして、CherryPyの2と3の境目で、TurboGearsをmod_pythonで起動させる方法に違いがあり、どれが現在有効で、かつ標準的な方法なのか、どうにもよくわかりません。いろいろと試した結果、 …

TurboGears(CherryPy2.2)のリダイレクト問題

Apacheの背後で正しく動くには このエントリは2007/11/07の再掲です 現行のTuboGearsはCherryPy2.2.1を使っています。ところが、CherryPyのリリース元にあるドキュメントはすっかり 3.0代の仕様で書かれていて、現行のTurboGearsでの解決策と食い違う点がい…

Install Python2.5 and mod_python to CentOS(64bit)

このエントリは2007/12/05の再掲です 64ビット版CentOSに、Pythonとmod_pythonをインストールする件についてです。Linuxのコンポーネント管理ツールyum がシステムのPythonバージョンに依存するので、システムPythonをアップグレードすることができません。…

半角カナありiso-2022-jpエンコーディング

Pythonで以下のコードを実行すると、UnicodeEncodeErrorになってしまいます。 u'ハンカク'.encode('iso-2022-jp') 厳密には、オリジナルiso-2022-jpの文字セットは、半角カナや一部の記号等、他の日本語エンコーディングの文字セットに存在する文字を含みません…