2016-01-01から1年間の記事一覧
はじめに 2016年の振り返りということをやってみる気になりました。今まで振り返りのような何かしらの人間味のある活動を避けたいという気持ちがあり。ただただ事実や試行の断片だけを出力していきたいという気持ちがあったのですが。それでは社会との接続が…
swagger-marshmallow-codegen というライブラリを作りました。swaggerの定義ファイルからmarshmallow のschemaを生成するライブラリです。 ライブラリ? 正確にはライブラリでは無くコマンドです。marshmallowのschema定義のコードを生成するコマンドです。 …
手元の環境でweb apiを叩く処理をしたい時にどうしているかというメモ。 利用しているもの python httpie Makefile jq 本当はpipで新たにインストールしなければ行けないコマンドに頼らない形が良いけれど。curlが辛くなったというのと。curlに飽きたという…
[poem][python] dict遊び ポエムです。長いです。 はじめに 絵を描くことが好きだった人が絵を描く仕事につく。絵を描くことを仕事にしている人がたまたま余暇にらくがきの絵を描く。仕事でも絵を描いているのだからもう描かなくても良いじゃないかという声…
zero valueを設定する際に循環してしまうと無限に再帰してしまい終わらないという話。 例えば以下のような定義はダメ。 自分自身で再帰 type Tree struct { Value int Left Tree Right Tree } もちろん、ポインターにしてあげれば、nilがzero valueになるの…
以下の3つが欲しい get post (form) post (json) package m import ( "bytes" "encoding/json" "net/http" "net/http/httptest" "net/url" "testing" "io/ioutil" "github.com/pkg/errors" "github.com/stretchr/testify/assert" "github.com/stretchr/testi…
magicalimportというライブラリを作ってました。 はじめに これは何をするライブラリかというと物理的なファイル名を指定して、指定したファイルをpython moduleとしてimportするためのライブラリです。 用途 例えばconfigファイルの読み込みに便利かもしれ…
はじめに flaskを使い始めたのだけれど。flaskのconfigファイルの指定が対象のflaskアプリの存在するモジュールの位置からの相対パスを指定するらしく使いづらい。 例えば、fooパッケージの中で、以下の様なコードがあった場合には、fooパッケージからの相対…
はじめに makeはmacにもlinuxにもデフォルトであって便利*1。 とは言え、色々とわかりづらいところがある。 便利なところだけ見繕って使うと便利。 個人的なmakefileの使い方は2種類 個人的には以下のような2つの目的でmakefileを使っている。 複数の目的の…
はじめに pythonの標準ライブラリのloggingモジュールを利用すると、ログ出力の中に呼び出し元の位置に関する情報(ファイル名や関数名など)を含める事ができる。 具体的にはloggerに渡すフォーマットに以下を含めることで、ログ出力時に呼び出した位置の情報…
はじめに 手元の環境でpythonのinteractive shellを利用した後、コンソールで入力した文字列のエコー表示がされなくなる問題に悩まされていた。 $ python3.5 Python 3.5.2 (default, Sep 19 2016, 02:49:52) [GCC 4.2.1 Compatible Apple LLVM 7.3.0 (clang-…
はじめに 期待していない挙動を示した時にそもそもgo1.7とgo1.6とで動作が異なるのではないか?という疑いをもった時があった。 ところで手元の環境は全部1.7でわざわざ1.6をbuildするのも面倒と言うような感じ。 本当に些細なコードだったので、goの1.6用の…
はじめに 例えば、以下のような状況で M.F0() を呼びたい。しかしその内部で呼ばれる m.f()は呼んでほしくない場合。 type M struct { } func (m *M) F0() error { // do something return m.f() } func (m *M) F1() error { // do something return m.f() }…
はじめに python3.5でpyobjcのコードを動かそうとした際に、以下のようなエラーが出てしまっていた。 Symbol not found: _PyObject_REPR 結論からいうとパッケージが古かったので更新した。(3.0.4 -> 3.1.1) stack overflowで該当する質問 python - Symbol n…
goのtext/templateでprivateなattributeを出力しようとすると、エラーになるという話を知らなかった。 全部public 例えば、以下はOK type User struct { Name string Message string } type V map[string]interface{} func main() { const tmpl = `{{.user.N…
go1.6.2 -> go1.7でgocodeが動作しない 手元のmacの環境のgoを1.7に上げたところ、gocodeが上手く動作しなくなった。 (macportsを使っている) $ sudo port selfupdate $ sudo port upgrade go $ go version go version go1.7 darwin/amd64 以下の様な感じの…
はじめに 例えば、以下の様な状況。 deferで何らかの後片付けをする。 この後片付けのタイミングでerrorが発生。 この時、deferの中の処理で発生したerrorを戻り値として返したい。このような事をしようとした場合にnamed returnを使うしかなかったという話…
前提 $ go version go version go1.6.2 darwin/amd64 はじめに そもそも go doc と godoc が別ものだということに気づいていなかった。2つは別物。 そもそも取得する引数なども異なる。 go doc $ go doc -h Usage of [go] doc: .. snip Flags: -c symbol mat…
これは何? gistのuploadを手軽にするやつです。goの勉強のための習作でした。 https://github.com/podhmo/selfish 経緯 以前から結構gistを頻繁に利用していて、特に複数ファイルをuploadしたい場合には、web画面からポチポチとファイルを指定していくので…
tl;dr panic時ではなくerror時にもfullのstack traceが欲しい pkg/errors が便利 はじめに しばらくgoを書いていて、使い捨てのコードのエラー処理についてどうすれば良いのか考えたりしていた。ここで言う使い捨てのコードというのは1ファイル位で作れそう…
まじめに調べるなら以下を見たほうが良い。 https://golang.org/pkg/fmt/ reflection使った便利な出力 %T 値の方を表示 %v 値を良い感じに表示 %+v +フラグ付きで冗長出力表示。 %#v 値を型名やフィールド名も含めて出力 利用例 type Person struct { Name s…
はじめに 他の言語のつもりで比較演算子を使うと想定外の挙動をするということもあったりする。最初テキトウにコードを書いて挙動を確認しようとしていたが後に言語仕様を読めば良いだけだということに気づいた。学び始めの最中に思ったことをメモしておくと…
django-returnfields というパッケージを作っていました。 これは何? はじめはapi responseのfilteringをするライブラリとして作っていましたが、いろいろな変更の結果あるAPIのresponseに対してそのsubsetを返すためのoptimizerのようなものになりました。 …
はじめに generic foreignkey 自体のprefetchはできる。しかし、その更に先のrelationをprefetchすることができない。これをどうにかしようと言う苦肉の策を考えてみたという話。 言い訳 djangoのgeneric foreignkey関連のコードを読んでみたところ綺麗にで…
はじめに あるモデルに対してあるコンテキスト(文脈)に従った条件を加味した関係の元に値を取り出したい場合がある。そのような条件を付加した値を仮想的なフィールドとして扱うことができないかという話。 例えば以下の事がしたい X,Yというテーブルが存在…
はじめに 例えば以下のような数字の列があるとする。下の例は連番を期待した数値なのだが一部歯抜けになっているという数字の列の例。 1, 2, 3, 6, 8 // 4,5,7がない このような連番を期待している数字の列から歯抜けになっている部分(上の例では4,5,7)を見…
prefetch_relatedで使えるようになる、独自のディスクリプタの作り方 はじめに 前回の記事 で prefetch_relatedの実装にprefetcher オブジェクトとでも呼ぶようなオブジェクトが必要になるということを説明した。 今度は、prefetcherのインターフェイスを実…
djangoでヘテロなリストのprefetch djangoでヘテロなリストのprefetch。できないと思ったら普通に出来たのでわりとびっくりしたので記事にしてみた。 ヘテロなリスト? ここでのヘテロなリストと言うのは以下のようなリストを指している。 xs = [A(), B(), A(…
外部のリソースを利用する機能の記述の仕方の話 (当初はテストの時の話をするつもりで書いていたが、特にテストに絞ったわけでもなくとりとめもなく書いてしまった) はじめに 外部のリソースを利用する機能を作成する際のコードの書き方について考えたりして…
はじめに pythonには非同期用の標準ライブラリとして asyncio というモジュールが用意されている。このasyncioを使う際にevent loopの取り扱いに悩むことがあるかもしれない。どうすれば良いのかを少しだけまじめに考えてみた。 ライブラリ or アプリケーシ…