Python
Rubyでかんがえた Pythonでかんがえた
アプリケーションハンガリアンを用いて徳丸本の「様々な列でのソート」のサンプルを改善してみた。 http://tech.ecnavi.co.jp/archives/4606152.htmlという記事に触発されて、さらに、言語としての表現力がどれぐらい貢献できるか考えてみたいと思います。ブ…
昨日の Subversionで、あるリビジョン以降の差分をファイルで抽出 - なんたらノート 第二期 をもとに、エクスポートファイルを吐出さず、直接FTPするツールを作りました。本当なら、ファイルとしてエクスポートして、きっちり確認しながらアップロードするべ…
Subversionのexportコマンドは作業コピー内の全ファイルを吐き出してしまいます。ぜんぶですよ、ぜんぶ!! Web仕事の場合、この大量のファイルをすべてFTPで再アップロードしなくちゃいけない、となるとたいへんです。できれば、内容が変わってないファイルは…
日常の便利ツールPythonですが、いつもの頻出タスク、「全ファイルに何かする」をやるとき、いちいち書いていた(書きはじめが書きやすすぎて)のですが、あまりにも頻出するので、もういっそ、最小基本パターンを決め、今後書き換えて使う基本形にしようと決…
PythonでExcelを読むには、http://pypi.python.org/pypi/pyExceleratorかhttp://pypi.python.org/pypi/xlwtを使うんですが、このpyExceleratorのパース結果が、Excel向きのメソッドのあるオブジェクトじゃなくて、リストとタプルと辞書だけでできていたりし…
新しいPHPとかGroovyとか次のJavaとか、三項演算子の省略でElvis演算子(?:)なるものがあるそうで、どのぐらいおいしいのかを考えました。エルビス演算子へのニーズって、三項演算子(cond ? a : b)はやっぱり評価されるべきものだよね、ってことを意味してる…
指定日以降に変更されたファイルを抽出するPythonスクリプトです。何らかのバージョン管理システムで管理している場合なら、ログをもとにパッチを作成できるけど、それができないときに使います。日付表現が柔軟なので、しばらくして使い方忘れたとき、適当…
Luaはコルーチンがとても特徴的で、こんなに継続オブジェクトが扱いやすい言語は、他にありません。 http://www.lua.org/manual/5.1/manual.html#2.11 Luaまではムリでも、Pythonでそれに近いことができないか、挑戦してみました。 Python2.5以上じゃないと…
Scalaで話すように素数 - なんたらノート 第二期 のついでに、まだ使い物にならないけど、一応Python3.0の場合を書いときます。 続・話すようにプログラムするPythonチュートリアル - なんたらノート 第二期 と比べてどうでしょう? from decorator import *…
Rubyist Magazine - Rubyist のための他言語探訪 【第 1 回】 Pythonで言われてることが一般認識みたいになっているので、ちょっと違うなと思うことをメモっとこう。あなたがもしPythonを作る前のGuidoに憑依して - ネットリサーチ - livedoor ニュース とか…
あなたがもしPythonを作る前のGuidoに憑依して - ネットリサーチ - livedoor ニュース が面白すぎた。2位と3位の すべてを式にする lambdaの構文を変える は、同じ願いを別の言い方でしてるような気がした。lambdaにifとforを入れたいをかなえるには、ifとfo…
話すようにプログラムするPythonチュートリアル - なんたらノート 第二期の続きです。前回は努力と根性でどうにかなるところまでやりました。今回は、前回再び泥臭いコードになってしまったプログラムを、もっと綺麗にしてみようと思います。前回はできるだ…
MacOS 10.5にはいろいろおいしいコマンドがそろっているけど、実質、仕事の現場にいちばん多い環境は10.4じゃないかと思います。そんなMacでも、コマンドラインツールとして、PythonとSubversionを使えるようにしておきたいですね。※10.3.9未満はもう誰もサ…
メタ言語としてPythonを使い、PHPの変数やらリファレンスやら周辺の、ランタイム実行モデルを表現してみた。あの変な「リファレンス」ってやつの正体はなんなのか、ってね。今の自分の解釈を書き留めておきたいんだけど、いくら自然言語で説明しても、マニュ…
はじめてのひき - PythonSucks が気になった。 raw_input("hoge") とかで出力もできる まともな標準入出力は import sys sys.stdout.write("Hello, world!\n") めんどくさいなぁ。 Pythonは標準入出力の存在を前提としない言語だから。PerlやRubyとはちょっ…
http://d.hatena.ne.jp/tanakahisateru/20081008/1223450159 のリベンジPyGameを使えば、sbit(TTFに埋められたビットマップフォント)のあるTrueTypeフォントでは、文字サイズが小さいとき自動的にビットマップフォントが使われる。 import pygame, pygame.fo…
PIL(Python Image Libraly)で日本語フォント使おうとすると、ラスタライズ結果がぐちゃぐちゃになることがある。これはハマった。つぶれる条件はどうやら、ビットマップを持つフォントのビットマップが適用される場合のようだ。ビットマップが適用されないぐ…
HTTP1.1には、「アプリケーションが明示的にちょっとづつデータを送る」ための、チャンク転送符号化という仕様があります。ヘッダの項目について http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.41 転送方式そのものの説明 http://www.w3.or…
今回は decorator 3.4.0 : Python Package Index のお話。Pythonのデコレータは便利です。関数の実体定義直後に、任意のフィルタをその関数に施すことができます。 def special(func): def invoker(*args, **kw): return "special " + func(*args, **kw) inv…
話すようにプログラムする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でえらくハッキッシュなコードを書き散らして遊んだ 3の倍数と3が付く数字だけアホになり、5の倍数だけガルマっぽくなるスクリプトにチャレンジ - なんたらノート 第二期 うえ、他人のエッセイをえらくこき下ろし OOコード養成ギブス - rants OOコード…
http://d.hatena.ne.jp/CortYuming/20080731/p1 …に触発されて、「3の倍数と3が付く数字だけアホになり、5の倍数だけガルマっぽくなるスクリプト」にチャレンジ。Python2.5専用。 #!coding: utf-8 #3の倍数と3が付く数字だけアホになり、5の倍数だけガルマっ…
pyExceleratorは、PythonでWin32.COMを使わずにExcelを読み書きするモジュールです。Excelファイル作成のサンプルコードは豊富なのですが、読み込みサンプルは添付されていません。読み込みは、とにかく文字か数字が読めればいいということ?たしかに、簡単…
このエントリは2007/10/06の再掲です TurboGearsの標準テンプレートエンジン、Kidの説明です。Kidの基本構文は簡単なので一見初めてでもすぐできそうですが、いざtg- admin quickstartで作成されたwelcome.kidとmaster.kidを見てみると、本当に初めてでは、…
Pythonの標準モジュール管理ツールsetuptools(easy_installコマンド)は、Subversionリポジトリからモジュールをインストールする機能を持っていて、svnコマンドを要求します。ところがこの機能、setuptools-0.6c8の時点では、svnコマンドのバージョンが1.5…
このエントリは2007/06/22の再掲です TurboGearsの1.0と0.9の境目、そして、CherryPyの2と3の境目で、TurboGearsをmod_pythonで起動させる方法に違いがあり、どれが現在有効で、かつ標準的な方法なのか、どうにもよくわかりません。いろいろと試した結果、 …
Apacheの背後で正しく動くには このエントリは2007/11/07の再掲です 現行のTuboGearsはCherryPy2.2.1を使っています。ところが、CherryPyのリリース元にあるドキュメントはすっかり 3.0代の仕様で書かれていて、現行のTurboGearsでの解決策と食い違う点がい…
このエントリは2007/12/05の再掲です 64ビット版CentOSに、Pythonとmod_pythonをインストールする件についてです。Linuxのコンポーネント管理ツールyum がシステムのPythonバージョンに依存するので、システムPythonをアップグレードすることができません。…
Pythonで以下のコードを実行すると、UnicodeEncodeErrorになってしまいます。 u'ハンカク'.encode('iso-2022-jp') 厳密には、オリジナルiso-2022-jpの文字セットは、半角カナや一部の記号等、他の日本語エンコーディングの文字セットに存在する文字を含みません…