ジンジャー研究室

長めのつぶやき。難しいことは書きません。

認知負荷を下げるテキストコミュニケーション

Slack や GitHub など、何かとテキストコミュニケーションを行う場面は多いのだが、自分なりに気をつけていることを書いてみたい。 まず、前提として自分は文字を読むのが嫌いだ。昔から本が嫌いで読むのが遅く、国語の成績はずっと低かった。流石に小中高の…

「質問」より「相談」

何か分からないことを聞く場面で「質問」よりも「相談」という言葉を意識的に使うようにしている。 よくあるのが、新機能の開発中に不明点が出てきた場合。 例えば、 UI を実装しようとしたらデザイナーが作成した Figma に必要なパターンがなかった時。 「…

Vibe Coding で趣味開発のハードルが劇的に下がった

「趣味の開発」というと、本当に好きな人が休日に何ヶ月も没頭しているイメージがあり、実際に自分もそういう開発をしてきた。特に大掛かりなプロジェクト(自作シンセとか)を育児の合間にちまちま進めるのは根気のいる作業だ。 が、最近では AI が賢いので…

気になる表現

自分はプロのライターや編集者ではないので専門的なことは分からないが、言葉にはまあまあ気を遣っている方だと思っている。 同時に、気を付けている表現と気をつけていない表現には大分ムラがあるとも思っている。 整理のために気になる表現を挙げてみた。…

Claude Code の恩恵

5歳(年長)の娘がパソコンのキーボードをガチャガチャいじるので、せっかくなら意味のある文字でも打ったらどうかとローマ字入力のやり方を教えてみた。「あ」は A で、「い」は I で...と順に教えていく。 実はこの時こちらは業務時間中で、隣のパソコン…

印象操作

仕事で時々「爆速」の評価をもらうことがあるが、半分は本当の速さで、残りは印象操作だと思っている。 コードレビューの依頼を受けてから1分くらいで返すのを数回連続でやると「あの人は爆速でレビューしてくれる」という印象が残る。コンスタントに1時間…

技術記事が書けない

業務でなんらかの問題を解決する時、簡単な技術の組み合わせで実現していることが多い。 これをブログ記事にすると色んな話題の集合体になってしまい、いわゆる技術記事にならない。 そんな悩み(別に悩んでないけど)。

自動テストの「開拓」と「慣れ」

自動テストを書くべきだということに異を唱える人は居ないと思うが、実際の現場ではあれこれと理由をつけて省略されがちだ。あれこれと言っても理由はひっくるめると一つで「コスト」だ。そう、テストを書くのはコストが高い。本当だろうか。 コストが高いと…

設計を考える時のメモ

お仕事で Design Doc を書く前に色々整理するのだが、その作業をシンプルなフォーマットで効率化してみた。 やることは本当に簡単で、箇条書きに色をつけるだけ。 赤:誰かに質問や相談をしないといけないところ 緑:他の人のボールで待ち状態になっていると…

優先順位が口癖になる危機感

開発サイクルの終盤に近づくと「今回は優先順位の高いここまでを実装して、残りは優先順位が低いのでまたの機会にしましょう」という話になりがちだ。自分もこれまで何度もそうしてきたし、その場の判断としては正しい。が、このやり方に味をしめて常にこの…

QA と出会う

現職はスタートアップには珍しく、しっかりした QA 組織がある。日々一緒に仕事をしていて色々と発見があるので、今思うことをメモしておく。 前提として、自分は今までちゃんとした QA の人と仕事をしたことがなかった。前職はアルバイトの人に QA 相当の仕…

近況:転職して半年

7月から新しい職場で働いているので、そろそろ半年。整理のために近況を綴ってみる。以下は個人的な話で会社の紹介とかはしないので、気になった人はホームページを見てほしい。 kwork.studio 前職に引き続き、職種としてはフロントエンドエンジニアという…

Vitest の Browser Mode (experimental) でファイル読み込みのテストを書く

趣味でブラウザ上に画像や音声を読み込んで作業する React アプリを作っているのだが、 Vitest + Testing Library でテストをしようと思ったらファイル読み込み部分でつまづいた。Node.js 上でブラウザ環境をシミュレートしている部分がそのままでは上手く動…

Deno Deploy で WebAuthn を使ったサイトを作ってみた

作ったもの Kaleidoshare という、オンライン万華鏡を作って共有できるサービスを作ってみた! kaleidoshare.deno.dev コードはここ。 github.com 作品は Twitter で公開できる。 桜https://t.co/xlJO3yKcRa— Yosuke Torii / ジンジャー (@jinjor) June 16, …

どこをテストするか

どこをどうテストするかを考えている時の脳内を可視化してみる(図中のテストの名前は適当)

