目の前に僕らの道がある

勉強会とか、技術的にはまったことのメモ

python

Sphinxでユニコードエラーが出た時の対処のメモ

Sphinxで日本語を含む文章をmake htmlした時、下記のようなエラーが出た。 masasuzu@leon% make html mkdir -p build/html build/doctrees sphinx-build -b html -d build/doctrees source build/html Sphinx v0.4.2, building html trying to load pickled …

Pythonプロジェクトをpasterを使って作る

自分メモ インストール virtualenvを使っているのでpipで。 pip install PasteScript テンプレートリストの表示 paster create --list-templatesAvailable templates: basic_package: A basic setuptools-enabled package paste_deploy: A web application d…

virtualenv上でtrac-gitを動かして見る。

etchだとtrac-gitのパッケージが無いので、virtualenv上に環境を作ってみる。 ただし、うちにはetchの環境がないのでlennyでやっています。 会社のetchでも同じ手順でできたので大丈夫なはずです。ただ、もしかしたらパッケージ名が若干違うかも。注: 私はzs…

djangoの開発サーバを外部からアクセスするために

デフォルトだと127.0.0.1:8000がbindアドレスとして使用されるため、開発マシンのブラウザ以外からアクセスできません。なので、サーバ起動時にバインドアドレスを指定してあげます。 python manage.py runserver 0.0.0.0:8000 # または # python manage.py …

djangoでmysqlをいじるために

デフォルトだとMySQLdbがねえよって怒られたので、覚え書き。 Debian lennyの話です。ちなみにvirtualenvで2.5.2の環境を事前に作っています。 sudo aptitude install libmysqlclient15-dev sudo aptitude install python-dev workon django pip install MyS…

virtualenvを試してみる。

忘れがちな脳のための覚え書きです。まず、Pythonとeasy_installがないとどうしようもないので、 sudo aptitude install python python-setuptools インストール。easy_installからいれます sudo easy_install virtualenv virtualenvwrapper設定ファイルに追…

Python3000でWassrクライアントを作ったよ。

Python Hack-a-thonのお題として作ったのですが、久しぶりのPythonかつPython3000で実装したので思いの外時間がかかってしまいました。 ここ最近ずっとPerlを書いていたので、Python的にはちょっと微妙な感じがするかも知れないです。とりあえず、githubにソ…

python3000をCentOSとDebianにインストールするなど

覚え書き。とりあえず、環境をそろえなくてはならないので。どちらも標準パッケージが無さそうなので、ソースからインストールしました。手順はどちらも同じ。 wget http://www.python.org/ftp/python/3.1.2/Python-3.1.2.tgz tar xvzf Python-3.1.2.tgz cd …

list.append()とlist.extend()

Python自分メモです。list.append()は単純にlistの末尾に要素を追加する。 list.extend()はlistの末尾に展開した要素をそれぞれ追加する。ただし、入れ子になっているlistは展開しないっぽい。 Python 対話モードでの結果 >>> list_a = list() >>> list_a []…

Perlでメール送信してみた。ついでにPythonも

ちょっと仕事でメールを送信するスクリプトを書かなきゃいけないみたいなので調べてみました。 Net::SMTP編 とりあえずググってみて、一番最初に見つけた方法がNet::SMTPを使う方法です。ちょっとSMTPサーバとやりとりしているあたりがくどい感じがします。 …

テスト駆動開発入門をpikzieで写経してみた。1

テスト駆動開発入門をPythonで写経してみた。1をpikzieでテストを書き直してみました。 money.py テスト駆動開発入門をPythonで写経してみた。1から少し書き換わっています。 #!/usr/bin/env python # coding: utf-8 """ テスト駆動開発入門1章 """ class Do…

pikzieのインストールに成功した。

前回はsyslogモジュールが見つからないため、インストールに失敗しましたが、trunkに置いてあるバージョンを試してみたらインストールできました。とりあえずいろいろ試してみます。

PyUnitのassertEqual()メソッドのactualとexpected

RubyのTest::Unit::Testクラスにおけるassert_equal()メソッドでは第一引数がexpected、第二引数がactualってなっています。確かJUnitと同じだったと思います。 http://www.ruby-lang.org/ja/man/html/Test_Unit.htmlPythonのTestCaseクラスのassertEqual()…

テスト駆動開発入門をPythonで写経してみた。12

12章で実施したこと Bankクラスの仮実装 MoneyクラスをExpressionクラスから継承(実装)するよう変更 __add__()メソッドの追加 だんだん元のコードの意図が分かりづらくなってきました。Moneyの和はExpression(式)になるという発想自体が私には出てきません。…

pikzieのインストールに失敗

pikzieっていうPythonのユニットテストフレームワークがあります。 http://pikzie.sourceforge.net/index.html.jaこれのアサーションがPyUnitよりPythonぽくてよさげ*1なのでちょいと試してみようかとしたのですが、見事にインストール失敗しました。syslog…

テスト駆動開発入門をPythonで写経してみた。11

