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

複数のファイルを手軽に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を付けても…