きみはねこみたいなにゃんにゃんなまほう

ねこもスクリプトをかくなり

ReactRouter のページ遷移で値が切り替わるように Formik の入力値を localStorage に保存する

Formik のフォームの値を localStorage に保存しておくライブラリとして formik-persist というものがありますが、ReactRouter でページ遷移した際に値がうまく切り替わらなかったので自前で Hook を組んで何とか実装してみます。 経緯としては以下の通りで…

HOC と RenderProp と Hook の相互変換はどこまで可能か

React で Cross-Cutting-Concern の文脈で語られ比較されるものと言えば HOC と RenderProp と Hook ですね。 Higher-Order Components – React Render Props – React Hooks at a Glance – React 実際に開発を行っているとライブラリから提供される機能がそ…

(0, obj.method) は this の参照を obj から外せるらしい

Hyperapp を始めようとしたら Parcel という Webpack がシンプルになったようなツールがあるのを知り、バンドルされたコードを見てみたら var _hyperapp = require("hyperapp"); (0, _hyperapp.app)({ view: function view(state) { return (0, _hyperapp.h)…

.vue ファイルには template を複数書けないのか

公式ドキュメント を読みながら template と v-if を合わせられることを知って以下のように書きました。 Vue の単一ファイルコンポーネントの書き方ですね。 <template v-if="loaded"> ここが表示されるのを待てども...(*˘꒳˘*) </template> <template v-else> いつまでたっても Now Loading...(*˘꒳˘*) </template> <script> // ... </script> <style scoped></style>…

CSS の position: sticky を試してみる

Material UI の ListSubHeader の sticky な振る舞いって、どう実装されているんだろうと覗いてみたら position: sticky とだけ書かれていて「こんなプロパティをブラウザがサポートする時代になったんだな」ということを今更知ったので試してみます。 本文…

dataloader を使ってリクエストを取りまとめる React デモを作る

以前 GraphQL を利用していたときに、サーバサイドのSQLリクエストを減らすために使おうとしていたパッケージに dataloader というものがあります。 現在は GraphQL ではなく gRPC-Web を利用したアプリを書いているのですが、dataloader は別に GraphQL に…

VSCode で調べたショートカットリスト

目的は備忘録兼、後で見返して悦に入りたいからです。 環境は MacOS です。 すでに使っていたショートカット 思い出したら書いていきます。 新しく調べて覚えたくなったショートカット Command + Enter: カーソル行の後に空白行を追加 Vim の o 相当の動作が…

protoc-gen-xxxx のオプションを確認する方法を探す

protoc を使いサーバ/クライアント実装の組み合わせや変換プロキシなどのエコシステムを色々と検証しているのですが、そのせいもあって手元にある分だけでも 7 つ程の protoc-gen-xxxx プラグインがインストールされています。 $ protoc-gen- protoc-gen-dar…

TypeScript の型定義を観点に gRPC-Web の実装ライブラリを比較する

gRPC-Web の実装を調べてみると、どうやら複数の実装があるみたいです。 それぞれ関連ライブラリの組み合わせが決まっており、きちんと区別しないと混乱しそうなのでまとめてみます。 比較のために作成したプロジェクトは以下に置いてあります。 gRPC-Web の…

配列型のJSONから gRPC(protobuf) 用のモックデータを読み込む

gRPC のハンズオンがてら適当なサーバを書いてみて、ある程度ハンドラが充実してきたので今度は適当なデータをJSONで用意して読み込んでサーバで返すようにしよう、としたときに意外と大変だったという記録です。 動作するサーバコードは以下のリポジトリに…

Go の gRPC のシンプルな Interceptor を自作して理解を深める

Go の gPRC のシンプルな Interceptor を適当に書いたら割とすんなり動いたので基本的な部分をまとめていきます。 今回のサンプルは以下のリポジトリに置いてあります。 go-grpc-middleware にロガーなど様々なミドルウェア(= Interceptor)が用意されていま…

Saltstack の highstate や low とは何なのか

最近 Saltstack を触っております。 デバッグがてらに state.show_ 系のコマンドを打つことが多いのですが似たようなコマンドが多くて初見ではちんぷんかんぷんなんですよね。 state.show_sls state.show_low_sls state.show_highstate state.show_lowstate …

TypeScript の絶対パスの import をプロジェクトルートから辿るようにする

何やら TypeScript では絶対パスでプロジェクトルートから import を行えるようだと耳にしました。これで相対パス地獄から逃れることができますね。早速動作確認していきたいと思います。 使用した TypeScript のバージョンは 3.0.3 です。 動作確認 src/app…

react-redux-typescript-guide を読んだ感触

Redux + TypeScript の検証作業で疲弊していたところで react-redux-typescript-guide を読んだら思ったより色々まとまっていて、検証のモチベーションがちょっと高まりました、という感想文です。 現在 Redux + TypeScript でアプリを作ろうと色々調べてい…

Redux + TypeScript 周りの調査

最近 Redux に手を伸ばし始めました。JavaScript で経験を積まずにいきなり TypeScript から始めたせいか無駄に試行錯誤したりハマっている気がしますが、めげずに界隈の状況把握から進めていきたいと思います。 今回は主に typesafe-actions と typescript-…

React のファイル名から受ける想定利用法

React を触り始めて 1 年くらい経過しましたが、始めの頃はモジュールのファイル名の命名規則がよくわからなくて迷走していたのをふと思い出しました。 例えば「load data」の 2 語からなるファイル名を考えると、以下 の 3 パターンが考えられます。 load-d…

Material UI + TypeScript で withStyles (JSS) を型付きで使う

Material-UI を使い始めて数日が経ち、ようやくJSSの思想が飲み込めてきました。 当初の違和感もだんだん薄れ、今では(今のところは)確かに楽だよねという感覚になってきております。 今回は型定義についてです。 import * as React from 'react' import { c…

Material UI + TypeScript で Mixin を定義する

TypeScript + Materia UI でアプリを書いていて、テーマ関係のメソッドの中に createMixins というものを見つけたので使い方を調べてみました。 デフォルトの mixin といえば gutter くらいしかなくて、自分でも登録できたら色々使えそうだな...と思い、型定…

VSCode の Atom One Dark テーマをもう少しシックにカスタムする

ひと昔前まで Atom を使っていたのですが builtin terminal を始めとした機能性には抗えず VSCode に移行したのは記憶に新しいところです。 Atom の良かった点は何と言ってもあの、コーディングに最低限必要な情報以外を切り捨てたインタフェースです。ボタ…

Wireshark でTLSの通信を読む

TLSの勉強中です。TLSの通信を眺めるにはやっぱりHTTPSだろうということで簡単なHTTPSサーバを立ててトラフィックを眺めてみたいと思います。『プロフェッショナルSSL/TLS』にも書かれていました。「一番良い方法は実際のパケットを見ることです」と。 下準…

『PKIハンドブック』覚え書き

2000年初版の『PKIハンドブック』が中古でお安かったので覚え書きを残していきます。 2015年出版の『プロフェッショナルSSL/TLS』と並行して読んでいるので気になる部分があれば抜き出してみようと思ったのですが...初心者的な視点から見ると特に目立った差…

Protocol Buffer と gRPC を Go で使うときのリポジトリを整理する

(=˘ ꒳ ˘=) google と golang がぱっと見ややこしい... Protocol Buffer と gRPC を Go で利用しようとすると色んなリポジトリからツールを落としてくる必要がありますがどれも微妙に字面が似ているので混乱します。それらを整理するために org/repo の形式…

gRPC で日付型を利用する

(=˘ ꒳ ˘=) gRPC の import 周りを整理したい... という記事で go-proto-validators と grpc_cli をうまく組み合わせられないことに対して試行錯誤してました。 その問題の切り分けがてら、今回はもう少し基本的な日付型の利用を通して gRPC の import 周り…

gRPC で go-proto-validators を .proto に import したら grpc_cli がうまく使えない

(=˘ ꒳ ˘=) 最近 gRPC を始めたけどパス解決周りが Protocol Buffer 層も相まって複雑で混乱する... hello.proto に簡単なバリデーションを組み込んで Go で吐き出して grpc_cli で動作確認しようとしたらハマって、そしてそのまま解決していない件になりま…

GraphQL のため息

GraphQL とは一体何だったのか、半年ほど触れ続けていまだ掴みあぐねています。 やりたいことは分かる、が、どこに使えばいいのかわからない。 サービスに導入するとして、GraphQL で実装したい場所が見つからない。 夢は見せてくれたが、壮大な社会実験だっ…

SaltStack を使ってみる

(=˘ ꒳ ˘=) ちょっと興味が湧いたので塩を舐めてみる... https://docs.saltstack.com/en/latest/ に従ってチュートリアルを一通り触ってみました。 基本的な動作編: https://docs.saltstack.com/en/getstarted/fundamentals/ master + minion x 2 という構成…

『プロフェッショナルSSL/TLS』を読む - 「第1章 SSL/TLSと暗号技術」から読む

(=˘ ꒳ ˘=) とりあえず Alice と Bob と Mallory だけ覚えておこう... 最近 Kubernetes Dashboard など、HTTPSが有効化されたツールをセットアップする機会が増えてきました。 なのでそろそろきちんと証明書などその辺の技術基盤を理解しないといけない... …

vagrant-hosts を使って互いに名前引き可能なVMをさっくり立てる

(=˘ ꒳ ˘=) らくちんなのである... Kubernetes のクラスタをVMで組んでみたくて Vagrant のお勉強中です。だんだん Ruby が読めるようになってきました。 クラスタを組みたいので当然互いにアドレスなり名前解決可能なホスト名なりで相互接続したいですね。 …

Rubyist じゃないけど Vagrantifile を読みたい

(=˘ ꒳ ˘=) kubernetes を試そうと Vagrant のリハビリしようとしたら Ruby の表記を思い出すのに手間取ったの巻... Multi-Machine - Vagrant by HashiCorp の Vagrantfile を例に、初見で読み方に困ったところを思い出しながら書き留めておきます。 Vagrant…

Bundler の bundler/setup と bundle exec

(=˘ ꒳ ˘=) Ruby のコードちんぷんかんぷんで読みづらい... import やら require やら load やら色々読み込みの構文があるのに加えて、どのライブラリから来た定義なのかが追いづらかったり... ...という愚痴は置いておいて、Ruby のモジュールシステムを別…