yak shaving life

遠回りこそが最短の道

tech

Playwrightで addCookies したら Invalid cookie fields エラーが出て落ちてしまう

…ということがあり、結構な時間ハマってしまった。 Playwrightの使い方が間違っているのかと思い、BrowserContextのAPIドキュメントを読んだりGitHubのIssuesを検索したりしたが何がダメなのか分からず、これはもしかしてPlaywright特有の問題じゃないのでは…

Karabiner-Elements 14.13.0 にアップデートしたら動かなくなった

M2 MacBook Pro, macOSはVentura 13.4。 Karabiner-Elements 14.13.0 にアップデートしたら、macOS restart required みたいなポップアップが出たので再起動した。でも同じメッセージが出続けるのでインストラクションに従ってkeyboard driverのdeactivateと…

Datadog AgentのCPU使用率が50%超えたらトレースを送ってくれなくなるのは仕様。でも設定変更できる

タイトルが全てという感じではあるが一応本文に詳細を書く。 一時期Datadog APMのTraceがあまり取れていない時期があり、Injection Rateがかなり低くなっていた(当時は任意の期間のInjestion Rateを見ることができた。2023年7月現在はなぜか見れない。不便…

コードエディタ/IDEの個人的変遷

コードを書く時のエディタ、あるいはIDEに一家言あるというプログラマは少なくないと思う。 だけどまあ、そうでもない人というのもいるわけです。僕なんですけど。結局雰囲気で色々使ってきたけどどれひとつ極めてないので、そろそろどれか一つを真面目に極…

ElastiCacheのDatabaseMemoryUsagePercentageってReserved Memory考慮されてる?

Amazon ElastiCache for Redis のメトリクスで DatabaseMemoryUsagePercentageというやつがある。 docs.aws.amazon.com Redisはインメモリデータベースなので、Data Tieringを使っていなければメモリ使用率 = データストレージの使用率ということになる。 と…

PostgreSQLのjsonb型で追加/更新/削除を同時に実行する

PostgreSQLにはjson/jsonb型というのがあって、JSONデータに対していろいろな処理を実行できて面白い。 www.postgresql.org 実用性がどの程度あるかは分からないが、昨今だと他のマイクロサービスとか外部サービスからのAPIレスポンスをそのままJSONとしてDB…

List.ofで作ったリストでcontainsするとNPEが出る?

タイトルの通り、JavaのList.ofで作ったリストでcontains(null)するとぬるぽになった。 jshell> var list = List.of(1, 2); list ==> [1, 2] jshell> list.contains(1); $2 ==> true jshell> list.contains(3); $3 ==> false jshell> list.contains(null); |…

GoFデザインパターンは2022年においても有用なのか?

もちろん有用だとは思うんだけど、自分でデザインパターンを用いた実装をした経験がほとんどない。「Storategyパターン的な感じだな」とか「こいつはFacadeだな」とか思ったりはするけど、明示的に名前をつけたり書籍にあるクラス構成をそのまま利用したこと…

JavaScriptで配列のコピー

四種類ある。全部動作は同じでshallow copy。 arr = [1, 2, [3]] // 下記全部一緒。三つ目の要素だけ参照型なので共有される。 arr2 = arr.slice() arr3 = arr.concat() arr4 = [...arr] arr5 = Array.from(arr) 個人的にはArray.from()が一番しっくりくるか…

Vacuous Truth という概念を知っておくとプログラミングに(ちょっとだけ)役に立ちそう

TL;DR 空のコレクションに allMatch() 的な判定をするとtrueになるぞ!気をつけろ! 背景 あるリストの全ての要素がとある条件を満たすどうかを返すメソッドがあり、 allMatch(何かしらの条件) した結果をbooleanとして返すという実装になっていた。このメソ…

nuxt-create-appしてnpm run devしたらerror:0308010Cになる件

タイトルのまんまですが、nuxt-create-appで適当にプロジェクトを作ってnpm run devしたらいきなり下記のエラーになった。Nodeのバージョンは 17.5.0。 Error: error:0308010C:digital envelope routines::unsupported ...(中略) opensslErrorStack: [ 'erro…

Dockerコンテナが立ち上がらず no space left on device になるからdocker system pruneしたけどダメ

ローカル開発で使っているデータベース用のコンテナが立ち上がらず、no space left on deviceと表示されるのであーノースペースがレフトなんだなと思ってdocker system pruneをノールックで実行というのを雑にやっていたのだが(ローカルに失って困るイメー…

JavaのUnboxingでNullPointerExceptionが出てほしくない

Java初心者なので、戻り値の型がLongなAPIを使いたいけどnullとか嫌だからlongにしちゃおーといって適当にAuto boxingしたらNullPointerExceptionが出てしまった。こんな感じ。 // SomeLibrary#count の戻り値の型はLong long count = SomeLibrary.count(); …

Selenium IDEがChromeで使えるようになっていた

Seleniumといえばブラウザ操作の自動化ツールで、Selenium IDEはFirefoxのアドオンである。いや、であった。いつの間にかChrome Extensionが出来ていたようだ。せっかくなので使ってみた。 Selenium IDEを使えば、ブラウザ操作を"Record"してTest Suiteを作…