タグ

2013年11月3日のブックマーク (7件)

  • APIが有効なケースとそうじゃないケース

    Web2.0なんてのが流行語になった時代、いろんなところが自分が持ってるデータをAPIを通じて誰もがアクセスできる様にして、利用者はいろんなAPIをくっ付けることで新しいサービスができる、みたいなのが面白いと思った。 ユーザが更新をするようなデータや、どちらかというとRPCに近いようなものはAPIとして提供すると大変世界が平和になる。Twilioとかすごいよね。 ただ、なんでもAPIにすりゃいいかというとそうじゃない。 特にreadが中心のデータ、例えばスポーツの過去の記録だったり、法令だったり、アニメの放映日だったり。こういうのはみんなが思い思いに更新するわけじゃないし、そもそも更新頻度が低いわけで、そのデータを使ったサービスを作る時に都度APIアクセスしてたら無駄だし、API側もリクエストが無駄に多くて余計な制限をかけることになる。 こういうデータは、たとえデータがそこそこデカくても全

    escape_artist
    escape_artist 2013/11/03
    HTTPはキャッシュが考慮されたプロトコルだから、readは割と得意なんじゃないかなあ。トランザクションが難しいのでwrite絡む時の方が面倒
  • ランチェスターの法則 - Wikipedia

    ランチェスターの法則(ランチェスターのほうそく、英:Lanchester's laws)は戦争における戦闘員の減少度合いを数理モデルにもとづいて記述した法則。一次法則と二次法則があり、前者は剣や弓矢で戦う古典的な戦闘に関する法則、後者は小銃やマシンガンといった兵器を利用した近代戦を記述する法則である佐藤84(p72-74)。 これらの法則は1914年にフレデリック・ランチェスターが自身の著作L1916で発表したもので、原著ではこれらの法則を元に近代戦における空軍力の重要性を説いている。この論文は今日でいうオペレーションズ・リサーチの嚆矢となった佐藤84(p72-74)。 ランチェスターの法則は実際の戦争においても確認されており、例えばJ.H.エンゲルE1954は二次法則に従って硫黄島の戦いを解析することにより、わずかな誤差でこの法則が成り立つことを確認している佐藤84(p184-185)。

  • BLOGOS サービス終了のお知らせ

    平素は株式会社ライブドアのサービスを ご利用いただきありがとうございます。 提言型ニュースサイト「BLOGOS」は、 2022年5月31日をもちまして、 サービスの提供を終了いたしました。 一部のオリジナル記事につきましては、 livedoorニュース内の 「BLOGOSの記事一覧」からご覧いただけます。 長らくご利用いただき、ありがとうございました。 サービス終了に関するお問い合わせは、 下記までお願いいたします。 お問い合わせ

    BLOGOS サービス終了のお知らせ
  • 「あいつ・・・なにやってるの?」データサイエンティストを殺す4つの環境 - dataminer.me

    はじめに タイトルからすぐに誤解を生みそうなので先にいっておくとデータサイエンティストに対してのネガティブな記事ではありません。自分としてはもっと世の中にデータを生かしてビジネスをより良くしていくことに対して価値を感じてくれる組織が一社でも増えてほしいと思っているし、その際にはデータサイエンティストが不可欠な機能だと思っているのでどうやったらデータやデータサイエンティストを組織で最大限活用できるかということに対する反面教師的な内容だと思ってほしいです。 組織におけるデータサイエンティストの立ち位置について 「データの分析をタダで引き受けてはならない10の理由」って記事が最近バズっていたけど客観的に見て同じような悩みを抱えている「データサイエンティスト」っていわれる人ってすごく多いんだろうなって思います。最近、ビックデータもしくはデータサイエンティストブームに踊らされて、組織内で「データサイ

    「あいつ・・・なにやってるの?」データサイエンティストを殺す4つの環境 - dataminer.me
  • モナドについて考えた記録 - 素人がプログラミングを勉強していたブログ

    Promiseってなんとなくモナドっぽいなと思って、ジェネレータ使ってHaskellのdoを再現できないかなあというのがはじまり。結論からいうと、できない。 そもそもPromiseがモナドであるかを考える。 return :: Monad m => a -> m a 値を受け取ってfulfilledされたPromiseを返すものだ Promise.fulfill / Promise.resolveがこれにあたる。 Promise.mreturn = Promise.fulfill || Promise.resolve; >>= :: Monad m => m a -> (a -> m b) -> m b bindとも呼ばれたりする。この関数に、値を受け取ってモナドを返す関数を渡すと、その値が結果になる。 Promise.prototype.mbind = Promise.prototype

    モナドについて考えた記録 - 素人がプログラミングを勉強していたブログ
  • PHPのジェネレータはイテレータより速い - hnwの日記

    先日の記事「PHPのジェネレータの実装を調べてみた」で僕は次のように書きました。 GeneratorクラスはIteratorインターフェースを実装しており、対応するPHPメソッドを持っています。また、Cで実装した場合のみ指定できるイテレータ関数も実装しています。このように両方が指定されている場合、foreachループではCの関数が呼ばれ、イテレータメソッドを明示的に指定した場合はPHPメソッドの方が呼ばれます。 ところで、イテレータに対応するPHPメソッドとC関数となぜ2つとも実装する必要があるのでしょうか。実は、PHPメソッドの方だけ実装すれば正常に動作します。C関数を実装する理由は速度面のメリットからだというのが僕の理解です。C関数は関数ポインタで単に呼び出せるのに対し、PHPメソッドの呼び出しは命令実行器の状態保存・復元の必要があるなど、呼び出しのコストがやや高いのです。 PHPのジ

    PHPのジェネレータはイテレータより速い - hnwの日記
  • MVCにおけるcontrollerクラスの役割は時代と共に変わって行く | F's Garage

    昔、JavaのフレームワークであるStrutsも出てくる前、MVCモデルにおけるControllerの役割というのは、 「ロジックもデータも見ない現場監督のような役割」 と学んだ。だから昔、ServletではMVCアーキテクチャを学んだ時に、こんなControllerを書いていた。 [とりあえずRequestオブジェクトを受け取る] | [validationロジックに引き渡す。データの中身は見ない] | [例外が発生したらエラーView処理クラスに引き渡す。何のエラーかは細かく知らない] | [次にロジック処理クラスに渡す。最終的にDBのテーブルとマッピングしたデータはJavaBeansというデータクラスが保持する] | [例外が発生したらエラーView処理クラスに引き渡す。何のエラーかは細かく知らない] | [Viewの生成オブジェクトにJavaBeansを渡す] | [Viewオブジ

    MVCにおけるcontrollerクラスの役割は時代と共に変わって行く | F's Garage