2013-01-01から1年間の記事一覧

mono,c# app.config(アプリケーション構成ファイル)の読み取り

[mono][app.config] monoでアプリケーション構成ファイル(app.config)を使う 個人的な設定をアプリケーション構成ファイルと言うものに設定できるらしい。 過去にはSystem.Configuration.ConfigurationSetting.AppSettingsから取得していたがこれはobsoleted…

async/awaitとかTaskとか

Task.Factory.StartNew()はobsoleteでTask.Run()。 current thredを止めて待つのがWailtXXX、そういうTaskを返すのがWhenXXX。 asyncをつけたメソッドの中でawaitが使える。 asyncをつけたメソッドは戻り値を自動的にXからTaskに変換して返す。 awaitをつな…

macでC#を動かすまで

agenda 環境作成 hello world test async/awaitを使う 環境作成 以下からmono develop(Xamarian Studio)を入れる。 Download - MonoDevelop(http://monodevelop.com/Download) Xamarian Studioが利用しようとするmonoのパスが固定だったりして起動時にハマる…

inkscapeに付属していたpython.exeが実行できない -- "指定されたプログラムは実行できません"

inkscapeに付属していたpython.exeが実行できない "指定されたプログラムは実行できません" と表示。 システムログを見る。 スタートメニュー>コントロールパネル>管理ツール>イベントビューア>システム 従属するアセンブリ Microsoft.VC90.CRT を検出できま…

makoの便利な機能について

makoはこんな感じで自身をモジュールのような何かであるようにinclude先に渡せるので面白い。 env.base.mako https://t.co/tUkfiPGoUF— u'あ'==u'あ'.encode() (@podhmo) 2013, 11月 3 mako. こういう感じでちょっとした擬似html要素っぽいようなこともでき…

memo python3のvenv環境作成

python3の環境 pyvenv my3 cd my3 curl -L https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py -0 > ez_setup.py ./bin/python3.3 ez_setup.py ./bin/easy_install pip お試し ./bin/pip install pyflakes ./bin/pip freeze ./bin/python -c …

sqlalchemyのコミット前のobjectに注意

sqlalchemyのrelationはinstrumented listという形で管理されている。 N:1のN側の方の話です。(以下のコードではgroup.usersのこと) class Group(Base): __tablename__ = "groups" id = sa.Column(sa.Integer(), primary_key=True, nullable=False) name = s…

sqlalchemyでdb engineを使い分ける。

時折永続先を切り替えた形でテストしたい場合があり。 その時にどうすれば良いか分かっていなかったので調べた。 scopedsessionを使う場合と使わない場合で異なる。 swap_db_sample.py https://gist.github.com/podhmo/6990194

yeomanで'Allo, 'Allo!するまで

$ brew install node $ curl -L http://npmjs.org/install.sh | sudo sh $ npm install yo $ npm install generator-webapp npm installの -g optionって何? 付けないとcurrent directoryにだけinstall. cwdにnode_modulesというのができる。 付けるとgloba…

twitter test. int(True) and int(False)

int(True) => 1 なのかー。 http://t.co/DlW8pWYDp2— podhmo (@podhmo) 2013, 10月 1 @esehara なるほど。 bool演算的なものを加算にしたいときなどですかね。ちょっと思いつきませんが >>> sum(map(lambda x : int(bool(x)), [object(), None, object(), No…

¥ gistのままだと確かに検索しづらいということもあるし。日記に上げていこう— podhmo (@podhmo) 2013, 10月 1 ほとんど文章無しで18個位投稿した。現在から過去へ遡る感じで投稿していったので一番新しい記事が4ヶ月前位のgistという感じになっている。gist…

formのvalidationでNoneが混ざった比較が面倒だなーと思いました

formのvalidationでNoneが混ざった比較が面倒だなーと思いました。 昔こんなことを考えていたのだなー。色々とまだ難ある。

hidoi_code シミュレータ

ひどいコードってこうやって出来ていくんですね。 (randomでやっているので、時々そんなにひどくないコードになることもあるのが秀逸?な気がしています)

例外viewとACLAuthorizationPolicy混ぜるときとちょっと注意が必要かも

ACLAuthorizationPolicyはresourceのaclにアクセスしてAuthorizationの情報を取得するので。 class AfterInput(Exception): pass とかだと、Authorization情報取れなくてハマるという話。

context managerで遊ぼう。indentをする構文

制限された文字列が欲しかった SymbolPool

foo.bar.booとかokにしようとすると途端に大変になる。

makoの <% と<%! を意識して使いましょう

<%! はコンパイル時に評価 <% は実行時に評価 ブロックの中での扱いも違う。

prototype baseは継承ではなく移譲が主?

prototype baseの方が移譲書きやすいよねという話。 転じて。pythonでちょっとおかしな挙動をするコードを書きはじめた。

lxmlでnamespace付きのtagを指定する必要が有ることがある

ハマったのでメモ。lxmlでxml系のファイルを扱うとき、タグ名に加えて名前空間も指定する必要があったことがあった。どうやって指定すれば良いか分からなかったのでハマった。

doctestってどうやって使うの?

もう1つのmodule定義の仕方

import foo.bar ができるとき、foo/bar.pyないしはfoo/bar/init.pyが必ず存在するか?という話。

pickup.el書いた

emacsでvirtualenvとbuildoutでツクッタpythonを呼ぼうとするときに必要になった。 考え方は単純で「現在の位置から親を再帰的にたどり望みのパスのコードが無いか調べる」というもの。 例えば cwd = ~/venv/foo/bar/boo/bee/boo.py を編集している時、おそ…

任意の式をRPNで表す

DBSession.query(A).join(B, A.b_id==B.id).filter(A.create_at > month_ago) みたいなものをGETパラメータで指定したいと思った。 RPNっぽい感じのスタック言語のようなもので表せば出来そうという実験。 rootとなるobjectから辿れる全てのメソッドが実行で…

python2.xでclassの構文中の順序を保持したオブジェクトを作成する。

python3.x以降でなければできないと思っていました。sqlalchemyやcolanderのコードを見ると2.x系でのやり方が分かります。 基本的な考え方は以下です。 以下の2種類のクラスを用意します。 container class field class 肝はfield classです。これをが使われ…

pycon apac 2013で発表してきました

unittest.mockの発表してきました。 発表資料 http://podhmo.github.io/pycon/slide/index.html?transition=none#/ 個人的には、スライドに載せたコードのみで完全に動作するmockのサブセットが作れたので満足です。

インデントについて雑感

関数型言語と呼ばれるものを触っておくと良い理由について 変わったパラダイムや考え方を学ぶと良いと言われるけれど。 再帰 高階関数 (型システム) etc.. 本当にこういうことを学べるから素晴らしいのだろうか。 一昔前に「lispを学ぶと悟りを開ける」と言…

venusianなくてもよいんじゃないの?

pyramidはviewの登録にvenusianを使っている。 venusian? venusianとは何かというと、 decoratorとして呼ばれた時には何の影響も与えない。クロージャを登録する scan()が呼ばれたタイミングで、登録されたクロージャを実行する というもの。 これを使って、…

buildout2.2(setuptools0.8)にupgrade

環境 virtualenv(no-site-packages, distribute) の環境でbuildout(1.6) upgrade setuptools upgrade wget https://bitbucket.org/pypa/setuptools/raw/0.8/ez_setup.py -O - | python (必要ならvirtualenv作り直し) mv <name> <name>.old virtualenv <name> --no-site-package</name></name></name>…

virtualboxに使ってましなもの

ubuntu 13.4 linuxmint 14 (chinnamon) 使ったけれど。アクセラレーションが効いていないらしく、常時15~40%程度のcpuを使う形になり全く作業できる環境じゃなかった。 chinnamonからmateに変えたらマシになった。