11章で実施したこと DollarクラスおよびFrancクラスの削除 冗長なテストの見直し 不必要なテストを削除しています。 money.py #!/usr/bin/env python # coding: utf-8 """テスト駆動開発入門 11章 諸悪の根源 """ class Money(object): def __init__(self, a…

テスト駆動開発入門をPythonで写経してみた。10

10章のソースコードがどこを探しても見つからなかったので、やり直しました。その際、前回から気になっていた場所も修正しました。 10章で実施したこと __mul__()メソッドをMoneyクラスに移動 デバッグ用の__str__()メソッドの定義 JavaでいうtoString()メソ…

テスト駆動開発入門をPythonで写経してみた。9

9章で実施したこと DollarクラスとFrancクラスのコンストラクタを共通化 通貨単位を返すcurrency()メソッドの実装 times()メソッド内でのファクトリメソッドの使用 times()メソッドが気持ち悪いです。Python的には__mul__()メソッドを定義して*演算子をオー…

テスト駆動開発入門をPythonで写経してみた。8

8章で実施したこと ファクトリメソッドパターンを適用し、サブクラスへの参照を減少させた times()メソッドをMoneyクラスで抽象メソッドとして宣言 Python2.5には抽象クラスが無いので、times()メソッドでNotImplementedErrorを発生させています。 money.py …

テスト駆動開発入門をPythonで写経してみた。7

7章で実施したこと 同じ量のFrancとDollarを比較した際、同値と判断されないよう修正 __class__アトリビュートが同じかどうかで判定するようにしました。ただ直接__class__アトリビュートを見ているのが気持ち悪いです。ほかにいい方法はないかな。 money.py…

テスト駆動開発入門をPythonで写経してみた。6

ちょっとずつ書いていきます。 6章で実施したこと Franc、Dollarの親クラスMoneyの追加 Franc、Dollarの__eq__()メソッドをMoneyに移動 本筋とは関係ないが実施したこと 意味をなしていないequals()メソッドの削除。__eq__()メソッドへの統合 前回も書きまし…

テスト駆動開発入門をPythonで写経してみた。16

とりあえずコードだけ。原書は相変わらず会社に置きっぱなしなので記憶を頼りに解説を書こうかと思っていましたが、かなり昔に書いたコードなので思い出せませんでした。タイプスタンプを見る限りでは3ヶ月くらい前でした。やりっぱなしじゃ勉強した意味がな…

テスト駆動開発入門をPythonで写経してみた。15

とりあえずコードだけ。 money.py #!/usr/bin/env python # coding: utf-8 """テスト駆動開発入門 15章 通貨の混合 """ class Expression(object): def reduce(self, bank, currency_to): raise NotImplementedError def __add__(self, addend): raise NotIm…

テスト駆動開発入門をPythonで写経してみた。14

とりあえずコードだけ。 money.py #!/usr/bin/env python # coding: utf-8 """テスト駆動開発入門 14章 変化 """ class Expression(object): def reduce(self, bank, currency_to): raise NotImplementedError class Money(Expression): def __init__(self, …

テスト駆動開発入門をPythonで写経してみた。13

とりあえずコードだけ。 money.py #!/usr/bin/env python # coding: utf-8 """テスト駆動開発入門 13章 動作 """ class Expression(object): def reduce(self, currency_to): pass class Money(Expression): def __init__(self, amount, currency): self._am…

テスト駆動開発入門をPythonで写経してみた。 4.1

JavaのassertEquals()は中でequals()メソッドを呼んでいるんですね。たぶん。だから違うオブジェクトを比較しているのに"Equal"と判断されるんですね。Javaでコードを書かないのでよくわかないですが。それに対しPythonのassertEqual()は中で__eq__()メソッ…

テスト駆動開発入門をPythonで写経してみた。5

なんてことはないです。一番汚い形でFrancクラスを追加しただけです。7章で抽象クラスを使うのですが、Pythonには言語の機能として抽象クラスとやらが無いようです。ていうか抽象クラスって何だ?レベルなのですが。とりあえず調べよう。追記 抽象基底クラス…

テスト駆動開発入門をPythonで写経してみた。 4

こうですか?よく分かりません。 目的 amountのプライベート化 原書と違うところ 11行目、12行目 原書ではassertEquals()にオブジェクトを渡しています。PythonのassertEqual()で同じことするとそれは違うオブジェクトを比較していると怒られます。比較したい…

テスト駆動開発入門をPythonで写経してみた。 1

こうですか?よく分かりません。 第1章 #coding : utf-8 """ テスト駆動開発入門1章 """ import unittest class TestMoney(unittest.TestCase): def testMultiplication(self): five = Dollar(5) five.times(2) self.assertEqual(10, five.amount) class Doll…

テスト駆動開発入門をPythonで写経してみた。 3

第3章 #coding : utf-8 """ テスト駆動開発入門3章 """ import unittest class TestMoney(unittest.TestCase): def testMultiplication(self): five = Dollar(5) product = five.times(2) self.assertEqual(10, product.amount) product = five.times(3) sel…