タグ

2019年6月30日のブックマーク (24件)

  • Elasticsearchを使ったテストを書くときにsleep 1するのはやめましょう - Bit Journey's Tech Blog

    井原(@ihara2525)です。 以前RSpecでElasticsearchを使ったテストを書くというエントリの中で、 before do Post.__elasticsearch__.create_index! force: true Post.__elasticsearch__.refresh_index! page Post.import # Wait test cluster to index the created objects sleep 1 end みたいなコードを書いていたのですが、いろいろと間違っていました。 まずimportがインデックスをつくってくれるので、 before Post.import # Wait test cluster to index the created objects sleep 1 do でOK。 そしてsleep 1しているのはここにも

    Elasticsearchを使ったテストを書くときにsleep 1するのはやめましょう - Bit Journey's Tech Blog
  • データベースとしてのElasticsearch - Qiita

    はじめに Elasticsearchはスケーラビリティに優れた全文検索エンジンですが、Relational Database(以下RDB)が持つ汎用性や機能の豊富さも追求しているように思います。この記事ではRDBの基機能がどこまでElasticsearchで実現できるかをまとめました。データベースの知識だけで、全文検索を知らなかった私がElasticsearchを勉強し始めた頃に意外に感じた事を中心に両者の違いを比較しています。APIについては言語ごとの違いは言及せず、REST APIについてのみ述べています。特にバージョンの記述がない場合はElasticsearch 5.1を前提にしています。RDBは近年ポピュラーなOracle, SQLServer, DB2, Sybase, PostgreSQL, MySQLなどが準拠しているSQL92標準を前提としています。 基的な違い RDB

    データベースとしてのElasticsearch - Qiita
  • Elasticsearch Field Collapsing | DevelopersIO

    Elasticsearch 5.3 がリリースされましたね。今回はその New feature の中で、Field Collapsing について紹介したいと思います。 Field collapsing と言えば、Top hits aggregation が思い浮かぶ方も多いかと思いますが、今回リリースされた New Field collapsing の機能は Aggregation ではなく、検索結果そのものを折りたたむことができます。 検索系の機能名称では、Collapse Search / Field collapsing / Result grouping と言ったりしますが、一般的に日語では何って呼ばれてるのだろう?折りたたみ検索? 指定されたフィールドの値を使って、検索結果の重複を排除するような機能です。 ユースケース例 例えば、EC サイトの商品検索で、カラーやサイズなどの

    Elasticsearch Field Collapsing | DevelopersIO
  • 七章第四回 ノードをまとめて扱う:DocumentFragment — JavaScript初級者から中級者になろう — uhyohyo.net

    七章第四回 ノードをまとめて扱う:DocumentFragmentこのページの最終更新日:2018年7月29日 今回解説するのは、DocumentFragmentというものです。これは、題名の通り、複数のノードをまとめて扱うのに必要なものです。 実はこれはノードの一種です。つまり、「テキストノード」とか「要素ノード」とかと同じように、「DocumentFragment」という種類のノードがあるのです。 ノードの一種だから、appendChildなどで子ノードを追加したり、あるいはcloneNodeでDocumentFragment自身をコピーしたりもできます。 このDocumentFragmentはどういった意味を持つノードなのかということですが、典型的な説明としては「小型のdocumentのようなものである」とされます。 つまり、DocumentFragmentは、ひとつの独立した木構造

    七章第四回 ノードをまとめて扱う:DocumentFragment — JavaScript初級者から中級者になろう — uhyohyo.net
  • Hashのキーを文字列からシンボルに変換する - Qiita

    JSONのパースしたときにキーがSymbolじゃなくて困ったのでメモ。 railsだとHash#symbolize_keysがあるけど、rails無しで。 def symbolize_keys(hash) hash.map{|k,v| [k.to_sym, v] }.to_h end hash = {'key':'value', 'key2':'value2'} symbolize_keys(hash) #=> {:key=>"value", :key2=>"value2"} Array#to_hはRuby 2.1からの機能なので古い環境では動きません。 hash.inject({}){|h, (k, v)| h[k.to_sym] = v; h}みたいにするといいかも。 追記: コメントで教えていただきました。 Hash#.[]を使ってHash[ h.map{|k,v| [k.to_sy

    Hashのキーを文字列からシンボルに変換する - Qiita
    sh19910711
    sh19910711 2019/06/30
    "JSON.parseにsymbolize_names: trueというオプションを渡す"
  • 人間はクリエイティブな仕事を - 心のうち

    もうずいぶん昔のことになるのだけど、あるクライアントに呼ばれて上司が企業訪問するのに、ついていったことがあった。 当時、私はまだ法人相手の仕事をし始めたかどうかという20代の小僧で、そうした商談の場にはたいそう不慣れ。発言したのは最初と最後の挨拶くらいで、あとはただ上司のとなりに座って先方の話を聴くばかりだった。 社会科見学みたいな感じで、まったくの役立たず。最初から「見学させてもらう」前提で上司が連れていってくれたので(たぶん)、その場の舵取りをすっかり上司にゆだねて、のんきに話を聴いていた。実際はガチガチに緊張していたけれども、今思えばのんきなものだった。 ともあれ、話を聴いていると、どうにも解せないことが出てきた。お客さんは、契約社員にこれをやらせたくて、アルバイトにこれをやらせたくて、外部パートナーにこれをやらせたくて、そこをうまいことうちの会社にハンドリングしてほしいというような

    人間はクリエイティブな仕事を - 心のうち
  • 強度の高いUIをデザインする|池内健一

    デザイナーの池内(@KD6JOE)です。アプリのUIデザインなどをやっています。この記事ではUIをデザインを始めたばかりの人向けに、強度の高いUIをデザインをするための手順をご紹介します。 最低限の品質のUIをデザインできるようになることがこの記事の趣旨です。ここで紹介する手順はあくまで一例で、ガチガチにこの通りに進める必要はないし、ケースバイケースです。自分のやり方に取り入れられるところだけ取り入れてください。 強度の高いUIデザインとは強度の高いUIデザインとは以下のものを指しています。 ・あらゆるUIパターンの検討がなされている ・どのUIパターンを採用するかロジカルに決定している ・仕様漏れがなく開発がスムーズに進む逆に強度の低いUIデザインとは、パターン検討がほとんどされず、ツッコミどころがありまくり、仕様が二転三転するものです。結果開発スケジュールの遅延を引き起こします。 ただ

    強度の高いUIをデザインする|池内健一
  • 数百GBのデータをMySQLからBigQueryへ同期する | メルカリエンジニアリング

    SRE所属の @siroken3 です。最近はもっぱらパートナー会社様とのデータ連携環境構築を主に、時々プロダクションのMySQL環境と分析基盤との連携インフラの構築が多いです。 記事は、メルカリに出品された過去すべての商品をBigQueryへ同期するにあたって取り組んだ時のお話です。 背景 当社では分析目的などでBigQueryを以前から使用しており、プロダクションのMySQLからBigQueryへデータを同期して分析に活用してきました。特に商品を表すテーブルは重要です。 しかし、後述する課題によりBigQueryにアップロードすることができなかったため、分析用のMySQLDBのスレーブとBigQueryを併用せざるを得ませんでした。とはいえ不便なので以前からBigQueryのみで商品テーブルも分析対象としたい要望がありました。 課題 メルカリでは販売済み商品を物理削除していないため、

    数百GBのデータをMySQLからBigQueryへ同期する | メルカリエンジニアリング
    sh19910711
    sh19910711 2019/06/30
    "分割する機能はdigdag で提供されている for_each> タグで実現することにしました。商品データの更新日時を表すupdatedを適切な期間で区切り、embulkへパラメータとして"
  • mysqldumpリカバリの進捗を表示する - Qiita

    リカバリはいつ終わるの? バックアップ取得の一方式としてメジャーなmysqldump。 巨大なデータを取り扱う場合はダンプをするにもリカバリするにも時間がかかります。 数十分の事もあれば数日かかることも。 あとどれくらい時間がかかるのか分からないので、作業進捗を把握できずに困ってしまいます。 特にリカバリはトラブル時の対応に使うことも多いので、把握できるかどうかで復旧までの見通しが全然違います。 リカバリの進捗を表示する方法 pvコマンドを使います。 パイプでpvを挟み込みます。 # インストール yum -y install pv # ダンプの取り込み pv your_data.dump | mysql -h dbserver -u user db_name 56.6GB 1:07:32 [14.3MB/s] [======================================

    mysqldumpリカバリの進捗を表示する - Qiita
    sh19910711
    sh19910711 2019/06/30
    "pvコマンドはPipe Viewerの略で、その名の通りLinuxのパイプで通り過ぎていくデータの容量をモニタしてプログレスバーに表示してくれるというもの"
  • Amazon EMR 5.24 での Apache Spark のパフォーマンスが改善 – Amazon EMR 5.16 と比較して最大 13 倍のパフォーマンス向上 | Amazon Web Services

    Amazon Web Services ブログ Amazon EMR 5.24 での Apache Spark のパフォーマンスが改善 – Amazon EMR 5.16 と比較して最大 13 倍のパフォーマンス向上 Amazon EMR のリリース 5.24.0 には Spark の最適化がいくつか含まれており、クエリのパフォーマンスが向上しました。パフォーマンスの向上を評価するため、Amazon S3 のデータを使用して、6 ノードの c4.8xlarge EMR クラスターで 3 TB 規模の TPC-DS ベンチマーククエリを実行しました。同様の設定で操作した EMR 5.16 と比較して、EMR 5.24 のクエリパフォーマンスが最大で 13 倍向上したことを確認しました。 大規模な変換からストリーミング、データサイエンス、そして機械学習に至るまでの幅広い分析ユースケースで、Sp

    Amazon EMR 5.24 での Apache Spark のパフォーマンスが改善 – Amazon EMR 5.16 と比較して最大 13 倍のパフォーマンス向上 | Amazon Web Services
    sh19910711
    sh19910711 2019/06/30
    spark.sql.dynamicPartitionPruning.enable, spark.sql.optimizer.flattenScalarSubqueriesWithAggregates.enabled
  • Pytorchの転移学習でフレンチブルドッグとブルドッグを見分ける - Qiita

    はじめに 実家で飼っているフレンチブルドッグを散歩をしていると、おばちゃんに「あら、可愛いブルドッグね」とよく声をかけられます。 そこで、機械学習を使って、フレンチブルドッグとブルドッグを分類するモデルをつくろうと思います。 手順 モデルの構築は、以下の手順で行いました。 データの用意 モデルの学習(Jupyter Notebook) データの用意〜モデルの学習に際しては、ABEJA Platformを使いました。 データの用意 データは、Stanford Dogs Datasetを使います。 これは120の犬種カテゴリ、20,580枚の画像から成るデータセットです。 今回は、主にフレンチブルドッグとブルドックの分類に関心があるため、120犬種の中から、ブル系の犬種のデータのみを選定して使用します。 id 0: ボストンブル id 1: ブルマスティフ id 2: フレンチブルドッグ id

    Pytorchの転移学習でフレンチブルドッグとブルドッグを見分ける - Qiita
  • Nuxt + Sails + TypeScript + Fargateでタスク管理ツールを作ったら快適だった話 - Qiita

    Repsona LLCの@GussieTechです。無料ガントチャート、無料カンバン、無料ドキュメント管理が便利な「理想のプロジェクト管理ツール」を作っています。 タスク管理ツール、情報共有ツール、便利ですね! これまでいろんな仕事で、いろんなツールを使ってきました。それぞれ、特に不自由もなく、乗り換えるほどのモチベーションもなく使い続けていたんですが、不満が全くなかったわけではありませんでした。 ・遅い ・ダサい ・わかりにく ・カンバンがない ・ガントチャートがない ・Wiki的なものがない ・なぜか仕事がうまく進まない ・SNSみたいな感じで、社員がもっと楽しくつながれたらおもしろそう ・スキルがレベルアップしてる様子とか、可視化されたらおもしろそう ・勝手に仕事してくれたりしないかな、AIとかで ・使ってたら無意識にPMBOKみたいになるように、レールが敷かれていると便利な気がする

    Nuxt + Sails + TypeScript + Fargateでタスク管理ツールを作ったら快適だった話 - Qiita
  • Ruby の yield を使いこなす - Qiita

    まえがき yield ってなにがどうなっているのか (yeildが使われているコードの説明で) 自分で書くとこの設計できないのよね こんな感想をいただきました yield の理解を深めてもらうために、こんな使い方をしているよというコードベースでご紹介していきます 対象読者 yield がよくわからない人 yield がわかっているけど、自分の書くコードで使ったことがない人 yield ユースケース パフォーマンス監視 処理時間を記録して報告するような機能 module XXXReportable def with_reporting(name: ) started = Time.zone.now yield ended = Time.zone.now report(name: name, started: started, ended: ended) end private def rep

    Ruby の yield を使いこなす - Qiita
  • ヘルプサイトのデータ分析

    Cybozu Meetup #19 ヘルプサイトについて語る会 https://cybozu.connpass.com/event/128938/

    ヘルプサイトのデータ分析
  • 決定木入門編 「ウォーリーを探せ」から考える不純度の考え方 - Np-Urのデータ分析教室

    機械学習の分野でよく使われる決定木について今回は説明していきます。 決定木は、回帰、分類問題に対して、非常によく使われる手法の一つで、あらゆる現場でよく使われているのではないかと思います。 アルゴリズム自体はとてもシンプルですし、R,Pythonにおいてパッケージも豊富というところもあり、 何よりも結果の可読性の高さが人気の一つの理由かと思います。 今回の進め方としては、以下のように進めていきます。 決定木って何?(ざっくり図から理解) 分割規則(不純度について) 決定木の理論面については、「はじめてのパターン認識」を参考にしていただくといいかと思います。 はじめてのパターン認識 作者: 平井有三出版社/メーカー: 森北出版発売日: 2012/07/31メディア: 単行(ソフトカバー)購入: 1人 クリック: 7回この商品を含むブログ (5件) を見る 決定木とは 決定木は、条件分岐によ

    決定木入門編 「ウォーリーを探せ」から考える不純度の考え方 - Np-Urのデータ分析教室
  • esaのデザインの話 - 自分たちのWebサービスを作るデザイナーとしてやっていること / Design Talk of esa - Speaker Deck

    ハッカーズチャンプルー2018でお話させていただきました http://hackers-champloo.org/2018/ https://esa.io/

    esaのデザインの話 - 自分たちのWebサービスを作るデザイナーとしてやっていること / Design Talk of esa - Speaker Deck
  • Goとコンテナで作るWebアプリケーションベンチマーカー / Benchmarker built with Go and Container

    Goとコンテナで作るWebアプリケーションベンチマーカー / Benchmarker built with Go and Container

    Goとコンテナで作るWebアプリケーションベンチマーカー / Benchmarker built with Go and Container
  • 一休のETL処理をAirflowで再構築しました - 一休.com Developers Blog

    一休のデータサイエンス部に所属しています小島です。 以前データ分析基盤の構築で記事を上げていましたが、今回はETL*1周りの話をしようと思います。 user-first.ikyu.co.jp 今回ETLのツールとして導入したのはAirflowというツールです。 2017年のアドベントカレンダーでも紹介させていただきました。 一休のデータフローをAirflowを使って実行してみる 一休のETLの現状について 一休のETL周りは以下の画像のようになっていました。 課題 ETLの処理時間が伸びた(出社後も処理が続いていた) エラーのリカバリ作業に時間がかかる(ログが確認しにくい, サーバーに入って作業しなければいけない) 複雑な依存関係の定義がしにくい(どれとどれが依存しているかわからない) リソース負荷(全て並列で実行していた) 処理毎のボトルネックが把握できない ツールの問題というよりは正し

    一休のETL処理をAirflowで再構築しました - 一休.com Developers Blog
  • コンテナを使った分散システムのデザインパターン(Design patterns for container-based distributed systems) - 理系学生日記

    Consul の文脈で出てきた Sidecar Proxy なんかは Sidecar Pattern に あてはまります。ぼく自身、このあたりの知識があまりないので、初歩的な知識を得たいと思い、以下の論文を読んでみました。 Design patterns for container-based distributed systems. Google が出したこの論文では、Container が分散システムにおけるデザインパターンにどう位置付けられていっているのかという話と、 これまでに出てきたデザインパターンを以下の 3 つの種類に分けて説明しています。 Single-container management patterns Single-node, multi-container application patterns Multi-node application pattern コ

    コンテナを使った分散システムのデザインパターン(Design patterns for container-based distributed systems) - 理系学生日記
  • フロー効率性とリソース効率性、再入門 #devlove #devkan

    DevLove関西の以下のイベントのスライドです https://devlove-kansai.doorkeeper.jp/events/75644

    フロー効率性とリソース効率性、再入門 #devlove #devkan
    sh19910711
    sh19910711 2019/06/30
    小さくする
  • Consul Connect - 理系学生日記

    Consul Connect の資料を一通り読み終わったので、簡単に Connect についてまとめてみます。 ちなみに、全貌がいちばん分かりやすかったのは、HashiDays 2018 の Keynote でした。 概要 Consul Connect を構成する 3 つのコンポーネント Service Access Graph Certificate Authority Pluggable Data Plane まとめ 概要 Consul Connect とは何かというと、 サービスとサービス間の通信を mTLS で暗号化するとともに「認証」を行い、 論理的なサービス名を用いた通信の「認可」制御を行える機能 なんじゃないかと思います。 つまりはサービス間通信の認証・認可を、(基的には)アプリの変更なしに Sidecar Pattern で実現しようという機能です。 そして、その大きな目

    Consul Connect - 理系学生日記
    sh19910711
    sh19910711 2019/06/30
    "サービス間の通信を mTLS で暗号化するとともに「認証」を行い、論理的なサービス名を用いた通信の「認可」制御"
  • GatsbyJSでポートフォリオをつくった

    追記: GatsbyJS@2 以前の古い記事です。最新のチュートリアルはこちら 以前 neet.love というハローワークの対義語みたいなドメインを購入したのですが,こんなクソみたいなドメインに使い道なんてあるわけもなく,あろうことかスクワッティング状態になってしまっていたのでポートフォリオを作ります.求職してなさそうですね. MediumのReactタグで「GatsbyJSでポートフォリオ作ったで」というような記事を拝見したので今回はGatsbyJSを採用します.(どの記事だったかは忘れました) GatsbyJS is 何GatsbyJS(ギャッツビージェイエス)は,React用の 静的サイトジェネレーター です.「静的サイト」というのは与えられるパラメータによって情報が変化したりしない純粋なHTMLページのことですね. 類似プロジェクトとしてGitHub Pagesでよく用いられてい

    GatsbyJSでポートフォリオをつくった
  • MySQLのmetricに関する話 | GREE Engineering

    こんにちわ。せじまです。さいきん、ジム用に左右独立型スポーツモデルのBluetoothイヤホン買ったのですが、あまりの快適さに、ジムに通うモチベーションが5割増しになりました。 はじめに innodb_thread_concurrency について書こうかと思ったんですが、まずはその前に MySQL の metric の話から入ったほうが良いかなぁと思ったので、今回は metric の話を書こうと思います。はじめにお断りしておきますが長くなります。 弊社では7年以上前から、 MySQLのサーバ一台あたり(OS側のも含めると)200-300 以上の metric を だいたい15秒間隔で記録しています。最近はSSDなども使ってますが、むかしはHDDにmetricを保存していました。例えばMySQLのサーバ一台分のmetric表示した画面をキャプチャすると、次のような感じになります。 ※画像は

    MySQLのmetricに関する話 | GREE Engineering
  • ダブリング - sataniC++

    概要 「個次の要素を知りたい」といった状況で頻繁に用いられるテクニックです。 使える状況 「ある要素に対してその次の要素は容易に得られるが、個分次の要素を得るクエリが時間じゃ間に合わない」 というときに、ダブリングを使うことによって、全体の大きさに対して準備、クエリで求めることが出来ます。 説明 「使える状況」で述べた場面は、具体的には、 ある数の乗を求めたい 根付き木において、ある頂点vの個上の親を知りたい などです。 どちらも、次の要素(や頂点vの親)は容易に求められますね。 しかし、次の次の次の…と初めの要素から個次の要素を知るには、単純に考えると時間がかかってしまいます。 これを時間で行うことが出来るのが、ダブリングと呼ばれる手法です。 ダブリングは、次のような流れで行います。 まずは各要素における「つ次の要素」を調べておきます。 こうすることで、「「つ次の要素」のつ次の要素」、つ

    sh19910711
    sh19910711 2019/06/30
    LCAでビットごとに見てるのはこれか