アプリケーションを開発するときに期間を表すデータを扱うことは珍しくない。 例えばイベントの開催時間、タスクの予定時間などである。 実際にイベントの開催をDBに保存する場合によく見るテーブルは以下のようなものだろう。 CREATE TABLE events ( id SER…
学ばないとAIを活用できる人とそうでない人の差が広がる、という話を前回書いた では、実際に学ぶためにはどうすれば良いのだろうか。という話を今回はする。 soudai.hatenablog.com 今回の大きなテーマは内省のサイクルを回すために必要なネクストアクショ…
来週、学生たちに向けて『AI時代に学ぶ意味』というテーマで講演を行う予定で、その要点をここにまとめておく。 AI時代に学ぶ意味 概ね、理由は以下のとおり。 良い質問をするために知識が必要 AIの出力を評価する 抽象的なアドバイスを活用する これらを実…
ここ数年、決意表明の場としての記事を書けていなかったので、今年は紅白を聴きながらこの記事を書いている。 完成する頃には2026年になっているだろう。 2026年にやること 筋肉量を維持したまま減量 事業を成長させる 単著を出す inputのやり方を変える 格…
この記事はそーだいなるアドベントカレンダーの4日目の記事です。 adventar.org 今年はKindleベースで262冊が既読。 結構漫画アプリに移行した作品も多いけど、昨年よりも38冊多いペースで読めた。 そこで今年読んで良かったと思う本をいくつか紹介する。 サ…
今年の振り返りをまとめる。 この記事はそーだいなるアドベントカレンダーの25日目である。 adventar.org アウトプットについて 昨年がこちら。 ブログ 15本 登壇 36回 続・商業誌書いた PostgreSQLカンファレンスやった PostgreSQLアンカンファレンスをやっ…
この記事は「キャンプ×エンジニア」アドベントカレンダーの20日目です。 adventar.org 定期的にエンジニア仲間とグループキャンプをしています。 グループキャンプはソロキャンやファミリーキャンプとは違った楽しさがあります。 ということで今日はエンジニ…
最近、1on1で同じ話を何度かしたので、ここに整理して残しておく。 生成AI・LLMが当たり前になりつつある今、「これから自分のキャリアをどう築けばいいかわからない」という相談を受けることが増えた。 新卒から自分と同世代*1まで、悩みの種類は違っても不…
組織は意思決定しない。意思決定するのはいつだって組織の中にいる"人"だ。 という話をすることがある。そのときに下記の記事を思い出した。 組織は意思決定しない。意思決定するのは組織の中にいる"人"だって話を書いた名ブログを見たことがあるのだけど、…
5W1H(Why/What/Who/When/Where/How)は、日常のコミュニケーションやプロジェクトの設計・開発に有効な普遍の型です。 さらに、AI(LLM・エージェント)とのやり取りでも威力を発揮します。 過去にもテキストコミュニケーションのコツとしてSBIモデルコミュ…
成長で肥大化したDB負債を安全に解消するための戦略選定から実践的な手法までを紹介。 方針策定から観測・自動テスト・整合性チェック、トリガー/生成列/アプリ/CDC/キューまで実践手順を解説。
ソフトウェアエンジニアとして仕事を通じて成長するコツを書く。 前回、やや抽象的な話を書いたので、今日は実際に自分がやってきて 効いた具体的 な方法を紹介する。 soudai.hatenablog.com 若手やこれから伸びたいエンジニアに届けば嬉しい。 目の前の「知…
若手との1on1でよく話す内容を、備忘も兼ねてここに残しておく。 「だって仕事でしょ」と「所詮仕事でしょ」 仕事への向き合い方には、大きく2つのベクトルがある。 「だって仕事でしょ」 仕事なのだから、やるべきことをやるという立場 「所詮仕事でしょ」 …
9度目のMicrosoft Most Valuable Professional for Data Platformを受賞しました。 Azure Database for PostgreSQLというわけで1年間、PostrgerSQLのアウトプットが評価されました。 この1年はPHPカンファレンス名古屋でベストトークを獲れたり、PostgreSQL …
リンケージのCTOになって3年目、さらに去年の10月にCOOも兼任するようになった。 それを踏まえたふりかえりを書く。 # 前回 soudai.hatenablog.com やってきたこと 前回のブログの続きになるが、CTOというよりはとにかくなんでもやる係だった。 その結果、…
自分がよく言うんだけど、ちゃんと意味を説明してないとすげーパワハラワードに見えるのでちゃんと説明する。 頑張らなくていいんで結果で答えてくれる?— そーだい@初代ALF (@soudai1025) 2024年11月23日 頑張らなくてもいい 「もっと頑張ってよ」って言われ…
週末にやった感じ、GithubのCopilot Agentがかなり良かったので感想を書く。 前提 今回作ったツールで似たようなやつはいっぱいあって、llm ってやつが便利なんだけどPythonだし、重厚過ぎてちょっとしたことに入れるにはハードルが高いし、Serverには入れに…
先日開催されたPHPerkaigi 2025に一般参加*1し、技術コーチしている先のメンバーの登壇を支援する機会がありました。 それを通じて、今回感じた感想は「登壇者の世代交代」です。 顧問先のブログはこちら。 techblog.cartaholdings.co.jp 今回特に目を引いた…
どうも @soudai1025 です。 初めての名古屋開催のPHPカンファレンス、最高でしたね。 大成功のイベントだったと思います。 自分も 久々のベストトーク賞を獲ることができて、感無量です。 ということで懇親会までの待ち時間で感想戦を書きます。 CfP戦略 今…
表題のとおり、PostgreSQL Contributorになりました。 グローバルでの貢献が認められたということで、素直に嬉しいです。 コントリビュータに名前が載ることになりました! https://t.co/vzqCPmRQV0— そーだい@初代ALF (@soudai1025) 2025年1月28日 PostgreS…
今年の振り返りをまとめる。 アウトプットについて 昨年がこちら。 ブログ 10本 登壇 37回 商業誌書いた PostgreSQLカンファレンスやった PostgreSQLアンカンファレンスをやった 今年の結果がこちら。 ブログ 15本 登壇 36回 続・商業誌書いた PostgreSQLカ…
はじめに Googleカレンダーのような時間枠を扱うシステムを設計する際、開始・終了時刻を管理するロジックは容易ではない。 しかし、PostgreSQLには 範囲型 があり、この機能を活用することで、開始時刻(begin_at)と終了時刻(end_at)を1つのカラムで扱え…
例えば次のようなテーブルがあったとする。 -- PostgreSQL CREATE TABLE history ( id SERIAL PRIMARY KEY, user_id INTEGER NOT NULL, data TEXT, created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ); -- MySQL CREATE TABLE history ( id INT AUT…
チームで仕事を進めるうえで、仕事を任せるというのはとても重要だ。 そうしないと事業はスケールしないし、マネージャやリーダーはチームのボトルネックになってしまう。 そこで自分が仕事を任せるうえで大事にしていることを書く。 1タスク単位の話からプ…
失敗から学べることがアジャイルの本質。 最近学んだのでホテルの朝食ビュッフェからアジャイル開発を伝授する。 ビックバンリリースを避ける バイキング形式であるあるなのだけど、初手で取りすぎて後から食べようと思ったデザートなどの余力が残せない。 …
これは元々社内ブログの記事なんだけど、テキストコミュニケーションについていろんなところで話すことが多いのでここに残す。 結論 背景をしっかり整えてから本題を説明するようにしよう 省略しない お互いのスコープやフォーカスを最初に整理する 仮説と事…
X*1で反響があったので記事にする。 もし、自分がプログラマー人生をやり直すときに1冊だけ本を読ませることができるなら、やっぱこの本を自分に勧める。今はWebでも読めるのでみんなにも読んでほしいな。https://t.co/6ueWEWUB3J pic.twitter.com/c468Szbm8…
来週で40歳にあるので30代の振り返りとしてこれを書く。 そんな30代を全力で走ってきた中で、これは30代でやってよかったな。 もっと早くやってもよかったな。というようなことを書く。 最初に行っとくと一般的にやったほうが良いということは基本的にやった…
8度目のMicrosoft Most Valuable Professional for Data Platformを受賞しました。 この一年は例年のように登壇したり、PostgreSQLアンカンファレンスを相変わらず1年間続けたりしましたが、特にオフラインのイベント登壇が多かったですね。 更にそれに追加…
表題の件で深夜にハマったのでメモとして残す。 JSONとしても正しくてもBOM付きのファイルからJSONを読み込むとエラーになる 結論としてはUTF-8+BOMのファイルは json_decode() の際にBOMのせいで失敗する。 保存するときにBOM無しのフォーマットを指定する…