二項分布のベイズ推定を可視化するサイトを作った

こちらが成果物。 Bayesian estimation of binomial distribution たとえば二項分布の実際の成功確率を 0.5 として 100 回試行を繰り返したとき、ベイズ推定により推定される成功確率 p の分布がどのように更新されるかを視覚的に理解できる。データが得られ…

仮説検定の誤解と様相論理

統計学の仮説検定は理屈が少し込み入っていて誤解されやすい。あのわかりにくさはどこから来るんだろうと考えていたが、様相論理による説明を思いついた。すると腑に落ちるところがあったので、記事にまとめておく。 まずは仮説検定について簡単に説明してお…

git: how to revert a sigle file

git

git checkout [commit] -- [filename] How to Reset Changes in a Single File in Git - Simplernerd

SwiftUIのsheetはstateの最新状態を反映しない

下記 Stack overflow の質問そのままの状況に遭遇した。 stackoverflow.com sheet に state を反映させたければ sheet 用の View を作って @Binding すればいいとのこと。 これは初見殺しですな。

Appium's "Get Page Source" command is slow in iOS

using Appium 1.22.2 Get Page Source Source - Appium Appium's "Get Page Source" command in iOS is used to get the application hierarchy XML. It sometimes takes several minutes especially when the page source is large. This is because Apple …

【SwiftUI】リストの下に余白を作る

(宣伝)写真から3Dモデルを作成するiPhoneアプリを開発しました。よかったら使ってみてください。 DDDOGClarity Solutions LLC写真/ビデオ無料apps.apple.com (本題) 【課題】 SwiftUI で、List の下に余白を作りたい。 赤枠のような余白を作りたい 【解…

【SwiftUI】入れ子のObservableObjectで子の変更からViewを再描画させる

(宣伝)写真から3Dモデルを作成するiPhoneアプリを開発しました。よかったら使ってみてください。 DDDOGClarity Solutions LLC写真/ビデオ無料apps.apple.com (ここから本題) SwiftUI の ObservableObject は @Published を指定したメンバ変数の更新を監…

【iPhone】写真からすばやく簡単に3Dモデルを作るアプリDDDOG

撮影した写真から簡単に高品質な3Dモデルを作る iPhone アプリ「DDDOG」を開発しました。 App Store からアプリをインストールできます。 ぜひ使ってみてください! DDDOGClarity Solutions LLC写真/ビデオ無料apps.apple.com アプリを使って写真撮影から3D…

React & TypeScript をDenoでバンドルする

クライアントサイドで完結する簡単な React アプリケーションなら create-react-app も Parcel もいらなくて、Deno だけでいける。 Deno なら(ほぼ)設定不要で TypeScript が書けて、型チェックが効き、バンドラーにもなる。 Deno の強みは何と言っても ou…

Denoのコンパイル済み実行可能ファイルをAWS LambdaにSAMでデプロイする

リポジトリ github.com Denoでコンパイルした single executable を SAM で AWS Lambda にデプロイするのをやってみた。 Deno runtime 用の Lambda Layer もあるが、今回はそれを使わず、コンパイル済みのバイナリでシンプルにデプロイしてみたかった。 deno…

【TypeScript】引数の型によって返り値の型を変える関数

追記: 関数のオーバーロードを使うほうがいい こういう関数を作りたいとする。 type Func = | ((arg: "STRING") => string) | ((arg: "NUMBER") => number) 引数に "STRING" を与えると string 型が返ってくる 引数に "NUMBER" を与えると number 型が返って…

リポジトリをメモ帳として使える GitHub App を作った

制作物はこれ。 Make Your Repository A Notebook: https://note.fuji.land/ これは何 GitHub のリポジトリをまるごとメモ帳保管場所にする GitHub App。リポジトリ内の Markdown ファイルを作成、検索、編集できるシンプルな UI を提供している。App をイン…

【TypeScript】Mapped Type と Conditional Type を応用してプロパティの型と型名を相互変換する

Mapped Type と Conditional Type を応用して、オブジェクトのプロパティ型と型名を相互に変換できる。プロパティが string 型ならば "string" という文字列にしたり、逆にプロパティが"string"という文字列ならstring型にしたりできる。サンプルコードを見…

【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 を組み合わせる。シンプル…