タグ

ブックマーク / r7kamura.hatenablog.com (10)

  • 全てがJSONになる - ✘╹◡╹✘

    TL;DR JSON Schemaを使ってこういうことが実現可能になった。 ダミーAPIサーバの提供 ドキュメントの自動生成 APIクライアントの動的定義 APIサーバのバリデータの動的定義 APIサーバのレスポンスの自動テスト JSON Schemaとは JSON SchemaというのはあるJSONのデータ構造を記述するための方法および書式の仕様で、 JSON SchemaもJSONで記述される。 これを利用すれば、リソースベースの(=RESTfulライクな)APIの仕様が簡便に記述できる。 例えば、我々のAPIレシピとユーザというリソースを扱っていて、 それぞれCRUDのAPIを備えており、レシピはidとtitleとdescriptionという属性を持つ、 という旨をJSON Schemaで表現できる。 なんで最近ちょっと流行ってんの Mobile First、 Service Or

    全てがJSONになる - ✘╹◡╹✘
    umiyosh
    umiyosh 2014/06/10
  • Immutable Infrastructureという考え方 - ✘╹◡╹✘

    昼に起きて、溜まった家事を片付けながら、最近Immutable Infrastructureという言葉をよく聞くなと思って、語感と雰囲気から内容を考えてた。器もまともに片付けられない人間はいるし、そういう人間はどう言っても変えられないし、最初から紙皿だけ使うようにした方が良いのかもしれない。元の状態にきちんと戻せとか文句付けるより、そもそも毎回全部捨てた方がいい。そうすることで、いつも同じ人間が片付ける羽目になるという属人性を排除することが出来る。要点は、ある種の人間を排除するのではなくて、どんな人間でもまともに生きていける社会にしようということ。紙皿のような技術が進化し、環境ごと簡単に破壊するような時代になってきたからこそ、こういう考えが生まれるようになった。

    Immutable Infrastructureという考え方 - ✘╹◡╹✘
    umiyosh
    umiyosh 2013/11/25
  • 体育の日って高速に唱えるとテストの日に聴こえる - ✘╹◡╹✘

    テスト書きすぎ問題 - hitode909の日記 階層が増えるとテストが増える - はこべブログ ♨ テストと対応関係 - $shibayu36->blog; 最近書いているWebアプリは、HTTPリクエストを送ってレスポンスと状態をテストする、というテストだけ書くようにしてる。リクエストするとブログエントリを返す、というサービスだとこういう風なテストを書いてる。(HTMLを返すようにすると話が広がって説明が面倒なのでJSONを返すAPIで説明する) describe "Entry resource" do let(:params) do {} end let(:env) do { "HTTP_AUTHORIZATION" => "Bearer: #{access_token.token}" } end let(:access_token) do AccessToken.make(user

    体育の日って高速に唱えるとテストの日に聴こえる - ✘╹◡╹✘
    umiyosh
    umiyosh 2013/10/15
  • 卓球ハウスに引っ越した - ✘╹◡╹✘

    友人と一軒家を借りて引越した。 3月頃からインターネットから人が集まって物件を探し始め、 5月頃に物件が決まり部屋の退去届を出すも物件がキャンセルされ住む場所が無くなり、 ちょっと高いけど良さ気な物件を見付け、もうこれ以上良い物件は出ないだろうということで6月に契約を進めて先週末に引越した。 地下室とか屋根裏とか面白スペースがあってめっちゃいい。 引越し初日にはインターネットの方から人間が沢山やってきて、蕎麦粉と綿棒と秒速5cmを差し入れて頂いた。 引越し初日でまともな包丁が無かったのでMacbookAirで蕎麦を切った。 住人間で家の情報をまとめるのにGitHubを使ってみてる。 ウォーターサーバー欲しいとか家賃徴収とかのIssueをどんどん登録して、適当にラベリングしたりMilestone作ったりして遊んでる。 家計簿を取るのにはZaimを調べてみたものの、複数人での管理が難しくて結局

    umiyosh
    umiyosh 2013/07/02
  • ブラウザのテキストフィールドで好きなエディタを使う - ✘╹◡╹✘

    ブログとかで長文を書くとき、どうしてますか。 大抵の人はそのままテキストフィールドに文章を入力していると思います。しかしこのブログを見ているような人達のことを考えると、「テキストフィールドでブログ書くやつは情弱」とか言い出してエディタを開き始めてもおかしくない。この前後ろから忍び寄ってこっそり見てたらエディタ開いてブログ書いてた人いたから間違いない。普段vimemacsを使っているという人は特に、キーバインドが気になるからいつものエディタで書きたいと思う。でもわざわざエディタ開いて文章書いてコピーしてブラウザに戻ってペーストしてって言うのが面倒だしかっこ良くない。 それ拡張で GoogleChromeのテキストフィールドでこれをやるには、Edit with Emacsという拡張を使う。Emacsって名前に書いてあるけどEmacsは関係ない。Edit with Emacsは、テキストフィー

  • Boxenを実行すると何が起こるのか - ✘╹◡╹✘

    http://boxen.github.com/ https://github.com/boxen/boxen https://github.com/boxen/our-boxen スゴイスゴイと言われていて誰も使っていないBoxenだけど、昨日の朝コードを読んでみた。折角なので、boxenコマンドを実行すると何が起こるのかというのを、Rubyのメソッド単位のコールグラフという形で簡単に説明する。 処理の流れ 1. レポジトリをgit-pullで更新 2. 環境変数や前回実行時に保存しておいたJSONから設定を読み込み 3. 前処理 4. コマンドライン引数に応じて 4-A. puppet-applyを実行 → 後処理 4-B. その他便利コマンドを実行 → 終了 Puppetの扱い librarian-puppetという仕組みが利用されていて、Puppetfile(=Puppet版Gem

    Boxenを実行すると何が起こるのか - ✘╹◡╹✘
    umiyosh
    umiyosh 2013/03/08
  • 音の鳴るエディタことVim - ✘╹◡╹✘

    音の鳴るエディタ - ✘╹◡╹✘の技術的解説。 おさらい 音の鳴るエディタ 眼を閉じた状態で"Hello"と入力して、画面を見ずに正しく"Hello"と入力されていることを確認したい。 そこで、キーを叩く度にそれぞれ固有の音が鳴るようにした。 プログラミングしながら演奏できる。 開発者集めてジャムセッションとかできると思う。 人月の神話っぽくならないように注意したい。 仕組み Vimはキーイベントが取れるので、キーを押したときにカーソルの下にある文字を取得して、それを非同期でRubyのプログラムに渡す。objective-c調べて書くの面倒だからRuby使った。Rubyの方は、文字列の文字コードと見て適当に半音階ずつの周波数を決める。a, b, c, d, ...と半音ずつ上がっていく。キーイベントでキーが取得できて非同期でシステムコマンド呼び出せるエディタだったら何でも使えると思うけど、

    音の鳴るエディタことVim - ✘╹◡╹✘
    umiyosh
    umiyosh 2012/10/09
  • DRY原則とテストの可読性 - ✘╹◡╹✘

    DRY原則に従おうとするほど、テストコードがどんどん読みづらくなる。 The RSpec Bookに答えがあるかと思って読んでみたものの、「あるある」と一言述べているだけだった。辛い。 テストコードが読みづらくなる例を示すために、1つRubyのライブラリをつくった。 値とパターンを与えてValidationを行う機能を提供するライブラリ。 実装60行、テスト120行なので、詳しく見たければすぐ読めると思う。 最近不意ながらキラキラネームの命名力が上がってきたと思う。 avalon - A validator implementation for Ruby https://github.com/r7kamura/avalon 冗長だが読みやすい例 letもsubjectもローカル変数も何も用いずに率直に書いたテストコード例がこちら。 冗長だが読みやすく、テストコードを見ればライブラリの使い

    DRY原則とテストの可読性 - ✘╹◡╹✘
  • Vimで挿入モードから抜ける時に英数入力に切り替える - ✘╹◡╹✘

    昨日からHHKBを使い始めたついでに、キー設定を色々入れ替えるためKeyRemap4MacBookというアプリを使い始めました。『Vimで挿入モードから抜ける時に英数入力に切り替える』というのが前からやりたくて、KaoriYaさんのMacVimだとそういう設定がvimrcで出来たんですが、CUIvimではIMを操作する良い方法が分からずに設定できていませんでした。このアプリで無理やり実現出来たので快適です。 設定方法 KeyRemap4MacBookは独自でXMLを書いて、あるキーを特定のキーと結び付けることが出来ます。またその設定が有効になるアプリも選択できます。今回の場合は、Terminal上でEscキーをEscキー+英数キーという設定にすればOKですね。Ctrl+Cも使うので同時に設定しておきます。 まずKeyRemap4MacBook Preference Paneからpriva

    Vimで挿入モードから抜ける時に英数入力に切り替える - ✘╹◡╹✘
    umiyosh
    umiyosh 2012/03/28
    こっちのやりかたにctrl + [の設定追加するとctrl + [でもかな入力offにできますね。悩みがいっこ減った。 #nf
  • 最近のPerlのデバッグ - ✘╹◡╹✘

    Perlよく分からないけど最近こうやってデバッグするようにしてる。 Data::Printer これまで値の確認にはData::Dumperを利用していたけど、程良く整形して色付けしてくれるData::Printerを使うようになった。use Data::Printerの代わりにuse DDPというエイリアスでも利用できる。useするとpという整形出力用メソッドを提供してくれる。Rubyで言うと、ppを利用していたのがap(=awesome_print)を利用するようになったというイメージ。これは適当にSelenium::Remote::Driverクラスのインスタンスをpメソッドで出してみた図。 Carp::REPL REPLはコード中で処理を止めてPerlの対話環境を開くやつ。これまで使ってなかったけど、良さそうという話をTLで見かけたので、適当にData::Printer入れて値確認

  • 1