北海道苫小牧市出身の初老PGが書くブログ

永遠のプログラマを夢見る、苫小牧市出身のおじさんのちらしの裏

python

和歌山でめはり寿司を食べてきました

久しぶりに*1開発合宿に参加してきました。主催のCMSコミュニケーションズさんとCR-ASSISTさんのご好意でなんと交通費も宿泊費も無料でした、ありがとうございます! 開催地は新宮で、めはり寿司が名物です。 Levenshtein Automata from hiratara @terapyon…

今日は社会ネットワーク分析勉強会 #1の日です

社会ネットワーク分析勉強会 #1にお邪魔しています。タグは#TokyoSNAです。Niftyさんのエンジニアサポートという制度で行われているようです。Nifty++

問題4.19の解答(台形公式、シンプソンの公式)

概説微分積分の問題4.19の解答。台形公式は定積分を台形で近似するもの。台形の公式を使って面積を出して整理すればすぐ出てくる。 def trapezoidal(f, range_, n): a, b = range_ result = f(a) + f(b) for i in xrange(1, n): result += f(a + (b - a) * i…

問題4.13の解答(回転体の表面積)

概説微分積分の問題4.13の解答。公式をそのまんま利用。 import sympy as sym from sympy.utilities import lambdify import scipy as sp import scipy.integrate def surface_of_revolution(y, range_): dy = sym.diff(y, x) y_lambda = lambdify(x, y) dy_…

問題4.7と4.8の解答(不定積分と定積分)

概説微分積分の問題4.7と4.8の解答。手計算に飽きたので現実逃避。4.7 は sympy を使う。理論的に解けるのはわかってるけども、手計算じゃもはや無理。7番目の問題にやたら時間がかかったんだけど、辛かったのはどの辺だろ。セオリー的にはt = tan(x/2)と置…

問題3.17の解答(Matplotlib)

昨夜サボってたグラフの表示。sympy の関数を numpy に持ち込むのに sympy.lambdify を使った。 import sympy as sym from sympy.abc import x import pylab import numpy as np def graph(f, range, nums=100): vf = np.vectorize(f) t = np.linspace(range…

問題3.19の解答(マクローリン展開)

概説微分積分の問題3.19の解答。exp(0.5)、cos(1)、log(1.1)を小数第二位まで求める問題。ラグランジュの剰余項Rn(x)の絶対値を評価する必要があるのだけど、評価方法を経験則的にやってるので一般化できてない。 import math def trunc(x): if x > 0: retur…

問題3.21の解答(ニュートン法)

概説微分積分の問題3.21の解答。x^3 + x^2 - 3 = 0 と x^4 - x - 1 = 0 を解く問題。 def f1(x): return float(x) ** 3 + float(x) ** 2 - 3 def df1(x): return 3. * float(x) ** 2 + 2. * x def f2(x): return float(x) ** 4 - float(x) - 1 def df2(x): r…

問題3.16-3.18の解答(SymPy)

概説微分積分の問題3.16から3.18までの解答。ソフト使って解く問題だったのでSymPyを使ってみた。機能を探すのにかなり手間取ったけど、数式を代数的に扱えて面白い。∞はooだったりする。SymPyとnumpyとscipyとの関連性はまだよくわからず。ただしPlotはpygl…

GAE on virtualenv

virtualenv上でGAEのdev_appserver.pyを動かそうとNo module named cgiが出たりしますが、これはdev_appserver.pyがos.pyが入っているディレクトリ以外からモジュールをロードしないようにサンドボックスを作っているからです。virtualenvな環境だとos.pyは…

Import hooks 内で投げた例外

class MyImporter(object): def find_module(self, fullname, path=None): return self def load_module(self, fullname): raise ImportError("failed") import sys sys.meta_path = [MyImporter()] import datetime だと「ImportError: failed」になって、 …

Re: TransactionとEntity Groupについての理解

TransactionとEntity Groupについての理解で言及されていたことを試してみたのですが、どうも微妙に違うような? つまりTransaction内では、(多分Keyに関する操作がある場合には)暗黙のうちに「Key.from_path(u'UserAccount', u'tagomoris')を親とするEntity…

今日は「帰ってきた Python Workshop 2010/12」の日です

ケータイの予備バッテリーは2つ持ってきたのにケータイを忘れましたが、気を取り直して出席します! ハッシュタグは#pw1012みたいです。

「やっぱりパスタの会」でパスタを食べて来た報告

やっぱりパスタの会と言う名のcaty説明会に出席してきました。主催のid:m-hiyamaさんとckuwataさんはお疲れ様でした!catyスクリプトがライトさを目指しているのとは裏腹に、ガチガチの圏論の理論背景を持っているところがさすがはid:m-hiyamaさんと言った感…

間違いやすいPythonのクラス変数とインスタンス変数(2)

Pythonネタを書いたら、狙っていた通りckuwataさんが補足をくれたので追エントリしときます*1。ありがとうございます! 要するにこれは「class の直下で変数宣言をしたい」「でも普通にそれをやるとクラス変数になってしまう」という問題なわけだな。こうい…

間違いやすいPythonのクラス変数とインスタンス変数

すごい昔のエントリですが、コメントできなくなってたんでTBで。 やっぱり、インスタンス変数(クラス変数も!)は先頭で宣言しないと気持ち悪い。だから、初期化の必要がなくても以下のように書いておく。 class Hoge: #名前 name = None def __init__(self…

献本お礼: 10日で覚えるPython

寺田さんより10日で覚えるPython入門教室を献本頂きました。ありがとうございます!この本は手を動かして覚えるタイプの入門書で、「御託はいいからどうすれば動くんだよ?」って方に最適です。最初っからPythonの対話式環境を使うことになるので、難しい説…

tgsetup.pyがまた動かない

今現在のtgsetup.pyがまた動きませんねえ。*1駄目になった修正と思われるr5755を見てみたんですけど、なんだこれ。エラー処理を強化してるのはわかるんですけど、以下のコードがまずすぎです。 else: if argv: from setuptools.command.easy_install import …

Trac-0.11.1.ja1でエラー発生時にエラー(?)

Trac-0.11.1.ja1入れました。以下の現象が起きました。 現象 mime_encoding の指定が間違えていると、以下のエラーが発生します。本来ならログに吐かれるだけで済むはずです。 UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-18:…

google.appengine.api.mail はなかなかやり手

始めは日本語は駄目かと思ったんですが。The Mail APIを見ながら、GAEアプリからメールを飛ばしてみました。結論から言うと、このAPIのsend_mail()メソッドは、文字コードを自動認識するようです。例えば、ASCIIだけのメールを送ると、Content-Type: ヘッダ…

Google App Engineを触ってみた

一月半ほど前にやろうと思ってて挫折してたんですが、今日見たら登録画面がDoCoMoのe-mailにも対応してました。ってことで、お試し。 登録する 登録ページ から、言われるままに登録します。途中、ケータイのメールアドレスを聞かれますので、入力するとメー…

MacMiniにTrack0.11b1インストール中。

公式の手順でいくかと思ったんですが、以下のエラーが。 No module named pyexpat以下で直りました。 $ sudo port upgrade python25MacPortsで入れてたpython2.5が古かったから?? うーむ。

TurboGearsが1.0.4.X系に

Jan 21, 2008: TurboGears 1.0.4.2 released.、なんですけど。SQLObjectに依存しないようにtgsetup.pyが変更されてます。どうやらこのせいで、tgsetup.pyだけではSQLObjectが入らず、インストールが完了しないっぽいです。*1 一週間ほど前に、こっちの古いtg…

classの入れ子とスコープ

もう一つ、没ったコードを挙げておきます。*1 class Base(object): class Inner1(object): pass class Inner2(object): foo = Base.Inner1() # ← これNG def do_nothing(self): foo = Base.Inner1() # ← こちらはOK print foo Base.Inner2().do_nothing() Tr…

Pythonのクロージャの制限とその回避策

驚きました。LLが違えば挙動も違うもんですなあ。 ネストスコープの変数に対して代入・削除する機能は存在しない Effective Python うそーん? 試してみたら本当に駄目でした。 def countfunc(): i = 0 def retfunc(): i += 1 return i return retfunc f = c…

TurboGearsアプリをFastCGIでデプロイする

TurboGearsアプリを Apache + mod_fastcgi で動かしたときのメモです。*1 環境 Python 2.5 TurboGears 1.0.3.4 CherryPy 2.3.0 *1:mod_wsgiで動かしたい方はコチラ。

FFmpegで作る動画共有サイト

動画共有サイトの開発方法について、初めて本格的に解説した本です。縁あって執筆のお手伝いをさせて頂いた本が、1/29に発売されます。4章のJavaの項目を書かせてもらいました。 FFmpegで作る動画共有サイト月村 潤 本間 雅洋 堀田 直孝 ニコニコ動画のよう…

Python Unconference 1 レポート

Python Unconference 1へ行ってきましたので、レポートです。割と予習したつもりだったんですが、特にPylons周りでわかんない話が多発しました。頑張ってメモりましたが、内容の正確さは期待しないで下さい( ´△`)。

TurboGearsのRepeatingFieldSetでinput要素のname属性が変わる

食欲の秋、スポーツの秋、読書の秋、そして、コードリーディングの秋です。いや、もう冬か。TurboGearsでRepeatingFieldSetとかを使うと、<input>のname属性が勝手に"[RepeatingFieldSet名]-[連番].[input要素名]"に書き変わってるのがきになりました。そこで、ソー…

SingleSelectFieldのoptionsの型は揃えましょう

新しいフレームワークの学習コストって大きいですねー。最近本格的に触り始めた、TurboGearsのselectのoptionで、 widgets.SingleSelectField( name='name', options=(('', u'選択してね'), (1, u'壱'), (2, u'弐'), (3, u'参')), ), と定義してた箇所があり…