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

【Node.js】あるファイルからrequireされているモジュールを数えるワンライナー

ファイル index.js から require されている全モジュールの個数を知るには、require してみて require.cache を見ればよい。なので、 $ node -p 'require("./index.js") && Object.keys(require.cache).length' これで数えられる。

SSH コマンドで複数行のシェルスクリプトを実行するためにヒアドキュメントを使う

小技。 #!/bin/bash ssh <user>@<hostname> 'bash -s' << EOS # ここにシェルスクリプトを書く echo hello echo world EOS CLI からも実行できる。 $ ssh <user>@<hostname> 'bash -s' << EOS > echo hello > echo world > EOS</hostname></user></hostname></user>

【TypeScript】Object.keys() に keyof typeof で型をつける

(TypeScript のバージョンは 3.7 である) Object.keys() は文字列の配列型を返す。 const SomeObject = { FOO: 'foo', BAR: 'bar', BAZ: 'baz', } // string[] 型 const keys = Object.keys(SomeObject) for (const key of keys) { // key は string 型な…

Google Engineering Practices Documentation を翻訳した

成果物はこちら。 Google Engineering Practices Documentation 日本語訳 翻訳元ページ https://google.github.io/eng-practices/ 翻訳作業は自作ツール Inalz で行なった。 以下、Google Engineering Practices Documentation の内容から少しポイントを拾っ…

ブラウザ履歴を検索してGitHub のページに素早くジャンプできる Chrome 拡張を作った

成果物はこちら。 Chrome extension: Search History for GitHub GitHub リポジトリ Chrome extension: Search History for GitHub これは omnibox を使った Chrome 拡張で、アドレスバーにコマンドを打ち込んで使います。 使い方は、Chrome 拡張をインスト…

Markdown ドキュメントの翻訳をメンテナブルに行うための Node.js 製ツール "Inalz" を作った

Markdown ドキュメントの翻訳を効率的・継続的に行うためのツールを開発した。 GitHub: https://github.com/FujiHaruka/inalz Documentation: https://inalz.netlify.com/ja/ 作った動機はドキュメントにも書いたけど、ブログでも改めて書く。 inalz.netlify…

【翻訳】The Kubectl Bookを翻訳した

成果物 https://kubectl-book-ja.netlify.com/ Kubectl の公式ドキュメント The Kubectl Book https://kubectl.docs.kubernetes.io/ の翻訳である。 とにかく量が多くて大変だった。3週間くらいかかった。

【翻訳】Kubernetes By Example を翻訳した

openshift-evangelists/kbe の Kubernetes By Example を翻訳した。 https://kbe-ja.netlify.com/ GitHub FujiHaruka/kbe-ja Kubernetes は日本語の情報が少ない。公式ドキュメントも日本語訳が進行中だが、個人的にサンプルコードで学べる情報がほしいと思…

Docker for Mac のホストを volume マウントするときに cache モードで高速化する

Docker 公式ドキュメントにあるこの話。 Performance tuning for volume mounts (shared filesystems) Docker for Mac ではホストを volume マウントすると非常に遅くなる。これは Mac のファイルシステムが Linux と異なるので、ホストとコンテナのファイル…

JAMstack のサイトを翻訳した

成果物はこれ。 jamstack-ja.netlify.com 本家サイト:JAMstack | JavaScript, APIs, and Markup 本家リポジトリ:jamstack/jamstack.org 本家リポジトリをみると MIT ライセンスなので、翻訳したものを netlify にて公開した。 GitHub から forkし、翻訳し…

【翻訳】Go 2018 Survey Results

The Go Blog の記事 Go 2018 Survey Results の Summary of findings の翻訳。 調査開始以来初めて、回答者の半数が日常業務に Go を使っていると答えた。また今年は、仕事で Go を使って開発する人も、仕事外で Go を使う人も増加がみられた。 Go の一般的…

ドキュメントの翻訳が最新コミットに追従しているかをチェックするバッジを作った

