タグ

2016年3月27日のブックマーク (14件)

  • 長文日記

    長文日記
    gologo13
    gologo13 2016/03/27
  • ORMのパフォーマンス最適化

    これは明らかに遅く非効率だ。この問題はEager Loadingというテクニックを使うことで解決できる。もし最初の注文クエリの一部として後で必要となる顧客とのアソシエーションをすべてロードしておけば、Customerに対するアクセスはただのプロパティへのアクセスになる。こうすれば後のデータベースクエリは不要になり、N+1問題も起こらない。 LightSpeedでは、そのEager Load設定をTrueに変更することで(もしくは手書きコードのエンティティにEagerLoadAttributeを適用することで)、アソシエーションのEager Loadを可能にする。Eager Loadされるアソシエーションをもつエンティティをクエリすると、LightSpeedは追加のSQLを生成して、‘プライマリ’エンティティと同じように関連したエンティティを取得する。 Order.Customerアソシエー

    ORMのパフォーマンス最適化
    gologo13
    gologo13 2016/03/27
  • N+1問題 / Eager Loading とは - Rails Webook

    N+1問題とは SQLクエリが 「データ量N + 1回 」走ってしまい、取得するデータが多くなるにつれて(Nの回数が増えるにつれて)パフォーマンスを低下させてしまう問題です。 次のように、何度もクエリが走ってしまい、その度に0.1msほどかかってしまってます。 Processing by PostsController#index as HTML Post Load (0.2ms) SELECT "posts".* FROM "posts" User Load (0.2ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1 [["id", 1]] User Load (0.1ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1 [["id",

    N+1問題 / Eager Loading とは - Rails Webook
  • n+1問題を体験しました - p_chinのおっぱいブログ

    ORM使ってて、便利で余裕キメてたらn+1問題を起こしてた。 n+1問題とは 1回目 のselectで、あるテーブルのレコードの集合を取ってきて、更にまた別のテーブルから先ほど取得したレコードデータ使用して n回 selectクエリを発行してしまう現象だ。 うまく説明出来ないので下の具体例書いてみた 解決策(今回の事案の場合) JOIN使ってクエリを一回にまとめる WHERE IN使ってクエリを2回にまとめる のどちらかの対処でクエリ減らす努力をするべきだった。 具体的にどうやってしまったか friendテーブルからplayerのフレンドのレコードの集合を1回引っ張ってきて、そのレコードからまたplayerテーブルへ、フレンドのplayerデータをn回取りに行っている。 sub _get_friends_info { # 自分のフレンド関係データ(player, target)のレコードの

    n+1問題を体験しました - p_chinのおっぱいブログ
  • CORS(Cross-Origin Resource Sharing)によるクロスドメイン通信の傾向と対策 | DevelopersIO

    CORS(Cross-Origin Resource Sharing)って何? CORS(Cross-Origin Resource Sharing)は、その名の通り、ブラウザがオリジン(HTMLを読み込んだサーバのこと)以外のサーバからデータを取得する仕組みです。各社のブラウザには、クロスドメイン通信を拒否する仕組みが実装されています。これは、クロスサイトスクリプティングを防止するためです。Aというサイトに訪問したのに、Bというサイトに向けて個人情報を送っていたというのは困りますよね。例えば、オリジンから読み込んだHTML内のJavaScriptでJSONデータを読み込むとしましょう。JSONデータが同じサーバにあれば普通に読み込めますが、別のサーバにある場合は読み込めません。まぁ実際のところはJSONPという仕組みを使ってできちゃったりしますが、抜け道的なやり方で使われていました。CO

  • サービス終了のお知らせ - NAVER まとめ

    サービス終了のお知らせ NAVERまとめは2020年9月30日をもちましてサービス終了いたしました。 約11年間、NAVERまとめをご利用・ご愛顧いただき誠にありがとうございました。

    サービス終了のお知らせ - NAVER まとめ
  • 英語で悩むあなたのために

    065.音の脱落 性質の似た子音が連続して発音されるとき、片方(特に前)の子音が脱落してしまうことがある。ゆっくりと発音しているときには起こらないが、会話など自然なスピードで発音していると頻繁に発生する現象である。単語それぞれの発音を丁寧にしようとするあまり「want to」の「t」を律儀に2回に分けて発音しなくてもかまわない。 この現象に共通しているのは、「2回にわけて発音しにくい」音の並びになっていること。前の子音を発音する「口の構えだけ」作ったら、その構えのまま次の子音を発音してしまうという流れになっているということである。 さらに詳しく(より厳密に)言うならば、当は [ t ] や [ p ] の連続において、1つが「脱落(消失)しているわけではなく」、「無破裂の子音と破裂のある子音が連続的に発音されている」と言える。すなわち、「want to」の例で言えば、 [ wɑ́nt-t

    gologo13
    gologo13 2016/03/27
    リエゾンの理論が気になったら
  • サービス終了のお知らせ - NAVER まとめ

    サービス終了のお知らせ NAVERまとめは2020年9月30日をもちましてサービス終了いたしました。 約11年間、NAVERまとめをご利用・ご愛顧いただき誠にありがとうございました。

    サービス終了のお知らせ - NAVER まとめ
    gologo13
    gologo13 2016/03/27
    よくまとまってる
  • GIGO(じーあいじーおー)

    garbage in, garbage out / ガイゴー / ギーゴー / ガーベジイン・ガーベジアウト コンピュータによる情報処理において、プログラムに組み込まれたロジックに一切間違いがなくとも、与えられたデータ(入力)が誤っていれば、得られる値(出力)は無効なものにしかならないということを示す警句。直訳すれば「ゴミを入れると、ゴミが出てくる」で、FIFOのもじりと思われる。 内容的には「不正な入力からは不正な出力しか得られない」という、コンピュータ技術者にとっては自明のことがらをいったものにすぎないが、GIGOという表現はコンピュータの歴史のごく初期のころから使われてきた。これは「コンピュータは頭がいい」「間違った入力も直してくれる」といった過大な幻想を抱いているコンピュータ初心者に、コンピュータの特性を説明する平易な言い回しとして定着したようだ。 その後、不適当な入力を拒絶するチ

    GIGO(じーあいじーおー)
    gologo13
    gologo13 2016/03/27
    garbage in, gospel out
  • Speech Recognition and Deep Learning

    Philosophy We strive to create an environment conducive to many different types of research across many different time scales and levels of risk. Learn more about our Philosophy Learn more

    Speech Recognition and Deep Learning
  • The neural networks behind Google Voice transcription

    Philosophy We strive to create an environment conducive to many different types of research across many different time scales and levels of risk. Learn more about our Philosophy Learn more

    The neural networks behind Google Voice transcription
  • 翻訳: WebAPI 設計のベストプラクティス - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? これは Enchant の開発者である Vinay Sahni さんが書いた記事「Best Practices for Designing a Pragmatic RESTful API」1を、ご人の許可を得て翻訳したものです。 RESTful な WebAPI を設計しようとすると、細かなところで長考したり議論したりすると思います。また、他の API に倣ってやってはみたものの、当にそれでいいのか、どうしてそうしているのか分からない、何てことも少なくはないと思います。 この記事では、そのようなハマリどころについて Vinay さん

    翻訳: WebAPI 設計のベストプラクティス - Qiita
    gologo13
    gologo13 2016/03/27
    結構学びあった / スネークケースがbetter / ラップせず返す / pagingはresponse header(Link)に / API major verはURLに、minor ver はheaderに
  • KISSの原則 - Wikipedia

    KISS の原則 (英: KISS principle) とは、「Keep it simple stupid.」(シンプルで愚鈍にする)、もしくは「Keep it simple, stupid.」(シンプルにしておけ!この間抜け)、もしくは「Keep it short and simple.」(簡潔に単純にしておけ)という内容の、1960年代の米国海軍において言われた、経験的な原理・原則[1]の略語。その意味するところは、設計の単純性(簡潔性)は成功への鍵だということと、不必要な複雑性は避けるべきだ、ということである。 この言葉は、ロッキードスカンクワークスの技術者のケリー・ジョンソン(1910-1990)によって造られた。 この言葉は、一般には Keep it simple, stupid.(シンプルにしておけ!この間抜け) と解釈されるが、ジョンソン自身は「simple」と「stupi

    gologo13
    gologo13 2016/03/27
  • 哲学の木が無くなりました! - Kent Shiraishi Photo Blog

    哲学の木が無くなりました! 『哲学の木』 北海道美瑛町 The tree is named as "Philosophy's tree", it was very popular. 残念な事を皆様にお伝えしなければいけません。 長年、それこそ僕が20代の時からずっと好きだった「哲学の木」、この木を撮影したくて美瑛町に何度も通ったその愛すべき木が、とうとう伐採されました。 ちょうど今、世界の観光客に向けて「撮影マナー」に関する啓蒙活動を始めたばかりでしたので、言葉が出ないほど残念で悲しいです。 もちろん、切り倒した農家さんは断腸の思いだった事でしょう。すでにこれまで何年も前から、何度も困惑されている事を発信されていました。 『たかが一の木、されど一の木!』 僕も個人的に危機感を感じてこのブログで発信してきました。 『美瑛町の「哲学の木」が切り倒される?』 『CAPA 5月号で写真家のマナ

    哲学の木が無くなりました! - Kent Shiraishi Photo Blog
    gologo13
    gologo13 2016/03/27
    残念だ