2023 年、改めて React と Elm Architecture を比較する

最近 React のドキュメントが新しくなったということで読んでみた。第一印象としては、とにかく懇切丁寧で React というか JavaScript すら初心者という読者でも基礎的な考え方が身に付くようになっている。ただ、深い内容まで読み進めると「同じ Virtual DO…

極端なことを言っている時、何を考えているのか

たまに極端なことを言ったりすることがある。 「ぶっちゃけ X って要らなくない?」 「それなら X しちゃえばいいんじゃないか」 そうしたら、ある日そこから議論が収集つかない方向にいってしまい、後になって「ああ、あれはそういう意図だったんですか。あ…

Cloudflare Workers + Durable Objects でホワイトボードを作ってみた

Cloudflare の比較的新しい機能、 Durable Objects を使ってオンラインホワイトボードを作ってみた。 github.com エレベーターピッチ(テンプレはこちらからお借りしました) - 1秒で適当な概念図を描き始めて議論をしたい - ソフトウェア開発者向けの、 - …

負債展

技術的負債、色々あると思ったので並べてみた。 スピード重視負債「ビジネスが軌道に乗るまではスピード重視ね」 ビジネス要求の変化負債「頑張ってやってもらったけど、その機能もう要らないわ」 マーケティングの失敗負債「鳴り物入りでリリースしたのに誰…

謎ツール

謎ツール作って面白おかしく開発したいよね(してる)— Yosuke Torii / ジンジャー (@jinjor) December 3, 2021 今の会社に入ってから作ったものを思い出してみた(順不同) Slack の新規チャンネルを通知するチャンネル 社員の休暇予定を Google カレンダー…

自分のやりたいことを正確に把握するのは難しい

キャリアの話になると、学生に向けて「自分の本当にやりたいことに向き合いましょう」というメッセージが発せられることが多い。それに対する学生側のよくある悩みは「やりたいことが見つかりません」「やりたいことがよく分かりません」というものだ。その…

Electron と Go で音を鳴らしてみた話

SoundEngine とか Audacity みたいな波形編集ソフトを作りたいと思った時に、本当はデスクトップアプリが作りたいんだけど Web 技術の方が慣れてるから(ここでの Web 技術は HTML や JavaScript など)という理由で、わざわざローカルでサーバーを起動して…

C++ 初心者がハマったこと

普段 Web のぬるい言語しか触っていない C++ 初心者がハマったこと。 (なぜ C++ をやっているかというと VST プラグインを作成するのに C++ がほぼ必須だから。この話はまた改めて書く予定。) 配列がポインタ 関数に配列を渡そうと思ったところ、受け側の…

筋の悪い道具

ある道具の筋が悪いと言って馬鹿にする人を横目に見ながら、その道具で生産性を上げたい。

得意なこと

「あの人はなんでこんなに簡単なことができないんだろう」 と思った時、それは自分が得意なことであり自分の強みであると思った方がいい。 「やるだけなのに、やってない」 とかではないのだ。

速度との戦い

オーディオプログラミングは速度との戦い。特にリアルタイム処理となると常にパフォーマンスを気にしていないとすぐに死んでしまう。 なぜなら、再生に間に合うようにデータを用意しないと音が途切れてしまうから。例えば、サンプリング周波数が 48000Hz だ…

綺麗な矩形波を作る

オーディオプログラミングをしていて、よくある矩形波の作り方は 1 と -1 を周期的に繰り返すというもの。 で、最近までなんの疑問も持たずにそれで実装していたんだけど、 FFT で周波数スペクトルを描いてみて気づいた。 なんか汚い。 いやいやまさかね、何…

センスの良い仕事

センスの良い仕事を見たい— Yosuke Torii / ジンジャー (@jinjor) February 2, 2021 ふわっとつぶやいたんだけど、これって要するに何が言いたいんだっけとずっと考えてた。 センスの良い仕事とは一体なんだろう。 仕事というのは会社の業務に限らず、同人活…

Go 言語を始めた

1週間前くらいから Go 言語を触っている。 動機 オーディオ処理をやりたい。 今まで Web Audio API で色々やっていたが、細かいことをやろうとすると色々制約があってめんどくさい。 というわけで選択肢: Node.js: パフォーマンスが不安 C++: 資産は多いけ…

TypeScript >= 4.1 の Template Literal Types を活用した引数パーサーを作ってみた

ヘルプっぽいものを書くと文字列をパースして型をつけてくれる。 デフォルト値を指定すると T | null が T になったりする。 公開は今のところ GitHub Packages だけです(メンテしなくていい方法を考え中) github.com 型レベルのパーサーはこちらの記事を…