ドキュメントの翻訳が最新コミットに追従しているかをチェックするバッジ 技術の詳細 バッジの生成には shields.io を使った JSON エンドポイントには AWS Lambda を使った 中身の実装は Go 言語 GitHub API を叩いて shields.io に渡すための JSON を作成す…

Object.fromEntries()でオブジェクトをmapする

ES2019 から仲間入りする Object.fromEntries() を使うと、オブジェクトの map が以前よりもずっと簡単になる。Node.js では v12 から使えるようになった。 MDN の例を引用する。 const object1 = { a: 1, b: 2, c: 3 }; const object2 = Object.fromEntries…

【脱Redux】React hooks だけでグローバルな状態を管理する

前に書いた記事 Context と Hooks でグローバルな状態を管理する一番シンプルな方法 - 藤 遥のブログ を発展させた。 やりたいことは以下。 Redux を使わずに React だけでグローバルな状態を管理したい 状態は関心事に空間分けしたい TypeScript を使うが型…

【VSCode Tip】なぜかタブバーに1ファイルしか表示されなくなったら Cmd+Ctrl+w

VSCode でなぜかタブバーに1ファイルしか表示されなくなるときがある。 これ。 https://stackoverflow.com/questions/48589785/vscode-showing-only-one-file-in-the-tab-bar-cant-open-multiple-files 結論としては、Command + Ctrl + w を押すと直る。(と…

プロンプトの$を終了コードによって色変更する

後輩から教わったTips。 $ echo foo ↑これの「$」の色を前のコマンドの終了コードが0以外だったら赤色表示にしたい。 $ false $ # ↑$を赤くする Mac のターミナルを使っているので .bash_profile を編集して変数 PS1 をいじる。 RETURN_CODE_DOLLAR='$([ $? …

Context と Hooks でグローバルな状態を管理する一番シンプルな方法

Redux を使わずに React だけでグローバルな状態を管理したい Context API はやや複雑なのでシンプルにしたい グローバルな状態は末端のコンポーネントでも更新できるようにしたい これらを満たすには、 Context API と Hooks API を組み合わせる。シンプル…

useEffect()の中で非同期処理を書く

React 16.8 から追加された Hooks API の useEffect() 。 Hooks API Reference – React useEffect() のコールバックに async 関数を与えたくなるけど、それは禁止されている。TypeScript で書いているとわかるが、useEffect() のコールバックに与える関数の…

VSCode で Prettier と StandardJS を併用する ESLint の設定

覚え書き。 npm init でプロジェクトを作った後、Eslint と Prettier と StandardJS を使うための依存関係をインストールする。 $ npm i --save-dev \ eslint \ prettier \ eslint-config-prettier \ eslint-config-standard \ eslint-plugin-import \ eslin…

Clean Architecture と React を組み合わせる

Clean Architecture と React を組み合わせるデモアプリが eduardomoroni/react-clean-architecture というリポジトリにあったので、コードを覗いたら勉強になった。 Clean Architecture を大づかみに理解する よく出てくる図。 私の理解している限りでは、 …

機械学習と連続体仮説。純粋数学が何に応用されるか誰にも予測できない

機械学習の分野にも「解決できるかどうか証明も反証もできない問題」が存在することが発見され、その論文が話題になっている。 機械学習によって解決できるかどうかが証明不可能な学習モデルが発見される - GIGAZINE Learnability can be undecidable | Natu…

.envファイルから環境変数をセットする alias

これだけのことなんだけど。 https://stackoverflow.com/questions/43267413/shell-how-to-set-environment-variables-from-env-file .env ファイルに書かれたすべての変数を環境変数として export するには、簡単にやるには以下のコマンドでいい。(ただし…

(翻訳)gRPC-Web is Generally Available

grpc.io の2018年10月23日のブログ記事 gRPC-Web is Generally Available の翻訳です。少し時間が経過しているので、ホットな話題ではありませんが。 gRPC-Web が Generally Available になりました 満を持して gRPC-Web の GA リリースをお知らせします。gR…