読者です 読者をやめる 読者になる 読者になる

1ファイルでdjango restframeworkを試す

1ファイルでdjango restframeworkを試す 準備 pip install django djangorestframework 以下の様なコードを書く。test_onefile_restframework.py) 実行結果 $ python test_onefile_restframework.py Creating test database for alias 'default'... ..... --…

pythonのwsgiref でちょっとしたHTTPを話したい時に

pythonのwsgiref でちょっとしたHTTPを話したい時に pythonでちょっとした調査をしたい時に、何かパッケージを入れるのも面倒な場合に wsgiref だけですませたくなる場合がある。その時のためのmemo。 hello world from wsgiref.simple_server import make_s…

cssdiffというpackageを作りました

https://github.com/podhmo/cssdiff あとで書く

状態の初期値とangularのonetime bindingの表示について

はじめに angularのonetime bindingは一度だけwatch対象にするらしい。一度だけというのはどのような解釈で一度だけかというのが気になった。 結論 ドキュメント に書いてあった。 One-time binding An expression that starts with :: is considered a one-…

なぜ angularで as syntax を使いscopeの所有関係を明示的に書いた方が良いのかという話

はじめに よく、「巷に溢れているangularのチュートリアルは良くない」だとか。「せめてcontrollerを使うときには as sytanxを使って」という話を聞きます。 それがなぜなのかということを説明してみることにしました。 $scopeの挙動について controllerが云…

console-angularというnpmのパッケージを作りました

console-angular というnpmのパッケージを作りました。 はじめに 作った理由はangularの機能を調べるのがだるいからです。以前から benv を使ってnode.js上でangularを動くようにしていましたがその設定を毎回コピーないしは動く場所で作るというのもだるく…

angular.jsはdataがundefinedだった場合にContent-Type headerを消す

はじめに requestのcontent typeをみて、responseの形式を変えたいと思うことがありました。 そのためにheadersを変えてrequestを投げてみたのですが、どうも上手くcontent typeが付かない。 なぜだろうと思って調べてみたのでした。 実験環境 とりあえず、…

angular.jsのdirectiveで指定するtemplateUrlを埋める方法

はじめに angularでdirectiveを定義する時にhtml template部分をどのように書くかというのは幾つか方法がある。 それについて、どのような時にどのような形で書けば良いかというののまとめ。 directiveのhtml template部分の書き方 angularのdirectiveのhtml…

typescriptで書いたコード中で雑に外部のjsを読み込んでnode.js上で実行する方法(typescriptで書いたangular.jsのコードをnode.js上で手軽に実行する方法)について

