pushの権限を持っていないリモートリポジトリに更新内容を反映する

git

pushの権限を持っていない環境(ユーザ)で適用した更新を、リモートリポジトリに反映したい時がある。 例えば、本番環境でのhotfixなど。今のところ以下のような手順で行っている。 (localとproductionという2つのホスト上で作業をしているとする。localが自…

template lookup errorを見つけるスクリプト

pyramidは、template lookup errorが起き得る状態の設定でもアプリケーションが動作する。 もちろん、動的言語的な性質を考えるとruntime errorというのが正しいという気もしないではないけれど。デプロイ前後にtemplate lookup errorが発生することが分かる…

1ファイルと1プロジェクトの中間

想定読者 pyramidの機能を色々試してみたい人 特に、設定ファイル(development.ini)を要求するコマンドの作成などをしてみたい人 発端 pyramidの機能を試す際に、1ファイルでアプリケーションが作れるのは便利なのだけれど。 pyramidで提供されているpから始…

templerのコマンドのbash completion作ってみる

はじめに templer使おうとしたけれどコマンド入力するのが面倒になったのでbashの補完を作成してみる。 step0 about complete completeという関数を利用して補完候補を設定するらしい。 bash: complete: -h: invalid option complete: usage: complete [-abc…

zca adapterとutilityのexample

リモートの閉じられた環境のサーバにアクセスする。

ssh

web applicationなどを作成しているとき、公開前の段階であるにもかかわらずwebブラウザなどでアクセスして 実際の動作をチェックしたいということがある。こんな時にトンネルを掘って作業する。ちょっと調べたりして時間がかかったりしてしまったのでメモ。…

ssh-agent

ssh

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入門してみた。

ctypesって? pythonのFFI用のモジュールらしい。 pythonの枠からはみ出た関数をpythonから呼び出すための接触面といった感じのもの.ドキュメントを見て、動くコードを書いてみた。 http://docs.python.org/library/ctypes.html やってみたのは以下のこと fl…

seq使うのむずかし。(Seq.skipおそい)

f#

まとめ 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…

cat

f#

EntryPointというattributeをつけるとコマンドライン引数を受け取る関数として扱われる openでmodule(namespace)のopen (System.IO.File.Readlinesは環境が古くて無かったっぽい) オーバーロードされたメソッドを利用する時には型注釈必要。 open System let…

f#の環境構築(ubuntu)

作業 f#のインストール emacsの環境作成(fsharp-mode) F#を利用してみる f#のインストール 大体はこのURLのページのとおりに作成。 http://www.cs.princeton.edu/courses/archive/fall10/cos597C/FsharpUbuntuInstall.htm sudo aptitude install mono-devel …

inverse fizzbuzz

まるであれな感じの汚いこーど。 どう考えても途中でしくじった感がある。

githubにパッケージ挙げる時のディレクトリ構成

悩まなくても良いようにメモ。作りたいパッケージ(パッケージ名: foo) ファイル構成(置き場所) . ├── README.txt ├── docs ├── foo │ ├── __init__.py │ ├── locale │ └── tests ├── setup.cfg ├── setup.py └── tox.ini シンプルなもの . ├── README.txt ├…

setup.py,setup.cfg, extra_require (not using pip)

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…

昨日見ておもしろかったので(auto-vivification)

直接元のgistを見ないで再現してみた。再現できていたので理解は合ってた。良かった。 code ## https://en.wikipedia.org/wiki/Autovivification from collections import defaultdict def tree(): return defaultdict(tree) def tree_as_dict(t): if hasatt…

dictをparseするコード書いた。

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…

ubuntuでsolr動かしてみる。

solr 全文検索エンジンのサービスを提供するサーバ(動作させるにはjetty,tomcatなどhttpserverが必要)jettyで動かしてみることにした。 agenda install jettyの設定変更 schema.xmlを変更 pythonからsolrの機能を利用 install # $ sudo apt-get install ope…

distributeのextra_commandの作り方

pythonのsetup.pyを使って以下のように実行可能なコマンドを作ってみる $ python setup.py <command name> <args> ...(作業した内容のgist) setup.py pythonのパッケージはsetup.pyを持っている。このsetup.pyは提供されるパッケージに関するコマンドを持っている。例えば、以下</args></command>…

MixinについてAdapterについて

pyramidでmixinを使ってコードを書いていた。これは適切なコードの書き方では無かったそう。 もう少し具体的に言うと、component architectureの上では、mixinを使わない方が望ましいらしい。 代わりにadapter*1という機能を使うそう。 adapterのことをちょ…

virtualenv上のpythonをquickrunで呼ぶ

quickrun 現在のバッファの内容をファイル名に結びついた言語のコマンドで実行してくれる(e.g. foo.pyならpython) https://github.com/syohex/emacs-quickrun motivate pythonを書くときには、virtualenvでプロジェクトごとに環境を分けている。 なので以下…

テーブルをjoinした結果をモデルにmappingできる。

__table__にsqlalchemy.orm.joinした結果を代入すると、複数のテーブルをjoinした結果をmappingしたモデルが作れる。 (idのconflictを避けるためにorm.column_propertyを使うことが多い) import sqlahelper import sqlalchemy as sa import sqlalchemy.orm a…

onupdateやeventなど

更新時刻を設定したい場合などデフォルトで提供されている、onupdateオプションを使う。 import sqlahelper import sqlalchemy as sa import sqlalchemy.orm as orm from datetime import datetime Base = sqlahelper.get_base() DBSession = sqlahelper.get…

pythonスクリプトをpipeで渡すとUnicodeEncodeErrorが出る。

こんなスクリプトを # -*- coding:utf-8 -*- print u"にほんご" shell 直接呼び出すと大丈夫 $ python pipe_sample.py にほんご pipeで他のコマンドに渡すとUnicodeEncodeError $ python pipe_sample.py | cat Traceback (most recent call last): File "pip…

radix sort

ひまつぶし 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で継承元のクラスで検索した場合に適切な子クラスにマッピングしたオブジェクトを返してくれるところ)

sqlalchemy は、concrete table inheritanceで定義したモデルがあるとする。 それらのモデルを継承元のクラスで検索した場合に、検索結果のqueryは適切な子クラスにマッピングしたオブジェクトのリストとなって返ってくるところ。これがうれしい。 e.g. 例は…

declarative_baseのBaseクラスを拡張してみる。

よく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…

decoratorの挙動をちょっと変更しつつ適用する

メモ。 motivatation 最近、fanstaticを使っている時にデコレータを利用したいと思った。 (fanstaticはWSGIアプリのResponseの中を覗いてhead要素の合間に定義しておいたresource(js,cssなど)を読み込むタグを追加してくれるライブラリ((他にも機能はある)))…

後で集めてひとつにする。

やっていることは、個々の要素から情報を集めて一つにまとめて出力すること。初めからこのような方針を思いつきたかった。 返す値の計算は、各要素に全部移譲する 複数の値を返したくなるので、辞書的なオブジェクトを設定として引き回して、各要素に更新し…

makoのinheritsはoverrideなので上書き

akoのinheritsはoverrideなので上書き。継承元のブロックと同名の名前付きブロックを呼んだとき、継承元のブロックの中身はレンダリングされない。例。 from mako.template import Template from mako.lookup import TemplateLookup with open("base.mako", …

one to many tree, many to many

one to many tree many to many あとでなおす