Islands in the byte stream

Technical notes by a software engineer

「GraphQL APIだとバージョニングが不要」という言明は誤解を招くので避けるべき

1行で 「特定の場合でバージョニングしなくても対応できることはある」程度なので、「バージョニング不要」とは言わないほうがよい どういうことか RESTful API から GraphQL へ、GraphQL から別の Web API systemへ、ということを考えると大きな意味でのバ…

DX: Developer Experience (開発体験)は重要だ

DX: Developer Experience (開発体験)とは、あるシステムを「気持ちよく開発・保守できるかどうか」を示すもの 開発者は開発・保守という行為を通じたそのシステムのユーザーであり、DXはUXの一種である DXがよいと日々の開発を楽しめるようになり、気持ち…

TypeScriptの `ReadonlyArray<T>` を使いやすくするためにtslintを活用する

最近、Kibelaのtslint configの Rule: array-type を "generics" にしました: + "array-type": [ + true, + "generic" + ], 以前は特に指定しておらず、 T[] と Array<T> が混在してていて、それでよしとしていました。今でも、混在することによるデメリットは</t>…

graphql-rubyの知見をscrapboxにまとめはじめた

scrapbox.io graphql-ruby の知見をまとめはじめた。 / “GraphQL for Ruby” https://t.co/PqotLzAdtV— FUJI Goro (@__gfx__) 2018年6月10日 なんで graphql-ruby 限定かというと、graphql-ruby はいくつかの独自機能(e.g. complexityベースのAPI制限)があ…

React DOM elementsに focused プロパティがほしくなったとき

<input ref={(element) => this.input = element}/> しておいて this.input.focus() とか this.input.blur() とか呼び出すのはReact的ではないのでなんとかしたいものだなあ、と思って一旦こういう関数を作って運用してみることにしました。 // in TypeScript // This function emula…

yarn-tools(1) で yarn.lock の重複エントリを最適化する

yarnpkg(1) を使って依存関係を管理しているとき、 yarnpkg upgrade-interactive は対話的にライブラリのアップデートができるので大変便利です。しかし、これを実行すると yarn.lock に不必要に重複エントリが作られることがよくあります。 nodejsで実行す…

nodejsをリビルドすることなくIntl APIをfull-icu相当のデータで使う

gfx.hatenablog.com 上記エントリの続きです。 その後調べた結果、 full-icu というNPM moduleでfull-icu相当のデータをインストールできることがわかりました。 https://github.com/unicode-org/full-icu-npm 中身については精査していませんが、 unicode-o…

HTC U11 は安心して人におすすめできるシムフリーAndroid端末だ!

www.htc.com 発売日に買って2週間ほど使ってますが、非常に快適です。 ここ1年で Android Z4 ⇢ Huawei P9 Lite ⇢ HTC U11 と変えてきましたが、一番ストレスフリーかもしれないです。シムフリーだし*1、変なビルトインアプリはあまり入ってないし*2、指紋認…

NodeJSのIntlサポートを調べた

IntlというのはECMAScript Internationalization APIのこと ECMA-402 として標準化 Intl - JavaScript | MDN NodeJSでも利用可能だが、ビルドオプションによって様子が変わる NodeJSのICUサポートは none, system-icu, small-icu, full-icu というオプション…

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

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