タグ

ブックマーク / journal.lampetty.net (7)

  • Goのhttp.Handlerやhttp.HandlerFuncをちゃんと理解する - oinume journal

    はじめに GoでHTTP Serverを作ろうとすると、標準ライブラリを使う場合以下のようなコードをよく書くと思う。 package main import ( "fmt" "log" "net/http" ) func main() { mux := http.NewServeMux() mux.Handle("/hello", http.HandlerFunc(hello)) log.Fatal(http.ListenAndServe(":8080", mux)) } func hello(w http.ResponseWriter, _ *http.Request) { w.WriteHeader(http.StatusOK) fmt.Fprintf(w, "Hello World") } このコードの登場人物としては以下になるが、それぞれなんだっけ?というのをいっつも忘れてしまうの

    Goのhttp.Handlerやhttp.HandlerFuncをちゃんと理解する - oinume journal
  • Pythonでファイルを読み込むスマートなやり方 - oinume journal

    結論から言うと下記が最もスマートでモダンな書き方っぽい。 with open('/tmp/test.txt') as f: for line in f: print line 下記はファイルの中味が全部メモリに乗っちゃうから危険。 f = open('/tmp/test.txt') for line in f.readlines(): print line f.close() まとめ(イテレータ) for line in f: print line という書き方ができるのはfileが__iter__()とnext()を実装しているおかげ。詳しくはPEP-234に詳しく書いてある。 みんなのPython 第3版 作者: 柴田淳 出版社/メーカー: ソフトバンククリエイティブ 発売日: 2012/08/29 メディア: 単行 購入: 1人 クリック: 13回 この商品を含むブログ (39件)

    Pythonでファイルを読み込むスマートなやり方 - oinume journal
  • Ansible Meetup in TokyoでLTしてきた - oinume journal

    「Vagrant環境のAnsibleを速くしたいというタイトル」でAnsible MeetupでLTしてきました。資料はこちら。 Vagrant環境のAnsibleを速くしたい from Kazuhiro Oinuma もともとは、「Ansible Meetup 行きたいなー。でももう埋まってるなー」から「LT枠に空きがあるからLTすればいいな」というノリでした。結果的にキャンセルがいっぱい出ていて、会場の4分の1ぐらいは席が空いていたという事態w (もったいない LTは初めてかつ雰囲気がわからないイベントだったので、ネタ路線で攻めるべきなのかマジメに行くべきなのかわからなかったけど、ネタはそこそこウケていたみたいなので良かったです。あと、Ansible 2.0の話が聞けたのが嬉しかった。block機能が良さそうなのと、Playbook自体は1.x系と2系で互換性があるらしいのでリリースさ

    Ansible Meetup in TokyoでLTしてきた - oinume journal
  • 開発スピードと技術的負債 - oinume journal

    よくある「開発スピードを優先させるか技術的負債をなるべく発生させないようにするか」という議論、ケースバイケースだとは思うけど、ことプロダクトの立ち上げ段階では、悩んだら「開発スピード」を優先させるようにするべきだと自分は思ってる。 理由は 市場は待ってくれないから。どんなにいいプロダクトでもユーザーに使われなくては意味がないのと、プロダクトを取り巻く外部の環境(競合プロダクトや市場でのニーズ)は自分ではコントロールできないものなのに対して、技術的負債については適切に管理されていればコントロールしながら返済できるから。もちろんバランスも重要だとは思うので、どんな技術的負債も生み出していいかと言われるとそうではないけど。 というわけで自分は「ああこれクソコードだけど機能は満たしてるからそのままリリースしたいなぁ」というのはだいたいクソコードのままリリースしています。(こうやって免罪符を作ってい

    開発スピードと技術的負債 - oinume journal
  • 2014年に使ってみた技術 - oinume journal

    新年明けましておめでとうございます。2014年内に書き上げるはずの記事がずっと下書きのまま眠ってしまっていた... 2014年は細かいものを含めるといろいろ新しいものを使い始めたのでそのまとめ。 Ansible Chefがあまり好きではないのでAnsibleを今やっているプロジェクトで入れてみた。 DSLを覚えなくてはいけないのはどちらも一緒 Ansibleの方が仕組みがシンプルでPlaybookに書いた順に実行されるのでわかりやすい Dynamic Inventory便利 AnsibleはYAMLなのでロジックをゴリゴリ書くのには向いていない Chefはその点Rubyのコードなのでなんでもできる という感じでどっちもどっちだなという印象。個人的にはChefのようにコードが実行される方がフレキシブルでいいと思っているので、Fabric + Cuisineも試してみたい。 Packer Va

    2014年に使ってみた技術 - oinume journal
  • Flask + BeakerでセッションデータをRedisに保存する - oinume journal

    やりたいこと Redisをセッションデータの保存先にしたい Beakerって? 様々なデータストアにセッションデータを保存するWSGI Middleware。WSGIレイヤーなのでFlask以外のWAF(bottleとか)でも使えるはず。 必要なもの Python 2.6+ (自分はPython 3.3.4で動かしてる) Flask Beaker beaker_extensions - beakerだけだとRedisには対応してないためこれが必要 redis-py Redis サンプルコード gist9811874 動かす $ pip install beaker flask redis git+git://github.com/bbangert/beaker_extensions.git $ python beaker_sample.py http://localhost:5000/ に

    Flask + BeakerでセッションデータをRedisに保存する - oinume journal
  • IntelliJ IDEAでTypeScriptの開発環境を作ってみる - oinume journal

    最近趣味プログラムのサーバサイドをNode.jsで書いてるんだけど、JavaScriptはどうも好きになれないので逃避先としてTypeScriptを選んでみた。CoffeeScriptでもいいんだけど、文法が似てるほうがソースコピペできたりして楽かなと思ってTypeScriptを選択。 今回使うツールはMac版のIntelliJ IDEAのv13。 必要なプラグインをインストール 以下のプラグインをインストールしておく。 NodeJS File Watchers IntelliJの設定 npm install -g typescriptしておく 適当にプロジェクトを作る File -> Settingsで Node.js and NPMの設定を開き、Node interpreterの設定をしておく。自分はnodebrewを使っていて、/usr/local/nodebrew/current/

    IntelliJ IDEAでTypeScriptの開発環境を作ってみる - oinume journal
  • 1