タグ

2020年8月16日のブックマーク (8件)

  • b-Bit MinHashによる高速かつ省スペースな類似度判定 - SmartNews Engineering Blog

    ゴクロの浜です。ネットカフェでコードを書くのが好きです。 前回のエントリーでも触れられていますが、SmartNewsはホットな話題をユーザにお届けするために、常時、膨大な数のツイートおよびURLをクロールしています。こうして収集した記事に対し、様々な分析が施されますが、その中でも重要な処理の1つに、記事の類似度判定があります。内容の似通った記事をインデックスから発見し、グループ化する処理です。 毎秒、大量の新着記事が到着することから、この類似度判定は高速に実行する必要があります。また、インデックスを全てメモリに載せているので、類似度判定を実現する際の空間効率も要求されます。 今回は、SmartNewsが高速かつ省スペースな類似度判定のために使用しているb-Bit MinHashと呼ばれる手法を紹介します。2年前に、PFIの岡野原さんが非常に分かりやすい解説記事を書かれており、エントリー

    b-Bit MinHashによる高速かつ省スペースな類似度判定 - SmartNews Engineering Blog
    sh19910711
    sh19910711 2020/08/16
    "文書数が増えてくると、Jaccard係数を毎回計算するのはあまりにも時間がかかり、現実的ではありません。そこで考案された手法"
  • 新著が出ます:『プログラマのためのSQLグラフ原論』 - ミックのブログ

    今月下旬に、J.セルコの『Trees and Hierarchies 2nd Edition』の邦訳が刊行されます。同著者の代表作『プログラマのためのSQL 第4版』のスピンオフの一つで、RDB/SQLで木と階層構造を扱うための方法論にフォーカスしたなかなかマニア度の高い一冊です。主眼となる「入れ子集合モデル」については、私もあちこちの記事や書籍で紹介したことがあるので、ご存じの方もいるかもしれませんが、より包括的かつ理論面までカバーした格派の内容になっています。 表紙の女性はマリア様でしょうか。家の方が刊行されたときも「このおっさん誰?」という質問が相次ぎましたが、ガリレオという説が有力なようです。そう言われてみると家は『星界の報告』のような格調を感じます。書の方は、長らく定説とされてきたモデルをひっくり返そうという意味では『天体の回転について』みたいな性格もあるのですが、大型

    新著が出ます:『プログラマのためのSQLグラフ原論』 - ミックのブログ
    sh19910711
    sh19910711 2020/08/16
    "『プログラマのためのSQL 第4版』のスピンオフの一つで、RDB/SQLで木と階層構造を扱うための方法論にフォーカスしたなかなかマニア度の高い一冊"
  • 【Redshift】クエリパターンとパフォーマンスから学ぶCompound SortKeyとInterleaved SortKeyのユースケース | DevelopersIO

    実行時間はほぼ横ばい。コストはCOMPOUND SORT KEYが一番低く、ソートキーなしとINTERLEAVED SORT KEYは同じ結果に。 -- レコード数1億件未満のテーブル -- セカンダリキーでORDER BY SELECT eventid FROM sales ORDER BY eventid; -- EXPLAIN XN Merge (cost=1000000016724.67..1000000017155.81 rows=172456 width=4) Merge Key: eventid -> XN Network (cost=1000000016724.67..1000000017155.81 rows=172456 width=4) Send to leader -> XN Sort (cost=1000000016724.67..1000000017155.81

    【Redshift】クエリパターンとパフォーマンスから学ぶCompound SortKeyとInterleaved SortKeyのユースケース | DevelopersIO
    sh19910711
    sh19910711 2020/08/16
    “Merge JoinはRedshiftのJOIN演算子の中で最も高速な演算方法 / Merge Joinの条件を満たせない場合は Hash Join が採択され、それゆえ大概の JOIN がHash Join / クロス結合や一部の不等結合では Nested Loop が採択”
  • 主要3空間DBでの、空間Index, 空間検索SQL記述の違いまとめ - Code for History

    最近、業務ではなく余暇に複数人で地図系開発をしているため、開発者の構築可能環境が揃えられずバックエンドが選べない状況でした。 なのでバックエンドを抽象化しないといけなかったのですが、その結果Web開発系の主要3空間DBでの空間検索記述差がわかったので簡単にまとめておきます。 座標値からのGeometryオブジェクトの作成 GeomFromTextで当然…と思ってましたが、PostGISだと通らなくなってます。 PostGISでは空間系関数は頭にSTをつけることで統一したよう。 頭にSTをつけた関数については、spatialiteも対応してますし、mysqlは最新の5.6でも未対応なものの、後述の通り関係性記述の関数では(既存関数との互換性のためとはいえ)ST_系を出してきているので、将来的にはST_系で統一されるものと思います。 蓄積済みデータに対する、検索クエリの差 蓄積済みデータに対し

    主要3空間DBでの、空間Index, 空間検索SQL記述の違いまとめ - Code for History
  • Hatena ID

    Hatena ID is an account used for various Hatena services.

    Hatena ID
  • 私がコードを書くときテストは書かない | κeenのHappy Hacκing Blog

    ちょっとポエムというか自分語りを。会社の同期と話してて少し刺激されたので。あとはソースコードって実際のところどういうふうに書いていますか?|Rui Ueyama|noteにも刺激されて。 発端は同期が最近は何か書いてもイケてなくて後で丸っと書き直すことが多くてつらい、という話を始めたこと。 自分は、そんなの普通だろと返した。少なくとも自分の中では当たり前だった。 ふと考えてみたらそうじゃない人も沢山いる気がした。当たり前じゃない人に、自分の当たり前を喋ってみたら面白そうということで自分がコードを書くときにやることを語る。 コードを書き始めた時点では仕様は完全には固まっていない。アプリケーションの構成とかは決まってるけど、ソフトウェアの中身はほとんど何も決まっていない。 まずは手を着けやすそうな所から始める。最初は必ずHello Worldから。そしてmainの中にPoCを書いてイメージを掴

    私がコードを書くときテストは書かない | κeenのHappy Hacκing Blog
    sh19910711
    sh19910711 2020/08/16
    “人間先を読むには想像力が足りなすぎる。目の前に現物がないと気付けないことが多い。だから先に実装する / 一度目でアタリを付ける。二度目で実線を書く。作って、壊して、また作る”
  • Illustratorでドットモザイク画像を作る方法 | 株式会社LIG(リグ)|DX支援・システム開発・Web制作

    今回はポップなドットモザイクの画像をIllustratorで作成する方法をメモしておきます。 01:画像を埋め込む 今回はお花の写真を配置しました。リンクは切っておいてください。(パスデータの場合はラスタライズして画像データに変換してください。) 02:画像にモザイクをかける 「オブジェクト」→「モザイクオブジェクトを作成」を選択。(CS3以前では「フィルタ」→「クリエイト」→「モザイク」) こんな感じになります~。 モザイクになったオブジェクトはグループ化されているので、グループ化を解除しておいてください。 03:モザイクタイルを丸ドットにする タイルをひとつ選択して大きさを確認します。 タイル一個の大きさを確認したら、画像全体を選択しなおして、「効果」→「形状に変換」→「楕円形」を選択します。 形状オプションで「値を指定」を選択、幅と高さをさきほど調べたひとつのタイルの幅と高さと同じぐ

    Illustratorでドットモザイク画像を作る方法 | 株式会社LIG(リグ)|DX支援・システム開発・Web制作
  • デザイナーが持っていたい、Googleフォントおすすめ12選

    世界中に多くのフリーフォントがある中、もっとも安心して利用できるのがGoogleフォントだと思います。一定のクオリティをクリアした美しいフォントがすべてオープンソースで無料で利用することができます。 そんな素晴らしいGoogleフォントの中から、個人的にオススメするフォントを12個紹介します。

    デザイナーが持っていたい、Googleフォントおすすめ12選