きっとtypescriptなどに慣れている人にはごく当たり前のことなのだと思うのだけれど。自分用のメモも兼ねてまとめる。 はじめに typescriptで書いたコードの動作を確認したいものの実行時には少しだけjs側のコードによる準備が必要な場合がある。 (例えば、t…

angularの$parse, $interpolate, $compile 位は把握しよう

はじめに https://t.co/43GvPaLHo0 angularさんについてこれ空で分かる程度には分かっててほしいと思ったりした。— po (@podhmo) 2016, 1月 12 $parse, $interpolate, $compile これらはどれも文字列のような別の表現を解釈してjs objectを返すような機能を…

angularでDIされるserviceがsingletonで困る場合にはfactoryを返すことを考えてみる

はじめに angularでは各serviceの利用時に指定した引数の箇所にDIされる。 これらで生成されるserviceは基本的にはsingleton objectになっている。 このためDIされた各service中では同一のオブジェクトを共有している。 例えば、以下の様なコードがあった場…

benvを使う時にはrequire.resolveを使ったほうが良いかも

以前angular.jsをnode.js上で動くようにするためにbenvを使う記事を書きました。 そこでは以下の様なコードを書いていました。しかしもう少しマシにできそうなのでその辺りのアップデートをします。 benv.setup(function(){ global.Node = window.Node; benv…

手軽にes6を試す環境も作っておきたいと思った

はじめに es6を試す環境もほしい。(今回はes2015とか細かい事は気にしない) とりあえず以下の様なことができてほしい es6で作成したコード片のtranspileの結果を手軽に確認できる es6で作成したコード片の実行が手軽にできる ブラウザから試せるrepl 以下の…

typescriptでstatic memberにobjectを格納しようとした時定義順序を意識しないと実行時エラーになる場合がある。

typescriptでstatic memberにobjectを格納しようとした時定義順序を意識しないと実行時エラーになる場合がある。 例えば以下のようなコード。 class X { static y: Y = new Y(); say() { return X.y.say(); } } class Y { say() { console.log("hai"); } } …

El Captainでmacportsでinstallしたpython3.4上でpycryptoのinstallに失敗する場合

pip install pycrypto 最終的に以下のようなエラー File "/private/var/folders/b7/2rk7xp2d0hb2r21zbzjwxb_m0000gn/T/pip-build-ou9ql5i7/pycrypto/setup.py", line 278, in run raise RuntimeError("autoconf error") RuntimeError: autoconf error もう少…

benvを使ってangular.jsのコードをnode上で動作させる

はじめに テストなどを書きたい時にブラウザを立ち上げずに動作チェックなどをしたいことがある。 しかしangular.jsを直接nodeからrequireすると怒られる $ npm install --save angular $ node -p 'require("angular")' ReferenceError: window is not defin…

異なる型の配列の型を指定したい場合はtupleを使ったほうが良いかも

handbookやspecに書いてあることではあるけれど。 はじめに 例えば以下の様な定義があるとする。 class X { say() { return "x"; } } class Y { } ここで以下のような型は型チェックを通らない。正しい。 let y: Y = new Y(); y.say(); もちろん以下のような…

今年の目標というにはあやふやな何か

今年の目標というにはあやふやな何か 目標というほど明確になっていないのでとりあえずふわふわした状態のままにしておく 方針 pythonからある程度手をひいてtypescriptあたりに時間をかける わりと今年はフロントエンド関連の情報の取捨選択を自分でやる予…

複数のファイルを手軽にbuildして試す環境を作る(with tsconfig exclude)

tsconfig.jsonにtscに渡すオプションを指定できる。 tscに渡すファイルの指定は以下のオプションを利用して渡す模様 files exclude filesはファイルを明示的に指定する必要がありglobパターン的なものは使えない。 excludeを使ってごまかす事はできるかもし…

typescriptをまじめに勉強することにした

typescriptをまじめに勉強することにした 理由 型が欲しい。 いままでも定点観測の範囲で目にした記事を幾つか取りだし眺めるというようなことはしていた。 読むことはそれなりに難しくなく書かれている記事の内容はその場では理解できてはいたような気がす…

json モジュールについて

はじめに この記事はadventerの方のPython Advent Calendar の3日目の記事です。 (qiitaの方にもadvent calendarがあるみたいです) この記事ではpythonの標準ライブラリの jsonモジュール について書くことにしました。advent caledarで何を書くか少し迷った…

pythonでcsvファイルの読み込みをちょっと便利に扱う方法を考えてみたりしてた

pandas使えば良いというのはあるけれど。csvファイルの読み込みにはcsv moduleを使う。 はじめに 対象のcsvは以下(csvと言いつつtsv) target.tsv hello こんにちは "hello world" "こんにちは 世界" 以下の様なコードで読める import csv with open("./targe…

ひどく自分勝手なデコレーターの作り方

はじめに デコレーターを作成する時引数を取るのか引数を取らないのか混同しやすい。 どちらであっても許容できるデコレーターがあっても良いのかもしれないというような実験 引数なしのデコレーター デコレーターを作る時まず以下のような関数に適用する引…

任意の関数にmiddleware的な何かを追加する方法

memo: 任意の関数にmiddleware的な何かを追加する方法。 例えばこういうような使い方。元となる関数fがある。 def f(x): return x * x これを以下のような呼び出し関係になるfoo,barで包んだnew_fを作りたい。 begin foo begin bar f() end bar end foo ポイ…

コマンドに全てのオプションを設定で渡すのがだるいので、設定ファイルでデフォルトの設定を指定したかった

はじめに # オプション引数がないとなんだかわからない myapp foo bar boo baz bee # オプション引数を指定できると楽 myapp --foo=foo --bar=bar --boo=boo --baz bee # でも、本当は以下の様にして使いたい myapp bee --config=~/.config/myapp argparseな…

jsonを直接引数としてコマンドラインから渡す方法を考えてた

はじめに awscliはbotocoreにコマンドラインインターフェイスを持たせるためのラッパーでしかないと考えると色々捗る気がした。 つまり基本的にはJSONを入力として取るAPIが存在してそれにより何でも操作する。 ただし、直接APIを呼ぶコードを書くのは面倒く…

jsonの順序を保ったままOrderedDictを作る

jsonの順序を保ったままOrderedDictを作る方法はobject_pairs_hookにOrderedDictを指定してあげれば良い import json from collections import OrderedDict from functools import partial loads = partial(json.loads, object_pairs_hook) data = ''' { "x"…

miniconfigというものを作っていました

はじめに 以前に、 miniconfig というライブラリを作っていたことを思い出したのですが。 あらためて見なおしてみると結構便利かもしれません。 miniconfig これはすごく雑に言うと Pyramid というウェブフレームワークの設定などをを読み取りアプリケーショ…

自然言語処理的な何かを始めようとした時に試行錯誤が辛かったのでそれなりに楽にできる環境を考えた

はじめに 久しぶりに幾つかのステップに分かれる変換が行われた結果を見ながら試行錯誤するというような作業をした。手軽に再実行などができる環境がないと辛くなってきたので、それなりに楽にできる環境を整えようとしてみた。 データの変換は幾つかのステ…

Don't writing python scripts, writing python libraries.

Don't writing python scripts, writing python libraries. はじめに pythonでscriptを書いていくだけだと辛い事が多い。 たとえ、作成するアプリでは使われないコードであってもライブラリとして作っておいた方が良い。 具体的には以下の様にする。 misc的…

gulpで消耗したのでgulp(Stream)について調べてみる。

飽きたので途中で掲載。 はじめに gulpの使い方と言う話が出てきた時に以下の2つの場合がある。 gulp(plugin)の使い方 gulp(plugin)の作り方 大抵は前者で、前者はとても簡単。 gulp(plugin)の使い方 以下のようなシェルスクリプトのコマンドをイメージして…

htmlppという式指向のhtml用のプリプロセッサーのようなものを作っている。

最近、なんとなく htmlpp というものを作っている。 似非custom elementは式ベースのマクロである程度まではいけるのでは?ということの実験のために作っている感じ。 直接htmlファイルに対して使うというよりは、テンプレートエンジン(e.g. jinja2, mako)の…

-vvvや-qで作ったコマンドのloggingレベルを変更する斬新なコード

はじめに argparse にcountというactionがあり、これを使うと渡した同一オプションの数をカウントすることができます。 これを使って、例えば、curlやsshなどで見られる -v や -vv の記述に似せたものをやろうという話です。 基本的な考え方は以下です。 def…

shlex非常に便利

雑にシェルスクリプトlikeな構文利用したい時に使える。 >>> import shlex >>> shlex.split("""foo bar "foo bar" 'foo bar' test""") ['foo', 'bar', 'foo bar', 'foo bar', 'test'] >>> shlex.split("""foo bar "foo bar" 'foo bar' test""", posix=False)…

argparseだるいし。関数の定義からコマンド生成すれば良いのでは?

要旨は以下 関数の引数の定義から大まかなデフォルト値とコマンドライン引数を取得 sphinxのautodoc形式のdocstringからヘルプメッセージを作成 以下の様にすると greeting() が関数からコマンドになる。 # -*- coding:utf-8 -*- from cmdfromfn import as_c…

mac ports でmysqlの環境作成

gist.github.com

djangoのformが辛いという話

djangoのformが辛いという話 はじめに 例えば何らかの処理があるとする。それはある条件にマッチした場合にしか利用できない処理だとする。 T = TypeVar('T') class ActionDispatch(object): def test(self, x : T) -> str: return "A" or "B" or None def g…

vagrant ansible ping

memo gist.github.com

pythonでのparepared statementのplaceholderの話

とりあえずdbapi2.0を見る。 https://www.python.org/dev/peps/pep-0249/#paramstyle 以下の様な種類の表記が使われるらしい qmark Question mark style, e.g. ...WHERE name=? numeric Numeric, positional style, e.g. ...WHERE name=:1 named Named style…

ダクトテーププログラマの話

これについての話 ダクトテーププログラマの話 http://t.co/N3ybzNgB8P— SyntaxError x = 'y', (@podhmo) 2015, 6月 10 発言 ダクトテーププログラマーの話。イケメンの定義をしっかりしないと無駄な軋轢生みそう。— SyntaxError x = 'y', (@podhmo) 2015, 6…

昔作ったminiadtというパッケージを更新してみた

miniadt miniadt と言う名前の通り、完全に必要な機能が揃っているというわけではないですが。昔作ったパッケージを更新してみました。 機能は限定的ですが、ある1つのsum typeに対して網羅性チェックのようなものを定義時に行いたいときに使えるかもしれま…

yapsyを使ってpythonのアプリケーションにpluginシステムを組み込む方法について

yapsyを使ってpythonのアプリケーションにpluginシステムを組み込む方法について yapsy yapsyはpluginシステムを組み込むためのライブラリ A simple plugin system for Python applications install pip install yapsy hello world 試しに以下の様なことをや…

hmm

gistf495c1b1a0fa02e6b5be gist12c1465f96071b7f803e gist668a08b7162c24a42dd4

ocamlのtoplevelで手軽にcoreを使う方法

ocamlのtoplevelで手軽にcoreを使う方法 core に色々なモジュールが定義されている。 これらを試すために毎回実行ファイルを作成するのもだるかったのでtoplevelから使えないか調べてみた。 例えばemacsのtuareg-mode上立ち上げたtoplevelなどで使っている。…

urakataというscaffold command serverのようなものを作ろうとした話

urakataというものを作ろうとした話 OCamlをいじっていて何回同じようなMakefileを作っているんだろうというような思いが浮かんで。 scaffoldのようなコマンドを作ろうかと思ったのですが。scaffoldコマンドの管理がめんどくさい。 元となるtemplateのような…

coreのsexplibを使ってみる

ppx_derivingにこだわっていたけれど。coreを使っているならsexplibでserializeしても良いような気がした。 詳しくはreal world ocamlに書いてあった記憶。 opam install core sexplib field.ml open Core_kernel.Std module S = Sexp type point2d = P of i…

corebuildはocamlbuildのwrapperだった。

corebuildはocamlbuildのwrapperだったということは聞いていたけれど。本当にただオプションを追加しただけというのは知らなかった。 $ cat `which corebuild` #!/bin/sh ocamlbuild \ -use-ocamlfind \ -syntax camlp4o \ -pkg core \ -pkg sexplib.syntax,…

ppx_deriving.showを使ってみる

ppxはpreprocessor的なもの。 opam install ppx_deriving field.ml type point2d = float * float [@@deriving show] type person = { name: string; age: int; } [@@deriving show] type student = { name: string; (* 最近はレコードに同名のkeyを付けても…

opiumいじってる

# $ opam switch 4.02.1 $ opam install opium $ opam install core open Core_kernel.Std module O = Opium.Std type person = { name: string; age: int; } let json_of_person { name ; age } = let open Ezjsonm in dict [ "name", (string name) ; "age…

template側で定義したmoduleをnamespaceから取り出セルようにする

template側で定義したmoduleをnamespaceから取り出セルようにする(wip) namespaceの取り出し 通常namespaceは2通りの方法でimportできる - file経由のimport - module経由のimport file経由のimportは以下の様なもの <%namespace name="mf" file="<abtstract>.mako"/> </abtstract>…