2018-01-01から1年間の記事一覧

Nginx で grpc-web の proxy

Envoy より Nginx のほうが慣れているので Nginx を使いたい。一応公式でも Docker でビルドできるようになってるけど、無駄にサイズがでかい(2GB超え)しコンパイルオプションがいじりたいので alpine でビルドできるようにしてみた。 https://github.com/…

navigator.sendBeacon で Content-Type を指定したい

計測用のリクエストみたいな小さいリクエストを投げるためのnavigator.sendBeaconっていうAPIがあって、fetchやXHRと違ってunload時でもリクエストが送信されるのが保証されるのが売りらしい。メジャーなブラウザには実装されつつある。 Navigator.sendBeaco…

npm scripts のコマンドライン引数は sh で展開される

package.jsonに "scripts": { "lint": "eslint src/**/*.{js,jsx}" } と書いた場合、npm run lintやyarn run lintは、このコマンドをシェルを通して実行する。このときデフォルトではshが使われる。例えばmacOSだとshはbashなので、bashがsrc/**/*.{js,jsx}…

Railsのネストしたネームスペースのautoload

こんな感じのコードがあったとして # app/models/user.rb class User end # app/models/admin/user.rb module Admin class User end end # app/controllers/admin/first_controller.rb class Admin::FirstController def index p User end end # app/control…

SmartHRの体験入社にいってきた

tech.smarthr.jp 人事制度として興味あるし、他の会社で働いてみることにも興味があったので発表された直後に反射的に応募したところ、きていいよ(意訳)と返事をもらったのでほいほいと行ってきた。 一日のコースで、こんな感じのことをやってきた。 午前…

developmentでridgepole applyしたときにtest DBもつくる

Rails標準のMigrationを使う場合はdevelopmentのDBをアップデートしたらschema.rbが更新されてspec/rails_helper.rbとかに書いてある ActiveRecord::Migration.maintain_test_schema! っていうのでrspec実行前にtest DBをmigrationしてくれる。 ridgepoleを…

ruby 2.5で変更されたtoplevel constant lookupの挙動

こういうコードがあったとして class Foo; end class Bar; end p Foo::Bar #=> Bar ruby 2.4まではwarning: toplevel constant Bar referenced by Foo::Bar を出しつつFoo::BarはBarを返す。 これはrubyの定数探索が継承関係を遡って探すという仕様と、トッ…

ngrepでリクエストだけ出力する

ngrepで3000番ポートに対する通信を見る場合こんな感じで見れるけど $ sudo ngrep -W byline -q -d any port 3000 レスポンスはいらないのでリクエストだけみたい、という場合はdst portにすればよい。 $ sudo ngrep -W byline -q -d any '' dst port 3000 '…

RailsのAPI onlyでOmniAuthがエラる

RailsのAPI onlyのアプリケーションだとセッションが無効化されているのでOmniAuthを使おうとするとOmniAuth::NoSessionErrorで落ちる。 READMEに書いてあった。 https://github.com/omniauth/omniauth/blob/650943c16de33c7cdf16708b74766e95ad369610/READM…

頑張らないeslint

自分で頑張って真心込めて設定書いてたけどメンテ不可能なので頑張らないことにした。 フォーマット系はprettierに委ねる printWidthだけ120にして後は委ねる 基本設定はrecommendedに委ねる eslint:recommendedは控えめな感じでよい 本当にほしいやつだけ追…

TypeScriptのLint

JavaScriptもTypeScriptも混じっているプロジェクトで、Lintのルールをなるべく共通化して運用したいというモチベーションがある。 JavaScriptのLinterはESLintを使いたい。TypeScriptのLinterはTSLintがデファクトだが、TSLintはESLintと比べて実装されてい…