最近flutter入門してアプリを作ってみてます。 ネイティブアプリ開発自体はじめてだし、新しい言語を学ぶのは久しぶりなので新鮮です ストレージの種類 さて、flutterの世界で永続化で使用するローカルストレージはこのような区分けになっているようです。 S…
path.resolve(...paths) は、引数に指定されたpathを結合して絶対pathに変換する。 ドキュメントに以下の記述があった。 If, after processing all given path segments, an absolute path has not yet been generated, the current working directory is us…
NotionDatabaseの特定期間内のページを取得して、AIに最適化したテキストに変換(Token削減するため不要な文字を削除するなど)した上で、日報から1ヶ月を振り返るプロンプトを作成した - kokh log で言及したプロンプトでOpenAIにリクエストするコマンドをn…
Notionでタスク管理する際に、Alfredを使っていい感じにタスク追加できるWorkflowを作りました。 github.com (Notion DBのプロパティなど自分仕様になっているので、Githubのみの公開) AlfredのWorkflowを、使い慣れたNode.jsで作るための知見が溜まったの…
下記のように、jsonの中で変数展開するスクリプトが通らなくてハマったのでメモ > curl --location "https://example/api" \ --header "Authorization: Bearer ${SECRET_KEY}" \ --header "Content-Type: application/json" \ --data '{ "page": { "page_id"…
複雑な型をもつ値に対する整形関数を作成した際、zodが便利だったので、注意点とともに紹介します。 やりたいこと ユーザー情報を表すオブジェクトから、田中 太郎, 山田 花子 のような形に整形するための関数 formatFullNames を作成します。 [{ lastName: …
去年anyenvからasdfに乗り換えて以降、プロジェクトのNode.jsのバージョンが変わるたびに呪文的に下記のコマンドを実行していたため、改めて調べました。 asdf install nodejs {version} corepack enable asdf reshim nodejs 最後にreshimをしないとpnpm呼び…
LightroomからLightroom Classicへ移行するにあたり、同期まわりの仕組みを理解するのに大変苦しんだので、記録を残しておきます。 ようやくこれだという情報をシェアしてくださっているYouTubeを見つけ(ただし英語)、なんとか理想の形で移行ができました…
はじめに 突然ですが、下記のような関数があったとします。(できるだけシンプルな形にするために実際にはありえなさそうな関数になっています) function fn(value: string, opt?: string ) { if (typeof opt === "string") { return [opt] } return value …
Toggl Trackは、タイマーを使って作業時間を計測することができるサービスです。 マルチデバイスで使用でき、使い心地もとても良く、自分だけで使うには十分な機能が無料で利用できます。 iOSショートカットとしてもタイマーの起動や停止が用意されているの…