kitak's blog

Kみたいなエンジニアになりたいブログ

Node

Rails + Hypernova なアプリを Heroku にデプロイする

個人メモ Heroku Container Registry で Rails アプリをデプロイするときにハマったこと - kitak blog Hypernova で Vue.js のコンポーネントを Rails でレンダリングする - kitak blog の続き。 Rails + Hypernova で作った趣味アプリをデプロイすることに…

Hypernova で Vue.js のコンポーネントを Rails でレンダリングする

個人メモ。 Rearchitecting Wantedly's Frontend | Wantedly Engineer Blog の記事を読んで、副業先でも使えるかもと思い、Hypernova を触っていた。 Hypernova を使う個人的なモチベーション リリースまで至った、それなりの規模の SPA ではないブラウザナ…

nuxt-community/typescript-template から生成したプロジェクトに express の API server を組み込む

個人メモ。 GitHub - nuxt-community/typescript-template: Typescript starter with Nuxt.js から生成したプロジェクトで色々開発をしていて、途中で JSON を返す API Server を組み込みたくなった(別リポジトリにしたり、実行環境を分けるのも面倒だった)…

AWS Lambda で Cloud Firestore を使う

Webpack を利用した複数の Lambda 関数の管理 - kitak blog の続きで色々やっていました。 Cloud Firestore を Lambda から使おうとしたんですが、バンドルファイルを実行したらエラーに。grpc まわりでネイティブモジュールのビルドが必要で、firebase-admi…

Node.js で Request Local なコンテキストを Zone.js で作る (2)

前回の続き Node.js で Request Local なコンテキストを Zone.js で作る - kitak blog 本当に Request Local になってるのかなーと思って、以下のようなコードを書いて、ab (ab -n 1000 -c 100) にかけて確かめた。 import * as express from 'express'; imp…

Node.js で Request Local なコンテキストを Zone.js で作る

Request Local なコンテキストが欲しい理由 例えば、Request 毎に id を生成して、その id をログに書き出す内容に含めたい。こうすれば、障害や不具合の調査の際に、Request 単位で起きた事象の把握が容易になる。 Node.js での難しさ ログを出力する箇所が…

Ethereum トークン (ERC20 Token Standard) の残高を取得する

8月頃にプレセールで買ったとあるトークンが最近発行されて、Etherscan や My Ether Wallet でトークンが発行されたことを確認したのだけど、自分用の Wallet App を作ってみたくなったので、プログラムからトークンの残高を取得する方法を調べてみた。 web3…

puppeteer で Speed Index を算出

puppeteer という Headless Chrome を Node から操作するライブラリが今日発表されたので、以前、記事を書いた WebPagetest を使わずに Speed Index を算出する - kitak's blog を puppeteer でやってみた。 puppeteer の良さ Chrome Developer Tools の開発…

knex.js: NodeのSQL Query Builder

最近、趣味と仕事両方で使うNodeで動くちょっとしたウェブアプリを書いている。 おそらくRailsの方が素早くできそう、あるいは普段書かないPythonとかGoみたいな言語で書いてみたかったんだけど、仕事で同じ部署の人に使ったり、手を入れてもらうことを考え…

node-http-proxyで通信内容を変更するローカルプロキシサーバーを構築する

フロントエンドの開発をしていて、APIサーバーへのリクエスト、レスポンスをプロキシして、そのヘッダーを変更したいことがある。Charlesみたいなツールでも同じことはできるが、変更内容を複数人で共有するのが面倒だったり、integration環境で動かすのが難…