2012-01-01から1年間の記事一覧
pushの権限を持っていない環境(ユーザ)で適用した更新を、リモートリポジトリに反映したい時がある。 例えば、本番環境でのhotfixなど。今のところ以下のような手順で行っている。 (localとproductionという2つのホスト上で作業をしているとする。localが自…
pyramidは、template lookup errorが起き得る状態の設定でもアプリケーションが動作する。 もちろん、動的言語的な性質を考えるとruntime errorというのが正しいという気もしないではないけれど。デプロイ前後にtemplate lookup errorが発生することが分かる…
想定読者 pyramidの機能を色々試してみたい人 特に、設定ファイル(development.ini)を要求するコマンドの作成などをしてみたい人 発端 pyramidの機能を試す際に、1ファイルでアプリケーションが作れるのは便利なのだけれど。 pyramidで提供されているpから始…
はじめに templer使おうとしたけれどコマンド入力するのが面倒になったのでbashの補完を作成してみる。 step0 about complete completeという関数を利用して補完候補を設定するらしい。 bash: complete: -h: invalid option complete: usage: complete [-abc…
web applicationなどを作成しているとき、公開前の段階であるにもかかわらずwebブラウザなどでアクセスして 実際の動作をチェックしたいということがある。こんな時にトンネルを掘って作業する。ちょっと調べたりして時間がかかったりしてしまったのでメモ。…
ssh-agent 鍵をリモートホストを渡り歩く時に、鍵を持ち回ってくれる local -> x -> y -> zというサーバがある時 localで $ ssh-add <key> $ ssh <yourname>@<xのadresss> とすると。 x から y, y から zへつなぐとき. localでaddしたkeyをssh loginに利用してくれるという理解。 ログイ</xのadresss></yourname></key>…
ctypesって? pythonのFFI用のモジュールらしい。 pythonの枠からはみ出た関数をpythonから呼び出すための接触面といった感じのもの.ドキュメントを見て、動くコードを書いてみた。 http://docs.python.org/library/ctypes.html やってみたのは以下のこと fl…
まとめ seq式で遊ぼうとした combinationsとか生成すれば良さそう。 全部seqにすると遅い。 seq式で遊ぼうとした seq式は値の列を返す計算を返してくれる。 > seq {for x in [1..10] do yield x*x} |> Seq.toList;; val it : int list = [1; 4; 9; 16; 25; 3…
EntryPointというattributeをつけるとコマンドライン引数を受け取る関数として扱われる openでmodule(namespace)のopen (System.IO.File.Readlinesは環境が古くて無かったっぽい) オーバーロードされたメソッドを利用する時には型注釈必要。 open System let…
作業 f#のインストール emacsの環境作成(fsharp-mode) F#を利用してみる f#のインストール 大体はこのURLのページのとおりに作成。 http://www.cs.princeton.edu/courses/archive/fall10/cos597C/FsharpUbuntuInstall.htm sudo aptitude install mono-devel …
まるであれな感じの汚いこーど。 どう考えても途中でしくじった感がある。
悩まなくても良いようにメモ。作りたいパッケージ(パッケージ名: foo) ファイル構成(置き場所) . ├── README.txt ├── docs ├── foo │ ├── __init__.py │ ├── locale │ └── tests ├── setup.cfg ├── setup.py └── tox.ini シンプルなもの . ├── README.txt ├…
e.g. colander setup.py ##... snip testing_extras = ['nose', 'coverage'] docs_extras = ['Sphinx'] setup(name='colander', version='0.9.8', ## ... snip install_requires = requires, test_suite="colander", extras_require = { 'testing':testing_e…
直接元のgistを見ないで再現してみた。再現できていたので理解は合ってた。良かった。 code ## https://en.wikipedia.org/wiki/Autovivification from collections import defaultdict def tree(): return defaultdict(tree) def tree_as_dict(t): if hasatt…
install $ easy_install tinyschema demo from tinyschema.schema import Schema from tinyschema import fields class Person(object): def __init__(self, name=None, age=None): self.name = name self.age = age class PersonSchema(Schema): name = fie…
solr 全文検索エンジンのサービスを提供するサーバ(動作させるにはjetty,tomcatなどhttpserverが必要)jettyで動かしてみることにした。 agenda install jettyの設定変更 schema.xmlを変更 pythonからsolrの機能を利用 install # $ sudo apt-get install ope…
pythonのsetup.pyを使って以下のように実行可能なコマンドを作ってみる $ python setup.py <command name> <args> ...(作業した内容のgist) setup.py pythonのパッケージはsetup.pyを持っている。このsetup.pyは提供されるパッケージに関するコマンドを持っている。例えば、以下</args></command>…
pyramidでmixinを使ってコードを書いていた。これは適切なコードの書き方では無かったそう。 もう少し具体的に言うと、component architectureの上では、mixinを使わない方が望ましいらしい。 代わりにadapter*1という機能を使うそう。 adapterのことをちょ…
quickrun 現在のバッファの内容をファイル名に結びついた言語のコマンドで実行してくれる(e.g. foo.pyならpython) https://github.com/syohex/emacs-quickrun motivate pythonを書くときには、virtualenvでプロジェクトごとに環境を分けている。 なので以下…
__table__にsqlalchemy.orm.joinした結果を代入すると、複数のテーブルをjoinした結果をmappingしたモデルが作れる。 (idのconflictを避けるためにorm.column_propertyを使うことが多い) import sqlahelper import sqlalchemy as sa import sqlalchemy.orm a…
更新時刻を設定したい場合などデフォルトで提供されている、onupdateオプションを使う。 import sqlahelper import sqlalchemy as sa import sqlalchemy.orm as orm from datetime import datetime Base = sqlahelper.get_base() DBSession = sqlahelper.get…
こんなスクリプトを # -*- coding:utf-8 -*- print u"にほんご" shell 直接呼び出すと大丈夫 $ python pipe_sample.py にほんご pipeで他のコマンドに渡すとUnicodeEncodeError $ python pipe_sample.py | cat Traceback (most recent call last): File "pip…
ひまつぶし def maxof(xs, fn): ma = fn(xs[0]) for x in xs: tmp = fn(x) if ma < tmp: ma = tmp return tmp def radix_sort(xs, M): bs = [[] for i in range(M)] N = maxof(xs, len) checks = [0 for _ in range(M)] for x in xs: bs[int(x[-1])].append(…
sqlalchemy は、concrete table inheritanceで定義したモデルがあるとする。 それらのモデルを継承元のクラスで検索した場合に、検索結果のqueryは適切な子クラスにマッピングしたオブジェクトのリストとなって返ってくるところ。これがうれしい。 e.g. 例は…
よくmixinで拡張したりなんかする。 e.g. django likeなmodel定義にするmixin import sqlalchemy as sa import sqlalchemy.orm as orm from sqlalchemy.ext.declarative import declared_attr from sqlalchemy.ext.declarative import declarative_base Base…
メモ。 motivatation 最近、fanstaticを使っている時にデコレータを利用したいと思った。 (fanstaticはWSGIアプリのResponseの中を覗いてhead要素の合間に定義しておいたresource(js,cssなど)を読み込むタグを追加してくれるライブラリ((他にも機能はある)))…
やっていることは、個々の要素から情報を集めて一つにまとめて出力すること。初めからこのような方針を思いつきたかった。 返す値の計算は、各要素に全部移譲する 複数の値を返したくなるので、辞書的なオブジェクトを設定として引き回して、各要素に更新し…
akoのinheritsはoverrideなので上書き。継承元のブロックと同名の名前付きブロックを呼んだとき、継承元のブロックの中身はレンダリングされない。例。 from mako.template import Template from mako.lookup import TemplateLookup with open("base.mako", …
one to many tree many to many あとでなおす