Islands in the byte stream

Technical notes by a software engineer

発表資料: Elasticsearchによる 全文検索の実装

Rails Developers Meetup 2018 (#railsdm) で話した資料です。Railsの話はほとんどなくて、全文検索の仕組みとスコアリングについてのまとめが主です。 Q&Aシステムでの質問もここで回答します。 Q. データの同期はどうされていますか? 同期はActiveRecord…

elasticsearch-rails から返るモデルが同値比較できなくてテストで困る問題

elasticsearch-rails はElasticsearchとRails / ActiveRecordのインテグレーションをしてくれるgemです。 こいつを使っているとき、 特定条件下でモデル同士を比較するテストがコケるようになる という現象に悩まされてきました。pryなどで確認しても、たと…

Elasticsearchのドキュメントの直し方

Elastic社の @johtani さんに教えてもらったんですが、たとえば Elasticsearchのドキュメント(たとえばFunction Score Query )をみて不足があるなーと思ったとき、Edit リンクからGitHubの該当ページを直接開けるので即pull-reqを作れます。 あとはCLAにサ…

DroidKaigi 2018で『すばらしきGraphQLのSEKAIへようこそ』という発表をしました

DroidKaigi 2018 に参加して発表してきました。 今回はDroidKaigiということでクライアントサイドの視点から解説しています。よって、サーバーサイドの実装についてはまったく触れていません。サーバーサイドの実装については以前発表をしたことがあるのでそ…

DroidKaigi PreludeのKPT

DroidKaigi Prelude - connpass DroidKaigi Prelude というイベントでDroidKaigiのセッションを徹底解説します! - Islands in the byte stream やりました。 運営の @okoysm さん、tarappo さん、および会場提供のDeNA様、ありがとうございました。また、一…

JavaScript Quiz: (new Array(2)).map($ => 'hello') === ?

タイトルの式を一瞬考えてから本文を読んでください ;)

Ruby 2.5未満でRuby 2.5のStructのkeyword_initを使う

追記: backports v3.11.0の時点ではstruct/new.rbの冒頭に変なputsがあるなど使われている形跡がありません。またフィールド名を予約語にすると使えないという問題もありました。一旦自前のmonkey patchを使うことにしてます。 NEWS-2.5.0 - Documentation f…

IntelliJ IDEAで特定行のGitHub PRを開く"Find Pull Request" pluginがまじイノベーティブ

Kazuho's Weblog: git blameでプルリクエストの番号を表示する をみて、vscodeとかIntelliJ IDEAのpluginないかな〜と思っていたら、IntelliJ IDEA用にはすでにありました。インストールして数週間使っていますが、git blame を眺める機会が激減していい感じ…

保育所の公式データは統一されたフォーマットで提供してほしい

三行まとめ 保育所*1の電子化データは提供元によってファイル形式もデータの構造も異なるためプログラムで加工しにくい 東京都の場合、認可保育所一覧はそれぞれの区が管理しており探すのが大変 保育所のデータはプログラムで加工しやすい統一されたフォーマ…

2017年まとめ

キャリア Bit Journey(as エンジニア)とSpeee(as 技術顧問)は引き続き スタートアップでサービス開発するのは学びがあってよい 技術顧問業は難しい。成果はあったりなかったりする 35歳になった 2017年の初頭に 定年説をめぐって — 1. ミームの濫用 – To…