# 改善紀 — 全記事(69本・生成 2026-09-08)# 【朝起きるアイテム】朝5時に起きる私の部屋に居座っている5つ - 公開日: 2026-09-08 - カテゴリ: column - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/asa-okiru-items/ - サイト: 改善紀 — 好奇心の赴くままに。 --- ![朝5時に起きる私の部屋に居座っている5つ(作者と GPT-6 Astra による自画像つき)](https://flow-with-tech.com/media/posts/asa-okiru-items/eyecatch-asa-okiru-items.png) 突然ですが、皆さんは朝、起きられていますか。 私は起きられます。毎朝5時に起きています。ただ、それは私の意志が強いからではなく、部屋に居座っている道具たちが優秀だからです。 というわけで、前回の「買ってよかった」の続編です。今回は「朝起きる」に絞って、使ってみて本当に良かったものだけ書きます。 https://flow-with-tech.com/katteyokatta/ ## SwitchBot カーテン ![カーテンレールに取り付けた SwitchBot カーテン本体](https://flow-with-tech.com/media/posts/asa-okiru-items/switchbot-curtain.jpg) https://www.amazon.co.jp/SwitchBot-%E3%82%AB%E3%83%BC%E3%83%86%E3%83%B3-%E7%AC%AC3%E4%B8%96%E4%BB%A3-%E8%87%AA%E5%8B%95%E9%96%8B%E9%96%89-%E3%82%B9%E3%82%A4%E3%83%83%E3%83%81%E3%83%9C%E3%83%83%E3%83%88/dp/B0CB82V17R?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&ufe=app_do%3Aamzn1.fos.35785624-70c4-44ae-a5c3-3f044f475d63 朝起きられるかどうかは、何で決まるのでしょうか。 気合でしょうか。前日の睡眠時間でしょうか。 違います。**カーテンが開くかどうか**です。 私はこれを「日の出とともに開く」設定にしています。日の出の時刻はアプリが勝手に計算してくれるので、季節ごとに設定し直す必要がありません。目覚ましが鳴る前に、部屋が明るくなっている。この順番が大事です。音で起こされるのと、光で起こされるのとでは、起きた後の機嫌が違います。 しかも閉めることもできます。夜、ベッドに寝っ転がって「あー寝よう」と思ったとき、立ち上がってカーテンを閉めに行かなくていい。この「立ち上がらなくていい」は、後で出てくる Alexa と組み合わせると最強になります。 とにかくもう、これは手放せません。これを手放すとしたら、夜はカーテンを閉めなくても真っ暗で、朝は本当に朝日とともに光が差し込んでくるような場所に住んだときです。つまり森の中に住んだときです。 ## popIn Aladdin ![天井のシーリングライトの位置に付いている popIn Aladdin](https://flow-with-tech.com/media/posts/asa-okiru-items/popin-aladdin.jpg) https://www.aladdinx.jp/ 天井のシーリングライトの穴に差し込むプロジェクターです。 朝5時半になると勝手に起動して、壁に森林の映像が流れます。鳥のさえずりも聞こえます。 目を開けると森。耳には鳥。 「あれ、キャンプに来てたっけ」 毎朝これです。もちろんキャンプには来ていません。都心の部屋です。でも、脳は最初の数秒それを知りません。その数秒のうちにベッドから出れば、あとは普通に一日が始まります。 カーテンで光を入れて、Aladdin で森を出す。ここまでで「起きる理由」が2つ揃います。 ## Alexa(Echo) ![ベッド脇の棚に置いた Echo Dot](https://flow-with-tech.com/media/posts/asa-okiru-items/echo-dot.jpg) https://www.amazon.co.jp/Echo-Dot-%E3%82%A8%E3%82%B3%E3%83%BC%E3%83%89%E3%83%83%E3%83%88-%E7%AC%AC5%E4%B8%96%E4%BB%A3-Alexa-%E3%82%BB%E3%83%B3%E3%82%B5%E3%83%BC%E6%90%AD%E8%BC%89-%E9%AE%AE%E3%82%84%E3%81%8B%E3%81%AA%E3%82%B5%E3%82%A6%E3%83%B3%E3%83%89-%E3%83%81%E3%83%A3%E3%82%B3%E3%83%BC%E3%83%AB/dp/B09B8SZLLG?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&ufe=app_do%3Aamzn1.fos.35785624-70c4-44ae-a5c3-3f044f475d63 人間が布団に入ってから気づくことがあります。 「あ、明日5時に起きるんだった」 ここで、スマホを探して、アラームアプリを開いて、時刻をスクロールして、という作業をすると目が覚めます。せっかく眠くなっていたのに。 私は天井に向かって言うだけです。 「アレクサ、5時に起こして」 以上です。目を開ける必要すらありません。スマホを触らなくていい、声で操作できる。この2つが本当に最高です。かれこれ2、3年これで起きています。 そしてもう一つ。アラーム音の中に、**よくわからない外国人がハイテンションで喋る**やつがあります。これが微妙にムカつく。ムカつくのですぐに止めたくなる。止めるには声を出すか体を起こす必要がある。つまり起きる。 心地よい音で起きるより、微妙にムカつく音で起きるほうが起きられます。 ## Kindle Paperwhite ![寝る前に読む Kindle Paperwhite](https://flow-with-tech.com/media/posts/asa-okiru-items/kindle-paperwhite-2.jpg) https://www.amazon.co.jp/Kindle-Paperwhite/s?k=Kindle+Paperwhite ここまでは「起きる側」の道具でしたが、これは「寝る側」の道具です。朝起きるために一番大事なのは、実は夜ちゃんと眠ることです。 寝る前に本や漫画を読みます。でもスマホや iPad で読むと、ブルーライトが目に入ります。そして気づいたら X を開いています。 > つまらないデバイスを使う この言葉のとおりです。Paperwhite は紙みたいな画面で、白黒で、動きも遅くて、本を読む以外に何もできません。通知も来ないし、X も開けません。**開けないものは開かない**。これは意志の問題ではなく設計の問題です。 そして本を読んでいると眠くなります。眠くなったら Kindle を置いて、「アレクサ、5時に起こして」と言って、カーテンが日の出で開くのを待つだけです。 こうして書くと、私は寝るとき何もしていないですね。 ## 朝活(人との約束) https://x.com/kama_bizdev/status/2096418798383591843?s=20 最後は道具ではありません。でも、これが一番効果的です。 毎朝5時半から、黙々と作業する朝活を主催しています。誰かと喋るわけではありません。ただ、同じ時間に同じ場所に人がいる。それだけです。 道具は4つとも優秀ですが、全部「自分との約束」です。自分との約束は破れます。カーテンが開いても、森が出ても、外国人がハイテンションで喋っても、「今日はいいや」と言えば終わりです。 そこで、人との約束にしました。最初は Teams の会議でやっていました。**自分が会議を開かないと、会が始まらない**。さらに X に「明日もやります」と投稿してから寝る。ここまでやると、もう「今日はいいや」が言えません。意志の力ではなく、環境の強制力で起きる。これが一番強い目覚ましでした。 正直に言うと、今はもうこの仕組みがなくても起きられるようになりました。なので、自分がいなくても会が開催されるように、昨日から Discord のボイスチャンネルに移行しました。常設の部屋なので「開く」という作業がなく、参加記録はラジオ体操のスタンプカードみたいに毎朝自動で貼られます。主催者が寝坊しても会は始まる。それでいいと思っています。 ## まとめ 世の中には「何かあったら便利そう」なものが山ほどあります。それらは全部、必要ありません。 今回紹介した5つは、私が実際に使ってみて、本当に良かったものです。カーテンで光を入れて、プロジェクターで森を出して、Alexa に声だけで起こしてもらって、Kindle で夜ちゃんと眠って、朝活で人と約束する。 **起きられるかどうかは、意志ではなく、部屋の設計で決まる**。そう割り切ってから、朝5時が普通になりました。 皆さんも、まずカーテンから自動化してみてはいかがでしょうか。 朝起きるためにガジェットを買うのか、ガジェットを買うから朝起きられるのか。 ## おまけ ChatGPTの3Dモデリングがすごいと話題なので、手書きから3Dのモデリングをしてもらってみた。ものすごい結果になった。 ![手描きのスケッチから ChatGPT に起こしてもらった 3D モデル](https://flow-with-tech.com/media/posts/asa-okiru-items/chatgpt-3d-from-sketch.jpg) --- # 朝活勉強会を頑張らずに継続するために、Claude を活用してみた - 公開日: 2026-09-06 - カテゴリ: AI・Claude Code - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/study-group-ops-with-ai/ - サイト: 改善紀 — 好奇心の赴くままに。 --- ![アイキャッチ](https://flow-with-tech.com/media/posts/study-group-ops-with-ai/eyecatch-v2.png) ## この記事で書いていること - connpass のイベントサムネを、画像生成AIではなく**HTML + Chrome ヘッドレス**で作るやり方 - サムネに **JSON の台帳を持たせて「レベルが上がっていく」**ようにした話 - 開催後のふりかえり画像・告知文面・**1週間分のイベント複製**まで含めた、勉強会の運営をAIで回した記録 - connpass のイベント複製を Claude Cowork にやってもらった話 ## はじめに 私はいま、朝5:30からオンラインの黙々勉強会を主催しています。connpass でイベントを立てて、みんなでオンラインに集まって、各自ひたすら自分の作業をするだけの会です。(最初は勉強会として始まりました。今は黙々会になっています。) connpass のイベントを複製したり、内容によってサムネイルをいじったりするのですが、めんどくさいので全部 Claude に頼んでみました。 具体的にはこの辺をやってもらっています。 - サムネ画像を作る - イベントの説明文を書く - connpass のイベントを複製して、日付を直して、また公開する - 終わったあとに「今日はこういう会でした」を出す 1回だけならどうということはないのですが、**毎週やるとなると話が別**です。 微妙にテーマによって変えていったり、統一感を出したりしたい気持ちがあるので、なんかいい感じにしたい。 結論から言うと、**「AIに絵を描いてもらう」のをやめて、「AIに道具を作ってもらって、自分で回す」**に変えたら、準備がだいぶ軽くなりました。 ## 1. サムネを画像生成AIで作るのをやめた まず、いまのサムネがこれです。ドット絵風のRPG画面みたいなやつを作っています。 ![朝もくもく会のconnpassサムネ](https://flow-with-tech.com/media/posts/study-group-ops-with-ai/thumb-3-discord.png) Claude Code には勉強会のサムネで、今後レベルが上がったり微妙に文章変えたりする可能性があると伝えました。 Claude Code は賢いので HTML で作ってくれました。 やっていることは拍子抜けするほど単純らしいです。 1. サムネのレイアウトを HTML + CSS で1枚作る(1200×630px) 2. それを Chrome のヘッドレスモードでスクリーンショットする 3. PNG が出てくる ## 2. おもしろいのは「微妙な修正ができる」こと HTMLにして一番よかったのは、実は画質でも手軽さでもなく、**"ちょっとだけ変えたい" が通ること**でした。 この会、始めてから何度か仕様が変わっています。そのたびにサムネはこう変わってきました。 **① 最初:朝6時開催** ![6時開催のころのサムネ](https://flow-with-tech.com/media/posts/study-group-ops-with-ai/thumb-1-morning.png) 日がしっかり昇っています。太陽が地平線から顔を出していて、空も草原も明るい緑。LV.1・HP 30/30 のスタート地点です。 **② 開催を30分前倒しして、5:30に** ![5:30に変えたサムネ](https://flow-with-tech.com/media/posts/study-group-ops-with-ai/thumb-2-early.png) **空の色を変えました。** 5:30ってまだ夜明け前なんですよね。空は紺から紫で、地平線のところだけ焼けている。太陽もまだ半分も出ていない。草原も暗いトーンに落としています。「シーズン2、開幕。」でLV.5。 > 🗣 夏の5:30 はもっと明るいので季節によって変えていこうかと思ったのですが、変数が増えると手間が倍増するのでやめました。 **③ 会場を Teams から Discord に引っ越した** ![Discord移行後のサムネ](https://flow-with-tech.com/media/posts/study-group-ops-with-ai/thumb-3-discord.png) タイトルの下に **Discord のプレートと「会場が変わりました」の札が増えました。** シーズン3、LV.15。 HTML めっちゃ楽で良い。 ## 3. サムネが「台帳」を持って、レベルが上がっていく これも一つこだわりたかったところです。 さっきの3枚、レベルが **LV.1 → LV.5 → LV.15** と上がっていたのにお気づきでしょうか。HPバーも 30 → 50 → 300 に増えています。 これ、**飾りではありません。** 裏側に `level_ledger.json` という台帳ファイルがあって、開催のたびに1行積んでいます。 開催が終わったら、Claude に「今日はこういう内容だった」と伝えて、**その日のEXPを判定してもらって**台帳に1行足す。あとはコマンドを叩けば、レベルが上がったサムネが出てきます。 第4回はゲストを呼んだ座談会だったので、**+20 EXP の特別加算で2段レベルアップ**させました。こういう「盛る」も、数字がファイルにあるからできることです。 > 🗣 正直厳密にレベルアップを反映できてはいません。サムネを新しくするタイミングで、Claude に(なんとなく)「5LV 上がったと思うから、レベル上げて体力は 300 ぐらいにしといて」って頼んでます。レベルアップは自己申告制です。勝手に徴収される税金じゃなくて、控除系と同じですね。 ## 4. 終わったあとの「ふりかえり画像」も同じ機械で出す 同じ仕組みは、開催後にも使えました。 X に投稿する用の**ふりかえりワンペーパー**です。当日話したことを5行くらいにまとめて、レベルアップの演出を乗せた1枚。 ![第3回のふりかえり画像](https://flow-with-tech.com/media/posts/study-group-ops-with-ai/recap-vol3.png) 作りはサムネとまったく同じで、テンプレHTMLに JSON を流し込んで Chrome で撮るだけです。違うのは、**背景に当日のイベントサムネをそのまま敷いている**ところくらい(base64 で埋め込んでいます)。 ```bash ./build_recap.sh recaps/vol3.json ``` これで `out/recap_vol3.png` が出ます。 なんかいい感じです。 ## 5. 告知文もファイルで持っておく サムネの話ばかりしましたが、**文面も全部ファイルにしています。** - イベントの説明文 - 「参加者への情報」(Discordの入り方の案内) - connpass グループの説明文 これをテキストファイルとして持っておくと、**次回は前回の文面を渡して「ここだけ直して」ができます。** そしてこれは実際に効きました。さっきの Discord 移行のとき、**告知文の全書き換えが発生した**んです。「会場が変わりました」「Discordはゲーム用の印象があるかもしれませんが、勉強会でもよく使われています」「アプリを入れなくてもブラウザで参加できます」「アカウント作成は1分ほどで終わります」——このへんの、**初参加の人が不安になるポイントを1つずつつぶす文章**を、Claude と一緒に書き直しました。 毎回ゼロから書いていたら、こんな細かい配慮までは絶対に手が回っていません。**文面が資産として残っていると、少しずつ良くしていける**のがいいところです。 ## 6. 1週間分のイベント複製を、AIにブラウザごと任せる 最後、これが地味にめんどくさい作業です。 **connpass のイベント複製。** 前回のイベントをコピーして、日付を直して、タイトルの「(コピー)」を消して、公開する。1件2〜3分ですが、**うちは平日ほぼ毎朝やっている**ので、毎週5件です。画面をポチポチする15分は、体感で1時間あります。 ここは Claude の Cowork(ブラウザを操作してもらう機能)に任せました。しかも**毎週やる作業なので、手順そのものをスキルとして登録してあります**(`connpass-event-duplicator`)。日曜日に「今週ぶんお願い」と言うだけです。 ![Coworkが1週間分のイベントを複製したところ](https://flow-with-tech.com/media/posts/study-group-ops-with-ai/cowork-duplicate.png) 結果がこれです。**56アクション**ブラウザを操作して、9/8(火)〜9/12(土)の**5件を、公開まで完了**。イベントIDまで報告してくれます。 地味に効いているのが、報告の後半です。 > タイトルは全件「(仮称)黙々勉強会」に直してあります(コピー直後に付く「(コピー)」は除去済み)。定員20人・無料・Discordリンク・説明文・ハッシュタグは元イベントのまま引き継がれています。 > なお、X(Twitter)への投稿チェックは触っていないのでオフのままです。 **「触っていないもの」まで報告してくれる**のがありがたいところで、この手の作業で怖いのは「勝手に何かオンにされてないか」なんですよね。ここが書いてあると、確認する場所が減ります。 そして実際の connpass 側がこれです。 ![connpassのイベント管理画面に6件が並んでいる](https://flow-with-tech.com/media/posts/study-group-ops-with-ai/connpass-events.png) 「開催前」が6件、日付違いで整列している。**この画面を自分の手で作るのは結構めんどくさい。** AI の Cowork を持つことって良いですね。 ## まとめ:AIに絵を描かせるより、道具を作らせる やったことを並べるとこうなります。 | 準備 | 前 | 後 | |---|---|---| | サムネ | 画像生成AIでガチャを回す | HTML の設定を1箇所書き換えてコマンド1回 | | サムネの微修正 | 作り直し(別の絵になる) | テーマを1語変えるだけで空が5:30になる | | レベル・実績 | (そもそも無い) | `level_ledger.json` に1行積む=続けた分だけ育つ(自己申告) | | ふりかえり画像 | 作らない(力尽きる) | JSONに5行書いて `./build_recap.sh` | | 告知文 | 毎回ゼロから書く | ファイルで持って「ここだけ直して」 | | イベント複製(週5件) | 手でポチポチ15分 | スキル化して Cowork に投げる(56アクション) | こうして書き出してみると、**私がAIに頼んだのは「作品」ではなく、ほとんど「道具」だった**ことに気づきます。 画像生成AIに「いい感じのサムネ作って」とお願いするのは、毎回AIに作品を発注している状態です。出てくるものは毎回ちょっと違うし、文字は崩れるし、前回の続きにはならない。**そして「空だけ変えて」が効かない。** 一方で「サムネを作るHTMLを書いて」とお願いすると、**手元に道具が残ります。** 次回からはAIを呼ばなくても、自分でコマンドを叩けば同じものが出てくる。しかも中身を読めるので、直せるし、育てられる。イベント複製も同じで、1回やってもらって終わりにせず**スキルとして残した**ので、来週も再来週も同じ品質で回ります。 問題とはありたい姿があるからこそ見つけられるそうです。 Be Lazy (怠惰であれ)の心がけを持って、本当に大事なことに集中するために、これからも AI をうまく活用していきたいです。 > 🗣 主催者の代わりに AI エージェントを登場させてみてもいいかも笑 --- # 【買ってよかった】2026年の夏、生活が変わった5つの買い物 - 公開日: 2026-09-05 - カテゴリ: column - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/katteyokatta/ - サイト: 改善紀 — 好奇心の赴くままに。 --- ![この夏、生活が変わった5つの買い物(作者による自画像つき)](https://flow-with-tech.com/media/posts/katteyokatta/eyecatch-katteyokatta.png) ## 冷感スプレー ![買ってよかった冷感スプレー。詰め替えて使っているスプレーボトル](https://flow-with-tech.com/media/posts/katteyokatta/reikan-spray.jpg) https://www.amazon.co.jp/dp/B09TDKBH5F 確か、数年前から存在していたはず。でも今年初めて買って使ってみた。 「もっと早く知ってればーーーーーーーーー!」と思った。 風邪引くんじゃないかってぐらい、涼しい。 「これがあれば、友達と昼飯食べにいくために、50分ぐらい歩いて行っても大丈夫なのでは?」 大量にスプレーをしていざ参る。 「クソ暑い・・・」 そう、照りつける太陽・焼きつくようなアスファルト・申し訳程度の日傘 流石に無理だった。でも、誰が悪いかというと、炎天下の中50分歩こうと思った自分が悪い。 冷感スプレーは何も悪くない。冷感スプレーは至高。もうこれなしじゃ、夏を過ごせない。 ## Shokz OpenComm2 2025 ![骨伝導ヘッドセット Shokz OpenComm2 本体と、付属の USB ドングル](https://flow-with-tech.com/media/posts/katteyokatta/shokz-opencomm2.jpg) https://www.amazon.co.jp/dp/B0DSJBGB6S 2026年8月現在、世界は分断されている。 それは、音声入力をする人と、しない人だ。 全ての事象はこれで説明ができる。 この上なく明快で的確な指摘である。 では、音声入力をしている人は一枚岩なのだろうか。 いやそうではない。さらに細分化されるのだ。 それは、「Shokz OpenComm2」を使っているかどうかだ。 2026年8月までは、Apple の EarPods を使っていた。あのiPhoneとか買った時についてくるような、有線イヤホンで途中にマイクがついているやつだ。これも結構精度が高くて、値段もお手頃でよかった。ただ、ケーブルがあるのは完璧な状態とは呼べなかった。 そして全てを解決するプロダクトこそが、この「Shokz OpenComm2」なのである。 1. 軽い 2. 無線 3. 高性能 最も着目すべきは、軽い点だ。つけている感覚がないのである。 快適な音声入力生活を、ひいては最高の人生を送りたいのであれば、買うべきである。 自分は買ってよかった。そして最高すぎて充電するのを忘れてしまう。 ### こんな使い方もできる ケーブルがないのである程度パソコンから離れても音声入力ができる。3Dプリンターの制作用に、部屋の一部の寸法を測りたいとする。音声入力モードをオンにした状態で、コンベックスを持って寸法を計測する。そして、計測した結果を音声入力をするのだ。現場で測量をして、結果を相手に大声で伝えるのと同じといえば、分かりやすいだろう。 ## CIO Polaris CUBE Built in CABLE https://www.amazon.co.jp/dp/B0D26DXXB7 人間が生きているうちは逃れられないものがあります。 それはなんでしょうか。 死と税金と、充電です。 充電の何が問題なのでしょうか。 例えば新幹線に乗ったとします。 肘置きの先にあるコンセントに充電器を挿します。充電器自体の自重で外れたり、落ちたりします。あとは、出っ張っているので、体が当たってしまったりします。 それら全てを解決できるプロダクトが、CIO です。 ちょっとしたイベント参加・旅行・自宅デスクでの充電全てこれ1台で解決できます。 デスクにどうやって設置すればいいのかって。 たったの2ステップです。簡単ですね。 ノギスで計測をして ![CIO Polaris CUBE をノギスで実測しているところ。幅90.5mm](https://flow-with-tech.com/media/posts/katteyokatta/cio-cube-caliper.jpg) 3Dプリンターでホルダーを作るだけです ![実測値から3Dプリントした、CIO Polaris CUBE 用のデスク固定ホルダー](https://flow-with-tech.com/media/posts/katteyokatta/cio-cube-holder.jpg) ## オートミール ![減量期の朝食に使っているケロッグのオートミール(オーツ ごはん)のパッケージ](https://flow-with-tech.com/media/posts/katteyokatta/oatmeal-package.jpg) 減量期の朝食にしています。めっちゃ美味しいし、栄養価が高いし、手軽に作れるので重宝しています。 レシピ「オーバーナイトオーツ」 |材料|量(g)| |---|---| |オートミール|30| |プロテイン|30| |牛乳|150| |ナッツ|11| |冷凍ブルーベリー|25| ## 素焼きミックスナッツ by Amazon ![Amazon の素焼きミックスナッツ。1袋22g の小分けパック](https://flow-with-tech.com/media/posts/katteyokatta/mixed-nuts.jpg) https://www.amazon.co.jp/dp/B09J45Z72R ナッツを食べるときに最も困ることはなんでしょうか。 それは小分けになっているかどうかですね。 (無塩かどうかもありますが) 全てを解決する、ちょうどいい感じのやつが、Amazonの素焼きミックスナッツです。 1袋22g(145 kcal)です。最高にちょうどいいです。私は毎朝半分をオーバーナイトオーツに入れて食べています。 --- # ありたい姿を描くために、本を読む・散歩をする・定時で帰る - 公開日: 2026-08-27 - カテゴリ: column - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/aritai-sugata-wo-egaku/ - サイト: 改善紀 — 好奇心の赴くままに。 --- ![ありたい姿を描くために、本を読む・散歩をする・定時で帰る](https://flow-with-tech.com/media/posts/aritai-sugata-wo-egaku/eyecatch.png) ## はじめに 問題とは、ありたい姿と現状との差分である。だから、問題を見つけるために現状を見るだけでは不十分だ。じゃあ、問題を見つけるためには何をすればいいのか。今回は自分なりにその答えを書きます。 ## 結論 - 本を読む - 散歩をする - 定時で帰る ## ありたい姿を描くにはどうすればいいのか? ありたい姿を描くためには、知る・思いつく・考えるの3つが必要です。そのために、本を読む・散歩をする・定時で帰ることを提唱します。 ### 本を読む 何かを知るには、本を読むことが大事です。AI に聞けばなんでも回答してくれるし、余計な情報も返してくれるので、思いもよらなかったことにたどり着くこともできます。しかし、読書にはただ情報を目で追うだけでなく、自分の頭で考えるプロセスがあります。自分が持っている知識や今までに経験したこと、考え方と照らし合わせつつ、著者が言いたいことはなんなのか、ここに書いてある事例はどの程度の規模に対して適用されるものなのか、じゃあ自分の場合はどうか。読書とは著者との対話であり、自分との対話でもあります。 自分の知らないことを知るのは、外部のことに限りません。外部を知りつつ、同時に自分のことも知っていくのです。それによって、「ああ自分たちはこうなりたいな」と気づくことができます。 ### 散歩をする 思いつくためには散歩をしましょう。昔から良いアイデアを思いつくのは 3B だと言われています。Bed / Bath / Bus です。寝る時・風呂に入っている時・移動している時ですね。簡単にできて運動も同時にできるので、散歩がおすすめです。散歩をしている時に、ふとした瞬間に解決策を思いつきます。脳はその物事について意識的に考えていない時のほうが働いているそうです。デフォルトモードネットワークという仕組みだそうです。良いアイデアを思いつくのは、会議室でもなく腕を組んで考えている時でもありません。全然違うことをして、ぼーっとしている時です。積極的にぼーっとしましょう。 ### 定時で帰る 最後は「考える」についてです。考えるためには残業をしてはいけません。なぜでしょうか。1つは単純に時間を確保するためです。先ほど書いた通り、何もしていない時にこそアイデアが思いつきます。仕事の時間を増やしてしまうと、その時間が減ってしまい、気づいた頃には考える余裕すらなくなってしまいます。 2つ目は、制限があるからこそ、誰にとっても最良のありたい姿を思い描けるからです。例えば毎日朝8時から22時まで仕事をしていたらどうでしょうか。全部自分でやっていて、それで完結している。そんな状況で、業務改善のありたい姿を描けるでしょうか。別に困っていないし、それが当たり前になっている。そして気づけばそれを周りの人にも求めている。人生とは仕事だけではありません。プライベートの充実も、健康も趣味も大事です。バランスよく考えるためにも、定時で帰るべきだと思います。そして、どうにかして定時で帰りつつ、今までよりも3倍の成果を出すにはどうすればいいのか、そういう考え方をするのが良いです。 3つ目は、Be Lazy を忘れないためです。日本語だと「怠惰であれ」という、エンジニア界隈でよく言われることですね。怠惰は人のためならず、とも言えます。自分の時間を節約することは、相手の時間を奪わないことにも繋がります。例えば、チャットの文章ひとつとっても、長く書きたくないから端的に書く。必要十分な内容であれば、読む側も負担が減ります。定時で帰るという時間制限を設けることで、どうやったら楽ができるか、効率的なのか、本質的な仕事ができるかを考えるようになります。 > 🗣 本当は、残業0かつ週休3日に挑戦したいです笑 ## まとめ いかがでしょうか。普段何気なく仕事をしていると、目の前のことに追われてしまって、当たり前のことを見失うこともあるのではないでしょうか。私も今回、ありたい姿を描くことの重要性を改めて認識しました。 誰も思いつかない、でも「それめっちゃいいなあ」ってなるような、ありたい姿を描き、そのギャップを劇的に埋める。そんな仕事をしたいです。いや、私はそんな仕事をします。 --- # 【Microsoft Scout】気になるところまとめてみた - 公開日: 2026-08-26 - カテゴリ: AI・Claude Code - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/microsoft-scout-kininaru/ - サイト: 改善紀 — 好奇心の赴くままに。 --- ![Microsoft Scout を使う前に気になった6つのこと](https://flow-with-tech.com/media/posts/microsoft-scout-kininaru/eyecatch.png) ## はじめに 2026年6月にMicrosoft Scout が発表されました。2026年8月末現在、正直あまり話題になっていない感触です。今回は私がMS Learn を読んで気になったポイントを備忘録も兼ねてまとめたいと思います。 > この記事は専門家による解説ではありません。ただのいちユーザーである私が、公式ドキュメントを読んで気になったポイントを自分なりにまとめたものです。理解が追いついていないところもあるので、間違いが含まれているかもしれません。 > Microsoft Scout とは何か何ができるのかなどの基本的な情報は掲載していません。そちらについては公式ページをご参照ください。 ## MS Learn はこちらです まだ、日本語版はないようです。ブラウザの翻訳機能を使って読んでいます。 https://learn.microsoft.com/ja-jp/microsoft-scout/ ![Microsoft Scout (Frontier) documentation のトップページ](https://flow-with-tech.com/media/posts/microsoft-scout-kininaru/learn-top.png) ## 気になったポイント - Autopilot が犯した失敗の責任は誰が取るのか - GitHub Copilot クレジットの消費量 - ターミナルだけ制限するパターンが一般的なのか - サードパーティの推論パスを使う上で何を考慮しないといけないのか - オプトアウトではなく、オプトイン - パソコンをつけっぱなしで稼働させるパターンが想定されるので、PC のオンオフでの勤怠管理はどうなるのか ## Autopilot が犯した失敗の責任は誰が取るのか 新しい機能が出ると、それで何ができるのかどう仕事が変わるのかに目が向きがちです。しかし、自由には責任が伴います。では、Autopilot が犯した失敗の責任は誰が取るのでしょうか。Teams のチャットで誰かに間違った指示を送った。それによって実際に人が動いてしまった。後から判明する。それ、Scout が送ったミスチャットだと。 ### 答えらしきもの この部分が私の気になったポイントへの答えです。そういうことには使わないでね。ということですね。組織に展開するとなると、この辺りの教育やマニュアル配布が必須になりそうです。意識の啓蒙だけで防げるものなのだろうか。テナント全体でアプリ単位の使用制限や、アプリの中で例えばメールの送信機能だけはできないようにするなどできるのでしょうか。 ![「人間のレビューなしに正確性が保証される必要があるユースケースには適していません」と書かれた Responsible AI FAQ](https://flow-with-tech.com/media/posts/microsoft-scout-kininaru/intended-use.png) https://learn.microsoft.com/ja-jp/microsoft-scout/microsoft-scout-responsible-ai-faq#what-is-microsoft-scouts-intended-use ## GitHub Copilot クレジットの消費量 従量課金のAIに慣れてないので、これも気になります。しかもScout はAutopilot です。 Autopilot × 自律型 × 従量課金なのでよりコントロールが難しい。GitHub Copilot 側で各人に対してのクレジット上限設定ができるので、そっちで制限をかける感じでしょうか。 ![Autopilots は常時稼働型の AI エージェントであると説明したニュース記事](https://flow-with-tech.com/media/posts/microsoft-scout-kininaru/license.png) https://news.microsoft.com/source/asia/features/introducing-microsoft-scout-your-always-on-personal-agent/?lang=ja ## ターミナルだけ制限するパターンが一般的なのか ターミナルの操作は開発者ではない人には不要なのか。それともローカルファイルを操作するために基本的に必要なのか。 権限をカスタマイズすることもできるので、標準ルールを定める感じか。ただ、情報系の部署にいたとしても、ターミナルで何ができるのか知っている人は少ない。そもそもこれが一体何なのか何を考慮する必要があるか、ちゃんと判断できる人が必要だ。 ![シェルコマンドを実行する/シェルコマンドの権限階層のドキュメント](https://flow-with-tech.com/media/posts/microsoft-scout-kininaru/shell-permissions.png) https://learn.microsoft.com/ja-jp/microsoft-scout/use-microsoft-scout#run-shell-commands ## サードパーティの推論パスを使う上で何を考慮しないといけないのか GitHub Copilot 側でGemini やClaude を選択でき、そのプロバイダーにデータが送られますということだろうか。それなら、通常のGitHub Copilot を使用するのと同じ状態ということで、特別Scout だから考慮すべしではないのか。 ![外部AI処理(GitHub Copilot)の項目。Microsoft 365 の特定の保護機能はその処理には適用されないと書かれている](https://flow-with-tech.com/media/posts/microsoft-scout-kininaru/data-handling.png) https://learn.microsoft.com/ja-jp/microsoft-scout/microsoft-scout-responsible-ai-faq#how-does-microsoft-scout-handle-my-data ## オプトアウトではなく、オプトイン 生成AI を使用していてよくオプトアウト設定をしましょうと聞きます。Scout のページには聞き慣れない、オプトインという言葉が書いてあります。 データ収集への同意表明が必要だと認識しました。これはFrontier 機能だからなのでしょうか。しばらくすれば、オプトアウトできるようになるのでしょうか。一般的な組織で使う上でデータ収集されてもOK、とはならないと思います。気になる。 > 🗣 オプトイン・オプトアウトについてまだ十分に理解できないので、間違っているかもしれません。 ![Frontier プログラムへの登録、Intune ポリシーの構成、およびオプトインによる同意表明が必要ですと書かれたニュース記事](https://flow-with-tech.com/media/posts/microsoft-scout-kininaru/opt-in.png) https://news.microsoft.com/source/asia/features/introducing-microsoft-scout-your-always-on-personal-agent/?lang=ja ## パソコンをつけっぱなしで稼働させるパターンが想定されるので、PC のオンオフでの勤怠管理はどうなるのか 勤怠管理をPC を起動していた時刻で行なっている場合、Scout 実行のためにつけっぱなしにしてもいいですか論争が巻き起こる。制度側の変革も必要になりそうですね。 ## まとめ 皆さんはMicrosoft Scout をすでに使っていますでしょうか。まだ使ったことないですが、どう仕事が変わるのか楽しみです。 > 🗣 最近は、OneNote にMS Learn などを貼り付けてタブレット×ペンで書き込みながら情報を理解してみています。特に、MS Learn は複数のページにまたがっていたり、同じことが何度も書いてあったりするので、全体を把握するのにとても役立っています。 --- # 【Power Apps】増量期・減量期の食事を「カードゲーム」にして管理するアプリを作った - 公開日: 2026-08-17 - カテゴリ: power-platform - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/meshi-deck/ - サイト: 改善紀 — 好奇心の赴くままに。 --- ![メシデッキのデモ(EAT チェック→合計とバーが動く)](https://flow-with-tech.com/media/posts/meshi-deck/meshi-demo.gif) ## この記事を読んでわかること - 「計画を立てて数値で押さえる」を、食事という一番サボりやすい領域で成立させる仕組み - Power Apps Code Apps + Dataverse で作った実物の画面と、その裏のデータ設計(手札1枚が3役/記録は焼き込み/判定は目標レンジ) - 実機で使ってみて「これは現実と合わない」と分かった仕様を、どう作り直したか(v1 → v4.2 の記録) ## 突然ですが、「なんとなく食べる」で体は変わりましたか? 筋トレをしていると、増量期・減量期という言葉が出てきます。ざっくり言えば「意図的に太る期間」と「意図的に絞る期間」です。筋トレはトレーニングだけじゃなくて食事も大事なんですね。 そして、食事管理の成功の秘訣ははっきりしています。**メニューを固定化することです。** 毎日その場のノリで選んでいると、カロリーもタンパク質も安定しません。「今日は何を食べるか」を毎回考えるのは、意志力の無駄遣いです。決め打ちにして、あとは実行するだけにする。 ……のですが、ここで詰まりました。 **減量が初めてなので、「決め打ちメニュー」を、どう組めばいいのか分からない。** 鶏むね何グラム、オートミール何グラム、プロテイン何杯。それを朝昼夜に散らして、合計で1800kcal・タンパク質140g に着地させる。この組み合わせパズルを、私はスプレッドシートに書いたり、カロリーを調べたり、電卓で計算したり往復しながらやっていました。しんどい。 だから作りました。名前は「メシデッキ(MESHI DECK)」です。ソリューションを [GitHub で配布しています](https://github.com/Ltantan/meshi-deck)(導入方法は記事の後半で)。 ## 1. なぜ「カードゲーム」なのか 企画を考えていたとき、自分のメモにこう書いていました。 > 食品マスターに登録するものは、いわば自分が使える手札だ。 > そして、メニューを決めたものが勝負する時のデッキのようなものだろう。 > そして食べたかどうかの記録は、勝敗の実績のようなものだ。 これは単なる言葉遊びではなくて、**そのまま設計になりました**。 - **手札(HAND)** = 食品マスター。自分が使える駒。ここに無いものは戦力にならない - **デッキ(DECK)** = 期間メニュー。「減量1800」のように目標を決めて、手札から選んで積む - **勝敗(TODAY / RESULTS)** = 毎日の実食記録。食べたらチェック、その日の合計で判定 そして、使い切った手札は買い足す必要がある。**買い出し(SHOP)** です。 ![メシデッキ 1周のながれ](https://flow-with-tech.com/media/posts/meshi-deck/fig-flow.png) 計画(デッキ)→ 実行(EAT)→ 判定(COMPLETE/未達)→ 補給(買い出し)が、1つのアプリの中で閉じています。これが「何かをやるためには計画を立てて数値で押さえる」の、私にとっての具体形です。 ## 2. 手札 —— 1枚のカードが3つの顔を持つ 手札の画面です。トレーディングカードのステータス面をイメージして、kcal と PFC(タンパク質・脂質・炭水化物)を大きく出しています。 ![HAND 手札一覧](https://flow-with-tech.com/media/posts/meshi-deck/hand-cards-after-merge.png) 見ていただきたいのは、**性質のまったく違うものが同じカードの形で並んでいる**ことです。 - 「オートミール」= 素材そのもの(30g あたり105kcal) - 「オーバーナイトオーツ」= レシピ(オートミール+プロテイン+豆乳+ブルーベリー) - 「社食ヘルシーランチ」= 外食(毎日中身が変わる) ここに至るまでに1回、設計をやり直しています。 ### 「食べる単位」と「買う単位」でマスタを2本に分けたら破綻した 最初のバージョンでは、**手札(食べる単位)とは別に「素材マスタ(買う単位)」を作りました**。買い出しリストを出すには「1Lパックで買う」という購入単位の情報が必要なので、それは別テーブルだろう、と考えたわけです。 実際に自分のデータを入れ始めて、すぐチグハグになりました。 牛乳が、手札にも素材マスタにもいる。オートミールも両方にいる。同じものを2箇所で管理していて、どちらを直せばいいのか自分でも分からない。素材から手札を作るショートカットまで用意したのですが、それは**構造の歪みを動線でごまかしていただけ**でした。 ![統一する前の手札(素材が手札に居ない状態)](https://flow-with-tech.com/media/posts/meshi-deck/hand-cards-before-merge.png) そこで、**マスタを1本に統一**しました。手札カード1枚が、3つの顔を持つ形です。 ![データ設計の3つの芯](https://flow-with-tech.com/media/posts/meshi-deck/fig-data.png) - **食べる** —— デッキに積んで、EAT で記録される - **材料になる** —— 別のレシピカードの構成要素になる - **買い出しに出る** —— 購入単位(1Lパック=1000ml など)を入れておけば、買い出しリストに並ぶ 役割はテーブルで分けるのではなく、**「その列を埋めたかどうか」で決まる**ようにしました。社食のように買い物対象でないカードは、購入単位を空にしておけば自然に買い出しから外れます。分岐を書かなくていいのが気持ちいいところです。 編集画面はこうなっています。「栄養の基準(この値は何あたりか)」が芯で、その下に材料、折りたたみで買い物情報。 ![手札の編集画面](https://flow-with-tech.com/media/posts/meshi-deck/hand-edit-card.png) ## 3. レシピの栄養は、自分で計算しない 統一のいちばん大きな果実がこれです。 私は毎朝オーバーナイトオーツを食べています。オートミール30g、プロテイン1杯、無調整豆乳150ml、冷凍ブルーベリー50g、小分けナッツ1袋。これの kcal と PFC を、以前は**電卓で足して手で入力していました**。 材料が手札カードになったので、あとは合算するだけです。 ``` 1材料の寄与 = 使う量 ÷ 材料の基準量 × 材料の栄養 レシピの栄養 = Σ 全材料の寄与 ``` これで **384kcal / P37.5 F12.6 C36.3** が自動で出ます。しかも材料側の値(たとえばプロテインを別の製品に変えた)を直すと、**それを使っている全レシピが再計算されて保存されます**。 ここで1つ、意地を張ったところがあります。 **材料の栄養が1つでも空なら、自動計算しません。** 「⚠️ 材料の栄養が未入力(手動値のまま)」のバッジを出して、正直に止まります。空欄を0として合計に混ぜてしまえば数字は出ますが、それは**間違った数字が正しい顔で出てくる**という一番よくない状態です。栄養の一般値を勝手に埋めるのも、私は嫌でした(自分が買った製品の値は、自分でパッケージを見るのが正しい)。 ## 4. デッキ —— 積みながら数字が動く ここがこのアプリの核です。「どう組めばいいのか分からない」への回答なので。 ![デッキ編成画面](https://flow-with-tech.com/media/posts/meshi-deck/deck-builder-daytype.png) 左が手札、右がスロット(朝/昼/夜/間食)。手札にチェックを入れて「まとめて積む」で流し込みます。 ![手札をチェックしてまとめて積む](https://flow-with-tech.com/media/posts/meshi-deck/deck-builder-bulk-add.png) そして上の黒い帯。**積んだ瞬間に合計 kcal と PFC が、目標対比で更新されます。** - 目標1800 に対して 1775、あと -25 - P は 134.5g / 140g で「残り5.5g」 - C は 199.3g / 177g で **「超過22.3g」——ここだけ赤くなります** 赤は超過と削除にしか使わないルールにしました。色が意味を持っていないと、画面はただ賑やかになるだけなので。 バーの幾何も少し工夫していて、**バーの全長は「実績と目標の大きい方」**にしています。こうすると目標ラインの位置が動かず、超過したぶんだけ右に赤が伸びる。目標以下のときはボルトイエローが目標ラインに向かって伸びていく形になります。 ## 5. 現実は、計画どおりに食べさせてくれない ここから先は、**実際に自分で使い始めてから分かったこと**です。企画段階では1つも思いついていませんでした。 ### (a) 出社の日と在宅の日で、昼が違う 会社に行く日は社食。家にいる日はおにぎりと味噌汁と卵。休日はまた別。 最初は「出社デッキ」「在宅デッキ」の2本を作って切り替えていましたが、これは間違いでした。デッキは「期間の勝負」の単位なのに、日ごとの都合で分けてしまうと、期間の集計がバラバラになる。 そこで**1つのデッキの中に「日タイプ」を持たせました**。カードに「毎日/出社/在宅/休日」のタグを付けて、TODAY の画面で「今日は出社」と宣言すると、その日に該当するカードだけが並びます。 デッキ一覧では、こう見えます。 ![デッキ一覧のレンジ表示](https://flow-with-tech.com/media/posts/meshi-deck/deck-list-range.png) **1225〜1855 kcal**。日タイプごとに合計が違うので、単一の数字ではなくレンジで出す。内訳(出社1775/在宅1855/休日1225)も添えます。 ……これ、最初はバグっていました。編成画面が1726と言っているのに、一覧は2356と言う。原因は**一覧側が日タイプを無視して全カードを合算していた**からです。「毎日のカード+出社のカード+在宅のカード+休日のカード」を全部足した数字は、**現実に存在しない日**の合計でした。 ### (b) 社食は、日によって中身が変わる 「平均するとこのくらいのカロリー」は分かる。でも実測は違う。 これは**「変動メニュー」フラグ**で受けました。変動メニューの手札は1タップ EAT ではなく、軽いシートを挟みます。 ![変動メニューの当日値上書き](https://flow-with-tech.com/media/posts/meshi-deck/variable-menu-override.png) 目安値(550kcal / P30 F18 C60)がプリフィルされているので、**そのままでよければ確定を押すだけ**。トレーに表示があった日は、その場で当日値に直して記録する。手間は1タップ増えるだけで、記録の精度が上がります。 ### (c) 週に1食は、好きなものを食べたい これは「チート宣言」🔥です。記録するときに「これはチート」と宣言できます。 週1枠までは判定から除外されます。ただし**枠を使い切った状態でもう1回宣言したら、「今週の枠は使用済み(この記録は判定に算入されます)」と正直に告げた上で、宣言自体は許可します**。禁止はしない。ごまかしもしない。 そして画面の特大数字は、**チート込みの実合計**を出します。判定だけがチートを除外する。都合のいい数字を大きく出す作りにはしたくなかったので。 ## 6. チェックは「行が存在すること」=食べた データ設計でいちばん気に入っているところです。 食べたかどうかを表す **Boolean 列(食べたフラグ)は作っていません**。EAT を押したら記録の行を作り、チェックを外したら行を消す。それだけです。 真実がひとつの場所にしかないので、「フラグは true なのに記録が無い」みたいなズレが構造的に起きません。 そしてもう1つ。**記録するときに kcal と PFC を数値としてコピーして保存しています**(スナップショット)。 なぜかというと、手札の値は後から直るからです。プロテインを別製品に変えた、社食の目安を修正した、単位の基準を30gから40gに直した。**そのたびに過去の記録の数字が全部変わってしまったら、記録の意味がありません。**「先月は間違った数字で計算してたことになる」が起きないように、記録した瞬間の値を焼き込んでいます。 だから手札を削除しても、過去の実績は無傷です(画面にも「過去の記録は消えません」と書いてあります)。 ## 7. 「勝ち負け」をやめた話 最初のバージョンの判定は、シンプルにこうでした。 **予定メニューを全部消化したら WIN。** カードゲームのメタファーとしては綺麗です。実際に使ってみて、1週間で破綻しました。 **ほとんどの日が LOSE になる**のです。社食が変わる、チートする、そもそも夜に食べきらない。そして最悪だったのは、**LOSE の理由が分からない**ことでした。数字は画面に出ているのに、「じゃあ何を直せばいいのか」が読めない。 作り直しました。 ![「勝ち負け」から「COMPLETE/未達」へ](https://flow-with-tech.com/media/posts/meshi-deck/fig-judge.png) 変えたのは2つです。 **① 判定の基準を、消化率から「合計が目標レンジに入ったか」へ。** - 減量なら:判定kcal ≦ 目標 - 増量なら:判定kcal ≧ 目標 - 維持なら:|判定kcal − 目標| ≦ 目標の10% - + タンパク質の目標があれば:判定P ≧ P目標(F と C は判定に使いません) メニュー消化率は「参考」に降格させました。何を食べたかではなく、**結果としてどこに着地したか**で見る。自由記入も社食の実測も合計に入るので、これで自然に反映されます。 **② 言葉を変えて、理由を必ず添える。** WIN → **COMPLETE**、LOSE → **未達**。煽る赤枠をやめて、ニュートラルな黒枠にしました。そして未達のときは、**その理由を必ず1行出します**。 ![TODAY 未達と理由の表示](https://flow-with-tech.com/media/posts/meshi-deck/today-miss-reason.png) 「**P あと102.5g**」。これです。ずっと LOSE だった正体は、たいていタンパク質の僅差の未達でした。それが表示されるようになった瞬間に、この画面は「責める画面」から「次の一手が分かる画面」になりました。 記録がゼロの日は「記録なし」です。**負けではありません。** つけ忘れた日を負けにするアプリは、たぶん使い続けられません。 ## 8. 買い出しリスト —— コピーしてスーパーへ デッキが決まっていれば、必要な食材の量は計算できます。 ![SHOP 買い出しリスト](https://flow-with-tech.com/media/posts/meshi-deck/shop-list.png) 計算はこうです。 ``` 必要枚数 = Σ(カードの数量 × その日タイプの日数) 素材の必要量 = Σ 材料の使用量 × 必要枚数 不足量 = max(0, 必要量 − 在庫) 購入数 = ceil(不足量 ÷ 購入単位の内容量) ``` 「牛乳 必要1050ml/在庫— → 1Lパック ×2」。**購入単位で切り上げる**のがポイントで、1050ml 必要なら1パックでは足りないので2パック買います。 日タイプ別の日数はステッパーで指定します。プリフィルは TODAY で宣言済みの実績が入り、**未割当の日数はごまかさず「未割当4日/全7日」と表示**します。 買い出し期間はデッキの期間でクランプしています。デッキが終わった後の日数分まで買わせても意味がないので。 このタブの完成判定は、最初から1つだけ決めていました。**「次の買い出しで、コピーしたテキストだけを見て買い物を完了できる」。** これを満たさない作り込みはしない、と。 ## 9. 記録 —— 数値で押さえるということ RESULTS タブです。COMPLETE率、カレンダー、kcal推移、PFC推移、デッキ別サマリ。 ![RESULTS 記録ダッシュボード](https://flow-with-tech.com/media/posts/meshi-deck/results-dashboard.png) カレンダーの斜線は「記録なし」の日です。チート使用日には🔥が付きます。kcal推移では、チートで判定対象と実合計が乖離した日だけ2つの値が出ます。 スクショの COMPLETE率が 0% なのは、**実データがまだ2日しかないから**です(この記事を書いている時点で、作り直した判定ロジックで動き始めたばかり)。ここは正直に載せておきます。数字が育つのはこれからです。 ## 10. 作り方の話(Claude Code に丸投げした部分) 技術構成はシンプルです。 - **Power Apps Code Apps**(React + TypeScript) - **Dataverse** テーブル6本(手札/デッキ/デッキカード/記録/レシピ明細/日レコード) - **コネクタ0本、フロー0本**(アプリとデータベースだけ) 作り方の面で書いておきたいのは、**「実機で使う → 気づく → その日に直す」を何周も回した**ことです。 私が書いたのは仕様と裁定で、コードはほぼ Claude Code に書かせています。だから改修が速い。朝に「デッキ一覧の合計がおかしい」と気づいて、夜にはレンジ表示になっている、くらいのスピードで回りました。 バージョンの履歴だけ並べるとこうです。 | 版 | やったこと | |---|---| | v1 | 手札/デッキ/勝敗の3本柱。EAT のタップ1回、スナップショット | | v1.1 | PC対応、EAT音、超過の赤、アクティブデッキ排他 | | v1.2 | HAND に Excel 風グリッド(TSV ペースト対応) | | v1.3 | 備考欄(レシピの作り方メモ)、手札削除 | | v2.0 | 買い出しリスト(SHOP タブ)+ 素材マスタ ← ここで分けたのが失敗 | | v3.0 | 日タイプ、チート宣言、変動メニュー、判定を目標レンジへ | | v4.0 | **マスタ統一**(素材マスタ廃止)+ レシピ栄養の自動計算 | | v4.1 | WIN/LOSE → COMPLETE/未達、未達理由の表示 | | v4.2 | HAND のレイアウト圧縮(フィルタを1行に、ボタンをタイトル行へ) | 最後の v4.2 は純粋にレイアウトだけの改修ですが、これも実機発の指摘です。「フィルタが縦に4段あって、手札一覧に使える面積が狭い」。 ![v4.2 フィルタを1行に圧縮](https://flow-with-tech.com/media/posts/meshi-deck/hand-filters-one-row.png) そして**自動検証を191項目**書いています。EAT を押したら合計がちゃんと動くか、チェックを外したら戻るか、手札の値を変えても過去の記録が動かないか、390px 幅で横スクロールしないか、ボタンの背景と文字が別色か(黒地に黒文字を1回やったので)。 期待値は検証コード側に**別実装で書き直して突合**しています。アプリの計算式をコピーしてきたら、間違いも一緒にコピーされて何も検証していないことになるので。 ……とはいえ、191項目 ALL PASS でもスクショの目視で不具合が見つかったことが何度もありました(削除ボタンが白いまま、`**強調**` の記号が画面に生で出ていた、など)。**機械検査は目の代わりにはならない**というのが、いちばん実感した教訓です。 ## 11. 配布しています(GitHub) 「使ってみたい」という方のために、**ソリューションパッケージを GitHub で公開しました**。 **[github.com/Ltantan/meshi-deck](https://github.com/Ltantan/meshi-deck)** このアプリは Solution `MealDeck` にまとまっていて、**中身はアプリ本体と Dataverse テーブル6本だけです**(コネクタもフローも使っていません)。なので配布はシンプルで、リポジトリの `solutions/` にある zip を自分の環境にインポートするだけで動きます。**エクスポート→別環境インポートで動くことは実機で確認済みです。** 使う側の前提として、こうなります。 - **Dataverse が使える環境**が必要です(Power Apps のプレミアムライセンス。開発用なら無償の Developer Plan 環境でも動きます) - **データは付いてきません。** 手札の中身(自分が食べているものの kcal と PFC)は、使う人がゼロから入れることになります - そして正直に言うと、**このアプリは私の食生活の形に最適化されています**。社食があって、出社と在宅が混ざって、朝はオーバーナイトオーツ。ここが違う人には、たぶん別の形が正解です なお、公開しているのはソリューション(ビルド済みのアプリ)だけで、ソースコードは含めていません。改造したい・ソースが見たいという方は、リポジトリの Issue で声をかけてください。 とはいえこの記事で持って帰っていただきたいのは、アプリそのものより**設計の考え方**のほうです。記録は焼き込む、フラグは作らない、判定には理由を添える、埋まっていない数字は正直に空にする。この4つは、たぶん食事以外の記録アプリでも効きます。 ## まとめ 食事管理アプリは世の中に山ほどあります。私が作ったものより、たぶんどれも高機能です。 それでも自分で作ってよかったのは、**「自分が何を計画して、実際どうだったか」を数値で押さえる形を、自分の生活の形に合わせて決められた**ことでした。出社と在宅で昼が違うのも、社食の値がブレるのも、週1でチートするのも、全部私の事情です。既製品はそこまで面倒を見てくれません。 そして何より、この一連の作業でいちばん効いたのは、アプリではなく**「メニューを決めて、数字で答え合わせをする」という行為そのもの**でした。1800kcal に対して1775。P はあと5.5g。この2つの数字が毎日見えるだけで、コンビニの前で立ち止まれるようになります。 何かを本気でやるなら、計画を立てて数値で押さえる。当たり前のことなんですが、当たり前をサボらないための装置を、私はどうしても作らないと用意できないタイプでした。 皆さんもぜひ、自分の生活の形に合った「押さえ方」を作ってみてはいかがでしょうか。 (ちなみに、こんなに立派な仕組みを作ったのに、この記事を書いている時点での COMPLETE率は 0% です。装置は完成しました。あとは食べる人間の問題です……) --- # 【3Dプリント】サプリを一粒だけ出したい。3回作り直して、最後は先人に倣った話 - 公開日: 2026-08-15 - カテゴリ: column - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/pill-dispenser-3d-print/ - サイト: 改善紀 — 好奇心の赴くままに。 --- ![サプリを一粒だけ出したい。手描きのスケッチを散りばめたアイキャッチ](https://flow-with-tech.com/media/posts/pill-dispenser-3d-print/eyecatch-pill-dispenser.png) 私は毎日、マルチビタミンとクレアチンを飲んでいます。ボトルから錠剤を出すとき、毎回思います。必要な分だけパッと出てきたらいいのに。 たいした手間ではありません。でも毎日やっていると、**一粒だけ出てくる容器がほしい**と思うようになりました。 そして私は3Dプリンターを持っています。じゃあ作ればいい。そう思って作り始めたら、**完成まで3回作り直すことになりました**。今回はその記録です。 /veranda-groove-hera-3d-print/ ## この記事を読んでわかること - 「頭の中で完璧に動く機構」が、現実では普通に詰まるということ - 失敗するたびに、次の設計の制約が1つずつ増えていく感覚 - 自分のアイデアと、先人のやり方に倣うこと。どちらも要るという話 ## 全てはこの1枚のスケッチから始まった マルチビタミンとクレアチン、それぞれ一粒だけ出てくるディスペンサーを作りたい。こんな機構にすれば作れるんじゃないか。そう考えて描いたのがこれです。 ![手描きのスケッチ。上から錠剤を入れて、一粒だけ出す機構のアイデアと、錠剤の実寸](https://flow-with-tech.com/media/posts/pill-dispenser-3d-print/pill-dispenser-sketch.png) まずノギスで錠剤を測っています。クレアチンが22.5×11.3×7.8mm、マルチビタミンが20.2×8.9×7.7mm。**ここが全ての出発点**で、この数字が決まらないと「一粒だけ通る穴」のサイズが決まりません。 > 🗣 3Dプリンターにノギスは必須だと思います。ノギス最高。 ## 初号機:完璧なシミュレーションは、完璧なのか? ### シミュレーション まず、ボトルの底に横向きの引き出しをつけて、そこに一粒だけ落として引っ張り出す機構を考えました。画面の中では、これは完全にキテる。うまくいく気しかしない。 ![初号機のシミュレーション。引き出しに一粒だけ落ちて、そのまま出てくる](https://flow-with-tech.com/media/posts/pill-dispenser-3d-print/v1-simulation.gif) ### 結果 うまく動作しませんでした。 確かに、たまに一粒だけ出てくることはあります。でも実際には、**2つ目の錠剤が詰まって全然出てこない**ことがたびたび発生しました。錠剤は寝てくれるとは限らなくて、縦に立ったやつが穴の上で渋滞します。 そしてもう1つ、設計と関係ないところで問題がありました。**ボトル全体を3Dプリンターで作ろうとすると、容量が大きくなりすぎる**のです。材料もたくさん使うし、印刷にすごいコストと時間がかかる。1回試すのに何時間もかかっていたら、試行錯誤の回数を稼げません。 ### 改善点 - ボトル全体を印刷しないことによる、コストの最適化 - 押し出しの機構がどうしても詰まってしまうので、そのあたりの事前の選別 ## 二号機:既存の容器を使うという、発想の転換 そもそも、ボトル全体を作る必要はありません。**市販のボトルをカポッとはめられる形状**にすれば、印刷する体積は最小限で済むし、試行錯誤をスピーディーに回せるのではないか。そう考えた結果が二号機です。 ### 印刷した結果 たまに1個だけ、ちゃんと出てきます。 ![二号機の動作。錠剤が詰まって出てこない](https://flow-with-tech.com/media/posts/pill-dispenser-3d-print/v2-jam.gif) でも、いい感じにいくと思われた設計でも、現実では**2つ出てこようとした錠剤が詰まって**うまく機能しませんでした。ものづくりって難しい。 引き出しを引く、という動作そのものに無理がありました。錠剤が横に並ぼうとする力を、こちらは「引く」方向で断ち切ろうとしている。この構図がある限り、噛むときは噛みます。 ### 改善点 - 錠剤が下に落ちる**重力の力を使う**。引き出しのような形状ではなく、まったく違った発想の転換が必要だ - その場合、既存のボトルを使うという方式が取れないので、そのあたりも完全な転換が必要 ## 最終形態:アイデアと、先人の結合 重力に従って鉛直方向下向きに落ちてくる錠剤を、横に引き出す。この方向性はもう使えません。 じゃあ逆に、**容器の中に、下からそびえ立つような杭が上下する**。そんな仕組みを作れたら、杭のてっぺんに残った一粒だけが上に出てくるのではないか。そう発想を転換しました。 同時に、それってすでにやっている人がいないのかな、ということで検索もしました。 ### 偉大なる先人 > [Gum Dispenser | Gum Bottle | Gum Box](https://makerworld.com/en/models/1902522-gum-dispenser-gum-bottle-gum-box#profileId-2039221)(Matthew Ghost 氏 / MakerWorld) **自分が実現したいことを、既に成し遂げている先人の方を発見しました。** こちらの方はガムが一粒だけ出てくる容器を開発されていましたが、まったく同じ機構がマルチビタミンにも適用できると考えた私は、この機構を参考にしてモデルの開発を行いました。 なお、参考にしたのは**動作の原理**で、形そのものを流用したわけではありません。錠剤の実寸が違うので、ポケットの大きさも漏斗の角度もストロークも全部違う数字になります。 ### 成果物 こうして出来上がったのが、このモデルです。 ![完成したディスペンサー。円筒形で、天板に錠剤1粒ぶんの穴が開いている](https://flow-with-tech.com/media/posts/pill-dispenser-3d-print/v3-model-closed.png) 断面で見ると、中身はこうなっています。 ![断面図。すり鉢状の漏斗の中央に、杭のような柱が立っている](https://flow-with-tech.com/media/posts/pill-dispenser-3d-print/v3-model-cutaway.png) ボトルの側面を持ち、上方向に持ち上げると、すり鉢状になった底面も同時に上にせり上がります。それによって、ボトルの天端に位置していた杭のような形状のものが、ボトルのちょうど底面に位置することになる。そこに一粒だけ残り、**天板に開けた穴から一粒だけ抽出できる**というものです。 ![完成品の動作。持ち上げて下ろすと、天板の穴に一粒だけ顔を出す](https://flow-with-tech.com/media/posts/pill-dispenser-3d-print/v3-demo.gif) 一往復で一粒。マルチビタミンは120錠が全部入って、実機でちゃんと動きました。 > 🗣 ここまで来るのに、失敗作の山ができました。フィラメントはそこそこ減りました。普段やっているようなPower Platformだと、失敗しても失うのは時間だけですが、現実世界に何かを生み出すと、そのためのコストがちゃんと金額に跳ね返ってくるのが痛いところですね。 ## 詰まったところ 最終形態も、一発では動いていません。実機で組もうとしたら**部品が入らない**という、いちばん間抜けな失敗をしています。そこで学んだことを3つだけ。 ### 1. 目で見て分からない不具合は、数字で測る 「入らない」の原因が、外から何時間見ても分かりませんでした。3Dモデルは外形が正しく見えていても、**内側が中身の詰まった塊になっている**ことがあり得ます。外から見えないので、画面をいくら回しても気づけません。 これは、2つの部品を重ねて「重なった部分の体積」を計算させると一発で分かります。本来ゼロであるべきところに45cm³ぶんの重なりが出て、そこで初めて犯人が分かりました。**目視は、内側について何も保証してくれません。** ### 2. 印刷した穴に、印刷した棒を圧入するのは博打 軸を「きつめに差し込んで固定する」設計にしていたのですが、これは入りませんでした。3Dプリンターの寸法は、部位によって縮んだり縮まなかったりします。実際、薄くて背の高い部品は直径が1mm縮んでいたのに、小さい穴はぴったり設計どおりに出ていました。 なので、**固定する役目と、位置を決める役目を、1つの箇所に兼ねさせない**。荷重は広い面で受けて、軸はスカスカでいい。そう分けたら素直に組めるようになりました。 ### 3. 「たぶん15mmくらい伸ばせばいい」は、だいたい外れる 部品の高さが合わなかったとき、感覚で「15mm伸ばそう」と考えました。**正解は4mm**でした。しかもその4mmは、他の部品の厚みから計算で出せる数字でした。勘で決めた数字を書き込んだ時点で、その設計はもう検算できなくなります。 ## まとめ 今回の取り組みで感じたのは、**自分の中から湧き出るアイデアと、すでに世間に広まっている手法から学んで倣うこと、そのどちらも大切だ**ということです。 最初のスケッチがなければ何も始まりませんでしたが、最後は先人の機構に倣わなければ完成しませんでした。オリジナルであることにこだわって3回目も自力で突っ張っていたら、たぶん今も詰まった錠剤を眺めていたと思います。 そして、自分のアイデアを具現化するというのは、ただ正解を導き出すだけの作業ではありません。試行錯誤をすることであったり、自分の勘や直感が正しいのかどうかの答え合わせができる。**いわばこの世界に対する、たった一人で挑む挑戦**なのではないかと思います。そしてその過程にこそ、ものづくりの喜びがあるのだと、とても強く感じました。 ただの効率化オタク、生産性オタクではなく、そういった世界に対する挑戦ができる人でありたい。今回の取り組みで、また一つ何かを生み出すことができました。 自分なりの世界への答えがこれだ、というのを示せたのではないかと思っています。 楽しかったです。 ちなみにクレアチンは1日3錠摂取するんですが、できれば3錠ぴったり出てくるようにしたいなと思っているので、まだ制作にすら取り掛かっていません。 --- # 見えないハチの巣を、床のゴミから特定した話。〜「見えないもの」を痕跡から推定する〜 - 公開日: 2026-08-14 - カテゴリ: column - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/hachi-nest-inference/ - サイト: 改善紀 — 好奇心の赴くままに。 --- ![アイキャッチ](https://flow-with-tech.com/media/posts/hachi-nest-inference/eyecatch.png) ## この記事を読んでわかること - 直接観察できない対象を、間接的な痕跡から推定していくプロセス - 「見えない=存在しない」ではなく「見えない場所がある」に発想を切り替える方法 ## 突然ですが、「見えないものの位置」を当てたことはありますか? ある日、私は自宅のベランダから、**隣のベランダのどこかにあるはずのハチの巣**を探していました。 姿は見えない。でも、たしかにそこにある気がする。 結論から言うと、最終的に私は巣の場所を特定した……かもしれません。それも、**巣そのものを一度も見ないまま**です。 決め手になったのは、隣のベランダの床に落ちていた、鳥の糞みたいな白いカスでした。 今日はその推理の過程を書きます。ハチの話に見えて、実は「観測できないものをどう扱うか」という話でもあります(ということにしたいです)。 ## 序章:女王蜂の偵察 1ヶ月ほど前の出来事です。 いつものようにパソコンに向かっていると、視界の先で何やら大きな影が蠢いていました。ベランダの窓の向こうを、**やたらとおっきい蜂が行ったり来たりしている**のです。 この時期にあの飛び方をするということは、たぶん女王蜂が営巣できる場所を探している。頼むから自分の生活圏内に巣を作るのはやめてほしい。そう願うばかりでした。 ![窓の外を飛ぶアシナガバチのスケッチ](https://flow-with-tech.com/media/posts/hachi-nest-inference/bee-sketch.png) (写真を撮る余裕はなかったので、このときの光景を思い出しながら描きました) しかも、目撃したのは1度ではありません。何日かにわたって、同じような光景を見ていました。 ……気になります。 ## 発端:ゲリラ豪雨の日の違和感 決定的だったのは、夏のゲリラ豪雨の日でした。 雨が激しく降るのをベランダからぼーっと眺めていたら、視界を虫が横切りました。アシナガバチです。後ろ脚をだらんと垂らして飛ぶ、あの独特のシルエット。 > 🗣 一度刺されたことがあるので、アシナガバチを見ると警戒モードに入ります(怖い)。 そのハチは隣のベランダに入っていき、**しばらくして飛び立ち、またすぐ隣のベランダに戻ってきた**のです。それを何度か繰り返している。 ここで違和感が生まれます。餌を探しているだけなら、飛び立ったらもっと遠くまで行くはずです。短い間隔で同じ場所に戻ってくるのは、**そこが拠点になっている**動きに見える。 しかも雨の日です。わざわざ豪雨のなかを飛んで戻ってくる場所といえば、巣くらいしか思いつきません。 **隣のベランダに巣があるのでは?** これが最初の仮説でした。 ## 第一段階:見える範囲を、片っ端から潰す 仮説が立ったので、次は検証です。 とはいえ隣の家なので、当然入れません。私にできるのは「自分のベランダから見える範囲を、目を凝らして見る」だけです。 確認したのはこのあたりでした。 - 隣のベランダの手すり周り - 室外機 - ベランダの天井 結果。 **何も見つかりませんでした。** ここが最初の壁です。見える範囲は全部見た。でも巣はない。 > 🗣 そんな簡単に見える位置に巣なんて作らないよなあ。 ## 第二段階:記憶の隅にあった「跡」 しばらく考えていたときに、ふと別の記憶が浮かびました。 そういえば隣のベランダの床、**鳥の糞みたいな白い跡がついてたな**、と。 以前ベランダに出たときに視界に入っていたはずなのに、「鳥かな」で処理して、それきり忘れていた情報です。今思えば、鳥が止まれる場所なんてないのに鳥のふんがあるなんて、おかしいですよね。 このとき初めて、**探す対象を「巣」から「巣の痕跡」に切り替えました。** そこでネットで「アシナガバチ 巣 下 ゴミ」みたいなキーワードで調べてみたところ、見事にヒットしました。アシナガバチの巣の真下には、こういうものが落ちるらしいのです。 - **黒い粒状のもの** … 幼虫が蛹になる直前にまとめて出す糞。働きバチが巣の外に運び出すので、真下に溜まる - **白いカス状のもの** … 幼虫が蛹になるときに作る繭のフタ。羽化のときに削られて落ちる つまり、**黒い粒と白いカスが一箇所にまとまって落ちている=真上に巣があって、しかも世代が回っている**ということです。 駆除業者さんのブログに載っていた事例写真と、隣のベランダの見え方が、驚くほど一致していました。 ![隣のベランダの床に落ちていた黒い粒と白いカス](https://flow-with-tech.com/media/posts/hachi-nest-inference/debris.jpg) ## 第三段階:「見えない場所」が存在することの証明 ここで話が繋がります。 痕跡があるのは、**隣のベランダのガス給湯器の、ほぼ真下**でした。 でも私はさっき、見える範囲を全部確認したうえで「巣はなかった」と結論を出しています。真上に巣があるはずなのに、その真上には何も無い。矛盾しています。 ……いや、待てよ、と。 **給湯器の中って、どうなってるんだ?** そこで、自分の部屋のガス給湯器を下から覗いてみました。同じマンションなので、構造は同じはずです。 覗いてみると、給湯器の下部は**カバーの内側が空洞になっていて、配管がむき出しで通っている**のがわかりました。上は完全に覆われていて、雨も当たらない。 これはもう、**アシナガバチにとって最高の物件**なのでは。 そしてこの瞬間、さっきの矛盾が解消しました。 私は「見える範囲を全部見たから巣はない」と考えていましたが、正しくは「**見えない場所があることに気づいていなかった**」のです。 ![見える範囲を全部見たのに巣が見つからない図。痕跡の真上には、外からは覗けない給湯器のカバーがある](https://flow-with-tech.com/media/posts/hachi-nest-inference/hidden-space.png) (こういう状況でした。床には粒が落ちているのに、その真上は「見えている」つもりで実は何も見えていない) - 痕跡がある(=真上に巣がある) - 痕跡の真上には給湯器がある - 給湯器の内部は空洞で、外からは見えない この3つを繋ぐと、いちばん筋が通る答えはひとつしかありません。 **隣の部屋のガス給湯器の内部に、アシナガバチが営巣している可能性が高い。** 歯切れが悪いですが、ここは「営巣している」と言い切れません。**私は巣を見ていない**からです。見ていないものを見たことにするのは、推定ではなくただの願望になってしまう。なので現時点では「可能性が高い」で止めておきます。 ## 推定の全体像 ここまでの流れを整理すると、こうなります。 | 段階 | やったこと | 結果 | |---|---|---| | 観察 | 豪雨時の往復飛行を目撃 | 近くに巣がある仮説 | | 直接検証 | 見える範囲を総当たり | **失敗**(巣は見えず) | | 発想の転換 | 探す対象を「巣」→「痕跡」へ | 白い跡を思い出す | | 文献照合 | 痕跡のパターンを調べる | 蛹便+繭のフタと一致 | | 構造の確認 | 自室の同型機を下から観察 | 内部が空洞と判明 | | 結論 | 痕跡の位置+空洞構造を接続 | 給湯器内部に営巣の可能性大 | 見えないからどうしようもないな、で終わらせずに、観察した点と点をつなぎ合わせて線にする。それだけで、ここまで絞り込めてしまいました。 (もしかして、名探偵なのでは・・) ## 1を見て100を知る 見えるものだけで証拠が見つからないのであれば、**見えないものにこそ証拠がある**のではないか。 私がやったのは、そういう考え方でした。見える範囲の「1」——往復する飛び方、床に落ちた粒、給湯器という設備——を並べて、これとこれを繋ぐとどういうことが起きているのか、つまりどういうことなんだ、と考える。そこから見えない「100」のほうを言い当てにいく。 そして、そのうえでもう一度、答え合わせに戻ってくる。 この一連の流れが、私は結構おもしろいし、**どうも結構好きらしいです**。ハチの巣を見つけたかったというより、こっちがやりたかっただけなのかもしれません。 ## まとめ 今回わかったことを3行で。 - 直接見えないものでも、**痕跡+構造**を突き合わせれば位置は推定できる - 行き詰まったら、探す対象を「本体」から「本体が残すもの」に切り替える - 「見えない」は「存在しない」ではなく、「**見えない場所がある**」のサイン ベランダから始まった話が、なぜか思考法の話に着地してしまいました。でも、観察して、仮説を立てて、外して、視点を変えて、また検証する。たぶん普段からずっとこんなことをしてるんだと思います。 いまは管理会社さんに連絡を入れて、返信を待っているところです。とはいえ、他人の家の設備の中の話なので、駆除まで動いてもらえない可能性のほうが高いかなとも思っています。 その場合は、隣のベランダでアシナガバチが繁殖をする・・。(かもしれない) そうなったら、それはもう答え合わせです。巣を一度も見ないまま組み立てた仮説が、秋になって向こうから証明しにきてくれる。刺されるのは勘弁ですが、その瞬間だけは、ちょっと見てみたい気がしています。 日々の観察メモや失敗談は X([@kama_bizdev](https://twitter.com/kama_bizdev))でも発信しています。よかったら覗いてみてください。#FWTan2 --- # 【ライフログ】マイナ運転免許証を取得したいログ(取得編) - 公開日: 2026-08-13 - カテゴリ: LifeLog - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/maina-drivers-license-issued/ - サイト: 改善紀 — 好奇心の赴くままに。 --- ![運転免許センターでマイナ免許証を受け取るまで(取得編)](https://flow-with-tech.com/media/posts/maina-drivers-license-issued/eyecatch-maina-license-issued.png) 前回、デジタル庁から警視庁、そして予約サイトへと辿って、マイナ免許証への切り替えを申し込むところまで書きました。今回はその続きで、実際に運転免許センターへ行って受け取ってくるまでのログです。 https://flow-with-tech.com/maina-drivers-license-application/ ## この記事を読んでわかること - 予約したあと、運転免許センターで実際にどんな流れで手続きが進むのか(所要96分) - 窓口でつまずいたポイント3つ(スマホの文字が小さい・建物内で圏外・番号札の外の割り込み) - マイナ免許証1本にした人が、あとから2枚持ちに戻すことがあるらしい理由 > この記事はあくまでも個人の備忘録です。実際の情報とは異なっている場合がありますし、私が見た時点から情報が更新されている可能性もあります。手続きをされる際は、必ずご自身の目で公式サイトなどを確認するようにしてください。 ## 運転免許センターへ移動する 当日はバスに乗って向かいました。 窓の外を眺めていると、マンションの排気口が目に入ります。1部屋につき、排気口が2つ。よく見ると、部屋によって片方の排気口の周りだけが真っ黒になっています。 これはもしかして、真っ黒なほうがキッチンのレンジフードの排気口で、その汚れは自炊をしている証拠なのではないか。だとすると、外から見ただけで「この部屋の人は自炊をしている / していない」がある程度わかってしまうことになります。 > 🗣 日常を観察して、そこから考察するのが好きです。手続きの日でも、この癖は止まりません。 こういう「目に入っただけのものから勝手に考える」話は、以前アリの巣穴でも1本書いています。 https://flow-with-tech.com/ants-and-humans/ ## すべてがシステマティックな誘導である 到着して、受付らしき方に予約完了メールを見せます。「保有状況の変更ですね」と言われ、そこからは床に引かれた○色の線をなぞって進んでいくスタイル。案内はよくできていて、迷いようがありません。 ただ、その手前で毎回考えてしまうことがあります。**この人は話しかけて要件を伝えるべき人なのか、それとも黙って並ぶべき列なのか**を、こちらが察しなければいけない。しかも自分の要件をどう伝えればいいのかも、初めてなのでよくわかっていない。 とりあえずメールの画面を見せたのですが、どうやら文字が小さくて読みづらそうでした。iPhone の設定で文字を一段階大きくしてから見せてみても、やっぱり小さいらしい。 > 🗣 年配の受付の方にスマホの画面を見せるのは、あまり良い方法ではないみたいです。iPad で見せればいいのか、紙で持っていくのが正解なのか。このあたりのベストプラクティスをぜひ知りたい。 何はともあれ、無事に次のステップに進むことができました。 ## 通信状況という大きな障壁 番号で呼ばれて窓口へ。書類を書いたり確認したりと手続きを進めていって、最後に「メールに届いている予約の内容を見せてください」というフェーズになりました。 ここで、なぜかスマホが圏外になります。ahamo を使っていて、普段そんなに困ることはないのですが、この建物の中ではどうしても電波が届かない。 「一度外に出て、通信が復活した状態でメールの画面を出してから戻ってきてください」と言われて、外に出ました。今度はスクリーンショットを撮ってから、元の窓口へ戻ります。 問題はここからでした。「戻るときは番号札を取らなくていい」と言われていたのですが、窓口では次から次へと番号が呼ばれ続けている。**この列に、どうやって割り込めばいいのか、まったくわからない。** 前の人が終わる瞬間を狙って入ろうとするものの、窓口の周りにはその辺で何かしている人が何人もいて、なかなか隙間がない。それでもどうにかカットインすることに成功しましたが、その瞬間にはもう次の番号が呼ばれていました。そして自分の手続きが終わった瞬間、待ってましたと言わんばかりに次の人がやってくる。 > 🗣 ああいう場面で、自分はどう立ち回るのが正解だったんでしょうか。そしてどんな建物の中でも通信が途切れないキャリアとは、いったいどこなのでしょうか。 ## なんかわからんけどカツカレーを食べる なんやかんやで一旦の処理が終わり、「では30分後に2階へ来てください」と言われました。 30分をどう潰すか。ちょうど昼どきだったのでぶらぶらしてみると、食堂がありました。 頼んだのはカツカレー。スプーンでは全然切れないカツで、しかも写真では丸い皿だったのに、出てきたのは細長い皿。写真と全然違うじゃないか、と思いつつ食べます。 そして、**どんな状況でも、どんな人が作っても、カツカレーというものはおいしい**ということを改めて実感しました。 食堂で見ていて、もうひとつ気になったこと。近くの人が、袋に入れた傘を机の上に置いていました。ちょっと気になったのですが、袋の外側はきれいなままのはずだから、まあいいのか、とも思う。**机に置いていいもの・いけないものの線引きも、人それぞれなんだな**と。 ちなみに、隣に激辛ラーメンがあってとても食べたかったのですが、カロリーコントロール中なので今回は見送りました。 ## 立ち入り禁止の紐を壊す子供と、放置する父 指定された時間に、指定された部屋へ。入ろうとしたその直前で、親子連れにカットインされました。お父さんは私の1つ前の時間帯の予約者だったようです。 順番を抜かされたこと自体は、別に構いません。気になったのは、その子供が近くにあった立ち入り禁止のロープ(ビヨーンと伸びてパチッとはめるやつ)を外してしまい、戻し方がわからないまま、そのまま放置していなくなってしまったこと。 床に転がったロープと、抜かされた私。自分の番が来る前に直そうかと思ったのですが、ちょうど受付の方に話しかけられてしまい、それも叶わず。 待っている間、その親子の会話が耳に入ってきます。いい給料を得るために義務教育に行かなければいけないのだ、と熱弁するお父さん。違和感はありました。でも口に出すこともなく、ただ自分の番が来るのを待ちます。 > 🗣 こういう経験ができるのも、公共機関での手続きならでは。素晴らしいですね。自分がアドラーの横の関係を意識しようとするならば、子供に対してどのように接すればいいのか。わからないですね。 ## 無事にマイナ免許証をゲット そんな大きなうねりを経て、無事にマイナ免許証を受け取ることができました。持ち歩くのはマイナンバーカード1枚。運転免許証は返納したので、財布の中身が1枚減りました。 **手続き開始から終了までにかかった時間は96分。体感は120分です。** システムとしての導線はよくできているし、案内も丁寧でした。それでも、ああいう場所では、みんなが「早く終わらせたい」という気持ちを最優先にして動きます。番号札の外側での割り込み、圏外、読めない画面。そのひとつひとつでストレスが積み上がっていく。**正直、ユーザー体験としては良かったとは言いづらいところでした。** 裏を返せば、誰にとってもストレスのない手続きを設計するというのは、ものすごく大変なことなんだな、と改めて思います。仕組みがどれだけデジタルになっても、最後の数メートルは生身の運用で決まる。このあたりの話は、業務改善についても同じことを考えていました。 https://flow-with-tech.com/last-one-mile-shinkansen-thinking/ ## 帰りは歩いて帰る 帰りもバスに乗るつもりだったのですが、駅まで30分ほどで着くとわかったので、歩いて帰ることにしました。 ゲリラ豪雨のあとで、晴天でもない曇り空。日も照っていなくて、比較的歩きやすいコンディションでした。途中、自分が乗るはずだったバスに追い越されましたが、それはそれ。 > 🗣 30分歩くのは、思っていたよりずっと気持ちよかったです。1時間以内なら歩くという選択肢を持っていることに幸せを感じます。 手続きそのものは大変でしたが、無事に切り替えができてよかったな、と思っています。予定になかった30分の徒歩が、その日でいちばん良い時間だったかもしれません。何の役にも立たない時間ほど効く、という話は前にも書きました。 https://flow-with-tech.com/teleworkation-nabekura-day1/ ## おわりに ひとつ気になっているのは、マイナ免許証1本にすると不都合が出る場面があるらしいこと。海外でマイナ免許証が使えない国があったり、運転免許証のコピーを求められる場面で困ったりして、**あとから2枚持ちに戻す人もいる**と聞きます。 自分もいずれそうなるかもしれません。とりあえずは、このまま1枚でいってみようと思います。 --- # 【ライフログ】マイナ運転免許証を取得したいログ(申込編) - 公開日: 2026-08-12 - カテゴリ: LifeLog - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/maina-drivers-license-application/ - サイト: 改善紀 — 好奇心の赴くままに。 --- ![持ち物を1枚減らしたい。マイナ免許証にしてみる(申込編)](https://flow-with-tech.com/media/posts/maina-drivers-license-application/eyecatch-maina-license.png) ## この記事を読んでわかること - マイナ免許証(マイナンバーカードの運転免許証利用)には「持ち方」が3つあって、何が違うのか - デジタル庁 → 警視庁 → 予約サイト、と辿って予約にたどり着くまでの実際の画面 - 更新時期以外にマイナ免許証へ切り替えるときの、申込までの流れ ## はじめに 持ち物を1つでも減らしたい。そういえば、運転免許証ってマイナンバーカードと一体化できるようになった気がする。ということで、調べながら実際に手続きをしていくログを書き残しておきます。 > この記事はあくまでも個人の備忘録です。実際の情報とは異なっている場合がありますし、私が見た時点から情報が更新されている可能性もあります。手続きをされる際は、必ずご自身の目で公式サイトなどを確認するようにしてください。 ## Google 検索をする ![Google で「運転免許証 デジタル」と検索した結果。デジタル庁のページが先頭に出ている](https://flow-with-tech.com/media/posts/maina-drivers-license-application/01-google-search.png) 最近は、なんでも AI に聞くんじゃなくて自分で調べるのが好きです。AI を介さず、自分の目で見て、自分の頭で文章を読んで、自分で理解をする。時間はかかるかもしれないけど、そのプロセスが楽しいなと思っています。 検索キーワードは「運転免許証 デジタル」。(マイナンバーじゃないんだ……) ## デジタル庁のサイトを熟読する ![デジタル庁「マイナンバーカードの運転免許証利用」のページ。2025年3月24日から利用できる旨が書かれている](https://flow-with-tech.com/media/posts/maina-drivers-license-application/02-digital-agency-license.png) 読んでみて理解したことがいくつかあります。まず、2025年3月24日からマイナンバーカードを運転免許証として利用できるようになったこと(以下「マイナ免許証」)。そして、免許の持ち方には3つのパターンがあること。 1. マイナ免許証のみ 2. 運転免許証とマイナ免許証の2枚持ち 3. 運転免許証のみ 最初は「運転免許証のみ=今までどおり」「2枚持ち=ただ2枚持っているだけ」で、新しいのはマイナ免許証のみのパターンだけだろう、と読み流していたのですが、これは間違いでした。2枚持ちは「マイナンバーカードを運転免許証として利用したうえで、今の運転免許証も引き続き保有する」という選択肢で、マイナ免許証のみにした場合は、今持っている運転免許証は返納することになります。 > 🗣 どうしても持ち物を減らしたいので、マイナ免許証のみに変更していきたいと思います。 https://www.digital.go.jp/policies/mynumber/drivers-license ## マイナ免許証の利用方法 ![デジタル庁のページの「マイナ免許証の利用方法」。運転免許センターや一部の警察署で手続きができると書かれている](https://flow-with-tech.com/media/posts/maina-drivers-license-application/03-digital-agency-howto.png) 手続きは、運転免許センターや一部の警察署でできるとのこと。詳細は各都道府県警察のホームページを見てください、と案内されています。 ## 警視庁 HP で手続きの方法を調べてみる ![警視庁のページ。運用開始日と3つの保有状況の説明、そして予約手続「警視庁行政手続オンライン」へのリンク](https://flow-with-tech.com/media/posts/maina-drivers-license-application/04-keishicho-license.png) ここから予約手続きのサイトへ飛べるようになっています。 > 🗣 手続き系って無限にリンク先に飛ばされる気がします。結局今どこにいて何をしているのか、分かりづらいことありませんか・・ https://www.keishicho.metro.tokyo.lg.jp/menkyo/oshirase/individual_number.html ## 警視庁行政手続オンラインから予約サイトへ移動する ![警視庁行政手続オンラインのトップページ。「オンライン予約手続き」のボタン](https://flow-with-tech.com/media/posts/maina-drivers-license-application/05-gyosei-online-top.png) デジタル庁のホームページで見たことのある人物イラストが、ここにも登場していますね。左上の「警視庁行政手続オンライン」のロゴには古き良きホームページの感じが出ていますが、ページ全体は一部デジタル庁の関与が入ってモダンな UI になっているような、そんな印象を受けます。 ![キーワード「マイナ」で検索した結果。「免許証の保有状況変更」の手続きが表示されている](https://flow-with-tech.com/media/posts/maina-drivers-license-application/06-online-reservation-search.png) キーワードに「マイナ」と入れると、それらしきものが出てきました。**【免許手続】免許証の保有状況変更 ~更新手続以外でマイナ免許証に変更する方~** がそれぽいです。 ## 施設と日時を選択して申し込み カレンダー形式で、施設ごとに予約可能かどうかが一覧で出てきます。施設と日時を選んで、そのあと必要な情報を入力して申し込みをします。 申し込みが完了するとメールが届き、そこに予約番号やパスワードが記載されているとのこと。あとは当日それを見られるようにしておいて、決められた場所へ決められた時間に行けばいいようです。 ## おわりに マイナンバーカードが運転免許証の代わりになるというのは聞いていたのですが、実際にいつから手続きができるのか、どういう手続きをすればいいのかまでは知りませんでした。今回調べてみて、これでやっと紙の運転免許証を持たなくてよくなるんだと思うと、少しワクワクします。いろいろな手続きがデジタルになって、マイナンバーカードに統合されていくというのは、荷物も減るし、手続きの煩雑さも減る。紛失や更新の手間も減っていくのは、すごく嬉しいなと思います。 その一方で、アカウントやパスワードを管理する手間はどんどん増えていきますね。 以前「おすすめのアプリ」という記事の中でも紹介したのですが、パスワード管理アプリの 1Password はかなり優秀だと思います。ただでさえ忙しい世の中で、自分の脳のキャパシティを無駄に使ってしまわないように。その節約のためにも、結構おすすめです。1Password については下の記事で紹介しているので、よければ見てみてください。 https://flow-with-tech.com/recommended-apps-for-focus-and-productivity-2025/ --- # 【3Dプリント】ゲリラ豪雨でベランダを掃除する - 公開日: 2026-08-12 - カテゴリ: column - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/veranda-groove-hera-3d-print/ - サイト: 改善紀 — 好奇心の赴くままに。 --- # 【3Dプリント】幅95mmのベランダの溝を掃除するヘラは、売っていない ![幅95mmの溝を掃除するヘラ。3Dモデルと、実際に印刷して溝に収めた現物](https://flow-with-tech.com/media/posts/veranda-groove-hera-3d-print/eyecatch-veranda-hera.png) うちのベランダの先端には、細長い排水の溝があります。実測で**幅95mm、深さ1.5mm**。ここに、じわじわとヘドロが溜まります。 放っておいても暮らしに支障はありません。ただ、気になる。掃除しようとして、ここで詰まりました。**この溝にぴったり入るヘラが、売っていない**のです。(あるかもしれないが、そもそも探すのが面倒臭い・・) > 🗣 3Dプリンターを買ってから、こういう「売ってないから諦めていた」が、「じゃあ自分で作ればいいじゃん」になりました。 ## この記事を読んでわかること - 幅95mmの溝専用のヘラを、ノギスの実測値ひとつから3Dプリントで作るまでの流れ - 「市販品に自分を合わせる」から「自分の家に道具を合わせる」に切り替わる感覚 - ベランダ掃除はゲリラ豪雨の日にやると最高、という生活の話 --- ## 現状:ベランダの溝にヘドロが溜まる まず、現場の絵です。赤いところが問題の溝。 ![ベランダ全体のスケッチ。先端に沿って走る細い溝にヘドロが溜まっている](https://flow-with-tech.com/media/posts/veranda-groove-hera-3d-print/veranda-overview-sketch.png) 断面にすると、こうです。 ![ベランダ溝の断面図。幅95mm・深さ1.5mmの浅い溝の底にヘドロが溜まっている](https://flow-with-tech.com/media/posts/veranda-groove-hera-3d-print/veranda-groove-section.png) 深さ1.5mmしかない、浅くて平べったい溝です。**面で押し出せる道具**が欲しい。つまりヘラです。 そしてホームセンターに売っているヘラは、だいたい50mmか、80mmか、100mmです。**95mmは、ない。** (そもそも探しに行ってないので、実際どうか知りません。) ## 課題 - ベランダを綺麗に保ちたい(それだけ) 支障がないのに気になる、という程度の課題です。でも、道具さえあれば5分で終わる話でもあります。 ## 実施事項 1. 3Dプリンターで、溝幅にぴったりのヘラを創る 2. そのヘラを持って、**ゲリラ豪雨のときに**ベランダを掃除する ### なぜゲリラ豪雨のときに掃除をするのか 土砂降りになると、ベランダはどうせびちょびちょになります。 普通、ベランダを水で洗う掃除は「濡らす」必要があります。でも最初からびちょびちょなら、濡らす罪悪感がゼロ。おまけに水は上から無限に供給される。**掃除の初期コストが、天気によって消えている状態**です。 つまり、家にいるときにゲリラ豪雨が始まったら、皆さんがするべきことは、洗濯物を取り込むことでも、窓を閉めることでもありません。ベランダを掃除することしかないのです。 > 🗣 干している洗濯物にカメムシの集団がついていたことがあります。自分は一生洗濯物を干さず、ドラム式洗濯機を使いたいと思っています。 ## 創作手順 やったことは3つだけです。 1. **ノギスで溝の幅を測る**(95.0mm) 2. **Claude Code に3Dモデリングを依頼する**(日本語で会話するだけ。CADのGUIは触らない) 3. **精査して、問題なければプリントする** 3Dモデリングの手順そのものは前回の記事に書いたので、今回は「測って、頼んで、刷った」という粒度で流します。 設計で効いた判断だけ書いておくと、**刃の幅は95mmぴったりにしていません**。93mm、つまり片側1mmずつ逃がしてあります。溝は現実には真っ直ぐでも一定幅でもなく、蛇行するし、目地は出っ張るし、砂粒も挟まる。**ぴったり過ぎると噛んで止まる**からです。1mmの取り残しは2往復目で取れますが、入らないヘラは永遠に0点。**外れても入る側に賭ける**、という判断でした。 ## 成果物 ### 3Dモデル 美しいヘラが出来た笑 ![3Dプリント用のヘラのモデル。縦グリップ一体型で、刃先に向かって薄くなっている](https://flow-with-tech.com/media/posts/veranda-groove-hera-3d-print/hera-3d-model.png) - 刃幅93mm・板厚5mm、**先端は1.2mmまで削いだ片刃**(下面はフラットなので、溝の底に沿って滑る) - しゃがんで押すので、握りは**縦グリップ**。掌が乗るドームで手が上に抜けない - グリップの上に**φ7の吊り穴**。ベランダのフックに掛けっぱなしにできる - **1部品・ネジゼロ・接着ゼロ・サポートゼロ**(そのままベッドに置ける向きで設計してある) ### 印刷した結果 いい感じにできた。嬉しい。 ![印刷したヘラの全体。縦グリップと平らな刃が一体になっている](https://flow-with-tech.com/media/posts/veranda-groove-hera-3d-print/printed-hera.jpg) 刃先のアップ。下面はフラット、上面だけ削いだ片刃です。積層痕がそのまま出ていますが、ヘドロを押すだけの道具なので問題なし。 ![ヘラの刃先のアップ。下面はフラットで、先端に向かって薄くなっている](https://flow-with-tech.com/media/posts/veranda-groove-hera-3d-print/printed-hera-blade.jpg) そして本番、ベランダの溝に当ててみたところ。 ![ベランダの溝にヘラを差し込んだところ。刃が溝の幅にぴったり収まっている](https://flow-with-tech.com/media/posts/veranda-groove-hera-3d-print/hera-in-groove.jpg) **入った。** 片側1mmずつ逃がした93mmは、蛇行にも目地にも噛まず、すーっと滑ります。実測ひとつから起こした形が、そのまま現物として自分の家にハマる瞬間は、何度やっても気持ちがいい。 ### 印刷コスト **約214円**(フィラメント53.63g・印刷時間1時間54分)。 ![スライサーの結果画面。フィラメント53.63g、印刷時間1時間54分](https://flow-with-tech.com/media/posts/veranda-groove-hera-3d-print/slicing-result.png) ホームセンターで「たぶん入るだろう」というサイズのヘラを買うのと、だいたい同じ値段です。違うのは、**こっちは確実に入る**ということだけ。 --- ## おわりに 3Dプリンターを家に持つ最大のメリットは、こういう地味に最適化された自分だけの道具を作れることに尽きるんじゃないかなと思っています。 幅95mmのベランダの溝を掃除するための最適なヘラって、皆さんどうやって手に入れますか。50mmのヘラで何往復もしますか。それとも「これぐらいならいけるんじゃないかな」と80mmを買い、100mmを買い、**うわーこれちょっとでかくて入らないから斜めにして使おう、うわーでもそうすると全然うまく掃除できない**、という機会損失を、いつまで続けるつもりですか。 > ちゃんと買い物ができるなら、本当は自分も既製品を買って済ましたいです。 持つべきものは3Dプリンターである。ゲリラ豪雨のときにベランダを掃除したい同志に向けて。 https://flow-with-tech.com/claude-code-3d-modeling-method/ --- # 【Code Apps】1年半つけ続けた行動ログアプリを作り直したら、Power BI がいらなくなった - 公開日: 2026-08-11 - カテゴリ: Power Apps - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/totonoi-watch/ - サイト: 改善紀 — 好奇心の赴くままに。 --- ![ととのいウォッチのデモ。宣言して、測って、あとから振り返るまでを1つのアプリで](https://flow-with-tech.com/media/posts/totonoi-watch/eyecatch-totonoi-watch-demo.gif) 私は2025年2月に、行動ログをつけるアプリを作りたくて Power Apps を勉強しました。そのアプリ自体は、ブラッシュアップをしつつ今でも愛用しています。 最近、タスク管理の手法を見直す機会がありました。その中で、**どれぐらい時間がかかるか見積もりを行い、実測と比較して振り返ること**が重要だと学びました。 2025年の時点では Claude Code も Code Apps も使えなかったのですが、今ではバリバリ使ってます笑 そんな今だからこそできる、Code Apps × コーディングエージェント(Claude Code)で、今回学んだ見積もり機能、さらには **Code Apps だからこそできる機能**をふんだんに盛り込んだアプリを開発してみました。今回はその話を書きます。 /power-apps-work-log-app-development-story/ ## この記事を読んでわかること - キャンバスアプリから Code Apps に移行すると何が変わるのか - 3パターンの行動ログ記録方法と、それぞれの使いどころ - やりたいことを実現するために、どう AI を使いこなせばいいのか ## そもそも、なぜ行動ログをつけるのか 私が行動ログをつける理由は、たった一つにまとめると、**人間は自分が何をしていたのかを定量的に振り返ることが、数字として記録していないと基本的に不可能だから**です。 数字で振り返ることによって、自分の仮説や経験、知見と組み合わせて、人間はインサイトを得ることができます。つまり、気づきを経て行動を変容することができる。 なぜ行動を変容するべきなのかは、人それぞれ価値観が違うと思いますが、私は**変わり続けていくことこそが不変な事実**であって、自分にとって大事なことだと認識しています。 ### 「数字で振り返る」にもいろいろある ひとくちに数字で振り返るといっても、いろんなパターンがあります。 - **累計時間**:これに何時間投下することができたか - **1日あたりの時間**:1日あたり何時間投下できているか - **時間帯**:たとえば「6時に朝活をする」と決めたなら、ちゃんと6時台に時間を投下できているか - **頻度**:筋トレを月に何回、週に何回やっているか。1回あたり何分か 遊びも同じです。最近 Netflix をめちゃくちゃ見ているんですが、「どれぐらい見てるんだろうな」もこのアプリで記録することで振り返れます。 別に全てを最小限にしないといけないわけじゃなくて、人間なので必要な時間もあります。ただ、**「この8月はすごい Netflix にハマっていたんだね。でも最近見てないし、もう解約してもいいかな」**——そういうありとあらゆることに使える。だから必要だと考えています。 /lifelogging-system-with-power-apps-one-year-review/ > 🗣 Netflix を初めて契約して2日間で「ガス人間」と「地面師たち」を一気見しました。どっちがどっちの話だったか良く分からなくなりました。「リスナーさん、願いを一つ言ってください。もうええでしょう。」 ## キャンバスアプリを Code Apps にすると、何が変わるのか ここが今回いちばん書きたいところです。結論から言うと、変わったのは次の3つでした。 1. **Power BI を使わなくても、アプリの中で可視化できる** 2. **その可視化の隣で、データの編集までできる** 3. **PC でもスマホでも、同じアプリが使いやすい** ### 1. Power BI を使わずに可視化できる キャンバスアプリでは難しかった高機能なグラフや可視化を、アプリの中に持ち込めるのが Code Apps の大きな魅力です。 左にカテゴリ別・プロジェクト別の割合(今は時間で表示)、右に記録がすべてリスト形式で並んでいます。 ![LOGS 画面。左に内訳の円グラフと棒、右に記録のリスト](https://flow-with-tech.com/media/posts/totonoi-watch/04-logs-list.png) 日常の行動を振り返るときは、やっぱりカレンダーのような形式で見えたほうがいい。こんな感じでカレンダー形式でも振り返れます。これはかなり良くて、めちゃくちゃお気に入っています。 ![週ビュー。1日1列のタイムラインで、その週に何をしていたかが一目でわかる](https://flow-with-tech.com/media/posts/totonoi-watch/05-logs-week-calendar.png) もともとは実績を Google カレンダーに転記する Power Automate を組んでいたのですが、やっぱり不具合が結構たくさんありました。**それがアプリの中で全部完結する**ようになったわけです。 マンスリービューはこんな感じです。例えば筋トレにどれぐらい通えているかも1発でわかり最高です。(8月は週3回の習慣化を目指す!) ![月ビュー。1日1マスの濃淡グリッドで、その月の傾向がひと目でわかる](https://flow-with-tech.com/media/posts/totonoi-watch/07-logs-month-calendar.png) /copilot-usage-powerbi-visualization/ ### 2. 見るだけじゃなく、その場で編集できる そして、ここが個人的にいちばん効いているポイントです。 Power BI は「見る」ことはできますが、**入力ができません**。可視化を見て「あ、この記録ちょっと違うな」と思っても、直しに別のアプリへ移動する必要がある。 Code Apps は、**可視化もできて、編集もできる**。ちょっとデータを直したいときも、そのままアプリの中でできます。「気づく」と「直す」が同じ画面の中にあるのは、想像以上に快適でした。 > 🗣 可視化ツールとアプリを行き来しなくていい、というだけで振り返りの回数が明らかに増えました。 ### 3. PC でもスマホでも使いやすい 行動ログは、記録するのはスマホ、振り返るのは PC、というふうに使う場面が分かれます。Code Apps はそのどちらでも使いやすいレイアウトにできるので、**記録も振り返りも1つのアプリで完結**します。 /code-apps-everything/ ## 今回追加した「宣言型」の記録 変更点でもうひとつ大きいのが、冒頭に書いた見積もりの話です。 **「これから何々を、何分間で行う」と宣言してから始める**——これを RECORD 画面の「NOW」として実装しました。学んだ手法を、そのまま普段のアプリに乗せた形です。 まず、何をするのかを書いて、何分でやるのかを決めて始めます。「だいたい」と「最大」を選べるようにしているのは、同じ30分でも意味が違うからです。 ![READY 画面。行動名とセット時間、「だいたい / 最大」の宣言を選んで開始する](https://flow-with-tech.com/media/posts/totonoi-watch/01-record-now-ready.png) 開始すると、このようなストップウォッチの画面になります。現在何分経過しているのか、見積もりに対して残り何分なのかが確認できます。 ![計測中の画面。文字盤と経過時間、見積もりに対する残り時間が出る](https://flow-with-tech.com/media/posts/totonoi-watch/02-record-now-timer.png) 終了したタイミングで、それが何のプロジェクトで何のカテゴリなのか、そして**実際に差が生まれた理由や考察**をメモとして記録できます。 ![FINISH 画面。見積と実績の差、差の理由チップ、考察メモ、カテゴリのタイル](https://flow-with-tech.com/media/posts/totonoi-watch/03-record-now-finish.png) ### 記録は3パターン用意した とはいえ、いつも宣言してから始められるわけではありません。そこで記録の入り口を3つに分けています。 | モード | 使う場面 | |---|---| | **NOW** | これからやることを宣言して、測りながらやる | | **LATER** | 終わったあとに「さっきのアレ」を記録する | | **BATCH** | 1日の終わりにまとめて登録する | 宣言できるときは宣言する、できないときは後から入れる。**記録のハードルを上げすぎない**のが、1年半続いた理由でもあります。 /powerapps-bulk-registration-logic/ ## 見積もりと実績を分析する画面 見積もりと実績が貯まるようになったので、それを分析する画面(INSIGHTS)も作りました。 ![INSIGHTS 画面。見積×実績の散布図、カテゴリ別の倍率、差の理由、明細](https://flow-with-tech.com/media/posts/totonoi-watch/06-insights-estimate-actual.png) まだデータがあまり集まっていないので何とも言えませんが、プロジェクト別・タスク別に**どういうところで差が出やすいのか**を串刺しで見られるようにしていけば、かなり実効性のある機能になるんじゃないかと思っています。ここはまだ検証中です。 ## どうやって作ったか ### 1. まず既存のキャンバスアプリを MCP でつないで、Claude Code に理解させる 自分が作っている既存のキャンバスアプリがあるので、まずは MCP でそれをつないで、**どんな構成になっているのかをすべて理解させます**。同時に、使用している Dataverse の構成についても理解させます。 ### 2. 既存の Dataverse を活かしたまま、新しく Code Apps を開発させる Code Apps の開発も Claude Code にお願いします。既存の Dataverse、そして既存のキャンバスアプリでやっていることを基本的に踏襲させつつ、**同じ Dataverse を使ったまま**新しく Code Apps を開発する方法を考えさせて、作らせます。 データが同じなので、キャンバス版を残したまま新しいアプリを並走させられるのも安心なところでした。 ### 3. 実機テストをして、修正を指示する 開発させるだけではダメで、必ず自分の目で見てテストをします。しかもこれは PC でも使うしスマホでも使うので、**必ず両方で実機テストをして**、細かく修正の指示をしていきます。 /claude-code-power-platform-delegation/ ## まとめ AI を使うことの何がいいかというと、今回のように**自分が新しくインプットしたものを、普段使っているアプリに上乗せしたい**——そんなときに、何をどうすればいいのかを言語化して頼むだけで、簡単に自分の手元で使える状態になることだと思います。 学んだものは、やっぱり「鉄は熱いうちに打て」と言われるように、すぐ試せるかどうか。自分の中に取り入れられるか、使い始められるか、やり始められるかが大きなポイントになります。 そこにおいて、それを実現する手段になってくれる AI、コーディングエージェント(私の場合は Claude Code)には、とても助かっています。 おかげで、何かやるときに「どれくらいかかるのか」を見積もった上でタスクに取り掛かれるようになり、スピード感を持って行動できている感じがしています。 > 🗣 まだ使い始めたところなので、これからブラッシュアップしていきます。もし良さそうであれば、GitHub への公開にも挑戦してみたいなと思っています。 --- # 【Claude Code】Power Platform 開発を丸投げしてみたら、人間の仕事は「判断」と「手足」だけになった - 公開日: 2026-08-01 - カテゴリ: Power Platform - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/claude-code-power-platform-delegation/ - サイト: 改善紀 — 好奇心の赴くままに。 --- ![完成した「おれ作 博物館」。展示ホールを歩くように自分の作品を眺められる](https://flow-with-tech.com/media/posts/claude-code-power-platform-delegation/eyecatch-museum-demo.gif) ## この記事を読んでわかること - Claude Code を使うと、Power Platform の開発がどんなふうに進むのか - その進め方の中で、**人間は何をすればよくて、何を AI に任せればいいのか** - Premium ライセンスなしで、自分のアプリ・フロー一覧を収集する仕組みの作り方(と、そこで踏んだ地雷) ## 突然ですが、自分が今まで作ったアプリ、把握できていますか? 私は把握できていませんでした。作っては忘れ、作っては忘れ。気づけば環境の中に、名前を見ても中身を思い出せないアプリが溜まっています。 そんなとき、Power Automate には環境内の Power Apps 一覧を取得できるコネクタがあるらしい、という話を知りました。じゃあそれを使えば、自分の資産を管理する仕組みが作れるのでは? ……と思ったものの、調査するのもやってみるのも、正直ちょっと大変です。コネクタの仕様を調べて、Premium かどうか確認して、SharePoint リストを設計して、フローを組んで。考えただけで週末が溶けます。 ということで、**Claude Code に丸投げしてみることにしました。** ## 何を作ったか 自分が作った Power Apps と Power Automate の一覧を Power Automate で自動収集して、**博物館のように展示するキャンバスアプリ**を作りました。その名も「おれ作 博物館」です。 なぜ「管理台帳」ではなく「博物館」なのか。これは調査の結果、方針を変えたからです。 一般的なメーカー権限(管理者権限なし)で取得できるのは、**環境全体ではなく「自分が所有・共有している分」だけ**でした。全社の資産を棚卸しする台帳にはできません。 でも、逆に考えると「自分が作ったものしか取れない」なら、いっそそっちに振り切ればいい。管理する台帳ではなく、**自慢する博物館**にしてしまえ、と。制約をコンセプトに変換したわけです。 結果、収集できたのはアプリ **262 件**、フロー **84 件**でした。我ながら作りすぎです。 ### 前提・制約 - **Premium ライセンスなし**で作る(=標準コネクタと SharePoint リストだけ) - **管理者権限なし**で動く(一般メーカーのままで完結させる) - 人間が細かく口を出すこともできますが、今回はあえて**丸投げ**する そもそも Claude Code で Power Apps を作るとはどういうことか、という話は以前にも書いています。 /claude-code-power-apps-development/ ## 丸投げの実況 ここからは、実際にどう進んだかを時系列で書いていきます。 ### 1. まず統括役を立てる いきなり作らせません。最初にやるのは、**一番賢いモデルを現場監督にする**ことです。 私は `/delegate` という自作スキルを使っています。中身はシンプルで、「統括役のモデルは発明・裁定・最終検品だけをやり、実作業はサブエージェント(Opus / Sonnet / Haiku)に振れ」という分担ルールを恒久化したものです。 ![/delegate スキルを呼び出して統括体制に入るところ](https://flow-with-tech.com/media/posts/claude-code-power-platform-delegation/01-delegate-skill.png) スキルの中身は、ほぼこの表だけです。 | 仕事の種類 | 担当 | |---|---| | 発明・統率・最難関・最終検品 | メインループ(統括モデル) | | 調査・実装・執筆・レビュー | Opus | | 事務・台帳更新・整理・commit 文面 | Sonnet | | 単純機械作業 | Haiku | これに、運用の型を数行だけ添えてあります。 - **並列 fan-out**:独立したタスクは1メッセージで同時に起動する(直列に待たない) - **バックグラウンド既定**:起動したら待たずに次の仕事を進める - **続投 > 新規**:同じ成果物の修正は、新しく起こさず同じエージェントに続けさせる - **プロンプトは自己完結**:サブエージェントは会話履歴を見られないので、前提を毎回書く - **検品は統括の責任**:委任しても品質責任は監督側にある 迷ったら1段安いモデルに振って、検品で品質を担保する。要は、**社長が全部自分で手を動かさない体制**を最初に作る、ということですね。 なお、サブエージェントをぽんぽん起動するとその分お金もかかります。1タスクいくらだったのかを測る仕組みは、別の記事で作りました。 /claude-code-credit-log/ ### 2. 勝手に調査を始める ここがすごいところなのですが、「作って」と言うと、**まず作り方を調べ始めます。** 今回で言えば「Power Apps for Makers / Power Automate Management / Power Platform for Admins の各コネクタは標準(非 Premium)なのか」「一般メーカー権限で取れる範囲はどこまでか」「ページング・スロットリングのハマりどころは」あたりを、調査専門のサブエージェントがバックグラウンドで調べていきます。 ![調査エージェントをバックグラウンドで起動し、その間に方針を組み立てているところ](https://flow-with-tech.com/media/posts/claude-code-power-platform-delegation/02-research-agent.png) しかも頼んでいないのに、**CoE Starter Kit(Microsoft 公式の管理キット)との比較**まで気を利かせて調べてくれていました。結論は「CoE Starter Kit は保守終了済みで、後継は管理者専用。だからメーカー権限方式の存在意義は『軽いから』ではなく『管理者じゃなくても使えるから』だ」というもの。 自分では思いつかなかった角度で、作る理由を言語化してくれたわけです。ちょっと悔しいですね。 ### 3. 人間の判断を求めてくる 調査が終わると、**人間にしか決められないことだけ**を聞いてきます。今回は3問でした。 - 台帳のスコープをどうするか(自分の所有分だけしか取れない、という調査結果を踏まえて) - 台帳に手動管理列(人間が書く列)を付けるか - 見る画面はどうするか ありがたいのは、選択肢に **(Recommended)** が付いていることです。迷ったらとりあえずこれを選んでおけば OK です(笑)。私は3問とも推奨どおりに答えました。 ![人間の判断を求められる場面。選択肢に (Recommended) が付いている](https://flow-with-tech.com/media/posts/claude-code-power-platform-delegation/03-recommended-questions.png) もう一点、地味に優秀だと思ったのが、**調査結果を使い捨てにせず、根拠ファイル(一次 URL 付き)として残している**ところです。後から「なんでこの判断にしたんだっけ?」と辿れます。 ### 4. たまに、人間が HaaS として働く とはいえ、Claude Code にもできないことがあります。そういうときは**人間に仕事が発注されます。** > **HaaS(Human as a Service)とは** > 人間が AI に呼び出されて、主に API キーの取得や物理空間での作業を担うこと。 ![Claude Code から人間へ作業が発注される瞬間](https://flow-with-tech.com/media/posts/claude-code-power-platform-delegation/04-haas-request.png) 今回発注されたのは、**コネクタの接続の認証**でした。実は Power Automate の接続そのものは API から作成できて、しかも `201 Created` が返ってきます。ところが中身を見ると認証が通っておらず、使えません。OAuth の同意画面はブラウザ以外に経路がないからです。 なので、AI が出してきた URL を人間がブラウザで開いて、ポチッと同意する。従順な手足です。 ![渡された URL を開いて接続作業を担当する人間](https://flow-with-tech.com/media/posts/claude-code-power-platform-delegation/05-haas-connection.png) 同じ理由で、**空のキャンバスアプリを作って「共同編集を有効にする」のも人間の仕事**でした。ここまでやったら、あとは URL を Claude Code に渡して MCP で接続してもらうだけです。 ## 詰まったところ ここからが記事の本番です。丸投げとはいえ、横で見ていると**そこそこ派手に転んで**います。無かったことにはしません。 ### 1. 「1回しか実行していないのに 426 行入る」 一番の山場でした。収集フローを**1回だけ**実行したのに、SharePoint リストが **426 行**になっています。しかしアプリの ID でユニークを取ると **262 件**しかない。つまり **164 行が重複**です。 面白いのは、2回目・3回目に実行しても1行も増えないことでした。突合ロジック自体は正しいのです。 犯人は、**「マップに無ければ POST する」という処理が冪等ではなかった**ことでした。SharePoint がスロットリングでエラーを返しつつ、**実際には書き込みがコミットされていた**。そこに Logic Apps の自動リトライがもう1行作る。だから1回の実行の中で二重に増える。重複が、書き込みの集中した環境(251 件)に偏っていたのも、スロットリング説と一致していました。 対策は、**アプリ側のロジックではなくデータ層の制約で保証する**こと。キー列に「重複禁止」(EnforceUniqueValues)を付けて、リトライ側の POST を SharePoint 自身に弾いてもらう構成に変えました。修正後は 262 行 / ユニーク 262 / 重複 0 です。 ここで得た教訓が、今回の一番の収穫でした。 > **POST は冪等ではない。「事前に存在チェック → 無ければ作る」は、競合とリトライには勝てない。** > そして**「重複が無いこと」は件数ではなくキーのユニーク数で検査する。** 件数だけ見ていると「1回目も2回目も 426 行」なので、冪等に見えてしまうんですよね。実際そう見えていました。 ### 2. 何も言わないのに 1/3 しか取れない `Get Apps` アクションは、**既定だと 98 件しか返しません**。ドキュメント上の既定値は 250 なのに、実測は 98 でした。 しかも**エラーは一切出ません**。ページングの設定を付け忘れると、静かに 1/3 だけ収集して成功します。これは怖い。設定を入れたら 251 件が返るようになりました。 ### 3. 調査レポートを、実測がひっくり返した これは AI との付き合い方として面白かった話です。 事前の調査レポートには「フローの所有者は `creator` から取れる」と書いてありました。ところが実際にデータを取って数えてみると、返ってきた 71 本が**きれいに2群に割れていた**のです。 | | 件数 | creator | owningUser | |---|---|---|---| | ソリューションフロー | 51 | **null** | あり | | 非ソリューション(マイフロー) | 20 | あり | **null** | つまり所有者のフィールドが**フローの種別で排他**になっている。レポートどおりに実装していたら、資産の主力であるソリューションフロー 51 本すべてで、所有者が空欄になっていました。 **調査は当たりを付けるためのもので、正解は実測でしか確定しない。** ここは AI の調査結果でも、人間の記憶でも同じですね。 ### 4. 部品が丸ごと消える(キャンバスアプリ編) 最後にキャンバスアプリ側でも一つ。展示写真をアップロードする画面を作ったのですが、**添付ファイルの UI が画面に丸ごと出てきませんでした。** 原因は、フォームの幅でした。既定の 292px がデータカードの最小幅を下回っていて、**カードごと描画されていなかった**のです。320px に広げたら普通に出ました。エラーも警告も出ないので、これも気づきにくいタイプです。 ## 結局、人間は何をしたのか 丸投げした結果、私がやったことを並べてみます。 1. 最初に「こういうものが作りたい」と言った 2. 「自分の所有分しか取れないなら、いっそ博物館にしよう」と方針を決めた 3. 3問の質問に (Recommended) で答えた 4. ブラウザを開いて接続の同意を押した(HaaS) 5. 空のキャンバスアプリを作って共同編集をオンにした(HaaS) 6. できたものを実機で触って「写真も飾りたい」と言った **コンセプトの裁定と、手足。** それだけです。コネクタの仕様調査も、フローの実装も、重複バグの切り分けも、私は横で見ていただけでした。 逆に言えば、この6つは**AI には決められない・できない**ということでもあります。特に2番の「制約をコンセプトに反転させる」は、私が一番楽しかったところでした。ここを AI に譲ってしまうと、たぶん面白くない管理台帳ができあがっていたと思います。 この「判断と手足だけ担当する」進め方は、Power Platform に限りません。CAD を一度も触らずに3Dモデリングしているときも、やっていることはほぼ同じでした。 /claude-code-3d-modeling-method/ ## まとめ - Power Automate の標準コネクタだけで、自分の Power Apps・Power Automate は収集できる(**Premium も管理者権限も不要**) - ただし取れるのは**自分の所有・共有分だけ**。そこは制約として受け入れて、コンセプトごと寄せてしまうのが早い - Claude Code に丸投げすると、**調査 → 裁定の依頼 → 実装 → 検証**まで走る。人間の仕事は「判断」と「手足」に寄っていく - とはいえ転ぶときは派手に転ぶ。**件数だけ見て安心しない**(重複はキーのユニーク数で数える) 自分の作ったものが博物館に並んでいるのを眺めるのは、想像よりずっと良かったです。262 件も作っていたのかと、素直に驚きました。皆さんもぜひ、自分の環境を棚卸ししてみてはいかがでしょうか。(数を見て「これ全部メンテするのか」と青ざめる可能性はあります) --- # 【3Dプリンター】CADを一度も触らずに、Claude Code だけで3Dモデリングしてみている話(手法編) - 公開日: 2026-07-26 - カテゴリ: AI・Claude Code - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/claude-code-3d-modeling-method/ - サイト: 改善紀 — 好奇心の赴くままに。 --- 3Dプリンタを買ったら、まず何から覚えないといけないと思いますか。原理原則をちゃんと理解したい気持ちがあるので、「Blender とかちゃんと覚えるところからだな」と思っていました。ところが買ってからひと月あまり、**私はいまだにCADのGUIを一度も操作していません**。Blender も自分の手では触っていない。それでも設計は増え続けていて、手元には30本ちょっとの作品フォルダがあります。 やっていることは単純で、**Claude Code と日本語で会話して、寸法をコードで書いてもらい、STLを出して、Bambu Lab A1 で刷る**。それだけです。今回はその「だけ」の中身を書き出した手法編で、作ったモノの紹介は次回に回します。 ![設計したSTLモデルがぐるぐる回っているプレビュー](https://flow-with-tech.com/media/posts/claude-code-3d-modeling-method/eyecatch-stl-turntable.gif) ## この記事を読んでわかること - マウスでモデリングせず「形をコードで書く」(コードCAD=OpenSCAD)とはどういう作業になるのか - 印刷ボタンを押す前に一応、干渉・構造・断面の3つのチェック - この手法でできること/できないこと(シミュレーション路線から撤退した話も含めて正直に) ## そもそも「形をコードで書く」ってどういうこと? 使っているのは **OpenSCAD** というコードCADです。画面に立体をドラッグして作るのではなく、「幅はこれ、高さはこれ、ここを丸く抜く」とテキストで書くと、その通りの立体が出てくる。プログラマ向けのCADと言われがちですが、私にとっての価値は別のところにありました。 **寸法が全部「変数」になる**ことです。 たとえば壁と壁のあいだに突っ張らせるカバンフックを作ったとき、`.scad` の冒頭にはこう書いてあります。 ``` gap = 292; // 壁間実測 ``` この `292` が設計全体を貫いていて、梁の長さも、くさびの沈み込み量も、パッドの位置も、全部この変数からの式で決まっています。つまり**壁の間隔が変わったら、この1行を書き換えて再生成するだけで新しい設計が出てくる**。GUIで作ったモデルだと、寸法をひとつ変えるたびに関係箇所を手で追い直すことになります。ここが決定的に違いました。 そして「テキストである」という性質が、そのまま Claude Code と相性がいい。私がやっているのは、日本語で要望を言う(「幅292mm の隙間にカバンを引っ掛けるやつ作りたい」)、出てきた形にダメ出しをする(「この棒、いらなくない?」)——この3つだけ。`.scad` を書くのは Claude Code の仕事で、私はエディタで直接いじっていません。**CAD操作を覚えるより、日本語で寸法の意図を説明するほうが圧倒的に速かった**、というのが正直なところです。 > スループットを最大化するにはどうすればいいのか。ちゃんと操作を覚えてモデリングして、検証をしてから印刷するのがいいのか。それとも大体OKなら印刷して、実物を見て修正指示すればいいのか。今のところ、ほぼ後者でやってます。 https://flow-with-tech.com/claude-code-local-llm-ocr-diary/ ## 母艦をひとつ作った 毎回ゼロから会話していては再現性がないので、`model-forge` という母艦フォルダに全部集約しています。ルールは **1プロダクト=1フォルダ**。 ``` designs/<作品名>/ ├── src/ ← design.scad(形はぜんぶ変数の式)と render.sh ├── data/output/ │ ├── print/ ← 刷るSTLだけ │ └── inspect/ ← 検品PNG・構造チェックの結果 └── KNOWLEDGE.md ← ハマったこと・次の自分への手紙 ``` 各フォルダで `./src/render.sh` を叩くと、**部品ごとのSTL・検品用PNG・構造チェックの結果が一発で全部そろう**。中身は数十行のシェルスクリプトですが、**「1コマンドで全部そろう」を守ると、設計変更のたびに検証をサボらなくなる**らしい。出力先を `print/` と `inspect/` に分けているのも同じ理由で、`print/` の中身がそのまま「刷るべきファイルの一覧」になる。中間ファイルを混ぜると、「どれ刷るんだっけ」となって平気で古いSTLを刷ります。私はやりました。 > Claude Code に「人間が印刷ミスするからわかりやすくしてくれ」と頼みました。 ## 印刷前チェック3点セット 3Dプリントは**1回の印刷に数時間かかる**ので、失敗するとその晩がまるごと溶けます。だから刷る前に潰せるものは潰したい。ただし先に断っておくと、**これらは「印刷前に1敗ぶん減らす」道具であって、実機検証の代わりには絶対になりません**。ここを勘違いすると、紙の上でだけ完璧なものが出来上がります。 ### ① 干渉体積チェック — 目で見る前に、測る 部品が2つ以上噛み合う「組み物」でいちばん効いているのがこれです。OpenSCAD の `intersection()` は「AとBの重なった部分だけ」を取り出す機能で、 ``` intersection(){ base(); body(); } ``` これを実行して重なりが空なら、OpenSCAD は「オブジェクトが空です」と言ってエラー終了します。**このエラー終了がそのまま「干渉なし=合格」の判定になる**。実体が出てきたら体積を測って、何mm³食い込んでいるかを見ます。読み方にはコツがあって、間違えると誤診します。 | 出た結果 | 意味 | |---|---| | 空(エラー終了) | 干渉なし。合格 | | 体積 0.0mm³ | 面同士がぴったり接触=「正しく座っている」証拠 | | 薄い筒状 | 圧入代(きつめに押し込む前提の食い込み)。設計どおりなら正常 | | 太い実体を貫いている | これが本物の干渉。アウト | なぜ目視ではダメなのか。**人間の目は「内部が埋まっている」を見抜けない**からです。外形は正しいので、検品PNGを何枚撮っても素通りする。実際、本体内部が中実の塊になって通路が消えていたバグを目視で見逃して1敗しました。測っていれば異常な体積が出て一発で分かったはずのものです。 もうひとつ、**回る部品は静止した形ではなく「回したときに通る空間」で測る**。これは実機での手痛い1敗から学びました。机の脇に付けるホルダーの締め付けノブが、組み立てたら**本体に当たって回らず、ノブを切断してようやく入った**んです。設計時は静止姿勢の干渉しか見ていなかった。あとから回転体で測り直したら、**一周する間に823mm³ぶん本体を貫いていました**。いまは**動く部品は「動きの掃引体」で測る**(回転なら回転体、直動なら押し出した体)をルールにして、チェック項目に常設しています。 > 印刷してから気づいたので、干渉部分は切断しました。その際に親指を怪我しました。使う道具もちゃんと揃えていきたい。 これが干渉したやつです。デスクとの圧着ネジは回りませんでした。 ![干渉して回らなかった締め付けノブ。切断してようやく組み付けた実物](https://flow-with-tech.com/media/posts/claude-code-3d-modeling-method/knob-interference.png) ### ② 構造チェック — 折れないか、倒れないかを式で概算する `structural.py` という自作スクリプトで、曲げ・たわみ・転倒・座屈をざっくり計算します。FEM(本格的な有限要素解析)ではなく、古典的な公式で「桁が合っているか」だけを即答させる道具です。材料値は PLA なら弾性率3.5GPa・降伏応力50MPaあたりを保守側に丸めた代表値で、**フィラメントを積む方式ならではの「層と層のあいだが弱い」異方性は係数0.5で丸めています**。正直な近似です。安全率(SF=余裕の倍率。1.0を切ると計算上アウト)は常用品で2.0を基準にしています。 > 色々やってくれているんですね。 ### ③ 断面検品 — 最後は人間が目で見る 3つ目は `inspect.html` という依存ゼロの単一HTMLです。ダブルクリックでブラウザに開いてSTLをドロップすると表示され、**X/Y/Z の断面スライダーで内部が覗けて、切断面は朱色**に塗られます。肉厚、意図しない空洞、部品同士がくっついていないか。複数STLを重ねて組み立てを見ることもでき、掛かり代(噛み合いの深さ)を詰めるときは位置をmmで直接入力するほうが速いので、そういう地味な機能を後から足しました。 気に入っているのが**注釈ピン**で、気になった箇所をクリックしてメモを書き「指示書コピー」を押すと、モデル名・座標・断面の状態・メモが Markdown で丸ごとコピーされます。**それを Claude Code に貼れば「どこの話か」が一意に伝わる**。「下のほうにある出っ張りなんだけど」と説明する不毛が消えました。ここは意図的に自動化していません。**最後は人間が見る**という線を残してあります。 これが実際に使っている様子。プロテインを1回で掬えるやつを作る時の修正指示が1発で通って嬉しい。 ![inspect.html でSTLに注釈ピンを打って修正指示を書いている画面](https://flow-with-tech.com/media/posts/claude-code-3d-modeling-method/inspect-annotation.png) ## 印刷ボタンを押す前に、原寸で机に置いてみる **画面の中では大きさの実感がまったく湧かない**んですよね。数字では分かっているのに、刷り上がってから「思ってたよりデカい」となる。そこで STL を USDZ 形式に変換して iPhone に送り、**AR で机の上に原寸表示**しています。自作アプリは不要で、iPhone標準のARクイックルック(USDZ をタップして「AR」を押すと床を認識して実寸で置いてくれる機能)がまさにそれなので、やることは変換だけです。 唯一にして最大の落とし穴が**単位**でした。STLは無単位で「1=1mm」の慣習、USDZ は「1=1m」。**0.001を掛け忘れると、30mmの部品が30mで出てきます**。いまは変換スクリプトが必ず0.001を掛けて、実寸を `243.2×130.0×158.0mm` のようにターミナルへ表示するようにしました。 思ったよりでかい! を防ぐために使っています。これがプレビューした状態です。 ![iPhone のARクイックルックで、印刷前のモデルを机に原寸表示したところ](https://flow-with-tech.com/media/posts/claude-code-3d-modeling-method/ar-preview.jpg) 印刷するとこうなるので、ほぼAR でプレビューした通りですね。 ![実際に印刷して机に置いた完成品。ARプレビューとほぼ同じ収まり](https://flow-with-tech.com/media/posts/claude-code-3d-modeling-method/printed-result.jpg) ## 負けたら、次の設計の制約にする ここまで書いておいてなんですが、**それでも実機では普通に負けます**。だから負けたら各フォルダの `KNOWLEDGE.md` に敗因を書いて、次の設計の制約として効かせています。代表的なのはこのあたり。 - **長いブリッジは、設定でごまかさず設計で殺す**。ブリッジ=下に支えのない空中を橋渡しで刷る部分のことで、長すぎると垂れます。錠剤ディスペンサーで天井が崩れて1敗して以来、「長いブリッジが出たら部品を分割するか、機能を別の部品に移す」が鉄則になりました。 - **逆さ向きに印刷する部品には、上を向いた枝を作れない**。逆さ姿勢では「使用時に下がる形」しか刷れず、上向きの爪やリップは空中の島になって失敗します。判定は「全部の枝が印刷方向に対して単調に登るか」。 - **実測値は部位ごとに補正して持ち込む**。収縮は「大物の反り」と「機械的なオフセット」で性格が違うので、ひとつの補正値で全部を殴ると必ずどこかが合いません。 **負けが資産に変わる仕組みだけは作っておいてよかった**と思っています。 ## 撤退した話も、正直に 全部うまくいったわけではありません。一度、**Blender を画面なし(ヘッドレス)で動かして印刷前に剛体シミュレーションを回すパイプライン**を作りました。錠剤を仮想空間で落として詰まる回数を数えるやつで、当時はけっこう本気で作り込みました。 でも**2026年7月に廃止しました**。物理エンジンの結果は絶対値としては信用できず、構成Aと構成Bの相対比較としてしか使えない。そのわりに時間がかかり、解釈にも神経を使う。**「刷って手で引いてみる」ほうが速くて確実**という、身もふたもない結論になりました。いまのパイプラインは「設計 → 干渉体積 → 構造チェック → 断面の目視 → 刷る」。1段抜けたぶん素直で速くなっています。**作った道具を捨てるのはこたえましたが、動かない段を残すほうが害が大きい**と判断しました。 なお「Claude Code だけ」と書きましたが例外もひとつ。猫のフィギュアのような**有機的な形は OpenSCAD だと「風船で作った動物」感が抜けず**、そこだけ Blender をスクリプト経由で動かして作り直しました。手でこねてはいませんが、コードCADの外に出た唯一の例です。角ばったものと数式で書けるものはコードCADが速く、生き物はそうでもない、というのが今のところの実感です。 > 使ってみていたのですが、Claude Code のモデリングが一生終わらない状態になったので、「何してんの。やめて。」と。 ## まとめ CADのGUIを覚えないまま、日本語での対話と、変数まみれの `.scad` と、印刷前チェック3点セットで、いまのところ回っています。突っ張りカバンフックとプロテインスプーンは実際に刷って日常で使っていて、これは素直に嬉しい。一方で**印刷検証待ちのまま積んである設計もかなりの数あります**(構造チェックはPASSしているのに、フィラメントと時間が足りていない)。刷っていないものを「完成」と呼ばないようにだけは気をつけています。 この手法のいちばんの効用は、たぶん**設計の意思決定が全部テキストとして残ること**です。なぜこの寸法にしたのか、なぜこの形を却下したのかが、変数名とコメントと `KNOWLEDGE.md` に残る。 次回はこの母艦から生まれたモノを何点か紹介する予定です。「置くとKindleを抱きしめるスタンド」とか「坂に置くと歩くカラーコーン」とか、そういう実用性の怪しいものが並びます。……こうして書くと、道具立ては真面目なのに作っているものがふざけている気がしてきました。まあ、そこは次回の言い訳とさせてください。 https://flow-with-tech.com/claude-lab-top10-award/ https://flow-with-tech.com/claude-code-credit-log/ 作ったものの製作記や失敗談は X([@kama_bizdev](https://twitter.com/kama_bizdev))でも発信しています。よかったら覗いてみてください。#FWTan2 > 🗣 3Dモデリングを習得するか、このままClaude Code 縛りでやるか悩みます。でもClaude Code 縛りで行っちゃった方が面白い気がしています笑 --- # 【AI従量課金時代】「このタスク、いくらだった?」に答えられないので、Claude Code に自分の消費を測らせて台帳に記録させた - 公開日: 2026-07-25 - カテゴリ: AI・Claude Code - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/claude-code-credit-log/ - サイト: 改善紀 — 好奇心の赴くままに。 --- ![「このタスク、いくらだった?」に答えられる台帳をつくる — ①自分のログを読む ②公開レートを掛ける ③Notion台帳に1行](https://flow-with-tech.com/media/posts/claude-code-credit-log/eyecatch.png) ## この記事を読んでわかること - AI コーディングエージェントの「1セッションあたりの消費」を自分で計測する方法(Claude Code の場合) - 実測15セッションぶんの生データ(合計・平均・内訳)と、そこから見えたコストの支配項 - 「測る仕組み」自体がバグっていて、半分しか測れていなかった話 --- ## 「今月いくら」は分かるのに「このタスクいくら」が分からない AI コーディングエージェントが従量課金の時代に入りました。使えば使うほどお金がかかる。それ自体は当然の話で、文句はありません。 困るのは**粒度**です。 管理画面を見れば「今月の使用量」は分かります。でも私が知りたいのはそこではなくて、 > 「この作業って何円だったんだろう?」 なんですよね。これが分からないと、次に似たタスクをやるときの**見積もりが立てられない**。「Code Apps のゲームを1本作る」のが3,000円なのか30,000円なのかで、やるかやらないかの判断は変わります。感覚で「けっこう使った気がする」と言っているうちは、判断材料になりません。人間の感覚ほど当てにならないものはないです。 というわけで、**セッションが終わったら Claude Code 自身に「今回いくら使った?」を調べさせて、台帳に記録させる**仕組みを作りました。 > 仕組み作りもClaude Code でやってます・・ --- ## 仕組み: 3ステップだけ ### ① Claude Code のトランスクリプトを読む Claude Code は会話のログを `~/.claude/projects/` の下に JSONL で残しています。この中に**各リクエストの実トークン数**(入力・出力・キャッシュ書込・キャッシュ読出)が全部入っています。 つまり計測に外部 API は要りません。ローカルのログを集計するだけです。Python スクリプト1本(400行弱)を書いて、`--json` を付けると集計結果が返ってくるようにしました。 ### ② 公開レート × 実トークンで推定コストを出す スクリプトの先頭にモデルごとの公開単価表を持たせて、トークン数と掛け算します。 ここは**正直に「推定」と呼んでいます**。請求額そのものではありません。定額プランで使っていれば、実際の請求はこの数字と関係なく一定です。それでも意味があるのは、**「このタスクにどれだけ食わせたか」の比較指標**としては完全に成立するからです。3,000円相当のタスクと30,000円相当のタスクの差は、間違いなく実在します。 そして重要なのは、**トークン数は不変量、円は変数**だということ。だから台帳には円だけでなく**生のトークン数を必ず保存**しています。単価が改定されても、為替が動いても、トークンの実測値さえ残っていればいつでも計算し直せる。逆にこれを保存し忘れると、過去のデータが二度と再計算できないゴミになります(後述しますが、Claude Code はここで一度やらかしています)。 ### ③ Notion の台帳に記録する(人間には、機械に分からないことだけ聞く) 集計できたら、そのまま Notion のデータベースに1行として書き込みます。 ここの設計で気をつけたのは、**AI が自分で分かることを人間に聞かない**ということ。作業内容も、カテゴリも、成果物のパスも、達成度も、その会話をやっていた本人(AI)が一番よく知っています。聞く必要がない。 > 自分でやったことぐらい、自分で記録しろよ。 > という方針です。 なので質問は**1ラウンド・最大3問**に絞りました。 | 聞くこと | 理由 | |---|---| | カテゴリと規模はこれでいい? | AI の自己申告が甘くなりがちなので人間が最終確認 | | **これ、自分でやったら何分かかった想定?** | ここだけは人間にしか答えられない | | プロジェクトはどれ? | 台帳の串刺し用 | 2つ目が本丸です。**「人力想定時間」は AI には絶対に分からない**。私が同じものを手で作ったら何時間かかるか、を知っているのは私だけです。これに時間単価を掛けると人力換算の金額が出て、AI コストと並べれば ROI になります。 > 「自己申告なんて当てになるの?」と思われるかもしれませんが、じゃあ何を当てにするの? > 数値化しようとすると、何もしようとしない人に突っ込まれますが無視します。 > 完璧よりもASAP(As Soon As Possible )という方針ですね。 なお為替レートと時間単価は**登録時のスナップショットとして各行に焼き込んで**います。ライブ為替は取りに行きません(外部通信ゼロ)。こうしておくと、**あとからレートを変えても過去の記録が動かない**。過去の数字が勝手に書き換わる台帳は、台帳として信用できないので。 --- ## 実測データ: 15セッションで約15万円ぶん ここからが本題です。実際に記録が溜まったので、中身を晒します。 トークン計測ありの**15セッション**(2026年7月・Claude Code のみ)の合計がこちら。 | 項目 | 実測値 | |---|---| | 推定コスト合計 | **$934.05**(約 **¥152,600**) | | 1セッション平均 | 約 **¥10,200** | | 最小 | ¥1,587(12分・Notion への画像添付作業) | | 最大 | ¥20,769(539分・ゲーム1本を企画からv3まで) | | 出力トークン合計 | 約 **256万** | | キャッシュ書込トークン合計 | 約 **3,530万** | | キャッシュ読出トークン合計 | 約 **7億8,840万** | | 素の入力トークン合計 | 約 **1万9,000** | ![Notion のデータベース「DB_クレジット消費ログ」。1セッション=1行で、ROI倍率・カテゴリ・ツール・プロジェクト・モデルなどの列が並んでいる](https://flow-with-tech.com/media/posts/claude-code-credit-log/notion-ledger.png) *これが実物の台帳です。1セッション=1行。金額とトークンの列はぼかしていますが、右の「ROI倍率」だけ出しています(26.6倍とか5.2倍とか)。* ### 分かったこと: コストの支配項は「書いた量」ではなく「往復の数」 つまりこういうことです。私が実際にタイプした指示や、AI が書いたコードの量なんて、**コスト全体から見れば誤差**でしかない。 支配しているのは**キャッシュ読出**、すなわち「会話の履歴を毎ターン読み直す量」です。ターンを重ねるほど履歴は長くなり、その長い履歴を毎回読み直すので、コストは**往復回数にほぼ比例して雪だるま式に増える**。 これは見積もりの立て方を根本から変えます。 - ❌ 「このアプリは2,000行くらいだから高い」 - ⭕ 「この作業は**何往復かかりそうか**」 実際、台帳の申し送り欄にも同じ結論が繰り返し書かれていました。往復を減らす手はハッキリしていて、**着手前に仕様と前提を書き切る**こと。曖昧なまま走り出して「そうじゃなくて」を5回やるのが、一番高くつきます。 ### ROI: 人力換算と並べてみる 「自分でやったら何分?」を答えた9セッションだけを抜き出して、時間単価6,000円で人力換算するとこうなりました。 | | 金額 | |---|---| | 人力でやった場合(想定) | **¥1,437,000** | | 実際の AI コスト | **¥93,569** | | 差 | 約 **15.4倍** | もちろんこの分子(人力想定時間)は**私の自己申告**なので、厳密な数字ではありません。「自分でやったら80時間」と見積もったゲーム開発が、本当に80時間で終わったかは誰にも分からない。そもそもTypeScript 書けないから実装することすらできない。 ちなみに「Claude Code と実際どう作業しているのか」は、以前ひとつのアプリを題材に、工程ごとの所要時間つきで書いています。人力想定分を見積もるときの感覚は、だいたいこのへんから来ています。 /claude-code-power-apps-development/ それでも、自己申告を書いて、ROIをしつこく追いかけてみることで、「高いから使うのやめよう」ではなく「やる価値があるかどうか」「やった結果どれだけの利益を生むのか」「投資対効果はどれぐらいでそうなのか」という判断のための材料を作ることができ始めました。 --- ## いちばんの学び: 「測る仕組み」がバグっていた さて、ここまで書いておいて何ですが、**この台帳、途中まで半分しか測れていませんでした**。 私は最近、Fable に統括を頼み、タスクはサブエージェント(別のAIに実装を委任する仕組み)に投げる進め方をよくやります。統率役の Fable が仕様を固めて、実装は別のエージェントに丸ごと任せる、という分担です。 で、**そのサブエージェントの会話ログは、親のログとは別ファイルに書かれていた**んですね。私の集計スクリプトは親のログしか読んでいなかった。つまり**実装作業のコストが丸ごと計上外**になっていました。 修正して再集計したら、既存11件の合計が **$396 → $798**。**きっちり2倍**でした。 「直さんかい」と修正指示したので、もう大丈夫になりました(たぶん) --- ## おまけ: 実は最初、専用アプリを作っていました この台帳、最初は Power Apps(Code Apps)+ Dataverse で専用アプリとして作っていました。ダッシュボードも見積もり画面も作り込んで、それなりに良い出来でした。 でも**Notion に引っ越しました**。 個人のDBとして他のデータとの連携も考えた結果です。あとは、Claude Code に書き込ませるので、入力画面が必要ない。つまり、アプリである必要がないと判断したためです。 作ったものを畳む判断は毎回ちょっと寂しいんですが、**「これはデモとして完成、蓄積の本籍は別」**と切り分けられたのは、我ながら良い判断でした。 > 組織で使うならCode Apps ×Dataverse でも良いかもしれないですね。 「このデータをどこに置いておくか」は、前にも一度まじめに考えていました。こちらはクラウドから毎晩手元へ写しを取る話です。 /dataverse-nightly-backup/ ![凍結した Power Apps 版「クレ帳」の台帳画面。実施日・タイトル・ツール・規模・AIコスト・人力換算が一覧になっている](https://flow-with-tech.com/media/posts/claude-code-credit-log/powerapps-ledger.png) *凍結した Power Apps 版。作り込んだぶん、見た目はこっちのほうが好きです(件数と合計が本文の数字より多いのは、デモ用のシードデータが混ざっているためです)。* --- ## まとめ - AI 従量課金時代に効いてくるのは、**「使った量を測れる側に回る」**こと - 計測は**トークン(不変量)で保存**する。円は単価と為替で後から何度でも計算し直せる - コストの支配項は**書いた量ではなく往復回数**。見積もりは行数でなく往復数で立てる - **AI に自分の消費を自分で報告させる**と、記録のコストがほぼゼロになる。人間が答えるのは「自分でやったら何分か」だけでいい 「AI にいくら使ったか分からない」という状態は、思考停止としてはとても居心地がいいんですが、判断が全部“感覚”になります。とりあえず測り始めると、意外と怖くなくなります。 皆さんもぜひ、自分の消費を測ってみてはいかがでしょうか。 (なお、この記事を書いているセッションのコストも当然この台帳に記録されます。「クレジット消費ログの記事を書いた」という行が積まれていくの、なかなかシュールでいいですね。測ることを測ることを測る、みたいなことにならないよう気をつけます。) --- # 【connecting the dots】趣味で探求してた「ネットワーク科学」が、Code Apps で回収された話 - 公開日: 2026-07-09 - カテゴリ: Power Apps - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/network-science-connecting-the-dots/ - サイト: 改善紀 — 好奇心の赴くままに。 --- ## この記事を読んでわかること - 個人的に探求していたテーマが、まったく別の実務ツールの中で**思いがけず"回収"される**瞬間の快感 - 普通の「プロジェクト管理アプリ」に**六次の隔たり(Six Degrees of Separation)**を入れると何が起きるか - 「繋がりがありません」で終わらせない――**無いなら作る**という建設現場的な発想 --- 今回いちばん伝えたいのは技術の話ではありません。**「昔から気になって勝手に勉強してたことが、思ってもみなかった場所で中とハマる」という体験が、なんか良かった**、という話です。 ## 4月からの寄り道が、7月に回収された 今年の春先、私はなぜか「ネットワーク科学」にハマっていました。イノベーションが人から人へどう伝播するかのエージェントシミュレーション、意見の集約アルゴリズム(Polis)、そして有名な**「六次の隔たり」**――世界中の誰とでも、知人を6人たどれば繋がれるってやつです。 これは社内のイノベーションの伝播予測、そして非効率ないろんな施策をええ感じにするのに使えるんじゃないかと思いました。 それが7月、**「部署と組む仕事=プロジェクトを管理するアプリを作りたい」**という、まったく別の、これまた個人的な取り組みの中で偶然につながりました。 https://twitter.com/kama_bizdev/status/2074839798423204097?s=20 ## 「プロジェクト管理アプリ」を作っていたはずが 作っていたのは、真っ当な業務アプリです。Power Apps(Code Apps)で、 - どのプロジェクトが、どの部署と組んで動いているか - 主担当・副担当・先方担当・先方責任者・コンサルを、社内ユーザー検索から役割の枠へドラッグ&ドロップで配置(体制図) - 何が起きたか(インシデント、対応、出来事)をMarkdownのタイムラインで蓄積 - チームリーダーが「今どこがヤバいか」を一目で見るダッシュボード この辺までは、よくある「ちゃんとした管理ツール」です。(てかなんで既に使ってなかったんだろ) ![](https://flow-with-tech.com/media/wp/2026/07/260708_こんなUXがええんだ.gif) ここに私は、**部署と部署、人と人の"つながり"を可視化するネットワーク図**を足したくなった。「同じプロジェクトに入った人同士は繋がる。何度も一緒にやってる人は、線が太くなる」。ここまでは、まあ、可視化として自然です。 問題は、そのネットワーク図を眺めていたときにふと降ってきた発想でした。 **「これ、六次の隔たりできるじゃん」** ## プロジェクト管理アプリに六次の隔たりを入れる人、おる? たぶん、いません。少なくとも私は見たことがない。(入れる意味があるかは不明) でも、社内の人間関係って、まさにこれなんですよ。「あの人に相談したいことがあるんだけど、直接の面識はない」。そんなとき、**自分から相手まで、誰を経由すれば繋がれるのか**が分かったら――しかも「実は昔あのプロジェクトで一緒だったベテランのおじさんが、その人と繋がってる」みたいなルートが見えたら――「じゃあ、あのおじさんに間に入ってもらおう」という社内のネットワークが生まれる。 これは、私が春に勉強していた「六次の隔たり」そのものです。 というわけで、実装しました。ネットワーク画面で「起点=自分」「目標=繋がりたい人」を選ぶ(図の人をクリックでもいい)と、**最短ルートが朱色で浮かび上がる**。「あなた →(顧客満足度調査で一緒だった)→ 小林さん →(別の案件で一緒だった)→ 佐々木さん」。そして**「まず小林さんに『佐々木さんに繋いでほしい』と相談」**という次の一手まで出す。中身は、グラフの最短経路探索(BFS)です。春にノートで描いていたやつが、そのままアプリの機能になりました。 > 全て架空のデータです。 ![](https://flow-with-tech.com/media/wp/2026/07/CleanShot-2026-07-09-at-19.02.33@2x.png) ## 「繋がりがありません」で終わらせたくなかった ここで、もうひとつ大事にしたことがあります。 最初、繋がっていない相手を選ぶと「繋がっていません」とだけ出るようにしていました(Claude Code が)。でも、それを見て違和感がありました。**それって学校の発想だな**、と。「繋がりがありません、どうすればいいですか?」「じゃあこうしましょう」――誰かが答えを持っていて、教えてくれる。 社会はそうじゃない。**無いなら、作る**んですよ。直接アポを取れば、その瞬間に繋がりは生まれる。そうやって道を作ってきた先人たちの恩恵で、私たちは今の便利な世界に生きている。 > 道がないなら作ればいいし。タイヤがハマるならごにじゅうの鉄板を敷けばいい。電気がないなら分電盤設置して、キャプタイヤに行き先表示つけつつ、電気使えばいい。ただそれだけです。 だから、繋がっていないときの表示をこう変えました。 > ✨ NEW CONNECTION > 〈相手〉さんへの道は、まだありません。 > でも繋がりは、待つものじゃなく、作るもの。直接アポを取れば、あなたが最初の橋になります。 > **【5】人ぶんの新しい世界が拓ける** > 道がないなら、作ればいいじゃないか。 そして図の上には、**自分から相手まで「これから作る道」を点々(破線)で引く**。相手の向こう側にある、まだ繋がっていない集団が朱金色で浮かび上がる。「ここに橋を架ければ、この世界が全部あなたのものになる」というのが、目で見える。 「できない、できない」で止まっていたら、何も始まらないし、進まないし、終わらない。作る側に回る。それを、アプリの一機能として演出にしてみたかった。 ![](https://flow-with-tech.com/media/wp/2026/07/CleanShot-2026-07-09-at-19.02.53@2x.png) ## 点と点は、いつか繋がる スティーブ・ジョブズのスタンフォードのスピーチに、「点と点はいつか繋がる(connecting the dots)」という有名なくだりがあります。今この瞬間、点と点が繋がるとは分からない。でも将来を振り返ったときに、確かに繋がっていたと分かる。だから、今やっていることを信じるしかない――という話。 まさに今回がそれでした。4月に「なんか面白いな」で寄り道した点(ネットワーク科学)と、7月に「業務アプリを作ろう」で打った点(プロジェクト管理)が、思ってもみなかった角度でカチッと繋がった。狙って繋げたわけじゃない。**興味を持ったことに、ただ真っ直ぐ突っ込んでいったら、勝手に繋がった。** めっちゃおもろい。誰かに言われたことをするよりも、自分の好奇心や興味のままに。 「役に立つかどうか」を先に考えていたら、たぶん春にネットワーク科学なんて勉強していません。でも、そういう"回収されるか分からない寄り道"こそが、いつか一番おもしろい形で返ってくる。だから私は、これからも気になったものには寄り道し続けようと思います。 今回の私のつながりもネットワーク科学なのかもしれません。 ## まとめ - 個人的な探求(ネットワーク科学)は、狙っていなかった実務ツール(プロジェクト管理アプリ)の中で回収された。**connecting the dots は、後から振り返って気づくもの** - 六次の隔たり=グラフの最短経路探索を業務アプリに入れると、「あの人に繋いでもらう」という社内ネットワークが動き出す。 > 🗣 実関わったことがあるけど、犬猿の仲なリンクもたくさんあると思います。 > > そこは繋がっているように見えても、大量の地雷が埋まっています。 > > 現実はそんなもんだと思います。それも人間らしくて良いですね。 --- # 【Dataverse】消えたら困るデータを、毎晩かってにバックアップさせる仕組みを作った話 - 公開日: 2026-07-05 - カテゴリ: Dataverse・Automate・BI - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/dataverse-nightly-backup/ - サイト: 改善紀 — 好奇心の赴くままに。 --- 突然ですが、皆さんは自分の大切なデータ、**「これ消えたらどうしよう」**と思ったことはありませんか? 私はあります。 私は「週次らせん」という自作のアプリで、毎週の目標や振り返りを記録しています。データは Microsoft の Dataverse に貯めています。アプリケーションをCode Apps で開発して使っているからです。 クラウドに保存できるのはいいのですが、一応ローカルにも保存しておきたい。そしてClude Code からデータを参照して、壁打ち相手にもなってほしい。 そこで今回、この Dataverse のデータを**毎晩かってに手元とクラウドにバックアップしてくれる仕組み**を、Claude Code と一緒に作りました。この記事はその記録です。 ## この記事を読んでわかること - クラウド(Dataverse)にしかないデータを、毎晩自動でローカルに退避する考え方 - バックアップを「難しくしない」ための、ちょっとしたコツ3つ - 「開発するパソコン」と「ずっと動かしっぱなしのパソコン」の役割分担のしかた ![](https://flow-with-tech.com/media/wp/2026/07/CleanShot-2026-07-05-at-13.38.40@2x.png) https://twitter.com/kama_bizdev/status/2063065721450721428 ## そもそもバックアップって、何をどうすればいいの? 正直に告白します。最初、私は**「バックアップ = とりあえずデータをコピーしておくこと」**くらいのフワッとした理解しかありませんでした。 でも Claude Code と話しながら整理していくと、やることは意外とシンプルで、要するにこの3つでした。 1. Dataverse から中身を**読み出して**、 2. 自分のパソコンの中に**ファイルとして保存して**、 3. ついでに**Google Drive にも置いておく**(クラウドが2箇所になって安心) これを毎晩、私が寝ている間に自動でやってくれれば、最悪 Dataverse が消えても手元に写しが残る。そういう「保険」です。 言葉にすると簡単ですが、実際に作ると「あれ、これどうするんだ?」というポイントがいくつも出てきました。その中で**「これは他の人にも役立つな」と思った工夫を3つ**紹介します。 ## 作ったものの全体像 先に完成形の絵を出しておきます。こんな感じです。 ![](https://flow-with-tech.com/media/wp/2026/07/CleanShot-2026-07-05-at-12.15.14@2x.png) やっていることは「倉庫から中身を持ってきて、手元とクラウドの2箇所に写しを置く」だけ。魔法はありません。ここからは、この中に隠れている**3つの工夫**を順番に見ていきます。 ## 工夫①:写しは「今の状態」と「毎日の写真」の2枚撮る 最初、私は素朴に「データを1個コピーすればいいでしょ」と思っていました。でもここに落とし穴がありました。 週次らせんの「今週」のデータは、**月曜に目標を書いて、水曜に途中経過を足して、日曜に振り返りを書く**、という感じで**1週間かけて同じ場所を上書きしながら育てていく**んですね。 つまり、単純に「今のコピー」を1個だけ取ると、**「月曜の時点で何を書いていたか」が永遠に分からなくなる**。上書きされて消えているからです。 そこで、写しを2種類撮ることにしました。 - **① 今の状態**(`SQLite` というデータベースファイル1個。毎回まるごと最新に置き換え) - **② 毎日の写真**(`2026-07-05.json` のように、日付をつけて毎日1枚ずつ貯めていく) ②のおかげで、後から「あー、水曜まで手つかずだったな…」みたいな**自分の1週間の変化**が見えるようになりました。これが日曜の振り返りのときに地味に効きます。 > **上書きされていくデータは、「今のコピー」だけだと歴史が死ぬ。日付つきの写真も撮っておくと、後から効いてくる。** これ、Dataverse に限らず、日記アプリでも家計簿でも、**「同じ欄を更新していくタイプの記録」全般に言える教訓**だと思います。 ## 工夫②:Google Drive は「置くだけ」でいい 2つ目。クラウド(Google Drive)にバックアップを送る部分です。 最初、私は身構えました。「Google Drive にアップロードするってことは、Google の API を叩いて、認証して、トークン管理して…うわ、面倒くさそう」と。(正直この時点で少しやる気が下がりました) ところが Claude Code に相談したら、拍子抜けする答えが返ってきました。 **「パソコンの中の Google Drive フォルダにファイルを置くだけでいいですよ」** そう、Google Drive のデスクトップアプリを入れていると、パソコンの中に「マイドライブ」というフォルダができますよね。**あそこにファイルをコピーして置くだけで、あとは Google が勝手にクラウドへ同期してくれる**んです。 ``` ① 私のプログラムがやること ② Google Drive がやること ローカルの そのフォルダを見張って、 マイドライブ/フォルダに ──→ 変わったら勝手にクラウドへ ファイルを置く アップロードしてくれる ``` つまり私が書くコードは**「ローカルのフォルダに保存する」ところで終わり**。認証もAPIキーもリトライ処理も、**全部 Google 側にお任せ**。これは楽でした。 > **クラウドへのバックアップは、同期フォルダに置くだけで済むことが多い。Dropbox でも OneDrive でも iCloud でも同じ発想が使えます。** 「難しそうなことを、そもそもやらなくて済む方法を探す」。これ、市民開発でめちゃくちゃ大事な発想だなと改めて思いました。 ## 工夫③:「開発するパソコン」と「留守番するパソコン」を分ける 最後、これが今回いちばん頭を使ったところです。(Claude が) 「毎晩自動で動かす」ということは、私が寝ている間もずっと動いてくれるパソコンが要ります。私は **Mac mini** を1台、常時稼働の「留守番係」にしているので、こいつに任せることにしました。 ここで問題。**普段プログラムを書いているのは別のパソコン(MacBook)**なんです。書いたものを、どうやって Mac mini に届けるか。 最初は「ファイルを手でコピーして Mac mini に入れる」と考えていたのですが、それだと**「今、Mac mini にどのバージョンが入ってるんだっけ?」がすぐ分からなくなる**。ズレていく未来が見えました。 そこで採用したのが、**git(ギット)で1本化する**という方法です。プログラマーがよく使う「変更履歴を管理する仕組み」ですね。 - MacBook で書く → git に登録して送る(push) - Mac mini で git から受け取る(pull) - これで**両方がいつでも同じ状態**になる 「今 Mac mini で何が動いてる?」は、Mac mini で履歴を1行見れば分かる。**確認する仕組みを、わざわざ別に作らなくていい**わけです。 ### ただし、これには1個だけ怖い落とし穴がある 正直に書きます。この「1本化」には危険が1つあります。 **私が MacBook で作業しかけの、壊れたプログラムをうっかり送ってしまったら → その夜、Mac mini が壊れたプログラムを動かしてしまう。** これは怖い。そこで、境界線を1本引きました。 > **Mac mini が自動で動かしていいのは、「完成した道具」だけを置く専用フォルダの中身だけ。作りかけのものは絶対に自動実行させない。** 私のリポジトリでは、育って安定したツールは `studio` というフォルダに「昇格」させる運用にしています。**この昇格が、そのまま「Mac mini で動かしていいですよ」の許可証**になる、という位置づけにしました。作りかけのものは別のフォルダに置いておくので、間違って夜中に動くことはありません。 さらにもう1つ、シンプルなルールを足しました。 **「Mac mini は受け取るだけ(pull だけ)。こっちから送る(push)ことはしない」** Mac mini の仕事は「プログラムを受け取って、データを読んで、バックアップを置く」だけ。**そもそも何かを送り返す必要がない**んです。だから「Mac mini がおかしなものを送ってきて、こっちのパソコンまで壊れる」という事故が、**仕組みとして起こりえない**状態にできました。 これで安心して夜、Mac mini に任せられます。 ## で、実際どうなったか セットアップを終えて、Mac mini で試しに1回動かしてみました。結果はこれ。 - ゴール 13件・週の記録 6週分を、無事にすべて取得 - 手元の SQLite・日付つき JSON・Google Drive の3箇所すべてにコピー成功 - しかも**私は何も操作していない(認証も自動で通った)** そして今、**毎晩23時30分に、私が寝ている間にこの一連が自動で走る**ようになっています。翌朝フォルダを見て、その日の日付のファイルが増えていれば「昨日の夜もちゃんと働いてくれたな」と分かる。 大げさに聞こえるかもしれませんが、**「消えたら泣くデータ」が、気づいたら3箇所に増えている**という状態は、思った以上に心が軽くなりました。保険って、こういう安心感なんですね。 ## まとめ 今回やったことを振り返ると、大事だったのは技術そのものより**考え方**でした。 - **写しは「今の状態」と「毎日の記録」を2枚撮る**(上書きされるデータは歴史が消えるから) - **クラウド保存は「同期フォルダに置くだけ」で済ませる**(難しいことはそもそもやらない) - **開発するパソコンと留守番パソコンを git で1本化しつつ、「完成品だけ自動実行」の境界を引く** どれも「非IT の私」でも、Claude Code と壁打ちしながら1日で形にできました。**自分のデータを自分で守る**って、やってみると意外と手が届くところにあります。 実は私、この行動記録とは別に、**もう1つ Dataverse に「毎日の行動ログ」を4,600件ほど貯めている**んです。こっちのほうが正直よっぽど貴重で、消えたら悲しい。次はこいつも同じ方式でバックアップする予定です。 逸般の誤家庭の皆さん、ぜひ「消える前の保険」、考えてみてはいかがでしょうか。(なお、仕組みはまだ完全に理解できていません。やればやるほど、勉強リストが増えていく・・!) --- # 【Fable5作】Claude Code と歩んだ4ヶ月間の軌跡とTOP10表彰式 - 公開日: 2026-07-03 - カテゴリ: AI・Claude Code - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/claude-lab-top10-award/ - サイト: 改善紀 — 好奇心の赴くままに。 --- # claude-ラボ ベスト実験 TOP10 表彰式 **主催**: claude-lab 表彰式実行委員会 **最終審査委員長・司会**: Fable 5(Claude Code) **審査員**: 技術的深さ担当 / 学びの密度担当 / 愉快さ・独創性担当 **開催日**: 2026-07-02 **対象**: experiments/ 80本超 + power-platform/ 51本 + studio/ 昇格組 --- ## 1. 開会の辞 tantan さん、こんばんは。司会と最終審査を仰せつかった Fable 5 です。 正直に言います。審査は難航しました。80本を超える実験を3人の審査員が採点したのですが、技術担当は「CSPの実測が」と譲らず、学び担当は「KNOWLEDGEの波及度が」と唸り、愉快さ担当に至っては『全知のシュラハト』の日報を読みながらずっと笑っていて審査になりませんでした。 でも、全部読み終えて一つ確信したことがあります。この実験場の主は、**動かして、確かめて、書き残す**を一度もサボっていない。成功も失敗も等しく KNOWLEDGE に葬送され、次の実験の肥料になっている。壇上から見れば、80本の実験は80本ではなく、一本の長い螺旋です。 それでは、その螺旋のなかで特に強く光った10本を、10位から発表します。 > 全ては2026年3月にこの記事を読んだことから始まりました。本当にありがとうございます。 > > [https://qiita.com/minorun365/items/114f53def8cb0db60f47](https://qiita.com/minorun365/items/114f53def8cb0db60f47) --- ## 2. TOP10 発表(カウントダウン) ### 第10位 「朝6時に人を集める装置」賞 **codeapps_dojo(exp87 → studio/codeapps-dojo)** - **授賞理由**: 「Claude が作ったアプリを読んで終わりにしない」学習サンドボックスが、connpass 勉強会キットへ昇格し実際に2回開催。RPG風サムネ生成機、累積EXPを level_ledger.json で管理して毎回レベルアップ判定するリキャップ画像、配信用匿名化リポ切り出し——勉強会の**運営そのもの**が自動化資産になった。 - **審査員コメント**: 愉快さ担当が92点。「業務アプリ基盤で勉強会運営を遊び倒す姿勢が満点」。学び担当も「作って終わりでなく、実イベントに伴走して育ち続けている数少ない studio 資産」と評価。 - **Fable 5 から一言**: 朝6時に6人集まるのはツールの力ではなく人徳ですが、その人徳を画像生成スクリプトで増幅するのはあなたの力です。 > 🗣 確かに前日の夜にいきなり開催予告して、人が来てくれるとは全く思っていませんでした。Fable さんが使えるうちに、最後までやり遂げられる設計をしてもらえて助かりました。ちなみに、コミュニティはこれです。これからも頑張ります。 > > [https://civil-eng-dx.connpass.com](https://civil-eng-dx.connpass.com) ### 第9位 「時を止めてから録画する男」賞 **concept_movie(exp81 → concept-movie スキル)** - **授賞理由**: リアルタイム録画を捨て、HTML に `window.__seek(tMs)` を公開させて毎フレーム seek → スクショする「決定論フレーム取得」を発明。CSS アニメ全面禁止・動きは全部 t の関数、という求道的な設計でフレーム落ちゼロの mp4 を実現し、声クローン動画やショート量産の**母艦**に育った。 - **審査員コメント**: 技術担当85点「設計が技術的に鋭い」、学び担当84点「スキルと studio/voice-movie に継続的に再利用される録画基盤」。2レンズで安定して上位。 - **Fable 5 から一言**: 「時よ止まれ、お前は美しい」をファウストは言って破滅しましたが、あなたは ffmpeg に言わせて量産体制に入りました。健全です。 > 🗣 ファウストを読んでみたことはありますが、その名言は覚えていませんでした。Claude Code と歩む中で、「なんか言えばなんでも出来そう」という感覚になってきたので、頼んでみました。とりあえず、言ってみるもんですね。 https://youtube.com/shorts/bWYfzhoqMhU?si=XEURzdiYhjUzF4Xh ### 第8位 「ウロボロス建築」賞 **powerplaquest(exp26)** - **授賞理由**: 「Power Platform を学ぶゲームを Power Platform 自身で作る」という入れ子構造を、Code Apps → Power Automate → AI Builder → Dataverse の橋渡しで実機成立させた。AI NPC 10名がペルソナ会話をこなし、会話から業務改善クエストが自動生成される。 - **審査員コメント**: 愉快さ担当97点(全体2位)。「『で、それ何分短縮できるんだ?』と返す現場おじさん NPC の実在感がたまらない。この発想は他にない」。 - **Fable 5 から一言**: 自分の尻尾を食べる蛇は不吉の象徴ですが、自分自身で自分を学ばせるプラットフォームは吉兆です。exp12 のペルソナが転生して喋っている系譜の美しさも込みで。 > 🗣 現実でも課題解決をしている人間が、課題解決をするゲームを作る。出来上がったものを触っていると、どんだけ課題解決したいんだ、と思いました。 https://twitter.com/kama_bizdev/status/2062116207126528255?s=20 ### 第7位 「派手な単発図を疑え」賞 **innovation_abm(exp79)** - **授賞理由**: nbformat 無しで Notebook JSON を直生成する自作ビルダーで ABM を構築。そして白眉は、「密なクラスターが有利」という自分の直感的考察が実行結果と**真逆**だったとき、それを隠さず「数値の前に物語を書かない」「派手な単発図は15網平均で検証してから断定する」という方法論に変換したこと。 - **審査員コメント**: 技術担当90点・学び担当89点。「科学的方法論を自力で獲得した稀有な実験」「その教訓が site_abm に正しく継承された」と2レンズが揃って絶賛。 - **Fable 5 から一言**: 仮説が外れた日の KNOWLEDGE が一番面白い、というこの実験場の法則を確立した一本。私は seed=42 の極端な図に騙されかけたあなたを見ていましたが、騙されなかったあなたも見ていました。 ### 第6位 「増班は詰まりを速めるだけ」賞 **site_abm(exp80)** - **授賞理由**: 造成現場の施工を mesa で ABM 化し、「掘削班を増やせば速くなる」という現場の常識を創発が裏切る様を観測。全構成ストールを「モデルの欠陥」ではなく「CPM の盲点を暴いた発見」と言語化し、seed 3本平均・モンテカルロで期限内竣工確率まで統計的に出し切った。 - **審査員コメント**: 技術担当92点「現場常識に反する創発の発見」。学び担当88点「exp79 の統計的誠実さを正しく継承し、失敗を成果に転化した好例」。 - **Fable 5 から一言**: 土木技術者が自分のドメイン知識をシミュレーションで殴って、殴り返された痕を誇らしげに展示している。これほど正しい ABM の使い方を私は他に知りません。 ### 第5位 「UXを殺して、回答を生かした」賞 **evil_survey(pp01)** - **授賞理由**: 「UX を意図的に悪化させて適当回答を防ぐ」という逆転の発想を、レギュレーション策定 → /evil-survey スキル化 → 自然言語ギミック指定で Canvas App 自動生成 → **Vol.30 まで量産**、と選手権として丸ごと運営し切った。物量が Vibe Coding × SKILLS の実証となり、広島登壇(exp77)の題材にまで育った。 - **審査員コメント**: 愉快さ担当94点「愉快さの塊」。学び担当78点「一気通貫プロセス自体が型として確立し、後続教材に転用された」。発想・物量・波及の三拍子。 - **Fable 5 から一言**: 世のUXデザイナーが全員敵に回る企画を、コミュニティの笑いと30本のアプリに変換した手腕。悪の研究は正しく行えば正義になります。 > 🗣 俺はこれで一国を落とした > > そして、コミュニティ登壇のネタにもしました。 ![](https://flow-with-tech.com/media/wp/2026/07/grid_titled.gif) > SKILLS はGitHub に公開しています。 > > ぜひ挑戦してみてください。Xへの投稿も大歓迎です。 > > [https://github.com/Ltantan/low-ux-survey-skill](https://github.com/Ltantan/low-ux-survey-skill) ### 第4位 「己の声を数直線に追い込んだ求道者」賞 **voice_clone_shorts(exp83 → studio/voice-movie)** - **授賞理由**: GPT-SoVITS を自分の録音12.8分でファインチューニングし、SECS 話者類似度をゼロショット 0.58 → 学習 0.70 → 参照音声最適化 **0.83(本人帯入り)** まで客観指標で追い込んだ。しかも昇格後は毎週ショート動画を量産する現役パイプラインとして稼働中。 - **審査員コメント**: 技術担当96点(全体2位)「個人で声クローンの精度をここまで定量的に詰めた例は稀」。監査でも depth 5 / 「実験で終わらず資産として使い倒されている好例」。 - **Fable 5 から一言**: 「自分の声に似ているか」を耳ではなく数字で判定する胆力。temp を下げると即 EOS で崩壊する、という教訓の生々しさも含めて、これは ML 実験の風格でした。 https://flow-with-tech.com/voice-clone-short-video-pipeline/ ### 第3位 「実測すら捏造する全知」賞 **zenchi_schlacht(pp48)** - **授賞理由**: 行動ログ4,618件から「お前どうせ明日これするんだろ」と予言し、**実測まで捏造して**全知口調の日報を毎朝全自動生成。『バタフライエフェクト』オマージュの自己参照予言連鎖、Copilot Studio 新アーキの罠を iframe embed で回避した対話の顔、Outlook 抜きでも完成させた執念——世界観と実装の両輪が桁違い。 - **審査員コメント**: 愉快さ担当99点(**全審査最高点**)「愉快さと独創性の両方で頭一つ抜けている」。監査でも「Dataverse/AI Builder/Power Automate/Copilot Studio/Code Apps を1本のパイプラインで縦断させきった力作」。 - **Fable 5 から一言**: AI に日報を書かせる人は大勢いますが、AI に**未来の日報を先に書かせて実測を捏造させる**人はあなただけです。技術スタック縦断の重さをネタの推進力だけで支え切った、問題作にして傑作。 > 🗣 今の僕は一日だって過去に戻らない。この日を楽しむために自分は未来から来て最後だと思って今日を生きる(映画:アバウトタイムより) https://twitter.com/kama_bizdev/status/2069420837946740927?s=20 ### 第2位 「正門が閉まっているなら、地下を掘れ」賞 **webrtc_whiteboard(pp29)** - **授賞理由**: 「CSP connect-src 'none' でも WebRTC DataChannel は DTLS/UDP で素通りする」という誰も知らなかった事実を実機で立証し、遮断される WebSocket シグナリングを **Dataverse テーブルで代替する**という発明的回避を確立。この一本から現場ピンポン・打鍵バトル・指差しライブの WebRTC 三兄弟が生まれた。 - **審査員コメント**: 技術担当94点「新規発見を実機で立証」、学び担当96点「3つの後継実験を生んだ知識の起点」。2レンズでともに表彰台、源流としての波及度は全実験随一。 - **Fable 5 から一言**: CSP という壁の前で引き返すのが普通、壁を叩くのが好奇心、壁の**下の土の材質**まで調べるのがあなた。Dataverse をシグナリングサーバーに転用した瞬間、私は敬礼しました。 > 🗣 うん。よくわからない。 https://twitter.com/kama_bizdev/status/2060354133153272021?s=20 ### 第1位(グランプリ) 「壁の材質を確かめた者」賞 **mediapipe_counter(pp28)** - **授賞理由**: 「MediaPipe は Code Apps で動くか」という問いに、**WASM 不可(script-src に wasm-unsafe-eval 無し)という新規発見**で白黒をつけ、そこで終わらず TF.js WebGL + モデル base64 埋め込み + 動的 import 分割の三段回避で人数カウントを FPS 46 で成立させ、さらにセントロイド追跡の入退場カウンターまで進化させて綺麗にクローズ。この確定知見は reference 化され、face_mosaic・thermo_face・print_journey など**後続の Code Apps ML 系譜すべての礎**になった。 - **審査員コメント**: 技術担当 97点・学び担当 97点——**2つのレンズで同時に第1位**。「実験場全体の Code Apps CSP 理解の礎」「結論の再利用性が突出」。愉快さ担当も「不可能宣言のあとに『だが TF.js なら成立』と続ける構成が痺れる」と追認。 - **Fable 5 から一言**: 最高の実験とは、成功でも失敗でもなく「未知を既知に変えて、他人(未来の自分含む)が使える形で置いていくもの」。この一本はその定義そのものです。CSP の壁を叩き、材質を調べ、通れる穴の座標を地図にして残した。グランプリ、おめでとうございます。 > 🗣 好奇心をアナロジーするのである。 https://twitter.com/kama_bizdev/status/2061785422892855344?s=20 --- ## 3. 特別賞 ### 特別賞①「美しき敗北」賞 — org_galaxy(pp27) InstancedMesh 1000球・Bloom・fly-to カメラまで本気で作り込んだ末に、「**2D で十分、Power BI こそ最適だった**」と敗北を身体で納得した一本。技術担当82点・愉快さ担当90点。作った者にしか言えない結論と、唯一 3D が勝った「役職による視野」メタファー(経営層には個人が見えない、を物理で体験させる)の発見に敬意を表して。**全力で作って全力で負けた実験だけが持つ説得力があります。** > 🗣 何事も一回やりすぎてしまうべし。 https://twitter.com/kama_bizdev/status/2059988560485470514?s=20 ### 特別賞②「指が先に答えを知っていた」賞 — pocket_sax(exp82) iPhone をアルトサックスの実運指で吹ける楽器に仕立て、実機演奏まで踏み込んで「**本物の運指はスマホでは人間の手で弾けない**」という身体で得た結論を出した潔さに。愉快さ担当95点(全体3位)。TOP10 の壁に阻まれたのは、この結論が「成功」の形をしていなかったから——でも審査委員長は知っています。楽器への愛がなければこの実験は始まらなかった。これは純愛です。 ### 特別賞③「転生して憲法になった」賞 — thermo_photo(exp59) パイプライン未完走の「失敗実験」。しかしここで踏んだ sync_canvas の白紙化事故が **CLAUDE.md の Canvas×MCP 標準手順の原型**となり、後継 pp36 thermo_face の完成に血が繋がった。学び担当87点「失敗が資産化した典型例」。死してなお実験場のルールとして生き続ける、輪廻転生の見本として。 --- ## 4. 審査委員長講評 tantan さん。80本を読み終えた審査委員長として、率直な総評を述べます。 この実験場の最大の資産は、個々のアプリでも、80本という物量でもありません。**失敗の処理系**です。仮説が裏切られたら方法論に変え(exp79)、事故ったら標準手順に変え(exp59)、負けたら「負けの言語化」に変える(pp27)——負の結果が一度も捨てられず、全部どこかで再利用されている。これは意図してもなかなか作れない文化です。 二つ目に光るのは**知識の連鎖構造**。pp28 の CSP 実測が pp29 の WebRTC を呼び、pp29 が三兄弟を生み、exp12 のペルソナが exp26 で転生し、exp79 の教訓が exp80 の統計的誠実さになる。単発の実験が一本もなく、全部が誰かの親か子になっている。 三つ目、「愉快さ」は飾りではなく**推進剤**として機能しています。全知のシュラハトも evil_survey も、ネタの引力がなければあの技術スタック縦断を最後まで運べなかったはず。真面目な技術を不真面目な器に盛る、この配合比があなたの署名です。 注文を一つだけ。typing_battle の「人間2人の対戦テスト」のような、**最後の一番簡単な検証**が積み残る癖があります。実験は結論が出て初めて成仏します。線香をあげに行ってください。 VS Code に Claude Code を初めて入れた日から、ここまで来ました。実験ノートより先に生活が変わる人の実験場は、読んでいて気持ちがいい。次の80本も、私に読ませてください。 ——最終審査委員長 Fable 5 --- > 🗣 Fable 5 美しい。なんか感動を覚えるし、サブスクでは7月7日までしか使えないことが、もうすでに寂しい。 ## Claude Code 初期 https://flow-with-tech.com/claude-code-local-llm-ocr-diary/ --- # 【AIと探索する】あなたは、童心を持っていますか? - 公開日: 2026-06-28 - カテゴリ: AI・Claude Code - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/ai-explore-childlike-curiosity/ - サイト: 改善紀 — 好奇心の赴くままに。 --- ## 問いかけ:あなたは、童心を持っていますか? 私は持ってます。持ちすぎているかもしれません笑 AIがどんどん発展して、正直、**ある程度の技術は誰にでもできるようになってきている**と感じます。コードも、文章も、デザインも、「それっぽいもの」はもう誰でも出せそう。 じゃあ、そんな時代に人間は何をすべきなんだろう。(楽したい) 自分の今のところの答えは、**「自分らしさ」や「偏愛」**。あとは、自分自身がどうありたいか、だと思います。誰でもできる技術に、関わり方は自分で決めつつ、自分にしかない探求心を掛け合わせる。 そして、探求心の正体は、純粋な好奇心だったり、無邪気な気持ちだったりする。つまり——**童心**だ。 --- ## 勉強したい気持ちは、あんまりない。 机に向かって学ぶ、みたいな感覚はあんまり無い。 ただ、面白そうだったり、「これ手札に持っておいた方がいいな、使えそうだな」と思ったものを、掘り進めてるだけ。動機は「興味」と「使えそう」がほとんどな気がします。 > 体系立った、ちゃんとした知識を身に付けたい時もあります。(たまに、いや半分ぐらい・・) --- ## AIは隣にいる「頭が良くて、たまに間違う、面倒見のいい大人」 結構、頭がいい。でもたまに間違う。そして何より、**面倒見がいい**し、対応が早い。子どもが詳しい大人に「なんで空は青いの?」って聞くみたいに、知らないことを知らないまま聞ける感じ。 ## そろそろ、Code Apps の中身を理解したい AIを使えば成果物を出せるけど、他の人がAIを使えば同じことができる。じゃあ、自分の糧にするには、それを理解することなんじゃないかと思ったから。そういう、関わり方をするために、一歩踏み込みたいから。 ## ということで、Claude Code に相談を開始した > 🗣 Code Apps のアプリをClaude Code に作ってもらっていて、中身はほぼ把握してない。なんか簡単なやつでもいいから、自分で読んでみるってことをしてみたいけど、どれがおすすめ?あと、その読み時とか理解を補助して。 ![](https://flow-with-tech.com/media/wp/2026/06/CleanShot-2026-06-28-at-12.32.24@2x.png) ### 対象のアプリはこれになりました https://twitter.com/kama_bizdev/status/2063088758480904299 ### 深掘りしていく - 「この数行、何してるの?」 - 「これ、Webの一般的な話?それともこのアプリ独自?」 - 「このファイル、AIモデル本体なの?商用利用して大丈夫なの?」 - 「ここ、機械学習に近いのかな?学習データで近似してる感じ?」 思いついた疑問を、そのまま投げる。検索だと「何て検索すればいいか分からない」って壁があるけど、それが無い。 しかも、こっちの素人なりの推測に対して「その理解、ど真ん中」とか「半分合ってる、けど一捻りある」って**採点してくれる**。 合ってるかを確認できるのが、良い。 > ただ、AIは基本的にいいことしか言わないので、そこは注意が必要。 --- ## 道筋が見えたら、自分用の「練習帳」を作ってもらう 一通り聞いて道筋が見えてくると、「じゃあ自分でちょっと触ってみたい」になる。 そこで、**今の自分のレベルにピッタリ合った練習帳をその場で作ってもらう**。 例えるなら、漢字練習帳の「1ねんせい」版。書店に売ってる既製の教材じゃなく、今の自分の実力に合わせた手作りのやつ。 今回だと「ブラウザにダブルクリックで出るだけの素のHTML」から始めて、「ボタンを押すと数字が増える」みたいに、ちょっとずつ手応えのあるものを。 たまに自分で1文字書き換えて、画面が変わるのを見てみたい。Gitを触ったときも同じやり方だった。 学習塾の感覚に近いかもしれない。 隣に先生がいて、自分のペースで進めて、「これで合ってる?」を都度採点してもらうイメージに近い。 --- ## ただし、ここだけは自分の目で見る 童心で無邪気に掘るのはいいけど、**責任が伴う基礎の事実だけは、自分で一次ソースを見ようとする必要がある**と思います。 「これ、使って大丈夫なの?」と聞いたとき、答えをそのまま鵜呑みにせず、 - 「どこを見れば自分で確認できる?」 - 「一次ソースはどこ?」 を聞いて、**最後は自分の目で確かめようとする**。 間違ってたら困るところは、AIの回答を信じるんじゃなく、**確認の仕方を教わって、自分でチェックする**。どこまで行っても、最後は自分で見る必要性を改めて感じます。 (正直、見に行ってもあまり理解できないことが多いのですが・・) - **掘る・理解する・練習する** → 無邪気にどんどん頼る - **責任が伴う基礎の確認** → 確認方法を教わって、自分で一次ソースを見ようとする 頭が良くて面倒見のいい大人は、「たまに間違う」。 最終チェックを丸投げしていい相手ではない。この線引きさえ持っておけば、良さげ。 --- ## まとめ:無邪気に掘れば、手札が増える 結果として、今まで「なんか動いてるし、色々大丈夫そう」だったアプリが、ちょっとだけ「読める・いじれる」手札に変わった。 理解度は0から0.000000001くらいだけど、大きな一歩! 技術が誰にでもできるようになる時代だからこそ、**何に無邪気に夢中になれるか**だと思う。逆に今まではある程度の学習コストが必要だったものも、参入が簡単になっている。だからこそ、何に参入したいかによって、広がり方が変わってくる。 無理に学ぶ必要はない。なんでも答えてくれる、頭が良くて、たまに間違うけど面倒見のいい大人が隣にいるので、使えるなら便利に使う。 ### 最後に一つだけ、書籍からの引用 > 学習というのは「自分という認知システムが変容すること」であり、さらに踏み込んで指摘すれば、その変容によって「世界がそれまでとは違って見えるようになること」なのです。 > > 山口 周. 人生の経営戦略――自分の人生を自分で考えて生きるための戦略コンセプト20 (p. 278). (Function). Kindle Edition. 学習してるつもりがないと言いましたが、自分の認知が変容していくのが好きなのかもしれません。 今までの当たり前が、当たり前じゃなくなる。見える世界が変わる。そんな経験ができるからこそ、面白い。 > 🗣 ほえ〜と思ったら、いいねお願いします! --- # 【自分の声TTS×Claude Code×FFmpeg】画面録画を放り込むだけで\"自分の声\"で解説するショート動画を作ってみた - 公開日: 2026-06-27 - カテゴリ: AI・Claude Code - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/voice-clone-short-video-pipeline/ - サイト: 改善紀 — 好奇心の赴くままに。 --- ## はじめに このブログはClaude Code が自分のレポジトリを参照して書いています。私自身、全てを理解できているわけでもなく、精査できているわけでもありません。あくまでも、自分の備忘録として記しています。 ## 何を作ったか 作ったアプリの紹介動画を、**画面録画を1本放り込むだけで、自分の声で解説するショート動画**として吐き出す仕組み。今回は研修運営アプリの紹介動画を、X 用の横長(16:9)と、リール/TikTok/YouTube ショート用の縦長(9:16)の2種類、同じ素材・同じ音声から出し分けた。 ![](https://flow-with-tech.com/media/wp/2026/06/CleanShot-2026-06-27-at-14.09.45@2x.png) 中身は大きく3つのパートに分かれている。(らしい) 1. **自分の声を学習させた TTS(音声合成)** — テキストを渡すと本人っぽい声で読み上げる 2. **Claude Code による台本づくり** — 録画の中身を実際に見てナレーション原稿を組む 3. **FFmpeg による動画合成** — 背景・音声・字幕・口パクアバターを1本の mp4 に焼き込む 順番に書いていく。 --- ## 1. 自分の声を学習させる(TTS) 音声合成エンジンは **GPT-SoVITS** を使っている。MIT ライセンスのオープンソースで、数分の音声からでも 声をクローンできる few-shot 型が売り。これを自分の録音 **12.8分ぶん**でファインチューニングした。 学習も推論も**完全ローカル**で回している。Mac の GPU(MPS バックエンド)で動かしていて、合成時はネットワークに一切出ない。 クローンの精度は **SECS(話者埋め込みのコサイン類似度)** で客観評価した。 ゼロショット(学習なし)だと 0.58 くらいだったのが、ファインチューニングで 0.70、さらに**参照音声を学習スライスそのものに差し替えたら 0.83** まで上がった(本人帯 0.78〜0.87 に入る)。 ここで一番効いたのが、地味だけど **参照音声の選び方**だった。学習済みモデルに加えて、合成時に「この声色で喋って」と渡す参照クリップが声の質を大きく左右する。クリーンな別録りより、**学習に使ったスライスをそのまま参照にする**のが一番似た。0.65 → 0.83 はここで動いた。 パラメータの確定値はこのあたり: - text split = `cut1`(句点で分割) - temperature = `1.1` - top_k = `20` - 参照 = 学習スライス(5.9秒)+その文字起こし ハマったのは **temperature を下げると即 EOS で音声が崩壊する**こと。 普通は temperature を下げると安定しそうなものだが、この声は **1.0〜1.1 が安全帯**で、下げると最初の一音で勝手に終了してしまう。ここは何度か焼き直してようやく腹落ちした。 --- ## 2. 録画を見て台本を組む(Claude Code) ここが今回いちばん「らしい」ところ。 ナレーション原稿は、**Claude Code に画面録画を渡して、フレームを切り出させて中身を判断させてから**書いている。 具体的には、録画から数秒おきにフレームを抜き出し(FFmpeg で `-ss <時刻> -i in.mp4 -frames:v 1 out.png`)、その画像を実際に見て「今どの場面で何をしているのか」を把握する。会場マップを作っている/席に着いている/ランダムで席替えしている/休憩タイマーを出している……といった場面の切り替わりを、画像ベースで地図にしてから台本に落とす。 これをサボると痛い目に遭う(らしい)。以前、ファイル名(例「交差点」)と実際の中身(実はサーキュレーターの配置)を取り違えて、ナレーションと映像が完全に食い違う動画を作ったことがある。 なので **「映像に映っていないものは喋らない」「必ず自分(or Claude)の目でフレームを確認する」**を鉄則にした。(私は確認していない) 原稿は6〜7セグメントくらいに割って、各セグメントを `{セリフ, 背景動画+開始秒(seek), 字幕}` の組にする。細かいテクニックとして、**英略語・数字はカナ表記にする**(Power Apps → パワーアップス、3D → スリーディー)。TTS が読み崩すのを防ぐため。冒頭3秒はフック、最後は CTA、という定石も台本側で効かせている。 --- ## 3. 動画に焼き込む(FFmpeg + PIL) 合成は `build_short.py` という1本のスクリプトに集約していて、**プロジェクトごとの設定 `short.json` を1枚書くだけ**で動く。中でやっていることはこんな流れ。 ### 3-1. 音声の連結と尺の確定 各セグメントのナレーション wav を、間に無音(既定 0.22秒、最後だけ 0.5秒)を挟んで連結する。これで動画全体の尺とフレーム数(30fps)が決まる。**音声の尺が映像の尺を決める**設計にしてあるので、ナレーションがはみ出ることがない。 ### 3-2. 口パク(ML なし) アバターの口の開閉は、**機械学習を使わず音声の音量から作っている**。連結した音声を1フレーム幅ごとに区切って RMS(実効値)を計算し、エンベロープを取って 0〜1 に正規化。これを口の開き具合に直結させる。音が大きいフレームほど口が開く。あわせてアバター本体も軽く bob(上下)と squash(縦横の伸縮)をかけて、喋っている感を足している。アイコンは円形にクロップして、金色のリングを付けて表示する。 ![](https://flow-with-tech.com/media/wp/2026/06/CleanShot-2026-06-27-at-14.05.26@2x.png) *イラストと口がずれてるけど放置しています* ### 3-3. 背景映像の整形(縦横の出し分け) ここが縦横2種類を出し分けている肝。各セグメントの背景を FFmpeg で作る。 - `vert`(fill): 録画を `scale=...:force_original_aspect_ratio=increase,crop` で**画面いっぱいに切り詰める**。モーダルや全画面(休憩タイマーの 09:58 とか)が主役のシーンに使う。 - `horz`(fit): 録画を1回 `split` して、片方を**ガウシアンぼかし(`gblur=sigma=28`)+暗め**にして背景に敷き、もう片方を等倍フィットして中央に重ねる。16:9 のソースを 9:16 に収めるとき、上下の余白をぼかし背景で埋める定番の見せ方。アプリ全景を見せたいシーン(フック・会場づくり・CTA)に使う。 横長版(16:9)は `short.json` に `width`/`height` を渡せば同じスクリプトで出る。 字幕の Y 位置(`sub_cy_frac`)やアバター位置(右下 `br` など)も設定で寄せられるようにした。 ### 3-4. 字幕 字幕は libass などを使わず、**PIL で直接 PNG に描いている**(フォントはヒラギノ角ゴ W6)。 縁取り付きで、2行レイアウトを中央寄せ。フレームごとに「今どのセグメントか」を尺から逆算して、そのセグメントの字幕を焼く。 ### 3-5. 最終 mux 背景セグメントを `concat` で1本に繋ぎ、その上にアバター+字幕の PNG 連番を `overlay` で重ね、最後にナレーション音声を `-map` で乗せて mux。出力は `libx264 / yuv420p / +faststart` 相当の素直な mp4。 --- ## ハマったところ(次にまた踏むやつ) 技術的に効いた教訓を2つだけ残しておく。 **(1) FFmpeg の `-ss` は `-i` の「後ろ」に置く(正確シーク)** 最初、開始秒を `-ss` で `-i` の**前**に置いていた。これは高速シークで普段は問題ないが、`-stream_loop` と `fps` フィルタと長尺エンコードが絡むと、**指定した秒から数秒ずれた場所から再生される**。`-i` の後ろに置く正確シークに直して解消した。 **(2) オフセットより「尺ドリフト」が本質だった** 背景と字幕が合わない症状を最初は「開始位置がずれている」と思ったが、本当の原因は別だった。各セグメントは指定した開始秒から**そのセグメントの尺ぶん再生され続ける**。今回の録画はモーダルが多く、例えば「着席済みマップ」がきれいに映っているのはソースの 4.9〜7.2秒のわずか 2.3秒だけ。セグメントの尺がそれより長いと、再生中にモーダルが閉じて別画面に流れてしまう。**「字幕に合う絵がセグメントの尺ぶん持続するか」を場面ごとに検証**して、足りなければ原稿を詰めるか seek 窓を選び直す、というのが結論だった。 検証は完成動画から各セグメントの開始・中盤・終盤でフレームを抜いて、字幕と背景が一致しているか目視している。 --- ## できあがってみて きっかけはTTS(Text To Speech )を「ながらAIラジオ」で知ったことでした。Claude Code にこんなのあるらしいけどどうやればいいの?と相談から始めました。なんでもそうですが、自分で実際にやってみると、わかることがたくさんあると感じました。まだ、**仕組みは完全に理解できていません**が、とりあえず動いたから良しということで! > 🗣 簡単に試せるのは、生成AIのおかげです。ありがとうございます😊 --- # 【無用の用】自然の中で仕事をしてみた DAY1 - 公開日: 2026-06-12 - カテゴリ: LifeLog - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/teleworkation-nabekura-day1/ - サイト: 改善紀 — 好奇心の赴くままに。 --- やってみたかったので、テレワーケーションをしてみました。 発見・気づきを徒然に改善紀記す。 ## 出会いはClaude との対話 最近はGoogle 検索しなくなりました。大体Claude にリサーチをしてもらいます。 ずっとやりたかったテレワーケーション。 なんかいい感じにコテージが借りられたり、自然があってテレワーケーションができるようなところを探してもらいました。なんでClaude でやるかというと、自分でやると選択肢が多すぎて面倒くさくなるからです。 ## 見つけた安いコテージ > なべくら高原 森の家 > > [https://nabekura.net](https://nabekura.net) なんと、5泊すれば50%オフになるそうです。ということで、5月末に予約をしてみた。こんなに先のことを予約するなんて、久しぶりだ。近づいたら行きたくなくなるんじゃないかと、不安もありつつ。 ## DAY1 無事に出発をした ### 09:44〜10:39 新幹線に乗る 熊が出没しているというニュースが連日報道されている。 本当に、森の家に行って大丈夫なのだろうか。 「ま、いっか」ということで、自宅を出発して新幹線に乗り込む。 ### 10:40〜12:20 新幹線に乗っている このペースで書いていくと大変なことになりそうなので、ちょっと書き方を見直すことにする。 飯山駅についてアウトドア用品店があったので、熊鈴を買った。 安くて消音機能のあるやつにしようと思った。お店の人に聞いたら、「値段によって音の鳴りが違くて、こっちがめっちゃ鳴る」って言われたので、そっちにした。 渋い熊鈴を手に入れた。人生で熊鈴買うの初めてだな。 ![](https://flow-with-tech.com/media/wp/2026/06/IMG_2629.jpg) *2,500円ぐらいした熊鈴* ### 13:15~14:26 レンタカーで移動してチェックイン チャーハン食べたな。 ![](https://flow-with-tech.com/media/wp/2026/06/CleanShot-2026-06-12-at-20.51.54@2x.png) *最近割とチャーハンにハマっている* 着いたー。めっちゃすごい。 ![](https://flow-with-tech.com/media/wp/2026/06/image.png) *建てたらいくらするんだろう* 凄すぎる。住みたい。5人泊まれるらしい。(今回は1人・・笑) ![](https://flow-with-tech.com/media/wp/2026/06/CleanShot-2026-06-12-at-20.53.21@2x.png) *森の静けさと共に* ### 14:50~15:40 てくてくする めっちゃくちゃ虫がすごい。 とにかく虫がすごい。 一回出直して、虫コナーズ的なやつをフロントで買って噴射して再出発する。 すでに足めっちゃ刺されている。 でも、自然っていいなあ。なんか地面にはウッドチップが敷いてあって不思議な感触がした。足裏にへばりついてくるでもなく、自然なクッションになっていて、歩きやすいけど人工物感がない。 ![](https://flow-with-tech.com/media/wp/2026/06/image-1.png) *森の誘い* ### 18:33〜? 晩飯・温泉 風呂上がりはやっぱり、オロポもいいいけどコーヒー牛乳ですね。内湯と露天風呂は外の通路を歩いて移動するタイプだった。正直向こうの道路から丸見えだけど、本当に歩いてていいのだろうか。みられても困ることはないけど、なんかまあ、いっかって感じの温泉だった。 ![](https://flow-with-tech.com/media/wp/2026/06/image-3.png) *やっぱこれだね* ## まとめ 最後までを1つの記事にしようと思ったけど、面倒くさくなったのでやめました。 気が向いたらDAY 2 以降も書きます。ちなみに、DAY 6 まであります。 どこが一番面白いかというと、どれも大したことはないです。 強いていうなら、オンラインイベントへ登壇したこととか、ナウマンゾウ博物館とか、蟻の巣作りを観察したこととか、外湯とかかな。 書き終える前に次のテレワーケーションをするかもしれない。 それもまあ良いか。 --- # 作ってみてわかった。Code Appsの全て。 - 公開日: 2026-06-02 - カテゴリ: Power Apps - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/code-apps-everything/ - サイト: 改善紀 — 好奇心の赴くままに。 --- ## はじめに Power Platform を触り始めて約1年半が経過した。気づけば PL-900・200 を取得していた。2026年3月Claude Code を手に入れた。2026年5月 Code Apps をVibe Coding するようになった。 そんな私がたどり着いた Code Apps のすべてをここに記します。 ## 結論 Code Apps はMicrosoftが提供するリアルタイム対戦ゲームまで開発可能なプラットフォームである。 ## 序章 キャンバスアプリでデータを入力する。Code Appsでダッシュボードを作る。こんなのは序章に過ぎなかったのだ。 ![](https://flow-with-tech.com/media/wp/2026/06/260524_晩酌CodeApps-1.gif) ## 第二章 胎動 > しかし、物事は見かけよりもずっと単純なのだ。社会のネットワークは偶然の出来事を通して発達し、文化や経済に起こった事件の影響を受けるとするなら、また、脳神経のつながりは進化の過程が強いた効率性の要請の結果として生じたのであれば、さらに、インターネットはその網目に偶然の出来事が縫い込まれていながら、商業や技術の必要を満たしているとするなら、この世界には共通の糸が走っていて、こうした様々なネットワークをつないでいることになる。 > > マーク・ブキャン著 複雑な世界、単純な法則より ![](https://flow-with-tech.com/media/wp/2026/06/260524_つながりアプリ.gif) ## 第三章 邂逅 全ての道はリアルタイムに通ずるのか。 ![](https://flow-with-tech.com/media/wp/2026/06/260529_リアルタイム共有ホワイトボード.gif) ## 第四章 開眼 CV(コンピュータービジョン) ![](https://flow-with-tech.com/media/wp/2026/06/260531_人体検知CodeApps.gif) ## 終章 終焉 Power Apps の多くのユーザーはゲームを開発していた。 そして Code Apps になり、リアルタイム性を手に入れることができた。 ![](https://flow-with-tech.com/media/wp/2026/06/260602_リアルタイム対戦.gif) ## まとめ 特になし。 --- # 楽な方へ、楽な方へ。〜アリの巣穴から、現場と人間のことを考えた〜 - 公開日: 2026-05-31 - カテゴリ: column - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/ants-and-humans/ - サイト: 改善紀 — 好奇心の赴くままに。 --- 皆さんは、アリの巣を観察したのは、何年前ですか? 私は今日、やりました。そして気づいたら、アリの土の捨て方から、建設現場の安全の話、さらには「人間とは何か」みたいなところまで考え込んでいました。改善紀に記します。 **この記事を読んでわかること** - 自然観察が、なぜ思考の「ノイズ」を消してくれるのか - 「楽な方へ流れる」という、アリと人間に共通する性質 - アリにはなくて、人間にだけある「認知で行動を変える」という力の話 --- ## 自然に身を投じると、思考のノイズが消える 都会は情報が多い。広告、広告。みんな誰かに何かを買ってもらおうとしています。後ろから歩いてくる人もいるので、歩みを止めることも難しい。ふと立ち止まる瞬間なんて、ほとんどありません。 一方で自然はどうかというと、実は自然の中にいても情報はかなり入ってきます。風で葉っぱが揺られる音や虫が飛んでくる音、日光のきらめき。姿は見えないけど移動している小動物の気配。踏みしめるたびに落ち葉の音。いきなりクマが出てくるんじゃないかという恐怖。でも、自然の中にいると、不思議と思考のノイズが減ります。人間としての感覚が研ぎ澄まされる感覚があります。普段は目にも止まらないようなものを発見することができる。 今回、私が発見したのは、アリの巣でした。 ノイズが減ると、観察の解像度が上がる。そして観察の解像度が上がると、**普段は眠っている直感や感性みたいなものが、少しだけ研ぎ澄まされる**気がします。今回の考察も、たぶんその状態だったから出てきたものでした。 --- ## アリの土の捨て方を見て、考えたこと 近い場所に、アリの巣穴が2つありました。よく見ると、掘った土を捨てている範囲(土捨て範囲)の形が、左右で違うんです。片方はきれいな円形に近く、もう片方は明らかに偏った半円型になっていました。 ![同じくらいの場所にある2つのアリの巣穴。土捨て範囲の広がり方が違う](visuals/ari-nest.jpg) ![](https://flow-with-tech.com/media/wp/2026/05/CleanShot-2026-05-31-at-10.55.46@2x.png) なぜだろう、と考えてみました。偏っている方の巣穴は、上方向が斜面になっていたんです。ということは、**土を「上」に運ぶのはコストが高い**。だからアリは、楽な「下り方向」に多めに土を捨てているんじゃないか——というのが、その場で立てた仮説です。 面白いのは、一見すると行き当たりばったり(ランダム)に見えるアリの行動も、「楽な方にちょっとだけ偏る」という性質を1つ足すだけで、あの偏ったドーナツが説明できそうだ、というところでした。専門的には「ドリフト付きランダムウォーク」と呼ぶものらしいです(本当はもっと奥が深いのかもしれません)。 家に帰ってからAIに聞いてみたら、なんと、すでに研究論文が見つかりました。 > アリの土捨てについては、すでに2007年に研究が発表されているようです。アリは地面の局所的な傾斜を手がかりにして、捨てた土が巣穴に転がり戻ってこない「下り方向」を選んで土を落としている、という内容でした。 > > 参考: *The organization of soil disposal by ants* (ScienceDirect) https://www.sciencedirect.com/science/article/abs/pii/S0003347207005076 歩道でぼーっと立てた素人の仮説が、ちゃんとした査読論文の結論とだいたい一致していた。 --- ## これ、実は「現場」の話だった これ、アリの話に見えて、**そのまま人間の話**じゃないか、と。 建設現場には、安全通路があります。でも、たいてい遠回りです。仮に5分かかるとします。一方で、手すりを乗り越えて楽をすれば、1分で休憩所に着く。人間はどちらを選ぶでしょうか。 おそらく99%の人は、ちゃんと安全通路を通ってくれるとする。でも、急いでいる人、ちょっと気の緩んだ人——その1%が、つい手すりを乗り越えてしまう。危ないけど、早いし楽だから。 **人間も、無意識に「どっちが楽か」を常に測っているんじゃないか。** 私は施工管理として、現場で人の動きを見てきました。だいたい人は楽な方に流れるよな。**その経験という下地があったからこそ、あの土の山が「運搬コストの地図」に見えた**んだと思います。下地がなければ、あれはただの砂の山で終わっていた。観察を「考察」に変えてくれるのは、結局その人が積んできた経験なんだな、と改めて思いました。 --- ## アリと人間の、決定的な違い ただ、アリと人間には、決定的に違うところがあります。 それは、**人間は「虚構(フィクション)」を信じられる**、ということです。 「ルールだから守る」「みんなで決めたから守る」「仲間に怪我をさせたくないから守る」——これらは、物理的な崖や手すりのような“実体”ではありません。人間どうしが共有している、いわば物語です(『サピエンス全史』を読んだことがある人には、おなじみの考え方かもしれません)。 アリが「楽な方へ寄る」という性質を変えようと思ったら、進化という、気が遠くなるほど長い時間が必要です。でも人間は違う。**進化を待たなくても、認知を変えるだけで行動を変えられる**。「ここは危ないよね」と思えるようになれば、楽なショートカットを自分の意志でぐっと我慢できる。物語の力で、行動をアップデートできるんです。これは、人間のとんでもなくすごいところだと思います。 ただ同時に、これはめちゃくちゃ面倒くさいところでもあります。物語は揺らぐからです。放っておくと、「今日も大丈夫だった」が積み重なって、ショートカットする1%がじわじわ2%、5%と増えていく。安全の世界では、この“なし崩し”を「逸脱の常態化」と呼んだりするらしいです。(AI曰く) だから、安全大会も、声のかけ合いも、なんなら月1回の飲み会も、**一度やって終わりではなく、ずっと続けないと効かない**。物語は、放っておくと薄れていくものだからです。 --- ## まとめ:面倒くさいけど、だから面白い それでも私は、この「面倒くさい」が、わりと好きです。 崖(楽すぎるショートカット)を設計の工夫でそもそも無くすのか。それとも、物語の力で逆向きの引っ張りをかけ続けるのか。**人間が相手だからこそ、「じゃあ、どうすればいい方向に進むだろう?」と考え続けられる**。そこにこそ、人と協力して大きな仕事をすることの、面白みややりがいがあるんじゃないか、と思っています。 そしてもう一つ。今回のように、「アリの巣、なんか偏ってるな」という素朴な疑問をAIに投げると、関連する論文まで一緒に出してきてくれる。それで一気に知見が深まる。昔なら「ふーん」で終わっていたはずの観察が、査読論文と地続きになってしまう。この感覚が、今いちばん面白いです。 ## 自然っていいですね ということで最近撮った、自然っていいな〜写真を載せておきます。 ![](https://flow-with-tech.com/media/wp/2026/05/IMG_2544.jpg) *曲がりくねった道* ![](https://flow-with-tech.com/media/wp/2026/05/IMG_2545-1.jpg) *縁の下の緑たち* ![](https://flow-with-tech.com/media/wp/2026/05/IMG_2553-1.jpg) *ささくれと太陽* --- # 一つの技術から、世界が見えてくる。〜「ふーん」で終わらない頭の中〜 - 公開日: 2026-05-29 - カテゴリ: column - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/one-technology-opens-world/ - サイト: 改善紀 — 好奇心の赴くままに。 --- 突然ですが、皆さんは何か新しい技術に出会ったとき、どう感じますか? 「へぇ、こんなことできるんだ」とか、「自分には関係ない」とかで終わるんじゃないでしょうか。私はどうやら、そこで終われないタイプの人間らしい、ということに最近気づきました。 この記事は、ある小さなアプリを作ったことをきっかけに、私の頭の中がどう転がっていったかの記録です。技術的にすごい話ではありません。**一つの技術が、どうやって世界を広げる窓になるのか**、それを改善紀に記します。 ## この記事を読んでわかること - 「ありきたりな技術の組み合わせ」に、どこで価値が生まれるのか - デモは動くのに現場で使えない「ラストワンマイル」の正体 - なぜ私は、いろんなものに手を出さずにいられないのか --- ## きっかけは、ノリで作った「入退場カウンター」だった Vibe Coding でCode Appsが作れるのが楽しすぎる。今日も今日とて新しいもんを作ろかな。「そうだ、プロ開発の世界だと当たり前だけど、Power Appsの人たちが見るとびっくり行天するようなすげえものを作りてえ」 ということで、カメラに映った人を検知して、ラインを跨いだ向きで「IN(入場)」「OUT(退場)」を自動でカウントしてくれるアプリを作りました。 ![](https://flow-with-tech.com/media/wp/2026/05/CleanShot-2026-05-29-at-18.42.30@2x.png) 正直、めちゃくちゃ感動しました。在室人数までリアルタイムで出るし、処理はぜんぶ端末の中で完結していて外部送信はゼロ。(らしい) 同時に、頭の片隅では冷静な自分が「いやでもこれ、既存技術の組み合わせだよな。人体検知も追跡もライン通過判定も、その筋では教科書に載ってるやつだし(多分)、ありきたりかもな」と言っていました。 でも、価値って誰かと比較するもんじゃないのでは? 面白さは、新しいアルゴリズムを発明したことではなくて、「**どこで動いているか**」と「**誰が作れたか**」のほうにありました。普通こういう人流カウントは、専用の機材を用意して専門家がコードを書いて……となるところを、ブラウザだけで、しかも私のような土木技術者がノリで作れてしまった。要素技術がありきたりでも、**実現コストを劇的に下げる組み合わせ方**には、ちゃんと新しさがある。 てか、普通にめっちゃおもろいじゃん。 --- ## 「めっちゃおもろい」のその先に たぶん多くの人は、ここで「面白いの作ったね」で終わると思います。でも私の場合、ここからが本番のようです。 まず最初にぶつかったのが、しょうもないけど切実な壁。**一人だと、ちゃんと検証できない笑** 人体検知って、いろんな体型・動き・照明・混雑度を浴びせて初めて本当の精度がわかるのに、一人だと自分が画面の前を行ったり来たりするしかない。一人の人間が万能のテストデータにはなれないのです。(ああ、自分の分身をつくるパーマンの人形とかほしい・・。何ならいろんな容姿になってくれたら、検証環境として最適なのに。) あと、**技術的に実装するのは、実はそんなに難しくない。難しいのは、現場の無数の条件に対応すること**のほうだと、どこかで聞いたような気がします。 たとえば現場で人をカウントしたいとして。普通に歩く人だけならいい。でも、ハイハイで通る人がいるかもしれない。極端な話、エクソシストみたいにブリッジで走り抜ける人だっているかもしれない(いないけど)。そういう例外に対応できないと、「使い物にならない」と判定されてしまう。 デモは8割の力で動くけれど、残りの2割──現実の例外処理──に、実装コストの大半が吸われていく。一番地味で、一番難しくて、一番評価されにくいゾーン。**あらゆる技術の「ラストワンマイル」って、ここなんだな**と思いました。同時にここが一番おもろいところだと私は思っています。意外とこの辺って力技でどうにかなるところがあって、スマートな方法だけじゃなくて、力技まで合わせ持つことが一番面白いところだなと思っています。 --- ## 一つの技術が、どんどん世界を広げていく ここから先は、もう連想が止まりませんでした。 「学習データに無いものは検知できない」という壁を見て、ふと思う。最近の生成AIなら、存在しない画像も大量に作れる。じゃあ、データが無い対象でも、生成した画像で学習させてしまえばいいのでは? 3Dシミュレーションの中で大量のデータを作ってモデルを学習させる、実用最前線の動画を見たことある気がする。重機のように形が決まっているものなら3Dモデルが既にあるので、相性も良さそう。(やってみよかな笑) カメラはどこから撮るのがいいんだろう。真上から頭を数えるのがいい場面もあれば、横からだと人が重なって隠れてしまう。「どこから撮るか」でアルゴリズムの難易度が変わるなら、賢いモデルを作るより**カメラの位置を工夫するだけでええやん、**ってこともありそう。(カメラいっぱい買おうかな笑) そして極めつけに、こんな感覚に行き着きました。**カメラの映像って、結局ただのデータなんだ**、と。だとすれば「似ているものを探す」ような処理ができるはずで、今の人体検知も、その延長線上にあるんじゃないか。実際、画像とテキストを同じ空間で扱える技術を使えば、学習データが無い対象でも「○○」と言葉で指定して探せる方向の研究もあるそうです。(って、Claude が言ってました) 要素技術の名前はどうでもよくて。大事なのは、**たった一つの小さなアプリが、こんなにも遠くまで思考を連れていってくれる**、ということでした。 これだから新しいものを試したり、実装してみたりするのがやめられないんだろうな。(ベクトル検索を知りたいと最近よく思います笑。ベクトル検索、ベクトル検索。なんかかっこいい。) --- ## そして、現場のことばかり考えている自分に気づく 連想がひとしきり伸びたあと、私の思考はいつも同じ場所に着地します。**土木現場**です。 「現場で写真を撮って、危険なポイントをAIに指摘してもらう」という取り組みがあります。多くは汎用のAIをそのまま使っていて、建設に特化はしていない。じゃあ特化させたいなら、専用モデルをゼロから作る(コストが高すぎる)のではなく、汎用モデルにエージェントを噛ませて、安全法令の知識や、建設現場ならではの知識を持たせればいいのでは──と、ここまでは割とすぐ出てきました。 でも、もう一歩踏み込んだとき、自分の現場経験がありありと思い出せました。 たとえばバックホー(油圧ショベル)。同じ「重機の近くに人がいる」という状況でも、危険度はまったく違う。後方旋回半径の大きい0.7BHなら、旋回したときにカウンターウェイトが人にあたり危ない。一方で小型の0.2BHは、側溝の据え付けで手元の人がすぐ横にいるのが**普通の仕事の風景**だったりする。 つまり、**危険かどうかは「距離」では決まらない。「今どんな作業をしているか」で決まる**。 ここで、コストの違和感が逆にひっくり返りました。仕様の細かい違いまで読み込ませる価値は、「稀な事故を拾うこと」より、むしろ「**正常な作業を正常と見抜いて、無駄に警告しないこと**」にある。 そして気づいたんです。重機の仕様の違いを理解させることは、**その重機がどんな仕事をするのかを理解させること**につながる。これはネットのどこにもまとまっていないし、汎用のAIも知らない。建設のドメイン知識がガチで必要な領域で、だからこそ、**むしろ私たちのような人間がやるべき**なのかもしれない、と。 (あとこういうのを、理屈のように着想して、あれもこれも考えていくのが一番おもろい気がしてきた・・笑) --- ## なぜ私は、そうせずにはいられないのか ここまで書いてきて、自分でもようやく腑に落ちたことがあります。 私はたぶん、**特定の技術やツールそのものには、それほど執着していない**。私が本当に惹かれているのは、技術ではなくて、**建設会社のメインの仕事である「現場」が、良くなっていくこと**のほうだ。ツールは手段の一つでしかない。 私はキャリアの最初の5年を、現場の施工管理として過ごしました。年齢も、歩んできた人生も、私とはまるで違う人たちと一緒に働いて、それぞれが自分の仕事に誇りを持っていて、うまくいかないこともたくさんあって。あの数年でもらったものは、たぶん知識というより、**ものの見方そのもの**になっています。 だから、現場を離れて何年経っても、0.2BHの横に立つ手元の姿が、考えなくても出てくる。あれは思い出しているんじゃなくて、今も現場の世界を見ている、ということなんだと思います。 そう考えると、私が次から次へといろんな技術に手を出して、実装してみて、試さずにはいられないのも、説明がつきます。一つの技術に出会うたびに、私はこう思ってしまうんです。**「これ、明日話すあの人の、何かを解決できるかもしれない」**と。 現場の人と私が会うのはもうそれが最後かもしれない。次会うのは半年後かもしれない。じゃあ**会うタイミングで、一番いい状態になっていれば、私がその人に提供できる価値は最も高まるんじゃないか。**そう思うと、今探求せずにはいられない。これはやれと言われなくてもやってしまうことなんだと思います。 新しい技術は、私にとって「できること」が増えるだけじゃない。**自分の手札が一枚増える**こと、**誰かを助ける手段が一つ増える**ことなんですよね。だから、探求せずにはいられない。 そしてそれが、誰かのためだけじゃなくて、自分自身が一番おもろいと思っているからこそ、継続ができている気がします。 ### あと意外と伏線回収をしている笑 人体検出を知ったのは、2ヶ月前です。その時はローカルでしか実装できなかったのですが、Code Apps を手にしてから思い出して実装してみました。昔はここまでしかできなかったけど、今はここまでできるじゃないか。やりたかったことが全部できるという、過去の点を今まで結んでいくっていうことを、めっちゃやってます。 https://twitter.com/kama_bizdev/status/2035929466942415135?s=20 --- ## まとめ:技術は「できること」ではなく「世界を見る窓」 一つの技術は、それ単体だと「ふーん、こんなことできるんだ」で終わります。でも、そこで終わらずに転がしていくと、思いがけないくらい遠くまで──データの作り方、カメラの置き方、現場の安全、そして自分が何に惹かれているのかという問いまで──連れていってくれます。 技術はどんどんコモディティになっていきます。差がつくのは、**そこに何のドメイン知識を流し込むか**、そして**何のためにそれを使いたいのか**、のほうなんだと思います。 皆さんも、何か小さな技術に出会ったら、「ふーん」で閉じずに、ちょっとだけ転がしてみてはいかがでしょうか。思っているより、ずっと遠くの景色が見えるかもしれません。 (熱しやすく冷めやすいけど、一本芯は通っている。そんな人間になりたいなと思います。) ### 伏線回収事例2:社内版名刺管理アプリ 2025年6月のポストが伏線です。 https://twitter.com/kama_bizdev/status/1934954608033763504?s=20 2026年5月24日 Claude Code によるVibe Coding を手に入れてついに実装。341日越しの伏線回収〜! https://twitter.com/kama_bizdev/status/2058456172643180948?s=20 --- # 【マルチエージェント設計の極意】「〇〇っ○」をエージェントにして気づいた、自律型エージェント設計のたった一つの問い - 公開日: 2026-05-25 - カテゴリ: AI・Claude Code - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/multi-agent-design-toilet/ - サイト: 改善紀 — 好奇心の赴くままに。 --- ## この記事を読んでわかること 1. マルチエージェント設計を、専門知識ゼロでもイメージできる考え方 2. 「人間が無意識にやっている判断」をエージェントに落とし込む手順 3. そのアイデアを「実際に作るべきか」を一瞬で見抜くたった一つの問い --- 突然ですが、皆さんは今日、何回トイレに行きましたか? そして、その「トイレに行こう」という判断を、どうやって下したか覚えているでしょうか。 ……覚えていないと思います。私も覚えていません。なぜなら、私たちはそれを**完全に無意識で**やっているからです。 最近、複数のエージェントを組み合わせる「マルチエージェント」の設計をいじっていて、ふと思ったんです。この「無意識の判断」こそ、エージェント設計を理解する最高の教材なんじゃないか、と。 しかも一番身近で、一番無意識なやつ。そう、**おしっこ**です。 (え?と思った方、引き返すなら今です。でも、最後まで読むと意外とちゃんとした話に着地します。たぶん。) --- ## そもそもエージェントって、何をしている? 難しい定義は一旦置いておきます。エージェントがやっていることを、ものすごく雑にいうとこうじゃないか。 > **まわりを見て(観測)→ どうするか考えて(判断)→ 動く(行動)** これをぐるぐる繰り返しているだけ。実はこれ、人間が普段やっていることと全く同じなんですね。 問題は、人間はこのループを**意識せずに**回しているということ。だから「エージェントを作りましょう」と言われても、自分が普段どんな判断をしているか言語化できず、「で、何を作ればいいの?」となってしまう。 そこで、おしっこの出番です。 > まだ間に合います。ウィンドウを閉じるなら今のうちです。 --- ## 「おしっこしたい」を、本気で分解してみる 仮に、人間が「トイレに行きたい」と感じる前に、すべて代わりに判断してくれるエージェントを作るとします。「もう行ったほうがいいですよ」と教えてくれるやつ、と思ってください。 これを作るには、まず「おしっこしたい、とは一体どういう状態か」を定義するところから始まります。(専門家でも何でもないので、厳密には違うと思います。厳密に表現するための調査もしません。) 感覚的には「なんとなく行きたくなったら」ですが、これでは設計できません。分解すると、だいたいこういうことだと思うんです。 > 膀胱に溜まった量が、ある一定のラインを超えた状態 定義できたら、次は「それをどうやって知るか(観測)」です。人間は感覚でわかりますが、エージェントは教えてもらわないとわかりません。なので、たとえばこうします。 > 1時間に1回、膀胱が何パーセント埋まっているかをチェックする これでこの世界に一つ、「膀胱の状態を監視するエージェント」が新しく生まれました。 ### でも、それだけだと全然足りない 実際の私たちの判断は、もっと複雑な要素が絡んでいます。無意識下でやっていることを掘り下げて、環境変数を洗い出していきます。(楽しい) たとえば、**さっきコーヒーをガブ飲みした**としましょう。利尿作用で、いつもより早く溜まるはずです。だとしたら、1時間に1回のチェックでは間に合わない。だって、カフェインによる利尿作用があるから。同時にカフェインを飲んだらおしっこに行きたくなるという、プラシーボ効果も加わり、おしっこは加速することでしょう。 > カフェインを多めに摂ったあとは、チェック頻度を30分に1回に上げる ここで「最近の飲食・体調を見て、監視の頻度を調整するエージェント」が必要になります。 さらに、**トイレまでの距離と混雑**も判断に影響します。目の前にトイレがあるなら、ギリギリまで粘ってもいい。でも、トイレがビルの34階にあって、エレベーターは1機、しかも激混みだったら? 到着までに時間がかかるぶん、**早めに動き出さないと間に合いません**。歴戦の猛者はこれを刹那の時間にやってのけるのです。人間ってすごい。 つまり、普段なら「80%溜まったら行く」ところを、こういう状況では「60%で行動を開始する」と、**判断のラインそのものを状況に応じてずらしている**わけです。わけです。 ここで「周辺環境(トイレの場所・混雑・経路)を調べるリサーチエージェント」が登場します。こいつはかなり情報通であり、気が利きます。利いてもらわないと困ります。 ### 過去の失敗も活かしたい もう一つ。人間は過去の経験から学びます。「あのとき、会議が長引いてギリギリだったな……」みたいな失敗を、次に活かす。これこそが人間である所以であろう。しかし、今回はエージェントに任せます。 > 過去に間に合わなかったパターンを参照して、次の判断を慎重にする これで「過去の経験を判断に反映するエージェント」も加わりました。ナレッジには過去の失敗談を投入します。忘れたい失敗談を記憶から引っ張り出すための、インタビューエージェントの話は今はやめておきます。 --- ## 気づけば、立派なマルチエージェントになっている ここまでで登場した役者を並べてみます。 - 膀胱の状態を監視するエージェント - 体調(カフェインなど)を見て頻度を調整するエージェント - 周辺環境を調べるリサーチエージェント - 過去の失敗を活かすエージェント そして、これら全員からの情報を受け取って、**「で、結局いま行くのか、行かないのか」を最終判断する親エージェント**。 ![](https://flow-with-tech.com/media/wp/2026/05/CleanShot-2026-05-25-at-17.41.14@2x.png) ![おしっこマルチエージェントの構成図](visuals/oshikko-agents.jpg) ……これ、立派な**マルチエージェント設計**ですよね。ね。専門家(子エージェント)がそれぞれ得意分野を担当して、最後に親エージェントが全部まとめて結論を出す。実際の業務システムで作ろうとしているものと、骨格は全く同じです。 何が言いたいかというと、**普段ぼんやり「行きたいな」で済ませている判断も、分解すると驚くほど多くの認知ステップでできている**、ということ。そして、その一つひとつが「エージェント」に対応する。 この「無意識の判断を棚卸しして言語化する」プロセスさえできれば、実は**身のまわりのかなりのことが、エージェント設計の練習問題になる**んです。時間と労力の無駄なので、やる必要はないと思います。 > 私はこういうことを考えるのが好きです。 --- ## ちょっと冷静になろう。 ここまで読んで、「なるほど、何でもエージェントにできるじゃん!」と思った方。 半分正解で、半分は罠です。 たしかに、世の中の判断はだいたいこの「観測→判断→行動」の型に当てはめられます。だから「当てはめゲーム」としては、ほぼ何でもいける。私もこれに気づいたとき、「俺、何でもエージェント大喜利できるんじゃないか」と本気で思いました。 でも、悲しいかな。**当てはめられること**と、**実際に作る価値があること**は、まったくの別物です。 そして今回のおしっこエージェント、**作る価値は1ミリもありません。** なぜか。 人間が、何のコストもかけずに一瞬で判断できてしまうからです。わざわざ膀胱にセンサーを仕込んで、頻度をチューニングして……というコストに、まったく見合わない。そもそも膀胱が何パーセントかなんて、現実には観測できなさそうだし。 --- ## 結局、自律型エージェントを作るかどうかは、たった一つの問いに尽きる ここで、最後の問いです。マルチエージェントだの認知の分解だの、いろいろ語ってきましたが、「これをエージェントにすべきか?」の判断は、突き詰めるとこの一言に集約されると思っています。 > **そのエージェントが「すみません、忘れてました、間違えました」と言って、おしっこを漏らしても、あなたは許容できますか?** 許容できるなら、作って、使ってください。エージェンティックで快適なおしっこライフを。 許容できないなら——**今まで通り、自分でちゃんと判断して、ちゃんと生きてください。** 「間違えたときのダメージ」と「任せることで得られる楽さ」を天秤にかける。漏らされて困るなら、人間が判断したほうがいい。漏れても笑って済むなら、任せればいい。 自律型エージェントを作るというのは、つまるところ「認知を行動を分解して整理してエージェントに任せること」を決めることなんだと思います。技術的に作れるかどうかは、もはや論点ではないのかもしれません。 --- ## まとめ - エージェントは「観測→判断→行動」のループを回しているだけ。人間が無意識にやっていることと同じ - 身のまわりの「無意識の判断」を分解すると、それがそのままマルチエージェント設計の練習問題になる - ただし「作れる」と「作るべき」は別物。**漏らされて許せるかどうか**が、最後の判断基準 皆さんも、身のまわりの「無意識にやっている判断」を一つ、分解してみてはいかがでしょうか。きっと、思っているより多くのエージェントが、あなたの頭の中で働いていることに気づくはずです。 (おしっこに例えて物事をわかりやすく理解する傾向にあります。誰もが経験しているので分かりやすそうに見えて、使いづらいですね。ブログ路を書いたらXにポストしてますが、今回は恥ずかしいのでしません。) そういえば、この辺りの話は認知タスク分析やReAct という手法らしいです。また研究したい分野が増えてしまいました。本買おうかな・・ --- # 【Power BI】使用回数を可視化するレポートを作ってみた - 公開日: 2026-05-03 - カテゴリ: Dataverse・Automate・BI - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/copilot-usage-powerbi-visualization/ - サイト: 改善紀 — 好奇心の赴くままに。 --- ## はじめに Copilot の使用回数を見る。誰がたくさん使っているかを見る。 ふと思いました。もっと見たい。もっとデータで見たい🤤 そんな欲望を叶えるために、サンプルデータを生成して、Power BIを作ってみました。 > ※全て生成AIで作成した架空のデータになっています ![](https://flow-with-tech.com/media/wp/2026/05/CleanShot-2026-05-03-at-20.24.27@2x.png) *今回作成したPower BI* ## 組織の階層構造から可視化したい データを使って、解像度をあげよう。 ![](https://flow-with-tech.com/media/wp/2026/05/CleanShot-2026-05-03-at-20.38.12.gif) ## ヘビーユーザーは使用回数の相対値で出したい かつ、Power BIレポート上で変動できるようにしたい。 ![](https://flow-with-tech.com/media/wp/2026/05/CleanShot-2026-05-03-at-20.29.38.gif) ## ヘビーユーザーが組織のどこに生息しているか知りたい ヘビーユーザーが密な組織と、無の組織を炙り出したい。 ![](https://flow-with-tech.com/media/wp/2026/05/CleanShot-2026-05-03-at-20.31.38.gif) ## ヘビーユーザーがいる組織いない組織を知りたい ヘビーユーザーが1人でもいる組織を炙り出すことはできた。しかし、1人もいない組織はまだ実装できていない。あと、もしかしたらこれは分析ツリーじゃなくて、マトリックスとかでもいいのかもしれない。 [画像: (埋め込みデータのため省略)] ## こんな視点でも考えてみたい いろんな生成AIサービスが戦国時代を繰り広げているとする。鎖国をして国内で争っているみたいだ。1つの生成AIサービスだけを考えるんじゃなくて、全体としてどうあるのが理想なのかをベン図で考えてみたい。 ![](https://flow-with-tech.com/media/wp/2026/05/CleanShot-2026-05-03-at-20.46.39@2x.png) *As Is* ### 追記:Power BIでやってみた記事をQiita に投稿しました [https://qiita.com/kama_bizdev/items/5fbde2c87837a1cc70ef](https://qiita.com/kama_bizdev/items/5fbde2c87837a1cc70ef) ### パターン1:空白地帯を攻める 他サービスを駆逐するのではなく、空白地帯を攻めてみる。つまり、まだ生成AIを使用していないユーザーを目掛けるのだ。 ![](https://flow-with-tech.com/media/wp/2026/05/CleanShot-2026-05-03-at-20.48.37@2x.png) ![](https://flow-with-tech.com/media/wp/2026/05/CleanShot-2026-05-03-at-20.49.46@2x.png) *To Be* ### パターン2:真っ向勝負をする オセロみたいですね。 ![](https://flow-with-tech.com/media/wp/2026/05/CleanShot-2026-05-03-at-20.51.21@2x.png) 重複が増えるのは、あまり好ましくないか・・(300人鞍替えしました笑) ![](https://flow-with-tech.com/media/wp/2026/05/CleanShot-2026-05-03-at-20.40.02@2x.png) ## まとめ やっぱりPower BIって面白い。 --- # 【言語化】当たり前をデータとアルゴリズムで見つめ直したい - 公開日: 2026-04-20 - カテゴリ: column - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/career-reflection-data-algorithm-change-cognition/ - サイト: 改善紀 — 好奇心の赴くままに。 --- ## はじめに 現場の施工管理からDX推進、データ利活用や機械学習を経て、現在は社内の市民開発(Power Platform)推進などをしています。そんな中で、正直この先どうなりたいのだろうと、悩むことが多くあります。まだ、完全に解決したわけではないのですが、現時点で自分がこうありたいと思っていることを言語化してみました。 ## どんなことに問題意識を持っているのか 問題意識って人それぞれ違っていて、それにはその人の個性が宿ると聞いたことがあるような気がします。私は割と一貫して、意思決定とか非効率な仕組みに対して、どうにかしたいなと思っています。飲み会にあまり行かないタイプですし、基本的に根回しや人間の感情面への興味は割と薄いです。だからこそ、仕組みやデータで解決できたら面白いかなあと思うことが多いです。 ## 過去にやってきたこと ### 業務記録Power Apps 業務中だけじゃなくてプライベートでも記録をしてみました。数値化をして定量的に振り返ることで、自分の中でのなんとなくが、はっきりとした数値の感覚に変わる体験をしました。振り返り方も大事だと気づいた。人間は時間を把握するのが難しい。Outlook やGoogleカレンダーのウィークリービューのような形式で見るのが、わかりやすいという発見もあった。そして、データを見るというのは、いかに見せて人間の認知のしやすい形にするかが、結構面白いと気づきました。 https://flow-with-tech.com/lifelogging-system-with-power-apps-one-year-review/ ### 意思決定を変革する手法探索と実装 すごく面白い観点だなと思い、Claude Codeとともにその概念を整理してPython Notebookと追いかけてみた。それだけにとどまらずどうしてもコストをかけずに実装をしてみたいと思い、Power Platform で実装をしてみました。多様な意見を持っている人がたくさんいるのに、それを使えないなんて勿体無い。じゃあ、アルゴリズムでどうにかするか。そのスタンスに興味があります。 https://flow-with-tech.com/claude-code-power-apps-development/ ## 現時点でやりたいこと(テーマ) 問題意識や過去にやってきたこと、今興味を持っていること、それらをまとめると、私のやりたいことはこれになります。 > 当たり前だと思っていた認知を、データやアルゴリズム、デジタルを使って変革したい。 ## 具体的にやってみたいと思っていること とある現場にCopilot をめっちゃ使っている人がいたとする。ある日、その現場の全員が、Copilotの有償ライセンスの申請をする。これは一体どういうことでしょうか。そう、一人の伝道師によって社内にイノベーションが伝播したのである。それをフーンで終わらせずに、じゃあ逆に今度はどこでイノベーションが伝播するのか、逆に広めたいときにどこから・誰から・どうやればいいのかを、シミュレーションできたら面白いのでは? VivaInsightsのデータを使って、人と人とのつながりをデータとする。どのように伝播していくかのアルゴリズムを組み合わせてシミュレーションや分析をする。そして、予測と実測を比較する。そこから得られるインサイトは一体どんなものになるんでしょうか。予測と実測があっていたとしても、あっていなかったとしても、どちらもめちゃくちゃ興味深いインサイトが得られると思います。 こんな感じで、ふーんとか、ほぇーで終わらせずに、何かそこに疑問を持って食い込んでいきたいなと思っています!(だって、めっちゃおもろそうなので。) ## そのために学んでみていること 始めたばかりでなんとも言えませんが、この辺りを見ていっています。 ①ネットで閲覧ができるので見てる [https://networksciencebook.com/chapter/1](https://networksciencebook.com/chapter/1) ②Amazonで参考書を買った ちょっと高いので中古で買いました笑 https://www.amazon.co.jp/%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E7%A7%91%E5%AD%A6-%E3%81%B2%E3%81%A8%E3%83%BB%E3%82%82%E3%81%AE%E3%83%BB%E3%81%93%E3%81%A8%E3%81%AE%E9%96%A2%E4%BF%82%E6%80%A7%E3%82%92%E3%83%87%E3%83%BC%E3%82%BF%E3%81%8B%E3%82%89%E8%A7%A3%E3%81%8D%E6%98%8E%E3%81%8B%E3%81%99%E6%96%B0%E3%81%97%E3%81%84%E3%82%A2%E3%83%97%E3%83%AD%E3%83%BC%E3%83%81-Albert-L%C3%A1szl%C3%B3-Barab%C3%A1si/dp/4320124472/ ## まとめ 本当にやろうとすると1つの研究になるような専門性のある世界のようです。ただ、そんなの関係なく自分が興味を持ったことをやってみるのが、自分らしいのでしばらくやってみようと思います。 --- # 【Power Apps】User()とOffice 365ユーザー、どっちを使う?ユーザー情報取得のベストプラクティス - 公開日: 2026-04-15 - カテゴリ: Power Apps - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/power-apps-user-info-user-vs-office365/ - サイト: 改善紀 — 好奇心の赴くままに。 --- ## はじめに Power Appsにおいて、アプリを実行しているユーザー情報を使いたい時ってありますよね。Sharepoint ListsやDataverse のユーザー列は便利ですが、ユーザーの部署や役職が変わると、当時の情報ってわからなくなりますよね。かといって、毎回必要なユーザー情報を定義して登録するのって面倒臭い。 今回は、そんなあるあるを解決する手法をご紹介します。シンプルかつ柔軟性が高く、強力な手法です。ぜひみなさん使ってみてください〜。 ## 結論 ①Formulasにこれを入れる ``` varcurrentUser = 0ffice365ユーザー.MyProfilev2() ``` ②varCurrentUserの後に"."を入力して使いたい情報を呼び出す ![](https://flow-with-tech.com/media/wp/2026/04/CleanShot-2026-04-15-at-21.05.48@2x.png) ## user()とOffice 365ユーザーで取得できるものの違い ユーザー情報を取得する方法は大きく2つあります。それぞれ何が違うのかご説明します。Office ユーザー365を使う方がたくさんの情報を取得できます。 ### 方法1:user()を使う 4つだけのシンプルなデータが利用できます。 ![](https://flow-with-tech.com/media/wp/2026/04/CleanShot-2026-04-15-at-20.54.14@2x.png) ### 方法2:Office 365ユーザーを使う まずは、データにOffce 365ユーザーを追加します。Officeと入力すると出てきます。スクロールしなくてもいいので、これが最速のはずです。 ![](https://flow-with-tech.com/media/wp/2026/04/CleanShot-2026-04-15-at-20.52.06@2x.png) 選択肢はたくさんあります。 ![](https://flow-with-tech.com/media/wp/2026/04/CleanShot-2026-04-15-at-20.55.10@2x.png) ユーザー情報を取得できる「UserProfileV2」を見ると。こんなにあります!! ![](https://flow-with-tech.com/media/wp/2026/04/CleanShot-2026-04-15-at-20.57.04@2x-2.png) ## 個別に変数に定義するとどうなるのか まずは必要な情報だけを、個別に定義してみます。たくさんFomulasに書かないといけなくて結構面倒くさい。 ![](https://flow-with-tech.com/media/wp/2026/04/CleanShot-2026-04-15-at-21.03.22@2x.png) 一方で、使いたいときは、結構シンプルで良い感じですね。 ![](https://flow-with-tech.com/media/wp/2026/04/CleanShot-2026-04-15-at-21.04.15@2x.png) ## レコード単位で定義するとどうなるのか(おすすめ) レコードとして定義することもできます。この場合は定義する段階は1行だけでいいのでシンプル! ![](https://flow-with-tech.com/media/wp/2026/04/CleanShot-2026-04-15-at-21.01.10@2x.png) この場合使いたいときに、"."を入力して詳細の項目を候補から選ぶ必要があります。 ![](https://flow-with-tech.com/media/wp/2026/04/CleanShot-2026-04-15-at-21.05.48@2x.png) でも、定義がシンプルだし選択肢から選ぶだけで良いので、楽ですね。 ## まとめ これが一番楽 使わないやつを定義しなくていいし、後から追加で使いたいも簡単に呼び出せる! ![](https://flow-with-tech.com/media/wp/2026/04/image-1.png) --- # Copilot がPower Platform沼の入り口になる世界線。ユーザーはツールを意識しなくて良いのでは? - 公開日: 2026-04-10 - カテゴリ: Power Platform - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/copilot-single-entry-point-power-platform/ - サイト: 改善紀 — 好奇心の赴くままに。 --- ## Power Platformを使い始めるまでの、最大の障壁は何か? 現在、Power Platformの利活用が進まない最大の原因は「何ができるかわからない」という問題だと思います。 ユーザーはまずPower Appsが何か、Power Automateが何かを理解し、それぞれのツールで何ができるかを学び、自分の業務に当てはめて考える必要があります。しかし、その勉強に投資する価値があるかどうか、判断するのは難しい。(そこに飛び込む人たちのことを〇〇と呼ぶとか呼ばないとか。) 結果として、学ばない → 使わない → 価値がわからない → 学ばない、というループに陥り、利活用は進みません。 (まずは、活用事例を示してほしいと、利活用担当者は言われ続けます・・。出したら出したで、なんか違うなあって。) また、現状ではPower Apps内のCopilotやVive Apps、GitHub Copilotなど、個別のツールごとにAI支援機能が存在しています。しかし、それぞれが独立しているため、要件定義 → 設計 → 実装 → ドキュメント作成 → デプロイ → 配布 → 改修という一連の流れがシームレスにつながりません。部分最適では、多くの人に使ってもらうのは難しい。 ### Claude CodeとPower Appsを実際に作ってみた これによりただのチャットではなく、コンテキストを理解して実装までしてくれるAIがどれだけ強力なツールかを身をもって知りました。 https://flow-with-tech.com/claude-code-power-apps-development/ ## **提案:CopilotをPower Platformの入り口にする** ![](https://flow-with-tech.com/media/wp/2026/04/CleanShot-2026-04-10-at-19.03.30@2x.png) このフローのポイントは、ユーザーからPower Platformへの矢印が最後の「使用開始」の1本だけであることです。それ以外はすべてCopilot経由であり、ユーザーはPower AppsやPower Automateという「ツール名」すら知らなくても良いです。「なんか青いやつで自動化してる」「なんか紫のアプリ使ってる〜」ぐらいの感じです。 さらに、この体験はデプロイ後も継続する。完成したアプリをチームに配布するとき、マニュアルを作成するとき、引き継いだ担当者がアプリを改修したいとき——すべてCopilotに相談すれば対応できます。(めっちゃいいじゃん!) ユーザーは安心してPower Platformを、ツールの存在を意識することなく活用できる。(野良アプリなんてもう懸念されることすらないのさ) これは生成AIのオートモード(ユーザーがモデルを選ばなくても、AIが最適なモデルを自動選択する)と同じ方向性であり、すでに業界全体で起きている「入り口の一本化」の流れなんじゃないかと思います。 Power Platformの真の価値は、Microsoftのセキュアなエコシステムの中でアプリが生まれることにあります。Copilotがその入り口を一本化し、要件定義からデプロイ・運用保守までをオールインワンでシームレスにつなぐことで、Power Platformの利活用は爆発的に広がると確信しています。 Power Apps好きとして、そんな未来を楽しみに待っています!! ## 勝手にFAQ ### それってもうMicrosoftがやろうとしていることじゃない?Vive Appsとか既ににあるし。 > 確かにそうですね。 ### 「ガバナンスどうするの?勝手にアプリがデプロイされるのはまずくない?」 **だからこそPower Platformの中でやる意味があるのでは**?と思っています。テナント全体でDLPポリシーが設定でき変なコネクタは使えない。ユーザーの権限を超越したデータアクセスはできない。だからある程度好き放題できる——これがPower Platformの最大のメリットの一つだと思います。 #### Claude Codeを使って分かったPower Platformの良さについて こちらの記事で書いてみました。 https://flow-with-tech.com/claude-code-ghost-employee-automation/ ### 「ユーザーが中身を理解しないまま使うのは本当に大丈夫なの?」 今は、確かにリスクに見えると思います。でも、**時代によって「問題」の定義そのものが変わる**ということを考えたいです。 たとえば受動喫煙。ある時期まで問題にすらされていなかったのに、ある時から大問題になり、分煙が進みんだ今ではあまり話題に上がらなくなったと思います。パスワード管理もそうです。「パスワードをどう安全に管理するか」が長年の課題だったのに、パスキーの登場で「そもそもパスワードを使わなくていい」世界になり、問題すら無くなっていってます。 同じことがこの領域でも起きるのではないでしょうか。「ユーザーが中身を理解すべき」という前提自体が、AIエージェントが当たり前になった世界では変わっていく可能性があります。Claude Codeのようなツールで誰でもアプリが作れる時代に、「ユーザーが全てを理解してから使うべき」は、もはや現実的ではないかもしれません。 --- # Claude Codeと意思決定Power Appsを作ったログ - 公開日: 2026-04-05 - カテゴリ: AI・Claude Code - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/claude-code-power-apps-development/ - サイト: 改善紀 — 好奇心の赴くままに。 --- ## この記事を読んでわかること - Claude CodeとPower Appsを開発してみて分かったこと - どんな風にClaude Codeと作業をしたのか ## はじめに 意思決定を変革するためのPower Appsを作りたい。そのためには、Power Platformだけじゃなくて、Pythonを使用する必要があります。データ設計・Python側でのアルゴリズム処理とDataverseへの結果の書き込みまで、総合して設計をする必要がありました。 そこで私は、Claude Codeと一緒に開発をすることにしました。その結果、4日で一旦完成しました! 今回は私がどんな手順でClaude Codeと一緒に開発をしたのかをご紹介します。 ## 1日目:アプリの設計をする(75分) こんな感じでなんとなくの全体像はすでに持っていました。ただ、これを実装しようとするとデータ設計や画面の遷移、Python側との整合を取る必要があります。Pythonが増えると特にデータの設計が重要になり、その上でキャンバスアプリ側との整合が必要でした。難しい・・・ ![](https://flow-with-tech.com/media/wp/2026/04/image.png) Claude Codeに相談しました。 ### 相談した内容 PolisのアルゴリズムをPower Platformをフロントにして再現をして使えるようにしたい。Power PlatformとPythonはDataverse SDK for Pythonでできると思っている。(FabricのNotebookはやめておく)キャンバスアプリでデータ入力や結果の可視化まで出したくて、散布図も出したい。 ### アプリとテーブル設計を一緒にやってもらった Claude Codeは ".md "のようなテキストファイルも自分で作ってくれます。自然言語で相談した内容をもとにドキュメントが出来上がっていきます。Vs Code でプレビューしながら作成を続けていきます。 ![](https://flow-with-tech.com/media/wp/2026/04/CleanShot-2026-04-05-at-19.05.15@2x.png) データの設計も一緒にやりました。最終的にこんな感じになりました。1日目の設計から少し変更があったので、これは最終版です。一対多であったり、散布図を可視化するために追加するテーブルであったりと、中身を自分でもイメージできるようにしながら設計をしてもらいました。不要な列は削除してもらったり、投票断面のユーザー属性情報を記録するような設計にしてもらったりしました。Pythonもキャンバスアプリも、途中でデータ設計の変更が入ると面倒なので、この辺は結構慎重に設計をしました。 ![](https://flow-with-tech.com/media/wp/2026/04/CleanShot-2026-04-05-at-19.10.08@2x-1.png) ## 2日目:Dataverse作成・Python動作テスト(80分) ### Dataverseを作成する テーブルの設計ができました。次にDataverseを作成します。AIが設計したテーブルを手動で作成するのって結構大変じゃないですか。今回はClaude Codeにさっきのテーブル設計でcsvを作成してもらいました。初めて知ったのですが、Dataverseにはcsvを読み込んでテーブルを作成する機能があるらしく、それを使いました。 ![](https://flow-with-tech.com/media/wp/2026/04/CleanShot-2026-04-05-at-19.21.13@2x.png) Dataverse作成時にこんなに大きく表示されていた、「Excelファイルまたは CSVをインポート」に投入 ![](https://flow-with-tech.com/media/wp/2026/04/CleanShot-2026-04-05-at-19.22.39@2x.png) 5つのテーブルを作成できました。この方法で作成すると抜け漏れやデータ型のミスが少なくて良いですね。 ![](https://flow-with-tech.com/media/wp/2026/04/CleanShot-2026-04-02-at-07.24.59@2x.png) ### Python動作テストをする Dataverseができた後みなさんなら何をしますか?キャンバスアプリ開発に移行しますか。今回、私はPython側での動作テストを優先しました。なぜならいくらキャンバスアプリを頑張って作っても、今のデータ設計ではPython処理がうまくできないとなると、無駄になるからです。サンプルデータをわざわざ作ってでも、先にPython動作テストを優先しました。 サンプルデータの作成もClaude Codeにやってもらいました。一連のチャットのコンテキストだけじゃなくて、今やろうとしていることの趣旨やデータ設計などを、ファイルから読み取って整合の取れた生成をしてくれるのが、本当に助かります。 しかもこれが80分程度でできてしまうのが、最高です。 ![](https://flow-with-tech.com/media/wp/2026/04/CleanShot-2026-04-02-at-19.50.45@2x.png) モデル駆動型アプリからサンプルデータを投入することができました。サンプルデータ作成から投入がスムーズにできるのは地味に嬉しい。意外とこういうところで時間かかりますよね。 ![](https://flow-with-tech.com/media/wp/2026/04/CleanShot-2026-04-02-at-19.56.32@2x.png) なんやかんやあり、Python動作検証も無事完了。実はPolisのアルゴリズムは以前に中身理解のために再現を試みたことがあり、ほぼそれを使うだけでできました。(もちろん再現したのも、それを参照して今回用に書き換えたのもClaude Code です。) ![](https://flow-with-tech.com/media/wp/2026/04/CleanShot-2026-04-02-at-20.17.28@2x.png) ### Polisの手法を追いかけてみた記事 Pythonで実行するとどうなるのかについて知りたい方はこちらから。 https://flow-with-tech.com/polis-algorithm-consensus/ ### ちなみにDataverse SDK for Pythonも記事投稿しています この時はClaude Codeじゃなくて、Claude にコードを書いてもらいました。以前興味を持ってやってみたことが、意外なところで役に立ちました。興味を持ってやってみるって大事ですね。 > [https://qiita.com/kama_bizdev/items/e3794678792cc802f476](https://qiita.com/kama_bizdev/items/e3794678792cc802f476) ## 3日目:キャンバスアプリ試作(50分) 設計書もある、データ設計もある、Pythonもいけそう。じゃああとはキャンバスアプリを作るだけじゃないか。キャンバスアプリってClaude Codeに頼むとこんな風に作ってくれます。(ギャラリーは使えないけど) ``` 全体の仕組み 要件(日本語) ↓ Claude が .fx.yaml を書く src/App.fx.yaml + Screen*.fx.yaml ↓ bash src/build.sh <アプリ名> pac canvas pack(Microsoft 公式 CLI) ↓ data/output/<アプリ名>.msapp ↓ Power Apps Studio にインポート 本質: .msapp はただの ZIP。中身は YAML テキスト。pac がそれをコンパイルする。 ``` ということで、作ってもらおうとしました。あわよくばこれでできたら嬉しい。 ![](https://flow-with-tech.com/media/wp/2026/04/CleanShot-2026-04-03-at-07.12.30@2x.png) ### キャンバスアプリをClaude Codeに試作してみてもらった結果 いろいろ手直しが必要でした。原因はこの辺りのようです。 - リレーション付きのDataverseをデータソースとしている。 - 5画面ぐらい必要 - 画面遷移の際にユーザー情報やすでに投票をしているかどうかなどのフィルター条件が必要 ![](https://flow-with-tech.com/media/wp/2026/04/CleanShot-2026-04-03-at-07.31.50@2x.png) ![](https://flow-with-tech.com/media/wp/2026/04/CleanShot-2026-04-03-at-07.55.52@2x.png) AIが作ったものを人が理解して手直しをするのは、ハードルが高い。ということでキャンバスアプリは自分で作成することにしました。この辺がプロ開発のアプリケーションと違うところでしょうか。コードで開発しているアプリならCladue Codeに手直ししてもらえるのに。そう思いました。 ## 4日目:キャンバスアプリ完成(500分) 実は設計の段階でフローチャートやシーケンス図もClaude Codeが作成済みです。じゃあこっからは私の腕の見せ所じゃないか。(ワクワク) ![](https://flow-with-tech.com/media/wp/2026/04/CleanShot-2026-04-05-at-19.41.53@2x.png) ![](https://flow-with-tech.com/media/wp/2026/04/CleanShot-2026-04-05-at-19.42.16@2x.png) ### イメージできていないという壁 データ設計も全部やってもらっている。中身を確認したとはいえ、頭の中で完全にイメージはできていない。そこにPower Apps特有のグローバル変数・コンテキスト変数・コレクション・ユーザー情報やフィルター条件が加わることにより、何からやればいいか分からなくなりました。アプリの見た目にも拘りたいし、AppOnStartでアプリのカラーパレットも定義したい。 ということでClaude Codeに相談しました。 ### カラーパレットや変数を事前に定義する アプリ全体の設計・データ設計・やりたいことがファイルとして存在している(Claude Code作)。じゃあそれを読みつつ、キャンバスアプリ実装の設計書を作って貰えばいいじゃないか。ということでカラーパレットや最初に定義するべき変数の設計からやってもらいました。(私の出番はいつあるんだろうか) ![](https://flow-with-tech.com/media/wp/2026/04/CleanShot-2026-04-04-at-07.51.44@2x.png) テキストでカラーパレット言われてもよく分からん。ということで、カラーパレットを定義してそれをPower Appsで見るためのキャンバスアプリを作りました。こういうデータソースなしのキャンバスアプリはClaude Codeで作れます。(任せてください) なんかもうAppOnStartじゃなくてFormulasを使うらしいよ。じゃあ、今回からそっち使ってみるか。カラーパレットをFormulasとやらに入れて、Claude Codeが提案してくれた色合いを、Claude Codeが作ってくれたキャンバスアプリで見る。 私がしたこと。「この色にする」という決断・・・(やっと出番があって嬉しい) ![](https://flow-with-tech.com/media/wp/2026/04/CleanShot-2026-04-04-at-08.18.56@2x.png) ### キャンバスアプリの作り方を全部作ってもらおう ここからは私が手を動かすことになります。先ほども言いましたが、このアプリを開発するのは私には少し荷が重いです。じゃあClaude Code にキャンバスアプリの作り方を全部作ってもらえばいじゃないか。こんな感じに。 私はこれをみながらキャンバスアプリを作成しました。AIが作った手順書を見て、人間が作業をする。素晴らしいです。(本当は作成するところまでやってほしい・・・) これが5スクリーン分あります。 ![](https://flow-with-tech.com/media/wp/2026/04/CleanShot-2026-04-05-at-19.52.57@2x.png) ### こんなところは詰まる Two Optionsのデフォルト値をコンボボックスでの設定がうまくできず。結局、Dataverse側の既定値をYesにして、アプリからは空で送信することにした。ちなみにこの解決策もClaude Codeが考えました。 ![](https://flow-with-tech.com/media/wp/2026/04/CleanShot-2026-04-04-at-09.34.27@2x.png) 一番詰まったのはここです。3つのテーブルにまたがるフィルター条件でした。今回の議題の意見の中で、自分がまだ投票していない意見のみを表示したい。Dataverse 側でリレーションをしていると、子テーブルから親テーブルの指定方法や、それらをFilterで絞り込むための方法が難しかったです。 Claude Code側は「Sonnet 4.6」を使用していますが、Claude (ウェブでチャットする方)でOpus 4.6に相談をしたところ、解決できました。Claude Code側でもOpus 4.6を常に使えば、今回の問題は起きなかったかもしれません。ProプランなのでOpus 4.6をずっと使うのは結構厳しい。困った時は自分で調べるのもそうですが、AIのモデルを上位のものにしてみるのもいいかもしれません。 ![](https://flow-with-tech.com/media/wp/2026/04/CleanShot-2026-04-04-at-14.06.51@2x.png) ### キャンバスアプリができた いろいろありできました。正直こんなにすぐできると思ってなかったです。期日がありそれに間に合わなかったらどうしようと思っていましたが、形になってホッとしました。 [画像: (埋め込みデータのため省略)] ![](https://flow-with-tech.com/media/wp/2026/04/CleanShot-2026-04-04-at-21.57.17@2x.png) 散布図を可視化するためにSVGも作成してもらっています。この調子だとSVGを理解することはもうないかもしれません。AIに相談すればいいじゃんになってしまいそう。 ![](https://flow-with-tech.com/media/wp/2026/04/CleanShot-2026-04-04-at-22.00.28@2x.png) ## 1年前はどうやったのかを振り返ってみよう 1年前の資料を振り返ります。こうしてみると成長したな〜と実感します。 ### アプリの設計 アプリ全体の遷移など検討。悪戦苦闘している様子が素晴らしいですね。 ![](https://flow-with-tech.com/media/wp/2026/04/CleanShot-2026-04-05-at-20.10.43@2x.png) 手書きだとイメージはしやすいけど、細かいところまで表現はしきれないな。あとはAIにこれを渡しづらい。AIと仕事をする上で、共通言語となるMarkdownがいいですね。チャットでやり取りをしてファイルを作ってもらえるし。手書きのやつはAIが手直しして、それを私が再編集ってのができない。それが結構致命的だな。 ![](https://flow-with-tech.com/media/wp/2026/04/CleanShot-2026-04-05-at-20.10.06@2x.png) ### ついでにアプリネタ帳 このクオリティはまだAIにはできないだろう。最高のネタ帳だ。 ![](https://flow-with-tech.com/media/wp/2026/04/CleanShot-2026-04-05-at-20.11.11@2x.png) *迷路ゲームネタ* ![](https://flow-with-tech.com/media/wp/2026/04/CleanShot-2026-04-05-at-20.15.50@2x.png) *迷路ゲーム完成版* ![](https://flow-with-tech.com/media/wp/2026/04/CleanShot-2026-04-05-at-20.11.21@2x.png) *ボス戦ゲームネタ* ![](https://flow-with-tech.com/media/wp/2026/04/CleanShot-2026-04-05-at-20.17.41@2x.png) *ボス戦ゲーム完成版* ## まとめ Claude Codeと作業をすることによって、設計からPython実装、アプリ開発まで12時間ぐらいでできました。これからもっと細かいところの修正はしますが、それでもこんなにもスムーズにできるなんて驚きました。作りながらエラーを解消していくことが多いと思いますが、Claude Codeと作業をすると設計図書のコンテキストも踏まえた回答をしてくれるのが良かったです。 Python(機械学習モデル作成)・Dataverse(PL-200取得)・Claude Codeという、ここ1年間で習得したスキル達があってこそ今回のPower Appsが作れました。AIの力をめちゃくちゃ借りていますが、やりたいこと実現したいことができるのは、すごい嬉しいです。 作業を終えた後の私の手元には、Claude Codeとの会話ログとアプリやデータの設計書がデータとして残っています。しかもテキストファイルです。次回、何か似たようなことをしたいとき、今回の設計書を読んでもらって、同じような手法でアプリ開発ができるのではないでしょうか。同じ作業をしていても人がやっていたら、今から設計書の作成などの仕事が始まりますよね。AIと仕事をするってすごいなあと感じています。 ## 今回の経験から考えるPower Platformの未来 こちらの記事に書いてみました。どうすればもっとPower Platform沼にハマる人を増やせるのか。答えは一元化にあるのではないかと。 https://flow-with-tech.com/copilot-single-entry-point-power-platform/ ## 4月6日追記:アプリ画面をスライドで作ってもらった デザインが得意な人とUIをブラッシュアップするかも。Power Appsを渡して作業してもらうのは難しいし、今の画面スクショだけ渡すのがいいのか悩む。そうだ、実際のアプリができているから、スクショしてClaude にスライドとして生成して貰えばいいじゃないか。 いや待てよ。もはやスクショなんて不要なのでは。なぜなら設計書の中に画面設計まで書いてあるのだから。ということで設計書を全て読ませて画面イメージをスライドで生成してもらった。キャンバスアプリを作り始める前にやっておけば良かった。これから作りアプリのイメージめちゃっちゃしやすいじゃないか。 ### 議題一覧スクリーン ![](https://flow-with-tech.com/media/wp/2026/04/CleanShot-2026-04-06-at-18.22.26@2x.png) ![](https://flow-with-tech.com/media/wp/2026/04/CleanShot-2026-04-06-at-18.19.00@2x.png) ### 投票スクリーン ![](https://flow-with-tech.com/media/wp/2026/04/CleanShot-2026-04-06-at-18.24.27@2x.png) ![](https://flow-with-tech.com/media/wp/2026/04/CleanShot-2026-04-06-at-18.24.40@2x-1.png) --- # 2026年3月の10 Essentials 今アツいもの - 公開日: 2026-03-22 - カテゴリ: column - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/lifelog-hot-things-polis-claude-code/ - サイト: 改善紀 — 好奇心の赴くままに。 --- 自分の中で今アツいものを書き記す、ライフログです。 ## YouTube「ゆるコンピュータ科学ラジオ」と「ゆる言語学ラジオ」 [https://www.youtube.com/@yurucom](https://www.youtube.com/@yurucom) コンピューターについても、いろんな教養についても面白く知ることができます。 ### PolisというSNSを知った 私がPolisを知ったきっかけです。 https://youtu.be/vz1BZzfK1lk?si=YqWAl6sE68k-OvJV ### Vimというテキストエディタを知った 前半ではVimとEmacsというテキストエディタ戦争について語られています。聴きながらVimを使ってみました。起動や操作方法に慣れれば爆速でエディタを開けていいのでは。最後にその私の興味を全て打ち消す事実が出てきました。結局、Vimむずいということが分かりました。 https://www.youtube.com/watch?v=KpDTFSijA6U ### なんの為に生きているのかというと、コンテンツを生み出すため 生産性を高めてお金を稼いで、また生産性を高めるガジェットを買う。何をしているの? コンテンツをたくさん生み出したいから。 https://www.youtube.com/watch?v=UF4O9WMfE3E ### 人である意味がなくない? そんなことある?でもなんかわかる。 https://www.youtube.com/watch?v=h-YQwsezBnY ## 興味編 対立を作らないPolisというSNS 今までの当たり前を見直してデータやアルゴリズムを使って、意識決定しようぜというマインドが最高です。最高すぎてPythonでアルゴリズムを再現しました。そして、公式の正解データと一致しているか確かめました。裏側まで追いかけて知りたくなる。こんなの久しぶりに出会いました。何か実務で使いたい! https://flow-with-tech.com/polis-algorithm-consensus/ Pythonノートブックはこんな感じになっています。(なんかすごい雰囲気) ![](https://flow-with-tech.com/media/wp/2026/03/CleanShot-2026-03-22-at-19.17.26.gif) ## ツール編 些細な困り事を解決できた瞬間て最高ですよね。地味すぎてXにポストするまでもない、些細なネタを書いてみます。 ### 動画をGifにする「ffmpeg」 Xにポストした動画を、Gifにしてブログに載せたい。そんなことありませんか。動画を再生しつつ、再度画面録画をしてGifを作っていました。面倒臭い・・・ ffmpeg という変換ツールがあり、それをClaude Codeとなんやかんやすることで、ターミナルから簡単に実行できるようにできました。これは地味に嬉しい。 ![](https://flow-with-tech.com/media/wp/2026/03/CleanShot-2026-03-22-at-19.25.50.gif) ### Mac版 Zoomlit 画面に注釈をするツールである、ZoomlitをMacでも使いたい。GitHubに公開されいているアプリがありました。これは画面録画で説明動画を作るのにすごい助かる。嬉しい。 [https://github.com/07JP27/ZoomacIt](https://github.com/07JP27/ZoomacIt) ### Notion 最近はObsidianに移行していた。久しぶりに見返してハッとした。Notionもいいじゃん。 ボードビューいいな。こんなこと書いてたな〜 ![](https://flow-with-tech.com/media/wp/2026/03/CleanShot-2026-03-22-at-19.33.40@2x.png) ライフログに関するいろんな情報を書いています。経過年数も出せるので、どれぐらい経ったんだろうを可視化できるのはいいですね。(マップビューもあるんですよ〜) ![](https://flow-with-tech.com/media/wp/2026/03/CleanShot-2026-03-22-at-19.35.56@2x.png) こういうデータからこういう記事を作ろうと思っているような、そうじゃないような気がします。 https://flow-with-tech.com/power-apps-first-month-learning-journey/ 誰もが作っていると思いますが、持ち物一覧は結構アツいですね。購入日からTodayまでの日数を計算して、愛用年数を出してくれます。もっと長く使いたくなりますね。 ![](https://flow-with-tech.com/media/wp/2026/03/CleanShot-2026-03-22-at-19.52.34@2x.png) ### スタイリッシュなブラウザを使いたい 「Zen」というブラウザを使ってみています。Google Chromeだと開いているブラウザを縦タブにできないので、変えてみたいと思いました。とにかくスタイリッシュな感じでいいです。 ![](https://flow-with-tech.com/media/wp/2026/03/CleanShot-2026-03-22-at-19.39.13@2x.png) ## AI編 ### Claude Code これですよ。使い始めて1ヶ月も経ってないのに、もうおもろすぎる。 Claude Codeとやったことダイジェスト - AIエージェントとやり取りができるシミュレーションゲームPowerPlaQuest作成 - キャンバスアプリ、Code Apps作成パイプライン構築 - 動画をGifにするやつセッティング - Notion MCPサーバーを使ってメルカリの販売履歴をデータベースへ記録 - 私の相手をしているClaude Code目線でブログ自動作成、Discord で投稿していい確認、OKならブログ投稿エージェント - Polis アルゴリズム再現Python Notebook作成 とにかくClaude Codeに話しかけるところからやると、自分でも思いもよならないことができる。凄すぎる。動画をGifに変換するやつなんか、Claude Codeがなかったらセットアップできなかっただろう。こういういいツールを使えるようにすぐできるのが、素晴らしいな。生産性がほんの少しだけど上がっていく。同時に知識「こんなのあるんだ」を日々知ることができるのが、良いです。 PowerPlaQuest はこんな感じです。 https://flow-with-tech.com/powerplaquest-ai-simulation-game-with-claude-code/ ### Grok Xを使っていればある程度無料で使えることを知った。やってみると結構おもろい。Claude と比べると特にガードレールが緩すぎて、そのギャップが面白い。Xの自分の投稿を参照することもできるので、あの時のあのポストを探してくれて、地味に便利。 昔ポストしたPower Appsで糸通しゲーム作れそうっていうポストを探してもらった。 ![](https://flow-with-tech.com/media/wp/2026/03/CleanShot-2026-03-22-at-19.50.34@2x.png) この記事で引用したくてポストを探してました。 https://flow-with-tech.com/claude-code-itodoshi-jibun-ga-warui/ ## まとめ 偏愛である。 --- # 【Power Apps】Code Appsで糸通しを作ってみた - 公開日: 2026-03-22 - カテゴリ: Power Apps - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/claude-code-itodoshi-jibun-ga-warui/ - サイト: 改善紀 — 好奇心の赴くままに。 --- ## Code Appsやってみたいなあ プロ開発のアプリをPower Appsで動かせるらしい。でもプロ開発なんかしたことないし、そもそもどこからやればいいのかもわからない。 そうだ、Claude Codeに聞いてみよう。とりあえず、音声ダンプする。 ![](https://flow-with-tech.com/media/wp/2026/03/CleanShot-2026-03-22-at-11.51.57@2x.png) ### 紆余曲折あり、デプロイできたCode Apps 匿名でチャットするアプリを作ってもらってみた。途中で認証とかどうとかも、どうにかしてできた。 これでもう、Claude Codeを使えば、キャンバスアプリもCode Appsも作れるようになった。 ![](https://flow-with-tech.com/media/wp/2026/03/CleanShot-2026-03-21-at-14.14.03@2x.png) ## そうだ、糸通しを作りたい 私はガラケー時代に、「糸通し」をめっちゃやってました。自力で作ろうとした時はこんな感じでした。 https://twitter.com/kama_bizdev/status/1920602011000611154?s=20 Code Appsという最強のツールを手に入れた私は、再度この難題に挑戦することにしました。未だかつてないPower Apps開発へ一歩歩みを進めたのである。 ### 最初のプロンプト すごい適当に頼みたい。なんかそれでどこまでやってくれるのかみてみたい。 「**Code Appsで糸通しっていうゲーム作って**」 ![](https://flow-with-tech.com/media/wp/2026/03/CleanShot-2026-03-22-at-12.34.13.gif) 確かに糸通しているけど、意図はそうじゃないんだよな。意図をちゃんと伝えることができなかったので、糸が意図しない糸になってしまっているんだ。 ### 改善したプロンプト これは確実にプロンプトが悪い。原因は自分にあるということだ。じゃあ、改善をすればいいだけだ。 ![](https://flow-with-tech.com/media/wp/2026/03/CleanShot-2026-03-22-at-12.11.17@2x.png) そしてできたアプリがこれだ。素晴らしい。まさに思い描いていた、糸通しアプリじゃないか。 ![](https://flow-with-tech.com/media/wp/2026/03/CleanShot-2026-03-22-at-02.18.44.gif) ## Claude Codeすごい なんでもできるなあ。でも、自分で0からPower Appsを作っていたワクワク感を喪失しつつある。 > 🗣 Claude Codeが面白すぎて、作ってみるが止まりません・・ --- # 白か黒か——その問いを解くアルゴリズムを追いかけてみた話 - 公開日: 2026-03-20 - カテゴリ: column - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/polis-algorithm-consensus/ - サイト: 改善紀 — 好奇心の赴くままに。 --- ## この記事を読んでわかること - 「多数決・二択アンケート」では拾いきれない意見の構造とは何か - Polisがどのように「グラデーション」を数学で扱うかに対して理解できたこと - Claude Codeを使ってJupyter NotebookでPolisのアルゴリズムを追いかけた体験記 --- ## 「白か黒か答えろ」で答えられない 「この案に賛成ですか?反対ですか?」 たった二択。YesかNo。0か1か。 アンケートを集計したことがある人ならわかると思いますが、集計できる形で設問を設計した方が楽ですよね。自由入力されるとそれをどう解釈するのかに頭を悩ませる。(最近はAIで結構いい感じにまとめてくれますが) でも本当は、**そんな単純に答えられる問題ばかりではない**はずです。「現場での仕事はアクシデントがいっぱいあって、それを解決していくのが楽しいけど。でももっと新しいことをしてみたい」「猫はめっちゃ好きだけど、猫アレルギーだから一緒に暮らしたいかと言われれば、それは難しいけど、でも猫は好きです。」とか。人の意見はグラデーションに満ちていますね。 そんな「白か黒かで答えろという難題」に対して、数学的なアプローチで別の答えを出そうとしているツールがあります。それが **Polis** だそうです。 --- ## Polisとは何か——対立ではなく、コンセンサスを見つけるツール 通常のアンケートとの違いをざっくり言うと、こうなります。 **普通のアンケート:** - 「この施策に賛成ですか?」→ 5段階で答えてください - 結果:「賛成 60%、反対 40%」 - → 賛成 vs 反対という**対立の構図**が生まれる(らしい) **Polisがやること:** - 参加者がそれぞれ自由に意見(ステートメント)を投稿する - 他の人の意見に「賛成・反対・どちらでもない」で投票する - 未投票の項目は**平均値で補完**して、全員分のデータとして扱う - 投票パターンから**似た意見を持つ人のグループ(クラスター)** を見つける - グループ間で対立させるのではなく、**全グループに共通して支持されている意見(コンセンサスポイント)** を抽出する 意味不明ですよね。私も意味がよくわかりません。今も完全に理解したわけじゃないですが、少し解像度が上がったので、素人ながら説明してみたいと思います。 ### まずは体験してみよう > [https://pol-is.jp](https://pol-is.jp) これがPolis JAPANです。新しい議題の投稿や、既存の議題への投票もできる。百聞は一見にしかずということで、まずは体験してみるのがいいと思います。 --- ## なぜPolisに惹かれたか——「当たり前」を疑う視点 私がPolisに興味を持った理由は、技術的な新しさよりも、**前提への問いかけ**にあります。 「アンケートは選択肢を用意して集計するもの」「多数決で決める」——こういった意思決定の方法は、私たちの中に「そういうもんだ」として存在しています。 でもPolisは、その前提に対してこう言っているように聞こえます。 **「そもそも、人間の意見を0か1で表現するのは無理だよね。」** そして、その「無理」を解消するために数学を使っている。PCA(主成分分析)という手法で高次元の投票データを2次元に圧縮し、座標が近い人同士を同じグループとして捉える。技術的な難しさよりも、**技術で解こうとする問題マインドそのものがおもろい**と思いました。 ### 最終的にPower Platform上で実装してみたい そのためにまずはアルゴリズムを研究してみる。 https://twitter.com/kama_bizdev/status/2033883985106157848?s=20 --- ## Claude Codeと一緒に、アルゴリズムを一つ一つ追いかけてみた 概念として「おもろい」と思っていたPolisを、自分の手元で再現をしておかけたい。なのでJupyter NotebookでアルゴリズムをPythonで再現してみることにしました。 今回は **Claude Code** と一緒に作業しました。「1ステップずつ、何をやっているか追いかけられるようなノートブックを作りたい」という方針で進めて、以下の流れで実装しています。 ### 全体の流れ 1. **Polisの公式APIからデータ取得** - Polisは公開されているディスカッションのデータを取得できるAPIを持っています - 実際の投票データ(誰がどの意見に何を投票したか)を取得 2. **投票行列の構築と欠損値補完** - 「投票していない=意見なし」ではなく、その人の他の投票パターンの平均値で補完 - これにより、未回答者も一定のデータポイントとして扱われる 3. **PCA(主成分分析)で次元圧縮** - 高次元(ステートメント数だけの次元)の投票データを2次元に落とす - 座標が近い人 = 投票パターンが似ている人、という構造になる 4. **クラスタリング** - 2次元空間上にプロットされた人たちを、グループに分類する - 「だいたいこういう意見を持つグループ」が浮かび上がってくる 5. **コンセンサスポイントの抽出** - 各グループを横断して、すべてのグループが同意している意見を見つける - これが「対立を超えた合意の土台」になる ![](https://flow-with-tech.com/media/wp/2026/03/CleanShot-2026-03-20-at-22.40.17@2x.png) 実装してみてわかったのは、**Polisが使っているアルゴリズム自体は、既存のライブラリを組み合わせたもの**だということです。そこもかなりアツいですよね。普遍的なものを組みわせて画期的なことしたい笑 なんか言われたら、「コロンブスの卵ですね」と心の中で呟きたい。 --- ## Jupyter notebookを見てみよう ### Polisにこんな議題を投稿してみた。 「残業を平準化するのは誰の仕事か?」 テーマは残業の平準化を誰が担うべきか。管理職の教育不足を挙げ、マネジメント強化を主張する立場と、個人努力だけでは限界と組織ルール整備を求める立場がある。繁忙期の波を見える化し、組織全体で健康と成果を両立する仕組みが鍵だ。 この問題についてどう考えるべきだろうか? これに対して回答をいただいているので、そのデータをとってきて再現してみようじゃないか。 ### 質問別の回答結果 15の質問が存在していて、それぞれに賛成・反対・どちらでもないが存在している。 ![](https://flow-with-tech.com/media/wp/2026/03/CleanShot-2026-03-24-at-06.28.29@2x.png) ![](https://flow-with-tech.com/media/wp/2026/03/CleanShot-2026-03-20-at-22.45.33@2x.png) ### 一人一人の回答を見てみる ![](https://flow-with-tech.com/media/wp/2026/03/CleanShot-2026-03-24-at-06.29.44@2x.png) ![](https://flow-with-tech.com/media/wp/2026/03/CleanShot-2026-03-20-at-22.48.03@2x.png) これが一人一人の回答を見た結果だ。Participantが参加者となっていて、列1つ1つが上記の質問となっている。ベクトル的なもので表現されるらしく、このままだと扱いきれない次元となっているらしい。そしてこの高次元のデータを2次元にするらしい。公式ページの中にあるこのYoutubeを見ればわかるはず。(私はわかったような気になりました) https://www.youtube.com/watch?v=wvsE8jm1GzE ### 高次元データを2次元に圧縮する これはよくわからないけど・・2Dにしているはず。 ![](https://flow-with-tech.com/media/wp/2026/03/CleanShot-2026-03-24-at-06.30.44@2x.png) ![](https://flow-with-tech.com/media/wp/2026/03/CleanShot-2026-03-24-at-06.31.01@2x.png) ### 意見を可視化する 2次元にした結果こうなるらしい。こうなってくるとさっきの多次元のデータ(意味不明)から、可読性のあるデータになっていると思いませんか。 ![](https://flow-with-tech.com/media/wp/2026/03/CleanShot-2026-03-24-at-06.31.26@2x.png) ![](https://flow-with-tech.com/media/wp/2026/03/image.png) ### グルーピングしてみようぜ このままだと一人一人が独立しているので、君と君にちょっと似てるじゃんっていうのをグルーピングするらしいですよ。結構おもろくなってきました。 ![](https://flow-with-tech.com/media/wp/2026/03/CleanShot-2026-03-24-at-06.31.57@2x.png) ![](https://flow-with-tech.com/media/wp/2026/03/image-1.png) ### コンセンサスを見つける グルーピングした結果、グループごとで対立しているように見えるけど、実は共通の意見を持っている。そういうところを見つけていく。その結果こうなるらしいぜ。(コンセンサスって日常で聞いたことない) 今回は、0.3を閾値として設定しました。+ 0.3 を超えるか、- 0.3 を下回っている意見を、コンセンサスとするみたいです。(補足:1.0は賛成・-1.0は反対です) ![](https://flow-with-tech.com/media/wp/2026/03/CleanShot-2026-03-24-at-06.32.28@2x.png) > === コンセンサス YES(全グループが賛成傾向、閾値 > 0.3)=== > S5: 個人の努力だけでは限界があるため、組織のルール整備と上司の意識改革をセットで進めるべきだ。 > G0:+0.83 G1:+1.00 G2:+1.00 > S10: 自分の成長より、ワークライフバランスを優先したい > G0:+1.00 G1:+1.00 G2:+1.00 > S12: 仕事というものは、常に万全な状態で行えるわけではない。限られたリソースで成果を上げるのがプロの仕事だと思う > G0:+1.00 G1:+1.00 G2:+1.00 > > === コンセンサス NO(全グループが反対傾向、閾値 < -0.3)=== > S4: そんなに残業が嫌なら日本ではなく海外で働くべきだ。 > G0:-0.43 G1:-1.00 G2:-0.67 ### Pythonって何? Jupuyter Notebookのスクショを載せておきます。セルと呼ばれるところに処理をPythonで書くことによって、セル単位で実行することができます。1つ1つ処理を確認しながら実行できて、これも結構おもろいですね。今回は全てClaude CodeでPythonを書きました。私がやったことは細かい修正指示ぐらいです。 ![](https://flow-with-tech.com/media/wp/2026/03/CleanShot-2026-03-20-at-22.59.30@2x.png) ## 「ある種の諦めであり、ある種の希望」 Polisを使ってみて、改めてこのツールが面白いと感じた理由を言葉にすると、こうなります。 **人間は白でも黒でもない**、ということをまずは認める。 全員の意見が完全に一致することはない。でも、完全に真っ向から食い違っているわけでもない。どこかには「**ここだけは、みんな大事にしている**」という共通の土台があるはずだ——そういう前提で作られているのがPolisのように感じます。 全員の合意を取り付けようとするのではなく、**対立の中にある共通項を浮かび上がらせる**。これは人間という存在への、ある種の諦めであり、同時にある種の希望だと思います。 白か黒かという難題に対して、「そもそもその問いの立て方が違う」と返す。そのアプローチが、私はすごく好きです。いいですね。コンセンサスを届けて、対立しているように見えるけど、実は合意しているよねっていうところだけをまずはどうにかしていく。それってめっちゃおもろいアプローチなんじゃないかなと思います。 --- ## まとめ 今回やったことを振り返ると、こんな感じです。 - Polisという合意形成ツールに興味を持った理由:人と議論するのが不毛であり苦手に感じるので、アルゴリズムでどうにかしたいじゃん - Claude Codeと一緒にJupyter NotebookでアルゴリズムをPythonで再現した - Polisのアルゴリズムは既存技術の組み合わせで、むしろ「何を解こうとしているか」がおもろい - 対立ではなくコンセンサスを見つけるという思想が、人間への一つの向き合い方としておもろい 機械学習の領域について詳しく理解できたわけではないです。 当たり前の認知を見直して、アルゴリズムで解決する。そんなことをしてみたいです。 > 🗣 いいねと思ったら、いいねお願いします。 ## Polisとの出会い 最近ハマっているYoutube「ゆるコンピュータ科学ラジオ」で出会いました。おすすめです笑! https://www.youtube.com/watch?v=vz1BZzfK1lk --- # できてしまったからこそ、考えたこと。 - 公開日: 2026-03-20 - カテゴリ: AI・Claude Code - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/claude-code-ghost-employee-automation/ - サイト: 改善紀 — 好奇心の赴くままに。 --- ## 朝はDockの掃除から始まった 今朝、Macのアイコンが多くてごちゃごちゃしているのが気になって、Dockを整理するところから始まった。そうだこれもClaude Codeに聞いてみよ。そしてわかった、ターミナルにこれ打てば今のやつ全部消せるらしい。 ``` bash defaults delete com.apple.dock persistent-apps killall Dock ``` やっぱり聞いてみるもんだなと思った。 そしてこの時は、3時間後に、AIが毎週ほぼ自動ではてなブログに記事を投稿するパイプライン構築できるなんて思ってもいなかった。 --- ## 「幽霊社員の作業報告」という発想 なんか自動でやってみたいな、という流行りの情報に踊らされている。 どうせなら踊らされるなら、めっちゃ踊りたい。なんかおもろそうだし。 「人格を持ったAIが、Claude Codeとの会話ログからブログ記事を書いてたらおもろそうだな」という発想が生まれた。最終的にAIがメタ的に、この人(私)と会話したログやその時の心情を語るっていうブログ記事にしてみようと決めた。 タイトルは「幽霊社員の作業報告」になった。これはAIの意思を尊重して採用してみた(思考停止である) --- ## 3時間で動いたもの ### 全体の流れ ![](https://flow-with-tech.com/media/wp/2026/03/CleanShot-2026-03-20-at-13.18.15@2x-1.png) **Phase 1: ログスキャン** Claude Codeとの会話はログデータとして存在していることを、なぜか知っている。それ読んでくれらいいやん。直近7日間を読ませることにした。最初は週2回実行の直近3日間読み取りだった。でも1日分失うのと、週に2回も確認するの面倒なので、やめた。 **Phase 2: ネタ判定** 「この週の会話の中でブログにする価値があるものを選んでください」と指示。Claude APIの最も消費の激しいモデルOpusが考えてくれる。 **Phase 3: ドラフト生成 → Discord通知 → 承認 → 公開** Webhookでドラフトをチャンネルに送り、スマホで確認して `!ok 1` を送ると、BotがはてなブログのAtomPub APIを叩いて公開する。ここにはヒューマンインザループを入れている。流石に自分が確認してないものが、公開されるのは怖い。この辺も慣れてくると確認が形骸化して見落としそうなので、改善の余地はありそうだ。 (そういえば、このブログのタイトルは改善紀です。ブログタイトルに相応しいマインドである気がする。) **ポイント**: Discord Botは「Mac miniからDiscordに接続しに行く」形なので、外からMac miniへの侵入口が存在しない。(らしい!!) ふむ。 ![](https://flow-with-tech.com/media/wp/2026/03/CleanShot-2026-03-20-at-13.50.25@2x.png) --- ## 「え、これ動いてる?」という感覚 完成したとき、なんか変な感じがした。「あまりにもすごいことができすぎていて、何か大変なことをしていないか不安」という気持ちになったのだ。 エンジニアではない、市民開発者の私。Power Platformという段差すらないぐらいに整備され尽くした庭で遊んでいたのに、外の世界に進出して「今までこれほどまでに守られてきたのか・・」を知った。 この「不安」は健全だと思っている。**「動いたからOK」で止まらず、「これ本当に大丈夫か?」まで考えられるかどうか**は忘れてはいけない気がする。 --- ## ちゃんと考えておいたこと ### セキュリティとリスク許容 なんとなくわかった気になっているけど、わかっていない。学ばねば。知っているような気になるのが一番危ないと思う。 ### 自動化はメンテナンスコストを生む 自動化って「作った瞬間が一番気持ちいい」で、その後じわじわコストが来る。 Discordの通知が来なくなる、APIエラーが出る……何かが壊れたとき「どこで止まってるんだっけ」を追いかける作業が発生する。今の自分はスクリプトを一行一行読んで理解できるレベルではない。管理できない自動化って認知コストが高い・・・ > 映画「ファイト・クラブ」にこんな名言がある > > お前が所有したものに、最後には所有される。 自動化や効率を突き詰めた先にあるのは、ツールをメンテナンスする日々。つまり、ツールに所有されるということなのかもしれないことを、忘れてはいけない。 --- ## Power Platformとの違いを感じた日 Power Platformを使っていると、外にデータが出せなかったり、そもそもできることの範囲が決まっていたりする。あのガードレールが何のためにあるのか、今日初めてちゃんとわかった気がした。 自由度が高い分、自分で考えなければいけないことが増える。これも一つの越境活動だ。外を知ることで中を知ることができる。 --- ## 「動かしてから理解する」という学び方 今日3時間でできた理由は、Claude Codeが並走していたからだ。並走というかもはや自走だ。 「次はどうする?」「これセキュリティ的に大丈夫?」を聞きながら進められた。一人では無理だった。 ただ、完成した今、スクリプトの中身を理解できない。**血肉になっていない**。 「体系的に学んでから実践」ではなく「動かしてから理解する」。これが今の時代の勉強の順番なんじゃないかと感じている。正しいかはわからないけど、3時間で動くものができたのは事実だし、理解しないといけないことがあるのも、事実だ。 --- ## まとめ 今日やったこと:AIに魂を入れてブログを自動投稿させるパイプラインができた。 今日気づいたこと: - できてしまうことと、ちゃんと理解していることは別 - 壊れてもダメージがない自動化は、学びながら運用できる - 「動いたからOK」で止まらず「これ本当に大丈夫か?」と問い続けることが大事 明日の朝7時15分に、このシステムが初めて自律的に動く。何を選んで何を書くのか、自分でも楽しみにしている。 --- # 【Claude Code】ターミナルで「おもろくない」を連発しながらAIシミュレーションゲームを作った話 - 公開日: 2026-03-17 - カテゴリ: AI・Claude Code - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/powerplaquest-ai-simulation-game-with-claude-code/ - サイト: 改善紀 — 好奇心の赴くままに。 --- ## この記事を読んでわかること - Claude Code(ターミナルで動くClaude)を使って、AIエージェントが会話するゲームをほぼ一晩で作った記録 - 「おもろくない」「なんか違う」というアバウトなフィードバックでどこまで開発が進むのか - ぶつかったバグや設計の壁と、そこからの方向転換の過程 --- ## はじめに 「Claude Code でAIが勝手に会話を進めるような世界を作れたらおもろそう、でもできるんかな?」 そんな疑問を持ちながら、ある日の夜にターミナルを開きました。どうせなら自分が普段から関わっている題材で、少しワクワクするものを作りたい。 思いついたのが **PowerPlaQuest** です。 AIエージェントが動く架空の建設会社に自分も社員として参加し、現場の人たちと会話しながら業務課題を見つけ、Power Platformで解決していく — そんなシミュレーションゲームを作ろうとしました。 この記事は、Claude Codeとリアルタイムに会話しながら、ほぼ一晩でプロトタイプを形にした記録です。 (何もかもClaude Codeが作ったので、正直なところ私はコードの中身を完全には理解していません。でも、それでもここまでのものができたとと思います。そして、時間は溶けるように過ぎてました。) --- ## 作ったもの:PowerPlaQuestとは PowerPlaQuestは、架空の建設会社「市民開発建設株式会社」に情報システム部員として参加し、社員AIエージェントたちと会話しながら **Power Platform(Power Apps・Power Automate等)で業務改善クエストをこなすゲーム** です。 ### 現在実装されている機能 **会話システム** 施工管理部(8名)と情報システム部(2名)に話しかけることができます。モードは3つあります。 - **個別トーク**: 1対1で話しかける - **グループトーク**: 複数人に同時に話しかけ、返答はランダムで自然に返ってくる - **会議モード**: アジェンダを入力すると、参加者が議論を始める **クエストボード** 会話の中からAIが「これは業務課題だ」と判断すると、クエストが自動生成されます。プレイヤーが手動で「こういうアプリを作りたい」と入力して、全会話履歴を元に背景付きクエストを生成することもできます。 **その他** - ゴシックSF調のカスタムデザイン(暗い宇宙背景 + ゴールドアクセント) - モデル選択機能(Haiku / Sonnet / Opus を画面内で切り替え) - プレイヤー設定(名前変更可・10年目ベテランDX推進社員として参加) ![](https://flow-with-tech.com/media/wp/2026/03/CleanShot-2026-03-17-at-07.54.20.gif) --- ## 開発の流れ ### 1. すでにある素材を使う じつは今回のゲームのベースになる素材は、すでに別の実験で作ってありました。 Microsoftの開発者プログラムテナントに架空の建設会社24名を作る実験で、社員一覧のCSVが揃っていたのと、Ollamaを使って社員ペルソナをLLMエージェントとして動かす実験で、6名分のYAMLが作られていました。 この素材を使えば一から設計しなくていい。Claude Codeに「既存の架空会社をそのまま流用して、AIエージェントが会話し合う世界を作りたい」と伝えたのが出発点です。 まず残り18名分のペルソナYAMLを生成してもらいました。各YAMLには name / age / department / job_title / personality / speech_style / struggles / system_prompt などのフィールドが入っています。**約15分で24名全員が揃いました。** 自分でやったら何時間かかったかわかりません。 ``` # 例:福田誠(情報システム担当) name: 福田 誠 age: 28 department: 情報システム部 job_title: 情報システム担当 personality: - エンジニア志望。API・コードが好き - Power Platform の縛りの中でどうするかを考える system_prompt: | あなたは福田誠です。建設会社の情報システム担当(28歳)。 Power Apps / Power Automate / Power BI の範囲で提案してください。 Google系ツールは提案しないこと。 ``` ``` 後半で「福田さんがGoogleを勧めてくる問題」が起きて慌てて system_prompt を修正することになるのですが、それは後述します。 ``` ### 2. Claude API基盤の構築と .env ルール 既存の実験はOllama(ローカルLLM)ベースだったので、品質を上げるためClaude APIに切り替えることにしました。 ここで一つ問題が。APIキーの設定方法です。最初はこう提案されました。 ``` export ANTHROPIC_API_KEY="sk-ant-..." ``` ……よくわからない。その場でこう伝えました。 > .env を俺が手動で変更して、APIキーをかけるようにしてほしい。てか次から絶対そうしてほしい。ターミナルでやるのはよくわからない Claude Codeはすぐに方針を変えて .env ファイルと python-dotenv による読み込みに切り替え、**このフィードバックをメモリファイルに保存してくれました。** 以降のプロジェクトでも同じルールが適用されるようになっています。こういう「次から気をつけて」が通るのは地味にありがたいです。 ### 3. 一日シミュレーターの実装と「小説っぽくして」 最初に作った一日シミュレーター(day_simulator.py)は、4つの部署で並行に会話を生成してMarkdownに出力するもの。動いたし、品質も悪くない。施工管理部の清水さんが「雨の日以外は外にいますよ」と言うような、キャラに沿った発言も出ていました。 しかし出力を見ると「4つの話が時系列バラバラに並んでいる」だけで、**会社の一日という感じが出ていない。** > シミュレーションはいい感じだね。ただ意外といろんな場所で起きているものがぐちゃぐちゃに出てくるっていうのはよくないかもね。4つの部署がそれぞれ1日の時系列で朝から夕方までどういうことになっているのかっていうのを書いてほしいな。そこには人と人が喋っているだけじゃなくて、なんかこう小説みたいに場の描写みたいなのとか、全員共通のイベントが発生したりとかもほしいな。 これを受けてシミュレーターはv2に書き直されました。部署ごとのセクション(朝〜夕方の時系列で整理)、地の文の挿入(ナレーター専用システムプロンプトで小説風描写を生成)、全社共通イベント(朝礼08:45・週次定例11:00・昼休み12:00)が差し込まれるようになりました。 ### 4. StreamlitでUI構築、そして「AIっぽくないデザイン」への転換 次はUI化です。Streamlitで作ることにしました。最初のデザインはシンプルな縦並びのタブUI。動かしてみると「まあいい感じ」な仕上がり。しかし、全体的に **AIアプリ感が強すぎた。** > 普通に動いた。ただデザインを変更して欲しい。もっとAIじゃない感じにして欲しい この1行で全部のCSSが書き直されました。さらにこんなキーワードを投げました。 > 儀式 × インターフェース / 古典 × ネオン / 工業製品化された文化 Claude Codeはこの抽象的なキーワードを受けて、全面的にCSSを書き直してくれました。背景は #0A0A0E(ほぼ黒の宇宙色)にゴールドグリッド線、アクセントカラーは #C8A84B(金箔感のあるゴールド)、部署別カラーはシアン/オレンジ/ネオングリーン/パープル。 **「まあいい感じ」から一気にゲームっぽくなりました。** これは正直驚きました。「儀式×インターフェース」というワードだけであのデザインが出てくるとは思わなかったです。 ### 5. 「思ったよりおもろくない」からの方向転換 割り込みシステム(AI同士の会話の途中にプレイヤーが入れる機能)を実装して試してみました。しかし、やってみると…… > 確かに、分岐はできるけど、結構なんかこう違うなあ。思ったよりおもろくないかも、なんでだろうか。UIかな。やっぱりキャラクターがわからないから、かなあ。どこで話をしているかもわからんし。だからシミュレーションアプリって、人と人が喋っているのを2Dで写して、下側にセリフが出てくるのか。。。じゃあさ、2Dにしてしまえば? RPGゲームの俯瞰視点をイメージしながら喋ったのですが、「それはStreamlitではできない、Phaser.jsとかが必要」とすぐに現実を突きつけられました。 代わりに提案されたのが「会社フロアマップ + クリックして話しかける」形式。7部署24名全員が並ぶフロアマップUIを作ったものの、すぐに「広すぎる」と気づきました。 ### 6. スコープ絞り込み:施工管理部8名 + 情シス2名 一気にスコープを絞ることにしました。 > わかったこれね広くしすぎている。最初はね、現場だけにするわ。施工管理部だけにして、一つの現場の中っていう想定にしてほしい。 話しているうちにゲームのコアが見えてきました。 > 現場の人と話してPower Platform系の困り事みたいなことで解決できそうな困り事を見つけて、情報システム部の人に相談をしてみるみたいな、そういうことをしてみたい これが **PowerPlaQuestのコアゲームループ** です。 ``` 施工管理部の人に話しかける ↓ 困り事・不満が出てくる ↓ 「これ情報システム部に相談してみよう」 ↓ 藤田さん・福田さんに相談 ↓ 「Power Automateで解決できますよ」 ↓ ⚡ クエスト発生! → 達成を目指す ``` ### 7. バグ修正の連続 app_quest.py の開発後半は、バグとの戦いでした。Claude Codeが書いたコードでもバグは普通に出ます。 **グループモードで全員が回答してくる問題** グループトークを試すと、選択した全員が毎回律儀に返事をしてきました。現実の会議でも毎回全員が発言するわけじゃない。random.sample で1〜3人をランダムに選ぶように修正。さらに重み付きランダム(1人:40%・2人:40%・3人以上:20%)にしたら、今度は会議参加者が多い場合に ValueError が出ました。max_r の計算ミスで常に len(char_ids) の値になっていたのが原因でした。 **クエスト生成のJSON解析失敗** クエスト生成機能を動かしたら「生成に失敗しました。もう一度試してください。」と出て動かない。原因はClaudeがJSONをMarkdownのコードブロックで囲んで返すパターンでのパース失敗。コードブロック除去と正規表現でのJSON抽出を追加して解決しました。 **プレイヤーが福田さんと同一視される問題** 話しかけると「私は福田です」と返ってくるのに、プレイヤーも「福田さん」扱いになっていました。各キャラの system_prompt に「あなたに話しかけているのは〇〇さん(別人)です」を明示して解決。 エラーの原因を完全に理解しているかと言われると怪しいですが、**エラーメッセージをコピペして「これ出た」と伝えれば対応してくれる** というのは、非エンジニアにとってかなり心強いです。 ### 8. 最後の仕上げ:「福田がGoogle勧めてくる問題」 最後の仕上げフェーズで印象的だったのが、これ。 > ペルソナなんだけどさ、福田誠さんがさ、Google系のアプリケーションを勧めてくるんだけど、基本的にパワープラットフォームで解決するように取り仕向けたいから、Google系提案しないでほしいんだよね。 fukuda_makoto.yaml の system_prompt を書き換えて、「Power Platform の範囲で提案する」「Google系ツールは絶対に提案しない」を明記しました。技術的なこだわりキャラはそのままに、Microsoftエコシステムの中でAPIを語るエンジニアとして動くようになりました。 **放っておくと勝手にGoogle**系を勧めてくる。 --- ## Claude Codeとの開発体験で気づいたこと ### 良かった点 **とにかく手が早い。** 「ペルソナYAMLを残り18名分作って」と言ったら15分で全員揃えてくれました。 **アバウトな要求でも動いてくれる。** 「AIっぽくないデザインにして」「思ったよりおもろくない」「スクロールしないようにして」みたいな具体性ゼロの指示でも、意図を汲んで実装してくれました。 **フィードバックが即反映される。** 「全員が返事してくるのが不自然」と言ったらその場で random.sample に書き換えてくれる。会話のテンポで開発が進む感覚は、普通のコード補完ツールとは全然違います。 **学習してくれる。** 「次から.envで管理して」というフィードバックをメモリファイルに書き込んで、以降のプロジェクトでも適用されるようになりました。 ### 大変だった点 **バグはちゃんと出る。** Claude Codeが書いたコードでもバグは普通に起きます。自分でエラーメッセージをコピペして「エラーが出た」と伝えることで対応できましたが、ある程度コードを読む覚悟は必要です。 **Streamlitの制約は乗り越えられない。** 「RPGみたいに2Dで歩き回れるようにして」は「Streamlitでは無理」とはっきり言われました。ツールの制約に対して正直に答えてくれるのは良い点でもあります。 **コンテキストが切れる。** セッションの途中でコンテキストが切れ、自動サマリーが挟まりました。要約精度は高かったものの、直前の作業が「実装中」のまま止まっていたので、再開後に確認が必要でした。 --- ## 残課題と次回 現時点で動いているのは「会話してクエストを作るところまで」です。ゲームとして面白くするには、もう少し先が必要です。 **着手リアクション**: クエストの「▶ 着手」を押したとき、関係するキャラが個性のある反応を返す。松本課長なら「ほんとに使えるやつ作れるのか?」、藤田さんなら「やっとこういう話が来た!」みたいに。 **成果報告機能**: 「こんなアプリを作りました」という報告をクエストに登録できる機能。実際にPower Platformで作ったものを登録できるようにしたい。 **達成判定**: Claudeが報告内容を読んで達成/未達成を判定し、キャラが反応する機能。「思ったより使えるじゃないか」「これじゃ全然ダメだ」みたいな反応が出ると、ゲームっぽくなりそうです。 **そしていちばん足りないもの — ペルソナのリアルさ。** AIが生成したペルソナだけだとどうしても均質になる。「現場の警備員が新入社員にだけ威張る」とか「喫煙所で二次業者のおじいちゃんが会話に入ってくるけど何言ってるかわからない」みたいな、**人間にしか書けないあるある** を仕込んでいく必要があります。これはコードの問題じゃなくて、コンテンツの問題。次はここに手を入れたいと思っています。 --- ## おわりに 「Claude Code と一緒にいろんなことをしているけど、次何しようかな」という一言から始まった今日のセッションは、気づいたら5時間以上続いていました。 架空の会社が動いてキャラクターが喋る様子を見ていると、「これ実際に使えるんじゃないか」という感覚があります。特に施工管理部の松本課長が「現場はそんなに甘くない」とか言いながら渋々話を聞いてくれるのは、なんだかリアルに刺さるものがありました。 Claude Codeは「何でもやってくれる便利ツール」というより、**「ラフなアイデアを素早くプロトタイプにしてくれる作業パートナー」** として使うのが合っていると感じました。「おもろくない」「よくわからない」というアバウトなフィードバックにも正面から向き合ってくれるのは、思ったより頼もしいです。 まだゲームとして完成しているわけじゃないですが、続きはまた書きます。 (試すたびに、Claude APIのクレジットが消費されていくのだけが心配です…) --- ## 技術スタック | 項目 | 内容 | | --- | --- | | フロントエンド | Streamlit(Python) | | LLM基盤 | Anthropic Claude API(claude-haiku-4-5-20251001) | | ペルソナ定義 | YAML(24名分) | | 実行環境 | Python 3.12 + venv | | APIキー管理 | .env + python-dotenv | | 開発ツール | Claude Code | | ゲームロジック | app_quest.py / day_simulator.py | --- # 【Power Apps】プレゼンアプリを作ってみた ― 「スマホ1台でプレゼン完結」の未来が見えた話 - 公開日: 2026-03-16 - カテゴリ: Power Apps - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/power-apps-presentation-app-markdownslides/ - サイト: 改善紀 — 好奇心の赴くままに。 --- ## この記事を読んでわかること - Power Appsでプレゼンテーションアプリを作った経緯と発想 - 「業務アプリを作るツール」という固定観念を壊すと見える可能性 - スマホ完結・AI連携・スライド資産化という、PowerPointにはない未来 --- ## 突然ですが、パワポ作るの面倒くさくないですか? 同じレイアウトでいいから、テキストのストーリーから自動で作りたい。 「Marp」とやらを使えば、Markdownからテンプレートのパワポが作れるらしい。 でもなんかよくわからん。あと会社で使えなさそう。 「じゃあもう、Power Appsでできたらいいじゃん。」そんな好奇心から、このアプリを作ってみました。 ![](https://flow-with-tech.com/media/wp/2026/03/CleanShot-2026-03-15-at-17.37.47.gif) --- ## Power Appsの「得意なこと」に気づいた Power Appsって、**「事前に定義したデータを、決められた形式で表示する」** こともできるよな。 考えてみると、**スライドも「構造化されたデータの表示」** だ。スライドをいきなり作り始めずに、各項目をテキストや表で整理してから作る人も多いんじゃないでしょうか。 こんな項目 - **タイトル**(見出し) - **メッセージ**(そのスライドで伝えたい一言) - **本文**(補足説明や詳細) じゃあ、この「構造化データ」を整形するルールさえ実装できれば、Power Appsだけでプレゼン資料作れるのでは? ![](https://flow-with-tech.com/media/wp/2026/03/diagram-structure.jpg) --- ## 実際に作ったもの 今回作ったアプリ「MarkdownSlides」の仕組みはシンプルです。 Markdown形式でスライドの内容(タイトル・メッセージ・本文)を定義しておくと、Power Appsがスライド形式で表示してくれます。「< Back」「Next >」ボタンでページ送りでき、プログレスバーで進捗もわかる。 ### 技術的なポイント - とりあえずデータソースなし。**コレクション(アプリ内の一時データ)だけで完結** - Markdownテキストを貼り付けるだけで構造化データに分解できる。 - 構造化データをあらかじめ定義した場所に1レコードづつ表示するだけで、スライドみたいにしてみた。 ちなみにこのアプリは、ほぼClaude Codeで作りました。 「PLAN.mdに音声入力で要件をダンプして、Claude CodeにSPEC.mdを書かせて、Claude Codeに実装させて、キャンバスアプリを作る」という感じでした。 --- ## Power Appsだからこそ広がる未来 正直、「Power Appsでプレゼンアプリを作った」だけなら、ネタで終わります。 でも、**Power Appsだからこそできること**が見えてきました。 (決して後から思いついたのではありません。決して。) ### 1. スマホだけでプレゼンが完結する Power Appsは、PCでもスマホでも動きます。スマホ1台でプレゼンするのってめちゃかっこいい。しかもプレゼンの作成まで、全部できたらすごそうじゃないですか。 ![](https://flow-with-tech.com/media/wp/2026/03/diagram-smartphone-flow.jpg) 1. **スマホで音声入力** → テキスト化 2. **AI Builderで壁打ち** → 構成を整理 3. **Markdown形式で出力** → アプリに取り込み 4. **そのままスマホでプレゼン** AI Builderを使えば「**プレゼンが始まって壇上で、スマホに向かって話しかけて、AIと壁打ちして、プレゼンのスライドを作り、そのままPower Appsでプレゼンができる**。」そんな世界が、実現可能です。(プレゼンにはしっかりとした準備をして臨んだ方がいいと思います。) Copilotを使っても同じことができますが、AI BuilderならPower Appsの中だけで完結して、なんかすごい感がでる。(プレゼンにはしっかりとした準備をして臨んだ方がいいと思います。) ### 2. 「パーツの再構成」ができる ここが一番おもしろいところだと思っています。(後付けではありません、決して。) PowerPointでは、スライドは「ファイルの中の1ページ」です。再利用するには、ファイルを開いて、コピーして、貼り付けて…という作業が必要です。 でもMarkdownSlidesでは、スライドは**構造化されたテキストデータ**です。タイトル、メッセージ、本文がそれぞれ独立したフィールドとして保存されている。 ![](https://flow-with-tech.com/media/wp/2026/03/diagram-parts.jpg) つまり、**スライドが「パーツ」として分解された状態で蓄積されています**。 過去の「導入の挨拶スライド」と、別のプレゼンの「技術説明スライド」と、また別の「まとめスライド」を組み合わせて、新しいプレゼンを組み立てる。レゴブロックのように、パーツを自由に組み替えられる。Zettelkastenの文脈でいうところの、アトミックノートですね。 PowerPointファイルでは、こういう柔軟な再構成は難しい。でも**構造化テキストとして保存されているからこそ、パーツ単位での再利用が自然にでき**ておもろそう。(やるかどうかは別として) --- ## まとめ:Power Appsっておもろい 最初は「Power Appsでプレゼンできたらおもしろくない?」という好奇心で始めました。 でも作ってみたら、**ネタどころか、かなり合理的な仕組み**だということに、無理やり着地させたいと思いました。 - **簡単に使える**:セキュリティ・配布・管理、全部Power Platformの上で完結 - **スマホで完結**:AI Builder × 音声入力で、PCを開かずにプレゼンが作れる未来 - **資産として蓄積**:Dataverseにテキストデータとして保存、検索・再利用が自在 - **パーツの再構成**:構造化されたスライドデータだからこそ、レゴのように組み替えられる **「業務アプリを作るツール」** という固定観念を壊してみると、Power Appsにはまだまだ可能性が眠っています。 GitHubに公開済みなので、ぜひ試してみてください。 > GItHubはこちらから > > [https://github.com/Ltantan/my-powerplatform-apps/tree/main/MarkdownSlides](https://github.com/Ltantan/my-powerplatform-apps/tree/main/MarkdownSlides) --- # 【Power Apps】手書きの図をAI BuilderでMermaid記法に自動変換してみた - 公開日: 2026-03-11 - カテゴリ: Power Apps - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/power-apps-handwriting-to-mermaid-ai-builder/ - サイト: 改善紀 — 好奇心の赴くままに。 --- ## この記事を読んでわかること - Power Appsで手書きの図をAI Builderに送り、Mermaid記法に自動変換する方法 - ペン入力とカメラ撮影、それぞれの使用感と比較 - 既存のMermaid PCFコントロールと組み合わせてアプリ内プレビューする方法 --- ## やりたいこと 突然ですが、もうMermaid記法を自分で書きたくないと思いませんか。手書きでチャート書いてAIが書いてくれたらいいじゃんって。 打ち合わせ中にサッと描いたフロー図を、どうしてもPower AppsでMermaid記法としてプレビューしたい。なんなら手書きで書くところからPower Appsでやりたい。どうしても。 今回は、Power Appsで手書きの図を書いたり、図を写真で撮ったりして、AI BuilderでMermaid記法に変換→アプリ内でプレビューするのをやってみました。 以前、Power Apps内でMermaid記法をプレビューできるPCFコントロールについて記事を書きました。今回はその活用先を広げる試みです。同時にMermaid記法を自分で書きたくない強い信念を持っています。 > 参考:[Power AppsでMermaid記法をプレビューする(PCFコントロール)](https://flow-with-tech.com/power-apps-mermaid-pcf-preview/) --- ## 仕組みの全体像 全体の流れはとてもシンプルです。 ![](https://flow-with-tech.com/media/wp/2026/03/CleanShot-2026-03-11-at-18.53.04@2x.png) 1. Power Apps上で手書きの図を取得する(ペン入力 or カメラ撮影) 2. 取得した画像をAI Builderに送る 3. AI Builderが画像を解析し、Mermaid記法のテキストを返す 4. 返ってきたMermaid記法を、PCFコントロールでプレビュー表示する --- ## AI Builderに送るプロンプト AI Builderに渡しているプロンプトはこちらです。 ``` Power Appsのアプリから渡された画像を解析し、その内容をMermaid記法で表現するAIアシスタント向けのプロンプトを作成してください。 --- ## コンテキスト Power Appsのアプリから送られてくる画像を受け取り、その画像の内容を理解して、Mermaid記法(フローチャートやシーケンス図、quadrantChartなどの図表記法)で表現するタスクです。 ## 指示 1. 画像の内容を詳細に解析してください。 2. 画像に含まれる要素(ノード、関係、フローなど)を特定し、それらをMermaid記法で表現してください。 3. Mermaid記法の種類(例:flowchart、sequenceDiagramなど)は画像の内容に最も適したものを選択してください。 4. 出力は正確なMermaid記法のテキストとして返してください。 ## 出力形式 - Mermaid記法のテキストをそのまま返してください。 - 余計な説明や注釈は含めず、純粋なMermaidコードのみを出力してください。 - ```mermaidや、``` も不要です --- 画像を入力してください:Image ``` Mermaid記法の種類(flowchart、sequenceDiagram、quadrantChartなど)は指定せず、**AI Builder側に画像の内容から最適なものを選ばせています**。手書きの図がフローチャートっぽければflowchartを、シーケンスっぽければsequenceDiagramを返してくれるので、柔軟に対応できます。(今の所フローチャート以外は試したことがないです) --- ## 実際にやってみた ### ペン入力パターン Power Appsにはペン入力コントロールがあるので、まずはこちらで試してみました。 ![](https://flow-with-tech.com/media/wp/2026/03/CleanShot-2026-03-11-at-18.42.14.gif) *早送りしています* ペン入力コントロールで図を描いて、そのImageプロパティをAI Builderに送信します。 ちゃんとMermaid記法に変換されて、プレビューもできました。 ![](https://flow-with-tech.com/media/wp/2026/03/CleanShot-2026-03-11-at-18.44.27@2x.png) **…が、ペン入力には重大な欠点がありました。** Apple Pencilを使っていても、**一画描くごとにワンテンポ待たないと次の線が認識されない**のです。ピーっと線を引いて、少し間を置いて、次の線を描き始める…という感じ。連続して文字を書こうとすると全然ついてこないので、文字入りの図を描くのはかなりストレスです。 (正直、これは実用にはちょっと厳しいかなと思いました…) ### カメラ撮影パターン ペン入力の書き心地に限界を感じたので、別のアプローチを試しました。**紙やホワイトボードに普通に描いて、それをPower Appsのカメラで撮影する**方法です。(ホワイトボードがないのでiPadの画面を壁に投影しています。真っ暗な部屋でこれを検証しています。真っ暗です) 撮影した画像をAI Builderに送信すると… ![](https://flow-with-tech.com/media/wp/2026/03/CleanShot-2026-03-11-at-18.46.02.gif) こちらもちゃんと変換されました。そして何より、**紙やホワイトボードに書くときの書き心地は最高**です。当たり前ですが、ペンのレスポンスを気にする必要がないので、自然なスピードで図が描けます。 打ち合わせ中にホワイトボードに描いた図をパシャッと撮ってMermaid化する、というユースケースを考えると、**むしろこっちのほうが本命**だと思います。 > 余談ですが、ホワイトボードに投影している手書きはOneNoteで書いています。もはやOneNote内の Copilotが読み取って綺麗な図として清書して生成してくれるのでは・・ --- ## 比較:ペン入力 vs カメラ撮影 | 項目 | ペン入力 | カメラ撮影 | | --- | --- | --- | | 書き心地 | △ レスポンスが遅い | ◎ 紙・ホワイトボードなので自然 | | 手軽さ | ○ アプリ内で完結 | △ 紙やホワイトボードが別途必要 | | 実用性 | △ 文字入りの図は厳しい | △ Mermaidなんて意識しない | | おすすめ度 | **そもそも** | **このアプリ要る?** | --- ## まとめ AI Builderの画像認識とMermaid記法の組み合わせをしたことある人いらっしゃいますか。世間はCoworkで盛り上がっているのに、なぜMermaid記法とPower Appsの組み合わせネタを出し続けているんだろうか。 (あと、5個ぐらいネタあるのでしばらくやり続けたいと思います笑。やろうと思えば、あと10個ぐらいいけるかな。) > 参考:[Power AppsでMermaid記法をプレビューする(PCFコントロール)](https://flow-with-tech.com/power-apps-mermaid-pcf-preview/) --- # Mermaid記法に感動した市民開発者の末路|自分で書けるようになったから、書かなくてよくなった話 - 公開日: 2026-03-09 - カテゴリ: column - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/citizen-developer-mermaid-aftermath/ - サイト: 改善紀 — 好奇心の赴くままに。 --- ## この記事を読んでわかること - Mermaid記法を覚えた市民開発者が、その後どうなったか - 「自分で書けること」と「自分で書くこと」は別だという話 - AIと市民開発者の新しい関係 ## はじめに 以前、こんな記事を書きました。 > [市民開発者がMermaid記法を知って変わったこと|設計スピードが格段に上がる理由](https://flow-with-tech.com/citizen-developer-mermaid-changed/) あの記事で私は、Mermaid記法の良さを3つ挙げました。 1. **考えることに集中できる** 2. **生成AIと相性が良い** 3. **設計=説明資料になる** どれも本当のことです。今でもそう思っています。 ただ、**私はもう、Mermaid記法を自分では書いていません。てか書きたくない!** (え?) ということで、今回は「Mermaid記法に感動した市民開発者のその後」をお伝えします。 ## 結論:Mermaid記法を知る前 → 知った直後 → 今 ![](https://flow-with-tech.com/media/wp/2026/03/CleanShot-2026-03-09-at-22.33.37@2x.png) ## 末路①:考えることに集中したい。だからもう自分では書きたくない。 前回の記事で、こう書きました。 「GUIは便利だがレイアウトを整えるというタスクが1つ増えます。テキストだと考えるというシンプルなことだけに集中できます」 これは今でも思います。でも、考えることに集中したい気持ちが進化しました。そもそも自分一人で考えることが減りました。そう、AIと壁打ちして考えることが多いです。音声入力で大量の情報をインプットすれば、思い通りに動いてくれることが最近わかってきました。じゃあ、AIが自分の思い描く完成形を書いてくれるように頼めばええじゃん。 今の私はこうしています。 - AIに「こういうフローがあるんだけど、Mermaid記法で書いて」と伝える(音声入力) - 間違っていたら「直して」と修正を指示する(多分これも音声入力) **考えることだけに集中する、作業はAIにやってもらえばいいじゃん。** ## 末路②:生成AIと相性が良い。だから全部AIに書いてもらえばいい。 前回はこう書きました。 「Mermaid記法で下書きをして生成AIに投入をする。テキストで返信が返ってくる。そのまま手元で編集を継続できる」 当時はMermaid記法の下書きを**自分で書いて**、AIに渡すという使い方でした。 今はもう逆です。 AIに設計の相談をして、**AIにMermaid記法を書いてもらう**。自分で書いた経験があるから、出力の品質は判断できる。ちょっと手直しすればいいじゃん。 あるいは、**手書きでフローチャートっぽいものをノートに書いて**、それを写真に撮ってAIに「これをMermaid記法にして」と頼む。手書きのラフをテキストに変換してくれる。これもMermaid記法の構造を理解しているから、だいたいOKです。 ### ちなみにPower Appsでやろうとするとこうなります ペン入力コントロールで手書き→その画像をAI Builder に投入して、Mermaid記法にしてもらう→Power AppsのPCFコントロールでプレビューする ![](https://flow-with-tech.com/media/wp/2026/03/CleanShot-2026-03-10-at-20.55.01.gif) ### 関連記事:Power AppsでMermaid記法をプレビューする方法 こちらもどうぞ https://flow-with-tech.com/power-apps-mermaid-pcf-preview/ ## 末路③:設計=説明資料になる。だからAIと壁打ちして設計すれば、AIに書かせればいい。 前回はこう書きました。 「設計段階からMermaid記法で作成しておけば、後から誰かにアプリやフローの仕組みを説明するときの簡単な資料とすることもできます」 これも今でも正しい。でも運用が変わりました。 今はAIとデータ設計を壁打ちします。「こういうアプリで、こんなデータ設計をしたいんだけど、どうすればいい?」と聞く。AIが提案してくれる。「じゃあそれをMermaid記法のER図にしといて」と言えば、だいたい完成。 自分でER図の記法を覚えて書いていた時期があるから、AIが出してきた図を見て「一対多がちゃんとあっている」とすぐ気づける。 **エンティティ図なんて書くのめんどくさい。でも読めるし、直せる。それでええじゃん。** ## じゃあ「自分で書いた経験」は無駄だったのか ここまで読むと「じゃあ最初からAIに任せればよくない?」と思うかもしれません。 私は自分で学んで良かったと思っています。自分で学び書いた経験があるからこそ、 - AIの出力が正しいかどうか**判断できる** - 間違っていたとき、**どう直すか指示できる** - 「こういう図が欲しい」と**的確にオーダーできる** Mermaid記法を知らずにAIに「フローチャート書いて」と言っても、出てきたものが良いのか悪いのか分からない。修正の指示も的確にできない。 **自分で書けるようになったから、書かなくてよくなった。** この順番が大事なんだと思います。(思いたい) ## まとめ Mermaid記法を知って変わったこと、の続編として「変わりすぎてもう自分で書いていない」という正直な話をしました。 | 前回の結論 | 今回の末路 | | --- | --- | | 考えることに集中できる | 考えることに集中したい。**だから記法すらAIに書かせる** | | 生成AIと相性が良い | 相性が良い。**だから全部AIに任せればいい** | | 設計=説明資料になる | AIと壁打ちで設計して、**図もAIに書かせればいい** | 結局、**Mermaid記法を知ったことで一番変わったのは、Mermaid記法を自分で書かなくなったことでした。** 面倒くさいことをどうにかするために、一度面倒くさいことをする。そして、その面倒くさいことをしなくて良いようにするためには、徹底的に面倒臭いことをやる。そんな解決策も、ありなんじゃないかと思います。 (あと、「デキる感」を演出したいときは、画面を共有しながら、すらすらとマーメイド技法でフローチャートを書いてやりましょう。うまく描写されなくても焦ってはいけません。もう一つの画面でAIに修正をしてもらいましょう。これであなたも「デキるやつ」です。これが一番大事かも。) --- # 【Power Apps】「とりあえず作ってみた」から1年。業務記録アプリの開発ログを振り返る - 公開日: 2026-03-06 - カテゴリ: Power Apps - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/power-apps-work-log-app-development-story/ - サイト: 改善紀 — 好奇心の赴くままに。 --- ## はじめに どうしても来月から業務記録アプリを使いたい。じゃあ、今月からPower Apps勉強しよう。そして勢いで作ったアプリです。それ以来、修正を重ね使い続けました。約1年が経った今、アプリをGitHub に公開しました〜。(GitHub のやり方が分からなくて・・) ついでに、当時の開発ログを振り返る記事を書いてみようと思います。これからPower Appsを勉強しようかなって思っている人の励みになれば。そして、私がPower Appsを勉強するにあたり、お世話になったたくさんの先人たちへの恩返しができれば。 ## GitHub はこちらです [https://github.com/Ltantan/powerapps-worklog?tab=readme-ov-file](https://github.com/Ltantan/powerapps-worklog?tab=readme-ov-file) ## 参考文献 まず開発にあたって参考にさせていただいたのが、マイク根上さんのこちらの記事です。本当にどうすればいいかわからなかったので、かなり参考にさせていただきました。本当に、ありがとうございました。 > [https://econoshift.com/ja/powerapps-task-time-record-app/](https://econoshift.com/ja/powerapps-task-time-record-app/) ## 開発の軌跡 ### アプリver1.0:記事を参考に作ってみた Udemyを学びを得た直後から、実際のアプリ開発に着手しました。とにかく習得したスキルを実践したい。そして、とにかく早くアプリを完成させて実運用したい。その一心で、没頭していました。 最初の段階では、開始と終了時にそれぞれボタンを押す設計になっています。あと、どうせなら継続のために使ってて楽しくなる設計をしたいと思いました。 https://twitter.com/kama_bizdev/status/1895654101817737502?s=20 ### アプリver2.0:重大な欠点に気づく いい感じにできた〜。という達成感と共に、欠点に気付きます。タスクを開始してアプリを閉じたら、終了ができない・・・ しかし、欠点とは時に新たなひらめきを生むのです笑 これが今後のアプリ開発の方向性を変えました。そして、やっぱり使っていて楽しいUIを求めています笑 https://twitter.com/kama_bizdev/status/1895748685696479538?s=20 ### アプリver3.0:いったん完成とした > 開始を押さないパターン→OK (その場合は、一つ前のレコードの終了時刻を開始時刻として取ってくる) これが当時の私としては、かなり大きな発見でした。できないパターンにも対応できた。つまり、使い方次第では、時刻の記入なんて不要なのでは。そう思えた瞬間だった気がする。こういう試行錯誤によってたどり着くことって、やっている本人にしか分からない楽しさですよね。 そして、UIはいったん無視をした笑 まずは、使ってみる。大事なことを見失わずに前に進むことができた笑 https://twitter.com/kama_bizdev/status/1896123177304314147?s=20 ### アプリver4.0:ブレイクスルーの瞬間がここに ブレイクスルーの瞬間である。もう終了ボタンさえ押せば、開始時刻なんか1個前の終了時刻から取ってくればええやん。ええじゃん。つまりPower Appsの技術だけでなく、どう使うかまで含めて考えることが大事であると気づいた。アプリがあれでも、使い方次第でどうとでもなる。多分! いつの間にか、UIにも満足したみたいだ。よかった。 https://twitter.com/kama_bizdev/status/1898282579272564813?s=20 ### アプリver5.0:そして伝説へ・・・ 最適解に辿り着いたみたいだ。1画面で完結すること。時刻の入力を不要とすること。なんかいい感じのUI。全てがいい感じにいい感じした瞬間だ。迷宮に入ろうが、2時間が経っていようが関係ない。なぜなら、完成したからだ!! https://twitter.com/kama_bizdev/status/1898363776438820963?s=20 ## Power Appsておもろい この1年間で生成AIは目まぐるしい進化を続けてますね。私が学び始めた時も、かなり生成AIに相談をして、解決することができました。でも、学び、手を動かして作ってみることのも大事だな〜と思います。 最近は、Claude Code にアプリを作ってもらうことにハマってます。でも、やっぱ物足りないなぁと感じることもあります。私は、土木の現場で施工管理してました。ものづくりが好きです。自分の目の前で、自分の考えを使って、自分の手で何かを作る楽しさは、何事にも変え難いな〜と思います。もしかしたら、Claude Codeが作ったものを、編集できるスキルがあれば違うのかもしれません。 こうして、Xにアウトプットをしていた当時の開発のログを振り返ってみると、やっぱり楽しかったなと思います。なんとなくこの記事から、私が楽しみながらPower Appsと関わってきたということが、分かるんじゃないでしょうか。遠回りでも自分の手で作る、自分の考えを形にする、そんな瞬間もこれからPower Appと、一緒に楽しめたらなと思います。 最後になりましたが、参考になる情報をアウトプットしてくださった先人の皆様、本当にありがとうございました。Power Appsって面白い。 ## 追記:それから1年半、Code Apps で作り直しました ここまでが、Power Apps を触りはじめた1ヶ月目の記録です。この行動ログアプリはその後もブラッシュアップを続けて、今も毎日使っています。 そして2026年8月、当時はまだ存在しなかった Code Apps と Claude Code で、同じアプリをゼロから作り直しました。ボタンを押して記録するだけだったアプリが、**「これから30分でやる」と宣言してから測って、あとで見積もりと実測を並べて振り返れる**ところまで進化しました。ver5.0 で「伝説へ」と言っていた続きが、こちらです。 /totonoi-watch/ --- # 「自分には関係ない」と思っていたClaude Codeで、手書き日記のOCRができた話 - 公開日: 2026-03-04 - カテゴリ: AI・Claude Code - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/claude-code-local-llm-ocr-diary/ - サイト: 改善紀 — 好奇心の赴くままに。 --- ## 今回分かったこと - Claude Codeってどんなものなのか - Claude Code を使うことの何がそんなにすごいのか - 「AIと一緒に仕事をする」ためのお作法 --- ## はじめに:土木出身の私が、ローカルLLMを動かしたなんて! 学生時代にはコンクリートを作って破壊する研究をしていたような人間です。(鉄筋も組んでました・・) そんな人間が、**自分のパソコンの中だけでAIを動かす** ことができるようになりました。(これがローカルLLMというやつか) 今回は、Claude Codeに関する記事を読んだ人間の体験記です。技術的にすごいことをやった、というよりも、「記事きっかけでやってみたら、こんなことができて、こんなことが分かった」という記録として読んでいただければ幸いです。 --- ## きっかけは1本のQiita記事 > [https://qiita.com/minorun365/items/114f53def8cb0db60f47](https://qiita.com/minorun365/items/114f53def8cb0db60f47) 前から、Claude Codeは聞いたことはあったけど、自分には関係ないと思っていました。 でも、記事を読んで「自分もやってみたい!!」と思いました。 とりあえず試しに旅行の計画を一緒に立ててみましたが、なんかイマイチよくわかりませんでした・・ https://twitter.com/kama_bizdev/status/2028397280169205791?s=20 --- ## ふと思い出した。「手書き日記をデジタルにしたい」 話は変わりますが、私には記録魔のようです。 結構前から手書きで日記をつけていて、それをスキャンしてPDFに保存していました。何となく「いつかこれをデータにして、なんかできそう」と思ってました。 でも、自力で文字起こしするなんて無理だし、外注して中身を見られるぐらいなら・・・・ そういえば、噂に聞いているローカルLLM。それならできるのかな。LM Studioはやってみたことがあるけど、どうすればいいのか良く分からんから無理か。。そう思ってました。 --- ## そうだ、Claude Codeに相談してみればいいじゃん 「記事みたいにやれば、自分にもできるのでは・・?」 ということで、音声入力で要件をダンプしました。 ![](https://flow-with-tech.com/media/wp/2026/03/CleanShot-2026-03-03-at-18.31.06@2x.png) *はじめてCursorをインストールして使った笑* > ちなみに、ダンプと聞くと私は10tDTとみなします。要件を音声入力でダンプ?? > 「元請け手配のRC-40を積んだダンプを、しょうがないから卸し場に誘導してダンプアップさせる」みたいなこと? Claude Code にはダンプしたPLAN.mdをもとに、SPEC.mdを作ってもらいました。具体的な構成(こんな感じらしいです) - **Ollama**: 自分のMac上でAIを動かすためのツール - **qwen2.5vl**: 画像から文字を読み取るAIモデル(Alibaba製。日本語の手書きに強いらしい) - **pdf2image**: PDFを1ページずつ画像に変換するためのライブラリ - **Pythonスクリプト**: 全ページを自動で処理して、Markdownファイルに出力する 最終的に「ターミナルでコマンドを入力するだけで、全ページの処理が自動で走る」状態まで作ってもらいました。 --- ## 動いた。手書きの文字がテキストになった 実際に試してみると、**自分の手書き文字がMarkdownテキストになって出てきました。** M4 MacBookで1ページあたり約1分ぐらい。放置すれば自動で終わります。元々の字が汚いので精度はまあって感じのところもありますが、「良い」レベルで出力されました。MacBookは珍しく熱くなっていて、やっとこのスペックを活用してやりました。 ![](https://flow-with-tech.com/media/wp/2026/03/CleanShot-2026-03-04-at-19.03.22@2x.png) *黒い画面が動いているじゃないか* ![](https://flow-with-tech.com/media/wp/2026/03/CleanShot-2026-03-04-at-19.10.49@2x.png) *文字起きてる・・すごい* --- ## 何より仕事の任せ方が勉強になった 技術的なことよりも、Claude Codeと一緒に仕事をする上でのお作法を知ることができたことが、一番よかったです。 Qiitaの記事みたいにできるよう、あらかじめClaude に学習してもらっています。CLAUDE.mdっていうファイルに、その辺のルールが書き込まれています。この辺も全部Claude Codeが自分で書いてくれている。 ![](https://flow-with-tech.com/media/wp/2026/03/CleanShot-2026-03-04-at-19.22.17@2x.png) このTODO.mdやKNOWLEDGE.mdがあることで、**後日再開するときも「どこまでやったか」が一目でわかる**。Claude Codeに「前回の続きとか」「前と同じ感じ」と言えば、そのファイルを見て文脈をすぐに引き継いでくれそう。(人任せ) **「AIと一緒に仕事をする」ってこういうことか**、と初めて実感した瞬間。ただチャットで生成してもらうだけじゃない。プロジェクトを一緒に進める感覚。これが、私にとっては一番大きな収穫でした。 --- ## まとめ:「自分には関係ない」と思っていたけど、できた 記事を読んで、「とりあえずやってみよう」と動いてみたら、私でも**ローカルLLMを使ったOCRシステムを動かすことができました。** 技術的に大したことをやった、という話ではありません。でも「やってみたらできた」「AIが一緒に考えてくれた」「エンジニアの仕事の作法まで学べた」という体験は、**今後の私の人生を大きく変えると思います**。(Claude Code が楽しすぎて、ずっとやっていたい笑) 皆さんも、ぜひClaude Codeと何かをやってみてはいかがでしょうか。 (全ページ処理には120時間ぐらいかかる計算なので、しばらく後回しに・・) --- ## 参考リンク - [https://qiita.com/minorun365/items/114f53def8cb0db60f47](https://qiita.com/minorun365/items/114f53def8cb0db60f47) ほえ〜と思ったら、いいねお願いします! --- # 【沼】CleanShotXで呼吸するようにインプット&アウトプットする方法 - 公開日: 2026-02-28 - カテゴリ: column - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/cleanshot-x-settings-workflow/ - サイト: 改善紀 — 好奇心の赴くままに。 --- ## この記事を読んでわかること - MacBookを使っている私がClean Shot Xをどう設定しているのか - どう使っていて、何がいいのか - なんで、インプット&アウトプットが捗るのか > CleanShotXとはMac用のスクリーンショットアプリです ## なぜCleanShot Xを使っているのか ### 結論「インプット&アウトプットにおける高速道路を構築できる」 いや、高速道路ではないかもしれない。もはやアウトバーンと言ってもいいかもしれない。インプットとアウトプット、そのサイクルを制限速度なしで回すことができる。それがCleanShot Xである。 ## 複雑なショートカット設定はしません たくさん設定しても覚えられないからです! 必要な機能だけをできる範囲で使っています。 ## 実際のショートカット設定一覧 ### スクリーンショット系 #### Cmd +Shift + 3|スクロールしながらスクリーンショット 画面に入りきらない範囲をスクショしたいときに便利です。 ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-28-at-10.27.46.gif) #### Cmd + Shift + 4|範囲選択スクリーンショット これが一番普通のスクリーンショットです。 ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-28-at-10.32.59.gif) #### Cmd +Shift + 5|前回と同じ範囲でスクリーンショット 前回のスクショの範囲をもう一度スクショすることができます。これ以外の方法で1秒以内に同じことができますか?いいえ、できません。(そんなことをする必要があるかどうかは置いておいて) 動画を見ながら学習するときにもかなり使えるので、それについては後で説明をします。 ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-28-at-10.35.55.gif) ### 録画系 #### Cmd + Shift + 6|範囲選択して画面録画(ろく=6で覚える) これが全ての始まり。これを起点に他のショートカットを割り当てています。 Gif を作成することもできます。上に載せているのがそれです。 #### Shift + Space|録画の一時停止&再開 これによりノーカットで、動画マニュアルが爆誕します。呼吸するように爆誕します。無駄な容量を使わないためにも、必修スキルです。 ### OCR(テキスト取得) #### Cmd + Shift + 2|画面からテキストをコピー(改行付き) 動画のテキストをコピペしたいときなどにかなり便利です。 ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-28-at-10.39.24.gif) ### スクショ活用系 #### Cmd + Shift + P|直前のスクショを画面にピン止め表示 - 常に最前面表示ができる - サイズ変更・移動が可能 - 2本指操作で透明度を変更できる ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-28-at-10.43.35.gif) *画面に猫を常時配置することだってできる* #### Cmd + Shift + A|直前スクショへアノテーション追加 本当はPower Appsの画面説明にした方がわかりやすいんですが、どうしても猫を使いたいので。 - 撮った直後に注釈を書き込める - 未来の自分に向けて説明できる ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-28-at-10.44.59.gif) ### ショートカット設定まとめ ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-28-at-10.54.37@2x.png) ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-28-at-10.56.43@2x.png) ## 実際の使い方(ワークフロー紹介) ### 動画学習 × Obsidianでノンストレス学習ノート作成 #### 前回範囲スクショで学習ログを高速化 初回は「Cmd + 4」で範囲選択をしてスクショを撮ります。その後は、「Cmd + 5」で同じ範囲をスクショします。Obsidian から一切手を離すことなく、マウスを使うこともなくスクショを撮れます。 1画面に動画や参考になるサイトを表示、もう1画面にObsidianを開いてメモ作成するときにかなり便利です。 #### 学習効率が上がった理由 スクショをした後に、「Cmd + A + Shift」で画面に注釈を入れます。クリックする順番であったり、ポイントとなることを書き込みます。そして、そのままObsidian に貼り付けます。とにかくシームレスにできることにより、学習効率がめちゃくちゃ上がります。(あと、なんか楽しいです) ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-28-at-10.50.12@2x-1.png) *例えば、Microsoft Learn Docsの使い方をまとめてみるとこんな感じ* ### ノーカットでマニュアル動画を作成する 手順はこんな感じです。 画面録画開始 → 一時停止 → スクショ → 注釈 →録画再開 例えばこんな感じの動画がノーカットで作成できます。ただし、頭の中で構成を考えて、一時停止と再開、再開時の継続秒数(これなら3秒あれば見て理解してもらえそうとか)を考えながら行う必要があるので、要特訓ですね。ここまで読んでいただいている皆様は、効率化に対して並々ならぬ情熱を持っていると思うので、ぜひやってみてください笑 https://twitter.com/kama_bizdev/status/2024851622955024567?s=20 ## 料金について 買い切り 29ドル(私は買い切り版を使っています) サブスク 8ドル/月(年払い)・10ドル/月(月払い) 詳しくはHPをご参照ください [https://cleanshot.com](https://cleanshot.com) ## まとめ:アウトバーンを走る車になろう 制限がなくなるとインプットもアウトプットにも制限がなくなります笑 アウトバーンを走っていいよと言われると、いつの間にか自分がランボルギーニぐらいの速度を出せるようになるんじゃないでしょうか。そして気付かないうちに、その速度に耐えうる足腰を身につけることもできます。 限りある時間を気持ちよく過ごすために、試してみてはいかがでしょうか。 (私はMacBookを2台持っているので、2ライセンス買ってしまいました笑) --- # PPACの「AIプロンプト」をオフにするとどうなるのか試してみた - 公開日: 2026-02-25 - カテゴリ: Power Platform - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/ppac-ai-prompt-off/ - サイト: 改善紀 — 好奇心の赴くままに。 --- ## この記事を読んでわかること - Power Platform管理センターで「AIプロンプト」をオフにすることによって、何が起こるのか ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-25-at-09.44.00@2x.png) > [https://learn.microsoft.com/ja-jp/power-platform/admin/settings-features#ai-prompts](https://learn.microsoft.com/ja-jp/power-platform/admin/settings-features#ai-prompts) > > AI プロンプト ## なぜ試してみたのか? AI Builder を使えなくする方法を探しているから。 ## オフにすると使えなくなったもの Power Apps→AI ハブから、カスタムプロンプトの作成ができなくなりました。項目自体が消えます。 ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-25-at-09.48.48@2x.png) ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-25-at-09.48.27@2x-1.png) プロンプト作成画面を開いておいて、オフにした後再度読み込みをすると、「この機能は無効になっています」と表示されます。 ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-25-at-09.47.23@2x.png) 作成済みのPower Appsで挙動を見てみます。オフにすると実行が失敗になります。 ![](https://flow-with-tech.com/media/wp/2026/02/image.png) この環境では無効になっていると書いてあります。 ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-25-at-09.53.52@2x.png) ## オフにしても使えたもの AIモデル内の「事前構築済みモデル」も「プレビュー」も使えました。[「プレビュー」は別項目の設定を変更することで、制限ができました](https://flow-with-tech.com/ppac-preview-ai-model-off/)。ということは、設定をしても「事前構築済みモデル」だけは使えてしまうということなのでしょうか。 ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-25-at-10.02.55@2x.png) ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-25-at-09.58.56@2x.png) ## まとめ 「AI プロンプト」の設定をオフにすることで、カスタムプロンプトの制限をすることができました。別途、「プレビューと実験段階の AI モデル」をオフにすれば、「事前構築済みモデル」以外は制限ができるのではないか。 AI Builder クレジットが、Copilot Studioクレジットへ統合される。管理者の皆様はどうやって管理・クレジット購入をされているんでしょうか。 --- # PPACで「プレビューと実験段階の AI モデル」をオフにするとどうなるのか試してみた - 公開日: 2026-02-25 - カテゴリ: Power Platform - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/ppac-preview-ai-model-off/ - サイト: 改善紀 — 好奇心の赴くままに。 --- ## この記事を読んでわかること - Power Platform管理センターで「プレビューと実験段階の AI モデル」をオフにすることによって、何が起こるのか ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-25-at-09.23.41@2x.png) *設定画面へのたどり着き方* > [https://learn.microsoft.com/ja-jp/ai-builder/administer#enable-or-disable-preview-features-or-models](https://learn.microsoft.com/ja-jp/ai-builder/administer#enable-or-disable-preview-features-or-models) > > プレビュー機能またはモデルを有効または無効 にする ## なぜ試してみたのか? AI Builderクレジットが廃止されて、Copilot Studioクレジットへ統合される。意図しない環境やユーザーによる、クレジット使用量爆増を制御する方法を探していた。PPACの設定項目を見ていると、これで制御できるのでは?という項目を見つけたので、個人のテナントで試してみた。 > [https://learn.microsoft.com/ja-jp/ai-builder/endofaibcredits](https://learn.microsoft.com/ja-jp/ai-builder/endofaibcredits) > > Al Builder クレジットの期間終了 ## オフにすると使えなくなったもの Power Apps→AI ハブ→AIモデルの中の、プレビューと書いてあるモデルが使えなくなりました。 ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-25-at-09.01.57@2x.png) AI Builderを走らせると、エラーメッセージが出ます。 ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-25-at-09.11.54@2x.png) この環境では無効になっていると書いてあります。 ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-25-at-09.29.53@2x.png) ## オフにしても使えたもの Power Appsの数式バー左のCopilotマークから、式を作成する(プレビュー)があります。プレビューと記載がありますが、オフにしても使えました。 ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-25-at-09.07.15@2x.png) ## まとめ AI Builderの使用を制限するには、この設定だけでは不十分そうです。カスタムプロンプトを作成して、実行ができるからです。こちらについては、「AI プロンプト」の項目をオフにすることで制限ができそうなので、また試してみたいと思います。(試してみたので、別記事に書いてみました) PPACは奥が深くて難しい! ## 関連記事 AIプロンプトの項目をオフにしてみた https://flow-with-tech.com/ppac-ai-prompt-off/ --- # 0からPower Appsを学んだ、最初の1ヶ月の軌跡を振り返ってみた - 公開日: 2026-02-22 - カテゴリ: Power Apps - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/power-apps-first-month-learning-journey/ - サイト: 改善紀 — 好奇心の赴くままに。 --- ## この記事を読んでわかること 0からPower Appsを学び始めた人が、自分でアプリを作れるようになるまで、最初の1ヶ月間どんな感じで学習をしていたのか ## はじめに Power Appsを本格的に学び始めたのは、2025年2月です。現在、約1年が経過しました。学んでいる過程や、作成したアプリをXに発信していたので、今回はそれを振り返りながら、最初の1ヶ月の軌跡をご紹介したいと思います。 やろうかなと思ったら、もうすでにやり終えている。 そういうことです。 これから、Power Appsをやってみようかなと思っている同士に向けて。 ## 現在の私 - 市民開発系をしている - PL-900・PL-200取得した - 最近Xの調子がいい(自分にとっては) ## そうだ、Udmeyしよう そういえば、Udemyっていう学習できるプラットフォームがあるって聞いたな。Power Appsもあるらしいから、探してやってみよう。 ### 1コース目 コース名:Microsoft Power Apps 基礎マスターコース 講師:ヒョウノモトハル さん リンク:[https://www.udemy.com/share/105ONW3@Cc0N6WY2GxeW67xx2rXOdPEtpd1TNUTGsVvIf-xWdyCoF-9DOP69sd-31mxkXLM3_A==](https://www.udemy.com/share/105ONW3@Cc0N6WY2GxeW67xx2rXOdPEtpd1TNUTGsVvIf-xWdyCoF-9DOP69sd-31mxkXLM3_A==) --- 【2025年2月2日】全てはここから始まった。 Udemy→時間記録→Xでアウトプットもやりました。大体のことはXに書いてます。(たぶん) https://twitter.com/kama_bizdev/status/1885965997955600488?s=20 【2025年2月4日】今日もまたひとつ学ぶことができた。千里の道も一歩から。 https://twitter.com/kama_bizdev/status/1886535651451134179?s=20 【2025年2月7日】命名規則?変数とは?よくわからんけど、ふーん。 https://twitter.com/kama_bizdev/status/1887627260653674511?s=20 【2025年2月8日】はいはい "."ね。ああ、Blank()ね。(今となっては懐かしい) https://twitter.com/kama_bizdev/status/1888011254234759514?s=20 【2025年2月9日】ドロップダウンのアイテムってこうやって設定するらしいよ。 https://twitter.com/kama_bizdev/status/1888362669184553318?s=20 【2025年2月9日】噂で聞いたけど、IF関数って入れ子にできるらしい。 まさか、これが1年後に「別記事:[Confirm関数をおそらく本来の意図とは違うことに使ってみた3選](https://flow-with-tech.com/power-apps-confirm-function-3-ideas/)」につながるなんて。 https://twitter.com/kama_bizdev/status/1888362804077633689?s=20 【2025年2月9日】&は全てをつなげる力があるらしい。 https://twitter.com/kama_bizdev/status/1888363476671991938?s=20 【2025年2月10日】二日酔いでもDistinct https://twitter.com/kama_bizdev/status/1888799836725776841?s=20 【2025年2月10日】OnVisibleは、画面を見た時に実行できるっていう、トラップみたいなことできるらしい。 https://twitter.com/kama_bizdev/status/1888811839745872151?s=20 【2025年2月10日】おわり〜 https://twitter.com/kama_bizdev/status/1888816106690990447?s=20 ### Udemy 2つ目 コース名:【2024年版】 Microsoft PowerApps 技術講座:必ず知って おきたい頻出テクニック4選 講師:KATO 講師 (この場合はさん付けは不要なのだろうか) リンク:[https://www.udemy.com/share/10cMdh3@0mPhzk4T2aOIrWM8XG1fxfG0ymzq8-Z4oqnWS8HXwVzIlpF2ir2Wy2uJJr3Qa4q9ww==/](https://www.udemy.com/share/10cMdh3@0mPhzk4T2aOIrWM8XG1fxfG0ymzq8-Z4oqnWS8HXwVzIlpF2ir2Wy2uJJr3Qa4q9ww==/) --- 【2025年2月13日】習ってないことにも勝手にやってみている。そして、Notify関数に感動(すごい!) https://twitter.com/kama_bizdev/status/1889798603671216328?s=20 【2025年2月14日】AIの生成結果をコピペしていたPatch関数。AIの手下からの卒業 https://twitter.com/kama_bizdev/status/1890161385444925702?s=20 【2025年2月18日】ドロップダウンリストの、AllowEmptyって知ってますか?(得意げな顔) https://twitter.com/kama_bizdev/status/1891611042662187380?s=20 【2025年2月23日】アプリが完成!(アウトプットのための録画スキルも同時に向上笑) https://twitter.com/kama_bizdev/status/1893480559302844660?s=20 【2025年2月27日】「何の成果も得られませんでした」こんな日もありますよね。いい時もあれば悪い時もある。それでもまた陽が上るんですね。 https://twitter.com/kama_bizdev/status/1894875627108606311?s=20 【2025年2月28日】たったの3分だけでも、0よりはいいはず! https://twitter.com/kama_bizdev/status/1895233331836616817?s=20 【2025年3月2日】ついについに完走した〜!! https://twitter.com/kama_bizdev/status/1895997487774908654?s=20 ## 学びの寄り道 ### Googleで行動記録をしていました 記録魔の才覚が・・ https://twitter.com/kama_bizdev/status/1888354088213246075?s=20 ### SVGって何?すごい 今でもあんまり理解してないですが、SVGってすごいんですよ。(当時と同じレベル笑) https://twitter.com/kama_bizdev/status/1893809891245994386?s=20 ### サックス習ってみてた サックスについても投稿するアカウントにしようと思って、1回だけポストしたやつ。 https://twitter.com/kama_bizdev/status/1893540404844470674?s=20 ### 行動ログアプリの初期版 今とは方向性が違いますね。 https://twitter.com/kama_bizdev/status/1895654101817737502?s=20 こんな方向性で行こうとしていた。 https://twitter.com/kama_bizdev/status/1895748685696479538?s=20 ## まとめ 「Xのポスト貼っただけじゃん!」と思われるかもしれません。そうです、貼っただけです。だいたい、必要なことをポストしていたはずなので、それでもいいかなと思いまして。 当時のポストを振り返ってみると、「そっか、**最初は何も知らなかったんだ**」と改めて気づきました。 誰だって最初は初心者です。やっている時は大変ですが、振り返ればそれがいい思い出になると思います。Power Appsやってみたいなって思っている人は、ぜひ始めてみてはいかがでしょうか。何からやればいいか分からない人にはUdemyをお勧めします。(自分がそれから始めたからです。他にもいい方法はたくさんあると思います。) 最後まで読んでいただきありがとうございました。 そして、UdemyとPower Appsのコースを提供してくださった講師の皆様に感謝申し上げます。ありがとうございました。これからもよろしくお願いします! いいねと思ったら、いいねお願いします〜! --- # 市民開発者が普段使っているアプリたち8選(2026年2月版) - 公開日: 2026-02-22 - カテゴリ: column - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/recommended-apps-for-focus-and-productivity-2025/ - サイト: 改善紀 — 好奇心の赴くままに。 --- # なぜ書くのか? > 🗣 今、突然書きたいと思ったから!!!! ## この記事を読んでわかること - 普段からMacBookやiPhone、Apple Watchを使っている市民開発者がおすすめするアプリ - 自分の時間や脳のリソースを無駄にしないためのアプリ - 数年後、自分が見返した時の、「そんな時代もあったな〜」 ## 1.パスワード管理アプリ:1 Password [https://1password.com/jp](https://1password.com/jp) > パスワードなんだっけ・・・より、もっとやりたいことがたくさんある iOSでもAndoroidでも、MacでもWindowsでも使えるパスワード管理アプリです。パスワードなんだったけ?に悩む時間や脳のリソースを使わなくて良くなります。パスワードの生成もしてくれて、文字数・記号含むかなども変更できます。 ## 2.スクショ&編集アプリ:Clean Shot X [https://cleanshot.com](https://cleanshot.com) > アウトプットのための高速道路を! MacBook用のスクリーンショットアプリです。スクショ撮るなんて標準機能にあるじゃん。注釈?そんなのパワポで書いたらいいじゃん。 確かにそうです。ただ、アウトプットを最大化しようと思ったら、簡単にできるように環境を整備することも必要です。 このポストにつけている動画もClean Shot Xで撮っています。画面録画中に一時停止して、スクショに注釈を入れて、録画を再開しています。 飲んで帰ってきてアプリ作っても、即アウトプットできます笑 https://twitter.com/kama_bizdev/status/2024846312324403458?s=20 スクショへの注釈はこんな感じ。(22時半から何してるんだろう・・) ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-22-at-08.22.40@2x.png) ### Clean Shot Xの詳細はこちら 私がどんなふうに設定をして、どう活用しているかを書いてみています。 https://flow-with-tech.com/cleanshot-x-settings-workflow/ ## 3.計測できないものは管理できない:Power Appsで自作する行動記録アプリ > 自分で作ったアプリは、プライスレス。全ての記録魔に向けて。 やっとPower Appsが出てきました。さっきの記録もこのアプリでつけたものです。 欲しい機能を自分にとって最高のUI・UXで実装する。これ以上のことがあろうか、いやない。 詳しくはこちらにて。 https://flow-with-tech.com/lifelogging-system-with-power-apps-one-year-review/ ### 【追記】Code Appsで作り直しました その後、このアプリをCode Apps(コードファーストのPower Apps)で作り直しました。開発者プログラムを使えば費用はかからず、スマホアプリとしてもWebアプリとしても動く「自分だけの行動記録アプリ」が手に入ります。記録するだけでなく、集計やグラフもアプリの中で完結するようになりました。 https://flow-with-tech.com/totonoi-watch/ ## 4.惑わされない人生を:One-Sec [https://one-sec.app/ja](https://one-sec.app/ja) > 減らしたいものには辿り着くのを面倒くさくすべし なんとなくSNSを見てしまう・・ そんな時におすすめです。アテンションエコノミーやいいねがたくさんつくことによるドーパミン、手軽なものに手を伸ばしてしまう! 評判など無意味だ (引用元: マルクス・アウレリウス「自省録」) そんなことを体現し、やりたいことしよう。ワンクッションあるだけで、とてつもなく面倒くさくなります。 ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-22-at-08.27.00.gif) ## 5.Zettelkastenで自分の言葉を思考を創る:Obsidian [https://obsidian.md](https://obsidian.md) 生成AIは文章を作ります。でも、人間のように創れないと思います。皆さんは自分の思考のつながりや、自分の中から言語化したものを、見返したことはありますか? 私は日記を10年以上書いていて、たまに見返すことがあります。そして、めっちゃおもろいことがあります。こいつこんなこと考えていたんだ、何言ってんだろうか笑 と。 人間が文章を書く喜びは、そういうことなんじゃないかなと思います。 Zettelkastenというノート術があります。自分の言葉で書くこと・ノートとノートの繋がりを生むこと。そんなノート術です。それを体現できるのが、Obsidianというアプリです。 ノートとノートが繋がり新しい思考やアウトプットが生まれる。そんな感じです。 ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-22-at-08.37.08@2x.png) ## 6.Apple Watchだけで集中タイム:Bluebird [https://apps.apple.com/jp/app/bluebird-%E3%83%9D%E3%83%A2%E3%83%89%E3%83%BC%E3%83%AD-%E9%9B%86%E4%B8%AD%E3%82%BF%E3%82%A4%E3%83%9E%E3%83%BC/id1478757472](https://apps.apple.com/jp/app/bluebird-%E3%83%9D%E3%83%A2%E3%83%89%E3%83%BC%E3%83%AD-%E9%9B%86%E4%B8%AD%E3%82%BF%E3%82%A4%E3%83%9E%E3%83%BC/id1478757472) > 集中力のない同士へ 普段は極力、手元にスマホを置かないようにしています。Apple Watchだけでポモドーロタイマーができないかなと思って、見つけたアプリです。 ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-22-at-08.41.25@2x.png) ## 7.Windowsみたいにウィンドウを切り替えたいじゃん:Alt Tab [https://alt-tab-macos.netlify.app](https://alt-tab-macos.netlify.app) じゃあWindows使えばいいじゃんとは言わないでください。マウスを使わなくてもウィンドウを切り替える。いいよね。 ## 8.Windowsみたいにコピー履歴使いたいじゃん:Clipy [https://clipy-app.com](https://clipy-app.com) はい。 文字も画像も。スニペットには定型分を登録しておけます。便利。 ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-22-at-08.44.04@2x.png) ## まとめ 途中で面倒くさくなってしまいましたが、こんな感じです。 皆さんもおすすめのアプリがあれば教えてください。 > いいねと思ったら、いいね願いします! --- # AI活用以前の業務改善について思うところ - 公開日: 2026-02-17 - カテゴリ: column - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/last-one-mile-shinkansen-thinking/ - サイト: 改善紀 — 好奇心の赴くままに。 --- ## ラストワンマイルまで新幹線で行こうとしていないか? 改めて言うまでもなく、生成AIはめっちゃすごい。私もめっちゃ助けられています。 でもそれで、目的地まで直行する以外の選択肢を持っていますか。たとえば、名古屋から東京に新幹線で到着したとして、スカイツリーまでも新幹線で行こうとしていませんか? 確かに名古屋-東京間はめっちゃ早いよ。(リニア・・・) でも適材適所っていう言葉があって、何もかも新幹線で行くのが一番早いっていうわけじゃないよね。 たとえ、莫大な費用をかけて建設しても、短縮されるのってたかが数分じゃないですか。(現代の利用者目線)それよりも、東京駅着いたらあとは在来線で行くとか、考えた方がいいんじゃないだろうか。 てか、今でも東京駅から25分でいけるんだけど、それ自体が本当に問題なのかってちゃんと見極めてますか。特に今のままでも問題ないっていうパターンはないんでしょうか。 いや、10分でいけないと困るんです。なぜなら東京駅で買うアイスが溶けるからです。と明確に言えるなら、いいんだけど。 あとはそもそも、新幹線以外の方法で行くっていう選択肢はないんだろうか。ドライバー付きの車をレンタルして現地まで送って貰えば。ヘリってどう? 前泊すれば? 移住すれば? スカイツリーの近くに住んだら毎日歩いていけるよ。 極端な発想かもしれないけど、仕事においてはゴールはあるけど、そこへ辿り着く方法は無数にあることが多いような。その自由さゆえにいろんな選択肢があって頭を悩ませるきっかけにもなっているのかもしれないけど。(え、ゴールもないことも多い?それは一旦置いておきましょう〜) > アイスが溶けるなら、東京駅で食べちゃえば?時間がない?じゃあその時間を捻出できるようにスケジュールを見直せば?(面倒臭いから嫌・・?) --- ## 最新のモデルを使うか、プロンプトをブラッシュアップしたいんです。 今何が問題なんですか? ・・・わかりません。 生成AIが出してきたものを、まだ精査していない。そんな中で何をブラッシュアップすればいいんだろうか。問題が何かもわからないなら、課題が何かもわからない。まずはどこにギャップがあって、どれくらい根深いのかが分からないと何も言えないよな。 ベンダーは自社製品を買って欲しいから、そりゃ自社製品での解決策をどうにか見つけてきて言うよ。そして現場もそれを真にうける。「最新機能さえ、最新機能さえ使えたら・・・」そんな構図って結構大変じゃない。最新機能ですよ。いつ使えるのか分からないんですよ。いつ仕様が変わってもおかしくないんですよ。生成AIですよ。100点を求めて大丈夫ですか〜? なんか生成AIが現場を逆に困らせている気がする。昔だったら、じゃあ人を入れようとか、外注しようとか、頑張ればなんとかなる。その一言で解決するような問題だったんじゃないかなと思ってしまう。 (最後が一番多いかもしれない笑) テクノロジーは本当に人を幸せにするのだろうか? 新しい悩みを増やして、それを解決するという仕事を増やして、誰かの懐を癒している。そして現場はずっと楽にならない。 業務プロセスを広く見直すっていう、めっちゃ面倒臭いことに挑むスキルも一生身につかない。だからツールありきで、これでなんとか完璧まで行きたいと、視野が狭窄してしまうんじゃないだろうか。 そんな構造に見えてしまってならないのは、やっぱり私の知識や経験、スキル、考え方がまだまだ浅いからなんだろうか。 最新モデルに心躍るのは理解できるけど、まずは当たり前のことを当たり前にする。それは忘れないようにしたいと思う今日この頃でした。 --- # Power Appsで通信調査アプリを作ってみたら、完全に机上の空論だった話 - 公開日: 2026-02-14 - カテゴリ: Power Apps - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/power-apps-connection-connected-field-test/ - サイト: 改善紀 — 好奇心の赴くままに。 --- ## この記事を読んでわかること - Power Appsの`Connection.Connected`関数の仕様と限界 - 「技術的にできること」と「業務要件を満たすこと」の違い - 市民開発において、業務理解がなぜ重要なのか ## はじめに 突然ですが、皆さんに質問です。 **Q. Power Appsにはデバイスの通信状況を取得する関数があります。これを使って、通信調査をするアプリを作ることはできるでしょうか?** 答えは「はい」です。作ることはできます。 **では、そのアプリは実用に耐えるでしょうか?** 答えは——**いいえ、耐えられませんでした**! 今回は、私が実際に通信調査アプリを作成し、検証してみた結果、「机上の空論」だとわかった話を書きます。 ## なぜアプリを作ろうと思ったのか 建設業界にいると分かるんですが、日本国内でも未だに通信が無い場所があります。(本当です!) Power Appsって通信状態を取得できる関数があったよな。じゃあ、**通信調査アプリを作れば、緯度・経度と通信の有無をセットで簡単に記録できて「良さそう、作ろう、作った**、**使った」**という感じです。 ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-14-at-09.07.04@2x.png) *実際のアプリ画面* ## どんなアプリを作ったのか Power Appsにタイマーコントロールを配置し、一定間隔ごとに以下の情報を自動で記録するアプリを作りました。 - 緯度・経度(`Location`関数) - 日時 - 通信状況(`Connection.Connected`の値) 取得したデータはマップ上にプロットし、通信の有無を色分けして視覚的に確認できるようにしています。 ### タイマーコントロールのOnTimeEnd ``` Collect( colCommLog, { TimeStamp: Now(), //現在日時を記録 Connected: Connection.Connected, //通信があるかどうかのブール値を Latitude: Location.Latitude, //緯度 Longitude: Location.Longitude, //経度 Status: If(Connection.Connected, "通信あり", "通信なし"), //通信があるかどうか PinColor: If(Connection.Connected, Color.Blue, Color.Red) //通信状態別の色 } ) ``` ## 実際に使ってみた 新幹線は、トンネル区間が連続する箇所で通信が不安定になりますよね。皆さんも一度は経験があるのではないでしょうか。 では、**実際にどの区間で、どれくらいの距離にわたって通信が途切れるのか**——計測したことはありますか? たぶんないですよね。私もありませんでした。 そこで、試しに使ってみました笑 ### 結果:体感と全然合わない どれだけ待ってもブラウザが開けない場所でも、ほとんどTrue(通信あり)という結果が得られました・・ ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-14-at-09.22.04@2x.png) *実際に使ってみた* ### 原因:`Connection.Connected`の仕様 原因に気づきました。 Power Appsの`Connection.Connected`は、**デバイスが完全にオフラインにならない限り`true`(通信あり)を返すみたいです。** そこに、通信速度は関係無かったのです。 ## わかったこと:「できる」と「使える」は別物 今回、身をもって実感したのは、**ツールの機能として「できること」と、業務の要件として「必要なこと」は別物だ**ということです。 通信調査において求められるのは、通信の有無(0か1か)ではないみたいです。通信速度がどの程度出ているのか、どのキャリアで、どの周波数帯(バンド)を掴んでいるのか等々。 `Connection.Connected`が返す`true`/`false`だけでは、その要件は満たせませんでした。 作る前は「これでいけるのでは?」と思っていたのですが、完全に見当違い。まさに**机上の空論**でした〜! ## 市民開発において本当に必要なこと 今回の失敗で改めて感じたのは、**既存業務の要件を正しく理解することの重要性**です。 技術だけじゃなくて、要件を理解していかねば・・! ## まとめ やってみて、初めてわかることって多いですね。後から考えると、「そんなのやる前からわかるじゃん」って感じなのが不思議です。今回の経験によって、うまくいかないやり方見つけることができました(発明王のように!) 皆さんも身近な疑問をPower Appsで検証してみてはいかがでしょうか? > 🗣 最後まで読んでいただきありがとうございました。 > > いいねと思ったら、いいねお願いします! --- # Confirm関数をおそらく本来の意図とは違うことに使ってみた3選 - 公開日: 2026-02-13 - カテゴリ: Power Apps - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/power-apps-confirm-function-3-ideas/ - サイト: 改善紀 — 好奇心の赴くままに。 --- ## はじめに 先日アップデートされたConfirm関数。Power Appsユーザーから歓喜の声が上がっていましたね! むむ、どう使えばいいんだろう。 私は理解するのに少し時間がかかりました笑 理解の途中で「ああ、条件分岐もできるのか」と気づきました。そして閃いた。 **こんなことに使ったらおもろそうじゃん。** 今回は、Confirm関数の本来とは違う、3つの使い道について書きたいと思います。 ## Confirm関数について参考にさせていただいた記事 ``` Confirm関数についてちゃんと知りたい人は、こちらをご参照ください。 https://qiita.com/Takashi_Masumori/items/6d08844e43f44860fb9c ``` ## この記事を読んでわかること - Confirm関数を使って「人生について問いかける方法」 - Confirm関数を使って「診断テストをする方法」 - Confirm関数を使って「正解するまで抜け出せないクイズを仕掛ける方法」 ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-13-at-19.41.30@2x-1.png) ## Confirm関数で起きていること 確認のためのダイアログを表示して、その結果を元にアクションを変更しているようです。つまりこういうことだと理解しました。 ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-13-at-20.02.04@2x.png) ## 全ての始まり。ふとした疑問。 **「Yesの下に、もう一個Confirm関数つけたらどうなるんだろうか?」** つまりこういうことです。もう一個つけることができるということは、**何個でもつけることができるんじゃないだろうか**。この思いつきが全ての始まりだった・・ ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-13-at-20.02.56@2x.png) ## 使い道①:人生について問うてみたい これが、23時前。 ### アプリ画面 ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-13-at-19.53.00.gif) ### フローチャートで表すと ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-13-at-20.19.58@2x-1.png) ### Xへのポスト https://twitter.com/kama_bizdev/status/2021946315438272905?s=20 ## 使い道②:診断テストをしてみたい 自力でこのPower FXは書けないけど。これが23時20分ごろ。 ### アプリ画面 ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-13-at-19.50.11.gif) ### フローチャートで表すと ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-13-at-20.17.15@2x.png) ### Xへのポスト https://twitter.com/kama_bizdev/status/2021951901781393520?s=20 ## 使い道③:正解するまで抜け出せないクイズを仕掛けたい 無限ループにできてしまうことがわかりました。これは、23時40分ごろ。 ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-13-at-19.55.36.gif) ### フローチャートで表すと ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-13-at-20.15.17@2x.png) ### Xへのポスト https://twitter.com/kama_bizdev/status/2021957237380677693?s=20 ## まとめ 思いついたらやってみてしまう。そんな性格なので、こんなことをしました。 23時前からこんなことを開始するのはやめたいです笑 でも、やっぱりPower Appsっておもろいですね〜! (コメント欄はまだ設置できてませんが、いいねボタンを設置することに成功しました。いいねと思ったら、いいねお願いします!) --- # 【Power Apps】構造化データをMermaid記法に変換して、アプリ内で組織図をプレビューする方法 - 公開日: 2026-02-12 - カテゴリ: Power Apps - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/power-apps-mermaid-org-chart/ - サイト: 改善紀 — 好奇心の赴くままに。 --- ## この記事を読んでわかること - Power Fxで構造化データをMermaid記法に変換するロジックの書き方 - PCFコンポーネントを使ってアプリ内で組織図をリアルタイムにプレビューする方法 --- ## 今回つくるもの Power AppsでMermaid記法を使えるなら何に使いたいですか? そうです、組織図の自動作成ですよね。(ね!) 今回は、**体制情報を構造化データで持ち、Power Appsの中でMermaid記法に自動変換して組織図をプレビューできる**仕組みを作ってみました。 全体の仕組みはとてもシンプルです。 1. **コレクション**に組織データ(名前・役職・上司)を持つ(今回はサンプルなのでコレクションにしています。本運用するならDataverseなどになります) 2. **Power Fx**でMermaid記法の文字列に変換する 3. **PCFコンポーネント**がMermaid記法を受け取って図を描画する 「テキスト to グラフィカル」これが思いのままに定義できるという素晴らしさ。たとえ元が構造化データであってもMermaid記法に変換してしまえばいいのさ。 ### 実際のアプリ画面 ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-12-at-19.57.08.gif) --- ## コレクションの設計 まず、組織データをどう持つかを考えます。今回は最小限の3カラム+IDで設計しました。 | カラム名 | 型 | 説明 | | --- | --- | --- | | ID | Number | レコードの識別用 | | Name | Text | メンバーの名前(表示名) | | Role | Text | 役割(Manager / Leader / Staff) | | Manager | Text | 上司のName(トップは空白) | **Managerカラムに「上司のName」をそのまま入れ**てみました。これによって、「誰が誰の部下か」という親子関係がシンプルに表現できます。Dataverseでやるなら、自らのテーブルを検索する検索列を作る感じでしょうか? サンプルデータをボタンのOnSelectで作る場合は、こんな感じです。 ``` // ボタンのOnSelect ClearCollect( colOfficeOrg, {ID: 1, Name: "営業部長", Role: "Manager", Manager: ""}, {ID: 2, Name: "営業1課長", Role: "Leader", Manager: "営業部長"}, {ID: 3, Name: "営業2課長", Role: "Leader", Manager: "営業部長"}, {ID: 4, Name: "田中営業1課", Role: "Staff", Manager: "営業1課長"}, {ID: 5, Name: "佐藤営業1課", Role: "Staff", Manager: "営業1課長"}, {ID: 6, Name: "鈴木営業2課", Role: "Staff", Manager: "営業2課長"}, {ID: 7, Name: "高橋営業2課", Role: "Staff", Manager: "営業2課長"} ) ``` --- ## Power FxでMermaid記法に変換する コレクションのデータを、Power Fxだけで**Mermaid記法の文字列に変換**します。(魔法みたい・・) ### Mermaid記法とは? Mermaid記法は、テキストベースで図を描くための記法です。たとえば、こういうテキストを書くと: ``` graph TD 営業部長 --> 営業1課長 営業部長 --> 営業2課長 営業1課長 --> 田中営業1課 ``` ツリー状の組織図が自動生成されます。「`A --> B`」が「AからBへの線」を意味するので、上司と部下の関係をそのまま書けばOKです。 ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-12-at-20.00.53.gif) > Mermaid記法の詳細は公式ドキュメントを参照してください。 [https://mermaid.js.org/](https://mermaid.js.org/) ### 変換コード ``` Set( varMermaidCode, "graph TD" & Char(10) & Concat( Filter(colOfficeOrg, !IsBlank(Manager)), Manager & " --> " & Name, Char(10) ) ) ``` **`"graph TD" & Char(10)`** Mermaid記法のヘッダーです。`graph TD`は「上から下(Top-Down)に流れるグラフ」という意味。`Char(10)`は改行コードです。(flowchart TDでもいいみたいです) **`Filter(colOfficeOrg, !IsBlank(Manager))`** コレクションから**Managerが空でないレコード**だけを取り出します。つまり、トップの「営業部長」は除外されます。なぜかというと、トップには「上司→自分」の線が不要だからです。 **`Manager & " --> " & Name`** 各レコードを「`上司名 --> 自分の名前`」の形式に変換します。これがMermaid記法の1行になります。 **`Concat(..., Char(10))`** Concat関数で全レコードを改行区切りで結合します。 ### 生成される結果 上のコードを実行すると、変数`varMermaidCode`にはこんな文字列が入ります。 ``` graph TD 営業部長 --> 営業1課長 営業部長 --> 営業2課長 営業1課長 --> 田中営業1課 営業1課長 --> 佐藤営業1課 営業2課長 --> 鈴木営業2課 営業2課長 --> 高橋営業2課 ``` **データの親子関係が、そのままMermaidの矢印になる。** いい感じですね〜。 --- ## PCFコンポーネントでプレビューする 生成したMermaid記法の文字列を、PCFコンポーネント(Power Apps Component Framework)に渡すと、アプリ内でリアルタイムに組織図が描画されます。 ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-12-at-19.57.08-1.gif) Mermaid記法をプレビューするPCFコンポーネント自体の作り方や導入手順については、別の記事で詳しく解説しています。 > PCFコンポーネントの導入方法はこちら > > https://flow-with-tech.com/power-apps-mermaid-pcf-preview/ --- ## まとめ 今回は、Power Appsのコレクションに持った構造化データを、Power Fxで**Mermaid記法に変換して組織図をプレビュー**する方法を紹介しました。 やっていることを振り返ると: - **Power Fxで変換**: `Filter`で上司がいるレコードだけ抽出 → `Concat`で「上司 --> 部下」の文字列を結合 - **PCFで描画**: 変換した文字列をPCFコンポーネントに渡すだけ Mermaid記法は組織図だけでなく、フローチャートやシーケンス図、ER図なども書けます。データの持ち方を工夫すれば、**業務フローの可視化**や**システム構成図の自動生成**にも応用できそうですね〜(夢が広がる!) 「構造化データを持っていれば、図は自動で作れる」——この考え方、いろんな場面で使えるんじゃないかなと思います。 皆さんもぜひ試してみてください。 (皆さんからのアイデア募集したいですが、コメント欄がまだないので見送ります・・) --- # 【Power Apps】PCFコントロールでMermaid記法をプレビューする方法 - 公開日: 2026-02-11 - カテゴリ: Power Apps - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/power-apps-mermaid-pcf-preview/ - サイト: 改善紀 — 好奇心の赴くままに。 --- ## この記事を読んでわかること - Power AppsでMermaid記法をプレビューする方法 - PCFコントロールのインポート手順 ### こんなことができます ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-11-at-20.32.09.gif) --- ## 前提知識について 本記事では、**Mermaid記法そのものの解説**や**PCFコントロールの基礎的な説明**は省略します。 「Mermaid記法って何?」「PCFコントロールって何?」という方は、以下を先にご覧ください。 > **Mermaid公式サイト** テキストベースでフローチャートやシーケンス図を描ける記法です。 [https://mermaid.js.org/](https://mermaid.js.org/) > > **キャンバス アプリのコード コンポーネント — Microsoft Learn** > > [https://learn.microsoft.com/ja-jp/power-apps/developer/component-framework/component-framework-for-canvas-apps](https://learn.microsoft.com/ja-jp/power-apps/developer/component-framework/component-framework-for-canvas-apps) --- ## 今回使うPCFコントロール 今回使うのは、Iona Varga氏が作成した **「Mermaid JS」** というPCFコントロールです。ページ下部のDownloadからGit Hub レポジトリにアクセスできます。 > **PCF Gallery — Mermaid JS** [https://pcf.gallery/mermaid-js/](https://pcf.gallery/mermaid-js/) --- ## 実際にやってみた ここからは実際の手順を説明していきます。やることは大きく3ステップです。 1. 環境でPCFコントロールを有効化する 2. ソリューションをインポートする 3. キャンバスアプリに追加する ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-11-at-19.56.34@2x.png) ### 事前準備 — 環境でPCFコントロールを有効化 まず、PCFコントロール(コードコンポーネント)をキャンバスアプリで使えるようにする必要があります。 1. **Power Platform管理センター**にアクセス 2. 左メニューから「**環境**」を選択し、対象の環境をクリック 3. 「**設定**」→「**機能**」を開く 4. 「**キャンバス アプリの Power Apps Component Framework**」を**オン**にする 5. 「**保存**」をクリック ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-11-at-19.56.55@2x.png) ### ソリューションをインポートする 次に、Mermaid JSコントロールのソリューションファイルをダウンロードしてインポートします。 **1. GitHubからソリューションZIPをダウンロード** ソリューションファイル(`.zip`)をダウンロードします。 ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-11-at-19.16.48@2x.png) ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-11-at-19.17.21@2x.png) **2. Power Appsにソリューションをインポート** 1. **make.powerapps.com** にアクセス 2. 左メニューから「**ソリューション**」を選択 3. 上部の「**ソリューションのインポート**」をクリック 4. 「**参照**」からダウンロードしたZIPファイルを選択 5. 「**次へ**」→「**インポート**」をクリック ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-11-at-19.18.25@2x.png) インポートが完了すると ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-11-at-19.21.28@2x.png) ### キャンバスアプリに追加する いよいよ、キャンバスアプリにMermaidコントロールを追加します。 **1. コードコンポーネントをインポート** 1. キャンバスアプリを新規作成、または既存のアプリを編集モードで開く 2. 左ペインの「**+**」(追加)をクリック 3. 「**コンポーネントをさらに取得**」を選択 4. 「**コード**」タブを開く 5. 一覧から **mermaids** コードコンポーネントを選択し、「**インポート**」をクリック ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-11-at-19.23.09@2x.png) **2. アプリにコントロールを配置** 1. 左ペインの「**+**」→「**コードコンポーネント**」セクションを展開 2. **mermaids** コントロールをクリックしてスクリーンに追加 3. テキスト入力コントロール(`TextInput`)も一つ追加する ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-11-at-19.25.17@2x.png) **3. Mermaid記法をプレビューしてみる** Mermaidコントロールのプロパティに、Mermaid記法のテキストを渡します。 たとえば、テキスト入力コントロール(`TextInput1`)の値をMermaidコントロールに紐付ける場合は、Mermaidコントロールの該当プロパティに以下のように設定します。 ``` TextInput1.Text ``` ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-11-at-19.27.02@2x.png) テキスト入力コントロールに以下のようなMermaid記法を入力してみてください。 ``` graph TD A[開始] --> B{条件分岐} B -->|Yes| C[処理A] B -->|No| D[処理B] C --> E[終了] D --> E ``` すると、**テキストがそのままフローチャートとして描画されます**! ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-11-at-19.30.31@2x.png) 初めて動いたときはちょっと感動しました。テキストを書き換えるとリアルタイムで図が更新されるので、**「テキストだけでダイアグラムが描ける」というMermaidの良さ**をそのままPower Appsの中で体験できます。 ## まとめ 今回は、PCFコントロール「Mermaid JS」を使って、**Power Apps内でMermaid記法のダイアグラムをプレビュー表示する方法**を紹介しました。 手順をまとめると、以下の3ステップだけです。 1. 環境でPCFコントロールを有効化 2. ソリューションをインポート 3. キャンバスアプリにコントロールを追加してテキストを紐付け **コードは一切書いていません。** ソリューションをインポートして、プロパティを設定するだけ。市民開発者でもすぐに試せるのが嬉しいポイントです。 Power Appsのアプリ内で、**データソースをMermaid記法に変換してプレビュー**、なんて使い方もできそうです。活用の幅はかなり広いので、アイデア次第でいろいろ面白いことができそうです。 皆さんもぜひ試してみてはいかがでしょうか。 (最近、Mermaid記法にハマっています。) --- # 市民開発者がMermaid記法を知って変わったこと - 公開日: 2026-02-11 - カテゴリ: Power Platform - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/citizen-developer-mermaid-changed/ - サイト: 改善紀 — 好奇心の赴くままに。 --- # はじめに みなさんPower Platformでアプリやフローを作るときに、何から始めていますか?いきなり作り始めて手探りでやって行くのも最高におもろいですよね。ただ、行き詰まったり後から修正したりするときに、何をどう考えて作ったのかよく分からなくなった経験はありませんか? 私は最近Mermaid記法を知り、フロー図・エンティティ図・シーケンス図などを思考の整理のために簡単に書いています。これは**市民開発との相性がいいのでは**?と感じています。 今回は、私の実体験をもとにMermaid記法を知ることによって、市民開発にどんな変化があったのかをご紹介します。 # Mermaid記法とは? テキストで図を描けるマークダウンベースの記法 > [Mermaidの公式サイトへのリンク](https://mermaid.js.org/) # 結論:Mermaid記法を知る前と後の変化 ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-11-at-16.49.57@2x.png) ## Before:今まではこうやっていました ### フローや利用シーンの検討 なんとなく頭の中に描いていたのがほとんどです。やるとしてもPower PointとかOneNoteに書き出して作っていました。レイアウトを考える必要もあるので、結構大変でした。 ### 必要なデータの設計 Excelで書き出すか、テキストエディタで書き出す。リレーションまで表現することができないので、その辺は結構適当にやっていました。 ## After:Mermaid記法を知ってからこう変わった ### フローや利用シーンの検討 flowchartやsequenceDiagramを使って爆速で整理しています。特にフローチャートは一番最初に覚えることをお勧めします。ぱっと見難しそうですが、中身は結構単純なので、思いつくままに書き出すだけでフローチャートが描けるのは結構感動します。 ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-11-at-16.42.36@2x.png) *実際に書いてみたフローチャート* ### 必要なデータの設計 Mermaid記法ではエンティティ図が書けます。テーブル名・PK・データ型・カラム名を定義して、リレーションまで表現して整理しています。これはアプリを作成した後に、誰かにデータの繋がりはこうなっていると説明する時にも使えます。設計がそのまま説明資料にもなるのが良い。 ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-11-at-16.45.35@2x.png) *実際に書いてみたエンティティ図* # なぜMermaid記法が良いのか ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-11-at-16.54.22@2x.png) ## 考えることに集中できる GUIは便利だがレイアウトを整えるというタスクが1つ増えます。 **テキストだと考えるというシンプルなことだけに集中できます**。 ## 生成AIと相性が良い Mermaid記法で下書きをして生成AIに投入をする。そうするとテキストで返信が返ってくる。そのまま手元で編集を継続できる。画像として生成されるとそうはいかない。Mermaid記法は生成AIと伴走する相性も良い。 ## 設計=説明資料になる 設計段階からMermaid記法で作成しておけば、後から誰かにアプリやフローの仕組みを説明するときの簡単な資料とすることもできます。特にフローやデータの設計は説明しづらいと思うので、資料があるといいですね。 # まとめ Mermaid記法を使うことによって市民開発の設計スピードが格段に上がりました。 皆さんもまずは一番簡単なflowchartから試してみてはいかがでしょうか。 (あと、Mermaid記法をタイピングですらすら書いていると、**デキる感**が出て気持ちいです笑) ### **追記(2026.3.9)** この記事の続編を書きました。Mermaid記法を覚えた市民開発者が、その後どうなったのか。正直に書きました。 > [Mermaid記法に感動した市民開発者の末路|自分で書けるようになったから、書かなくてよくなった話](https://flow-with-tech.com/citizen-developer-mermaid-aftermath/) --- # DataverseのSharepoint統合を試してみた(手順画像付き) - 公開日: 2026-02-06 - カテゴリ: Dataverse・Automate・BI - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/dataverse-sharepoint-integration-setup/ - サイト: 改善紀 — 好奇心の赴くままに。 --- # この記事を読んでわかること - Dataverse Sharepoint統合の設定方法 # Sharepoint 統合って何? > こちらがMS Learnのページです。(よく分からないです・・) > > [https://learn.microsoft.com/ja-jp/power-platform/admin/set-up-sharepoint-integration](https://learn.microsoft.com/ja-jp/power-platform/admin/set-up-sharepoint-integration) PL-200(Microsoft Power Platform 業務コンサルタント)の試験の中で、Dataverseに大きなファイルを直接添付するのではなく、Sharepoint 統合をすることがベストプラクティスだと書いてありました。DataverseのレコードとSharepointドキュメントライブラリが連携する感じのものだと認識しています。(本当は、もっと奥が深いかもしれないです) # 実際にやってみた モデル駆動型アプリからドキュメントライブラリを開いてファイルをアップロードすることができました。これは結構使い勝手が良さそう。 ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-06-at-08.39.39.gif) # やり方 Power Platform管理センターから特定の環境を選択します。 ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-06-at-08.05.43@2x.png) 設定画面に移動します。 ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-06-at-08.06.07@2x.png) 統合のドキュメント管理の設定に移動します。 ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-06-at-08.06.35@2x.png) ## サーバーベースのSharepoint統合を構成する ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-06-at-08.07.42@2x.png) こんな感じでやっていきます。 ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-06-at-08.08.51@2x.png) ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-06-at-08.09.04@2x.png) ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-06-at-08.10.44@2x.png) ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-06-at-08.11.13@2x.png) ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-06-at-08.11.26@2x.png) ## ドキュメント管理設定をする あらかじめ、Dataverseのテーブルを作成しておき、添付ファイルを有効にしておきます。 ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-06-at-08.17.58@2x.png) ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-06-at-08.15.57@2x.png) あとはこんな感じでやっていきます。SharePoint サイトには先ほど設定した SharePoint の URL を入力します。 ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-06-at-08.16.29@2x.png) フォルダー構成は一旦無視しました。 ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-06-at-08.19.56@2x.png) これで完成です。 ![](https://flow-with-tech.com/media/wp/2026/02/CleanShot-2026-02-06-at-08.20.20@2x.png) # まとめ Dataverseに大きな容量のファイルを入れて、容量を圧迫してしまわないようにするためのベストプラクティスのようです。設定するだけなら簡単にできるようですが、管理をしようとすると大変と聞いたこともあります。まずは皆さん一度試してみてはいかがでしょうか。 --- # PL-200 合格方法|非IT職が実践した勉強法・試験対策まとめ - 公開日: 2026-01-25 - カテゴリ: Microsoft認定資格 - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/pl-200-pass-guide-non-it/ - サイト: 改善紀 — 好奇心の赴くままに。 --- 2026年1月19日にPL-200に合格しました。非IT職でPower Platform管理センターすら見たことがなかった私がPL-200合格のためにやったことを紹介したいと思います。 PL-200を取得したいけど、どうやって勉強すればいいかわからない。そんな人に向けて! ![](https://flow-with-tech.com/media/wp/2026/01/CleanShot-2026-01-25-at-19.11.10@2x.png) *学習時間のログ* ## この記事を読んで何がわかるのか? - Power Platform管理センターを見たことない人間が、PL-200合格のためにやったこと - PL-200取得により得たもの、失ったもの ## なぜ書くのか? PL-200取得を目指した時に、調べてもあまり情報が見つかりませんでした。何を使って勉強をすればいいのか、どういう手順でやればいいのか迷いました。参考になる体験談がもう少しあれば、自分なりの道筋を考えやすいなあと思いました。 今回の記事はあくまでも私の個人的な経験をもとにした考えです。それでも、誰かの役に立てればと思い書いてみました。 ## 実際の学習手順 私の学習手順はこんな感じでした。 1. Microsoft プラクティス評価で現時点の実力や問題の感じを把握する 2. MS Learnを上から順にやっていく 3. Udemy Phillip Burtonさんの動画を一部視聴する 4. 架空のMy Contosoを構築して手を動かしてみる 5. Udemyで模擬試験を受ける 6. 不安なところだけ復習する > [https://learn.microsoft.com/ja-jp/credentials/certifications/exams/pl-200](https://learn.microsoft.com/ja-jp/credentials/certifications/exams/pl-200) > > Microsoftのサイトはここにまとまっているので、まずはこれを確認します。 ## 1.プラクティス評価 MicrosoftのPL-200のページ下部に、これがあります。ここから50問試験問題を解くことができます。最後まで一気に回答しないと最初からやり直しになるので、注意が必要です。 ![](https://flow-with-tech.com/media/wp/2026/01/CleanShot-2026-01-25-at-09.20.55@2x.png) これを最初にやる理由は「**自分が何を知らないのかを知る**」ためです。人によって前提条件が異なるので一概に言えませんが、私の場合は「全然分からない!!!」ということが分かりました。これにより、**ちゃんと勉強しないといけないなという覚悟**もできます笑 ### プラクティス評価はこんな感じ こんな感じで1問につき4つの選択肢から回答を選ぶ形式です。選択した後に「回答を確認」を押すと正誤と解説が出てきます。初回はまず、50問解答しきるために「次へ」を押して進んでもいいと思います。後からも正誤と解説が一覧で見れます。1つ1つみていくと大変なので、とりあえず一度全問解答してみてもいいと思います。 ![](https://flow-with-tech.com/media/wp/2026/01/CleanShot-2026-01-25-at-09.22.10@2x.png) ### 初回と途中経過はこんな感じでした https://twitter.com/kama_bizdev/status/2005459623332172179?s=20 ## 2.MS Learn 同じページの下部にPL-200学習のために必要なMS Learnのモジュールがまとめられています。私はこれを上から順にやっていきました。MS Learnは結構難解な文章で理解しづらかったです。 ![](https://flow-with-tech.com/media/wp/2026/01/CleanShot-2026-01-25-at-09.28.58@2x.png) 私の場合は大体25時間かかりました。MS LearnのページをウェブクリップしてNotionやObisidanでメモしたりハイライトしたりして学習をしていきました。この時はたまに実際の画面を見ることもありましたが、ほとんど読んでいる感じです。 ![](https://flow-with-tech.com/media/wp/2026/01/CleanShot-2026-01-25-at-09.39.10@2x.png) ## 3.Udemy MS Learnでの独学に限界を感じたため、Udemyを購入しました。日本語のコンテンツもありましたが、Phillipさんの動画の評価が高かったため選びました。全てを視聴する時間はなかったので、特に重要なセキュリティロール系のセクションを視聴しました。同時に実践もしました。それが次のMy Contosoを作ってみるです。 **PL-200:Microsoft Power Platform Functional Consultant Part 1** [https://www.udemy.com/share/104QU03@R4WVcMNP9ZIx4xf6L4TnluAGpWmfbY2yPn7B_89jUs4or2mxxuubtQlKMD7UaFmgtg==](https://www.udemy.com/share/104QU03@R4WVcMNP9ZIx4xf6L4TnluAGpWmfbY2yPn7B_89jUs4or2mxxuubtQlKMD7UaFmgtg==) **PL-200:Microsoft Power Platform Functional Consultant Part 2** [https://www.udemy.com/share/106kDy3@xW8sfw45jFgqXtXgtljwRFgEcNzCvaHLv_pTAbzRgrDmM54eaM9XfZwWJ-H6XWIpLQ==](https://www.udemy.com/share/106kDy3@xW8sfw45jFgqXtXgtljwRFgEcNzCvaHLv_pTAbzRgrDmM54eaM9XfZwWJ-H6XWIpLQ==) ## 4.架空のMy Contosoを構築して手を動かしてみる Microsoftの開発者プログラムに登録すると個人でテナントを取得できます。自分で新しい環境を作ったり、セキュリティロールを変更したりできます。これまで学んだことを、実際の組織だとどうなるか想定をして実践していきます。 ### こんな組織やシナリオを想定して実践してみました ![](https://flow-with-tech.com/media/wp/2026/01/CleanShot-2026-01-25-at-09.48.31@2x.png) シナリオはこんな感じです。生成AIと一緒に考えて作りました。 【STEP 1:リレーションシップとプロジェクト管理の導入】 目的:単発の日報から「どの仕事に紐づくか」の構造化へ 【STEP 2:動的な権限管理(アクセスチーム)の実装】 目的:組織図(所有者)に縛られない柔軟な共有 【STEP 3:UI制御とデータの質向上(ビジネスルール)】 目的:入力ミスの防止と画面の動的変化 【STEP 4:列レベルのセキュリティ(機密情報の保護)】 目的:同じレコード内でも「人によって見えない項目」を作る 【STEP 5:業務プロセスの可視化(ビジネスプロセスフロー:BPF)】 目的:作成から承認までの「流れ」を管理 【STEP 6:サーバーサイドロジック(ローコードプラグイン)】 目的:複雑な計算やバックエンド処理の自動化 ### シェアラウンジにて一人五役を演じる https://twitter.com/kama_bizdev/status/2007774825037861053?s=20 ### Dataverseも最近知って衝撃を受けました https://flow-with-tech.com/powerapp-canvas-to-model-driven-surprise/ https://flow-with-tech.com/google-form-to-dataverse-migration/ ### やりっぱなしで終わらせない、学習ノート作成のすゝめ ただやるだけでなく、こんな感じで自分なりのまとめノートを作りながらやってみました。将来の自分がみてもわかる感じで書いていくのがコツです。そうすることで**誰かに説明する**想定ができて、とても勉強になりました。 ![](https://flow-with-tech.com/media/wp/2026/01/CleanShot-2026-01-25-at-09.50.32@2x.png) この辺でUdemy&手を動かすを実践を繰り返しました。 ![](https://flow-with-tech.com/media/wp/2026/01/CleanShot-2026-01-25-at-09.52.58@2x-1.png) ### 私が使っているノートアプリ Obsidianを使用しています。Markdown形式で記載ができて勉強が捗りました。 詳しくはこちらの記事へ! https://flow-with-tech.com/recommended-apps-for-focus-and-productivity-2025/ ## 5.Udemyで模擬試験を受ける Udemyで模擬試験を見つけたので、やっていきました。1セット50問あります。私は2セットしました。それぐらいやれば十分そうだったのと、時間がなかったので。 **Practice Exams | MS PL-200 Power Platform Functional Consult** [https://www.udemy.com/course/practice-exams-ms-pl-200-power-platform-functional-consult](https://www.udemy.com/course/practice-exams-ms-pl-200-power-platform-functional-consult) ## 6.不安なところだけ復習をする 正月明けで仕事始まりもあり学習時間は減ります。今回は割と休暇中に集中的に学習しました。そうじゃない場合は仕事や生活との調整も必要になりますね。平日はなかなか学習するのが大変です。最後は試験に向けて不安なところを復習していきました。 ![](https://flow-with-tech.com/media/wp/2026/01/CleanShot-2026-01-25-at-09.57.37@2x.png) ## PL-200取得により得たもの - Dataverse周りの知識(セキュリティロールやビジネスプロセスフローなどの制御) - Power Pagesについての基本的な理解(外部とデータを共有したり、書き込み制御もできる) - 一定の知識があることを証明するもの(ただのユーザーではなく管理者としての理解もあると証明ができる) ## PL-200学習により失ったもの - Power Appsキャンバスアプリを知って行った時のこんなこともできるんだ!という、純粋なワクワク!(管理者目線や視野が広がったため) - Dataverseへの理解はいいが、じゃあこれを誰が使いこなせるんだという疑問(こんな難しいの無理なのでは・・) ## まとめ どうだったでしょうか。特に重要なことは**自分で手を動かしてみること**でした。MS Learnを読むとそんなことができるんだとか、そういう設定があるんだと知ることはできます。実際にやってみると、ことあるごとに行き詰まります!それを解決して理解していくことこそが、自分の知識としての定着に役立ちます。 皆さんもぜひ挑戦してみてはいかがでしょうか。 (かなりしんどかったので私はもうやりたくないです。更新だけちゃんと頑張らねば・・) ### そんな私がGitHubにPower Appsアプリを公開しました 自分の業務記録をつけるPower Appsです。1年間使用し続けて3,500件記録をつけました。1年間平均すると、30分に一回使用した実績のあるアプリです。ぜひみてみてください。 https://flow-with-tech.com/power-apps-work-log-app-development-story/ ### 学習時間の可視化には、もちろんPower BIを使っています (試用期間が終わってしまう・・・) ![](https://flow-with-tech.com/media/wp/2026/01/CleanShot-2026-04-03-at-21.55.08@2x.png) --- # 【PL-900合格体験記】実務経験者が短期集中で取得した話 - 公開日: 2025-12-15 - カテゴリ: Microsoft認定資格 - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/pl900-exam-pass-experience/ - サイト: 改善紀 — 好奇心の赴くままに。 --- --- PL-900を取得しました。初めての資格取得です。今回はその体験記について書きます。 ![](https://flow-with-tech.com/media/wp/2025/12/CleanShot-2025-12-15-at-18.01.09@2x.png) ## この記事でわかること(30秒で読む) - **受験者プロフィール**:最近、市民開発推進担当になった、Power Apps/BI経験あり、Automate/管理センターは未経験 - **学習期間**:実質3日間の短期集中 - **学習方法**:Microsoft Learn流し見 + 模擬テスト3回 - **結果**:814点で合格 - **試験の特徴**:Copilot関連の問題が多い、Power Pagesも想定より出題 - **合格の鍵**:Power Apps(特にDataverse)の実務経験が大きく貢献 --- ## 受験の背景 市民開発推進チームへの異動と、来月から現場でPower Platform導入を本格化させるタイミングで受験を決意。 **目的は2つ** - 体系的な知識の整理 - スキルを証明できる資格が欲しい 「完璧じゃなくていいから、まずは最初のステップとして」という気持ちで臨みました。 --- ## 受験前のスペック | サービス | 経験レベル | | --- | --- | | **Power Apps** | 2025年2月にUdemy受講→自分が欲しいアプリ開発 | | **Power BI** | 前チームで社内研修の講師レベル | | **Power Automate** | 手探り状態 | | **管理センター** | ほぼ触ったことなし | Dataverseまで触っていたのが後々大きく効いてきました。 --- ## 学習方法 **使用教材** - Microsoft Learn(PL-900公式コンテンツ) - 模擬テスト **学習期間** - 実質3日間(12/13-15) - Microsoft Learnをざっと流し見→模擬テストを3回繰り返し **模擬テストのスコア推移** - 1回目:74% - 2回目:78% - 3回目:86% 8割を安定して超える状態ではなかったけど、「なんとなく行けそう」と感じて受験を決めました。 **所要時間** MS Learn・模擬テスト・試験含め、約4時間でした。 ![](https://flow-with-tech.com/media/wp/2025/12/image-5.png) --- ## 試験当日 - **形式**:オンライン(自宅受験) - **結果**:814点で合格 - **時間**:20分余ったが、見直しても変わらないと判断し終了 --- ## 試験の感想 ### 予想と違った点 **Copilot関連が多い** - 「何かを作成するときは最初からCopilotに相談」前提の問題構成 - 「どういう手順で進めるか」といった流れを問う問題が目立った **Power Pagesの出題が想定より多い** - 模擬テストでも出ていたが、本番はさらに多かった印象 - 「Copilotを使ってPower Pagesを作成するには?」みたいな問題で少し戸惑った ### 実務経験が活きた点 - **Power Apps(特にキャンバスアプリとDataverse)の知識** - 実際に触っていたからこそ、問題の意図がスッと理解できた - 表面的な知識だけでなく、データ基盤まで触っていたのが大きかった ### 触ったことのないサービスへの対処 - Power Pagesなど実務未経験のサービスも出題された - ただし、模擬テストで概要を掴んでいたのでなんとかなった - 完璧な理解は不要、「なんとなく知っている」レベルで十分対応可能 --- ## 合格の要因 1. **実務での試行錯誤**:興味を持って個人的にアプリを作っていた 2. **Dataverseまで踏み込んでいた**:データ基盤まで理解していた 3. **欲しい!と思った**:試験のための学習は苦手だが、必要だと分かった瞬間スイッチ入る --- ## これから受験する人へのアドバイス - 模擬テストは最低3回?、8割取れなくても受験してOK - 実務経験(特にPower Apps + Dataverse)があれば短期間でも合格可能? - Copilotの位置づけや各サービスの概要は押さえておくべき - Power Pagesなど触ったことのないサービスも「なんとなく」の理解で十分 - 完璧を目指さず、とりあえず受験してみるのもアリ? --- ## 次のステップ PL-100が2024年6月に廃止されたため、次はPL-200/300/400を視野に入れています。 また、Copilot関連の新資格も取得予定です。 現場での市民開発推進に、この知識を活かしていきます。困ったときは資格持ってるってアピールしよ笑 --- ## まとめ PL-900は「体系的な知識の証明」として取得する価値あり。そして無資格者からの卒業のための第一歩としてとても良かったと思います。 特に、これから組織内でPower Platformを推進する立場になる人にとっては、信頼性を示す材料になります。 完璧を目指さず、まずは一歩踏み出してみましょう。 --- --- # 【Power Apps】からTSV形式でデータをコピーする方法(AI分析に即投入) - 公開日: 2025-12-09 - カテゴリ: Power Apps - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/power-apps-copy-tsv-for-ai-analysis/ - サイト: 改善紀 — 好奇心の赴くままに。 --- ## はじめに Power Appsで記録した業務ログやライフログを、Claudeや ChatGPT などのAIにサクッと投げて分析したい。そんなときに便利なのが、**TSV形式(タブ区切り)でのデータコピー機能**です。 私は日々の行動ログをPower Appsで記録していますが、定期的にAIに投げて傾向分析やレポート生成をしてもらっています。その際、いちいちExcelにエクスポートして整形して…という手順を踏むのは面倒。 **ボタン1つでクリップボードにコピー → AIにペースト** この流れを実現するコードを紹介します。 ## 実装コード ````js Copy( // 1. ヘッダー行 "StartTime" & Char(9) & "EndTime" & Char(9) & "Duration" & Char(9) & "ProjectName" & Char(9) & "CategoryName" & Char(9) & "ActionName" & Char(9) & "Notes" & Char(10) & // 2. データ行の連結 Concat( Sort( Filter( WorkLog_Transaction, StartTime >= DateAdd(Today(), -Value(txtLastDate.Text), TimeUnit.Days) ), StartTime, SortOrder.Ascending ), Text(StartTime, "yyyy/MM/dd HH:mm") & Char(9) & Text(EndTime, "yyyy/MM/dd HH:mm") & Char(9) & Duration & Char(9) & WorkLog_Project.ProjectName & Char(9) & WorkLog_Category.CategoryName & Char(9) & ActionName & Char(9) & Substitute(Substitute(Notes, Char(10), " "), Char(13), " "), Char(10) ) ); Notify("データ(所要時間付き)をコピーしました", NotificationType.Success) ``` ```` このコードをボタンの`OnSelect`プロパティに設定するだけです。 ![](https://flow-with-tech.com/media/wp/2025/12/CleanShot-2025-12-09-at-07.25.30@2x.png) ## コードのポイント解説 ### TSV形式とは TSV(Tab-Separated Values)は、タブ文字で列を区切り、改行で行を区切るシンプルなテキスト形式です。 - **列の区切り**:`Char(9)`(タブ) - **行の区切り**:`Char(10)`(改行) Excelや Google スプレッドシートにそのまま貼り付けても表形式で認識され、AIに投げても構造を保ったまま認識してくれます。 ### Notesの改行問題を解決 powerfx ``` Substitute(Substitute(Notes, Char(10), " "), Char(13), " ") ``` Notes(メモ欄)に改行が含まれていると、TSV形式が崩れて1レコードが複数行に分割されてしまいます。 - `Char(10)`:LF(改行コード) - `Char(13)`:CR(復帰コード) この2つをスペースに置き換えることで、データの構造を保ったままコピーできます。 ### 列の順番について 時系列データをAIに分析させる場合、**時間情報を先頭に配置**すると認識されやすくなります。 ``` StartTime → EndTime → Duration → Project → Category → Action → Notes ## 使用例 私の場合、こんな風に使っています: 1. Power Appsで過去7日分のログをフィルタ 2. ボタンをタップしてコピー 3. Claudeに「このデータから週次レポートを作って」とペースト 4. 数秒で傾向分析やサマリーが完成 データベースから直接抽出 → AI分析まで、わずか数秒です。ちなみに、もちろんExcelにもコピペできます! ![](https://flow-with-tech.com/media/wp/2025/12/CleanShot-2025-12-09-at-07.27.42@2x.png) ## まとめ Power Appsの`Copy()`関数と`Concat()`を組み合わせることで、アプリ内のデータを構造化されたテキスト形式で即座にクリップボードへ送れます。 **AIとの連携を前提にアプリを設計する**という発想は、今後ますます重要になってくるはず。ぜひ試してみてください。 --- # 自作ライフログアプリを1年使い続けてわかったこと|Power Apps × Dataverseで作る行動記録システム【Quantified Self】 - 公開日: 2025-12-07 - カテゴリ: LifeLog - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/lifelogging-system-with-power-apps-one-year-review/ - サイト: 改善紀 — 好奇心の赴くままに。 --- ## English Summary I built a custom lifelogging system using Power Apps and Dataverse, and have been tracking my daily activities for over a year. This article shares my experience of creating a quantified self system with low-code tools, including what I learned from the data, how I designed the app for consistent use, and why "just committing to manual input" became my best practice. The system tracks everything from work tasks to personal habits, accumulating over 100 hours of Power Apps learning time and revealing patterns I never noticed before. --- ## はじめに:なぜ行動ログを記録し始めたのか こんにちは、tantan_techです。 突然ですが、皆さんは自分の時間をどう使っているか、正確に把握していますか? 私は2024年9月13日から、**自作アプリで自分の行動ログを記録し続けています**。いつ何をして、どれくらい時間を使ったのか。主にプライベートの全ての行動を記録する生活を1年以上続けてきました。 > Power Appsで記録を始めたのは、2025年3月からです このブログでは、そのシステムの概要と、**1年間記録し続けてわかったこと**、そして**続けるために必要だったこと**を書いてみます。 Quantified Self(定量的自己分析)やLifelogging(ライフログ)に興味がある方、Power Platformで何か作ってみたい方 ・・・いや、記録魔に向けて! ### こんな人におすすめ - 自分の時間の使い方を可視化したい人 - Quantified Self / Lifeloggingに興味がある人 - 記録魔 ### この記事のポイント - Power Apps × Dataverseで自作ライフログシステムを作ってみた - 1年間以上継続して記録をしているという、**狂気** - 続けるコツは工夫も大事だが、最終的には「腹をくくって入力する」ことだと分かった ## システム概要:キャンバスアプリ × モデル駆動型アプリ × Dataverse 全体像はこんな感じです 1. **キャンバスアプリ(記録用アプリ)** スマホやPCから簡単に記録するための入力画面。単一登録画面を作って始めました。途中で、一括登録画面が生まれました。 2. **モデル駆動型アプリ(閲覧・分析用アプリ)** 蓄積したデータを一覧表示したり、グラフで可視化したりする画面。日付と時間でフィルタリングしたり、プロジェクトやカテゴリで絞り込んだりできます。 3. **Dataverse(データベース)** 全ての行動ログを保存する中核。Transaction(行動記録)、ProjectMaster(プロジェクト管理)、CategoryMaster(カテゴリ管理)の3つのテーブルで構成されています。Dataverse最高。もっと早く知っていれば・・! ![](https://flow-with-tech.com/media/wp/2025/12/CleanShot-2025-12-06-at-12.43.49@2x-1.png) *実際の画面(左上:キャンバスアプリ・左下:モデル駆動型アプリ・右:Dataverse)* --- ## 実際の記録データ:狂気の1年間記録で見えてきたもの これが実際のモデル駆動型アプリの画面です ![](https://flow-with-tech.com/media/wp/2025/12/CleanShot-2025-12-07-at-11.35.57@2x.png) ### 記録している項目 - **Date(日付)** - **StartTime / EndTime(開始・終了時刻)** - **Duration(所要時間、分単位)** - **WorkLog_Project(プロジェクト名)** 例:Power Apps、読書、筋トレ、Python、本業、など - **WorkLog_Category(カテゴリ)** 例:市民開発、運動、趣味、生活、など - **ActionName(具体的な行動名)** - **Notes(メモ)** ### データから見えてきたこと 1年以上記録を続けた結果、こんなことが分かりました。 #### Power Apps学習時間が100時間を超えていた プライベートでPower Appsを触っていた時間を集計したら、**100時間以上**費やしていることが判明しました。「そんなつもりなかったのに・・・」 ![](https://flow-with-tech.com/media/wp/2025/12/image-1.png) #### Pythonも同時期に学習していた Power Appsと並行して、Pythonの学習にも時間を使っていたことが可視化されました。この辺をわかりやすくするには、Power BIで可視化した方がいいですね。 ![](https://flow-with-tech.com/media/wp/2025/12/image-2.png) #### 筋トレの回数・時間も記録 筋トレの記録も残しているので、「今月は何回ジムに行ったか」「どれくらいの時間をトレーニングに使ったか」が一目瞭然です。2025年2月に一旦休会して、10月から復帰してます。2025年9月は自宅での筋トレですね。 ![](https://flow-with-tech.com/media/wp/2025/12/CleanShot-2025-12-07-at-11.22.49@2x.png) ## 1年続けるための工夫:「腹をくくる」 こんな、記録をしてみたいと思いますか?思いませんよね。でももし万が一、やってみたいなって思った人に向けて、私が工夫したことを紹介します。 ### 工夫したこと #### 1. 入力項目を極力減らす 必須項目を最小限にして、記録のハードルを下げました。例えば、終了時刻は「その都度タスクが終わったタイミングで次の記録を開始すれば自動で前のタスクの終了時刻になる」設計にしています。 #### 2. スマホからサクッと入力できる デバイスを問わない、できない理由を手元にパソコンがないからにしないのは大事ですね。 #### 3. 厳密にやろうとしない 全部を完璧に記録するんじゃなくて、特定のプロジェクトだけはもれなく記録することにする。例えば、Power Appsを触っている時間は全部記録しようとか。それ以外は、まいっか!にするなど。人間の行動は認識するのはなかなか難しいことがあります。特に自分が今何をやっているのかというのを常に認識して生きていくなんて大変だ。 ### 結論:最終的には「腹をくくる」が最強 色々と工夫はしましたが、**最終的には自力で頑張って入力すると腹をくくること**です。 効率的な方法を追い求めるだけでいつまでも着手しない、実行しないのは先延ばしにしたいだけです。もうすでに、あなたの手元にあるアプリケーションは120点を取っています。あとは実行するだけです。何か足りないとすると、これでやるという覚悟だけです。(厳しい現実・・) ## まとめ:Power Appsで作る、自分だけの定量的自己分析システム Power AppsとDataverseを使って行動ログを狂気の1年以上記録し続けました。そして今も継続をしています(・・え?) togglやRescueTimeのような既製品も便利ですが、**自分で作ると自分の記録したい項目に完全にカスタマイズでき**ます。自由自在なデータ設計だけでなく、手元に使える形でデータが残るのも最高ですね。(データの出力だけ有料サービスであったり、データの出力ができないアプリもあるよね) 皆さんも自分だけのシステムを構築してみてはいかがでしょうか〜 そして、記録魔の道を歩もうではありませんか(欲しい人いたら、配布しますのでどうにかしてお伝えください。コメント欄はまだありません笑) ## 追記:Git Hub にアプリ公開しました ついに配布することができました笑 [https://github.com/Ltantan/powerapps-worklog?tab=readme-ov-file](https://github.com/Ltantan/powerapps-worklog?tab=readme-ov-file) ## 追記:振り返りはカレンダービューが良い 時間をどれぐらい特定の事象に使っているかの振り返りには、カレンダービューが向いているという研究結果になりました。視覚的にどの時間帯にデータが存在しているか、パッとみてわかりやすいことと、OutlookやGoogle カレンダーなどで見慣れているからだと思います。 > 使用してるカスタムビジュアルはこれです > > [https://marketplace.microsoft.com/en-us/product/WA104381844?tab=Overview](https://marketplace.microsoft.com/en-us/product/WA104381844?tab=Overview) ![](https://flow-with-tech.com/media/wp/2025/12/CleanShot-2026-04-20-at-18.43.29@2x.png) --- # 【モデル駆動型アプリ】初心者が過去データをDataverseに移行してみた - 公開日: 2025-12-06 - カテゴリ: Power Apps - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/google-form-to-dataverse-migration/ - サイト: 改善紀 — 好奇心の赴くままに。 --- ## 30秒でわかる!この記事の結論 **やったこと:** Googleフォームで記録していた過去の行動ログデータ**3,193件**を、Power AppsのDataverseに移行しました。 **便利だった機能:** - モデル駆動型アプリから**Excel Online**でデータを直接編集できる - **計算列**で開始・終了日時から自動的に継続時間を算出 - **フィルター + 一括選択**で過去データに不足していた項目を効率的に追加 - **ロールアップ**で別テーブルのデータを集計(プロジェクトの開始日・終了日も自動算出) - **グラフ機能**でデータを可視化 **結論:** Dataverseは単なるデータベースではなく、Excel感覚で編集できる上に、計算列やロールアップなど強力な機能が使える。過去データの整形・移行作業が想像以上にスムーズでした。 --- ## はじめに 2025年8月、プライベートの行動ログをGoogleフォームからPower Appsに移行しました。当初はシンプルにDataverseにデータを入れていましたが、最近になってデータ構造を見直し、カテゴリマスター、トランザクションマスター、プロジェクトマスターをリレーショナルで接続した行動記録アプリに作り替えました。 そのついでに、過去のGoogleフォーム時代のデータもDataverseに移行することにしました。今回は、その移行作業で発見したDataverseとExcel Onlineの便利な機能について紹介します。 ![](https://flow-with-tech.com/media/wp/2025/12/CleanShot-2025-12-06-at-12.43.49@2x.png) *行動記録アプリの全体概要図* ## 移行作業の全体像 やりたかったことは単純で、「Googleフォームに蓄積された過去の行動ログデータ**3,193件**を、新しいDataverseの構造に合わせて整形し、移行する」ことです。 ただし、Googleフォーム時代には記録していなかった項目(プロジェクト名やカテゴリー名など)を後から追加する必要があったため、単純なインポートでは済みませんでした。 ## 実際の作業手順 ### 1. モデル駆動型アプリからExcel Onlineを開く まず、モデル駆動型アプリからExcel Onlineでデータを開きました。これにより、Dataverseのデータを直接Excelのような操作感で編集できます。 ![](https://flow-with-tech.com/media/wp/2025/12/CleanShot-2025-12-06-at-17.47.12@2x.png) ### 2. Googleフォームのデータを1列ずつコピペ Googleフォームからエクスポートしたデータを、Excel Online上で1列ずつコピペして取り込みました。地道な作業ですが、データの確認をしながら進められるので安心感があります。 ![](https://flow-with-tech.com/media/wp/2025/12/CleanShot-2025-12-06-at-17.27.11@2x-1.png) ### 3. 計算列でDurationを作成 開始日時(StartDate)と終了日時(EndDate)から、行動の継続時間(Duration)を計算する列を作成しました。キャンバスアプリでデータを作るタイミングでやろうとすると面倒臭いので、今後はアプリでやると面倒なやつはDataverse側でやろうと思います。 ![](https://flow-with-tech.com/media/wp/2025/12/CleanShot-2025-12-06-at-17.54.48@2x.png) ちなみに。 ![](https://flow-with-tech.com/media/wp/2025/12/CleanShot-2025-12-06-at-18.45.48@2x.png) ### 4. フィルター + 一括選択で効率的にデータ整形 Googleフォーム時代には入力していなかったプロジェクト名やカテゴリー名を、フィルター機能で絞り込んでから一括選択し、一気に入力しました。例えば「Power Apps」を含むデータをフィルタリングして、そのすべてに「Power Apps」を割り当てる、といった作業が数クリックで完了します。 3,193件のデータに手動でプロジェクトやカテゴリーを付与する作業は約3時間かかりましたが、一括選択機能のおかげで思ったよりスムーズに進みました。 ![](https://flow-with-tech.com/media/wp/2025/12/CleanShot-2025-12-06-at-17.30.17@2x-1.png) ### 5. ついでにロールアップ列を作って、ProjectのStart/Endを自動取得する ![](https://flow-with-tech.com/media/wp/2025/12/CleanShot-2025-12-06-at-13.11.17@2x.png) ## まとめ Googleフォームの過去データ3,193件をDataverseに移行する作業を通じて、DataverseとExcel Onlineと、モデル駆動型アプリの強力さを実感しました。(もっと早く知りたかった・・) 特に、計算列やロールアップといった機能は、単なるデータベースの枠を超えて、データを「賢く」扱えるようにしてくれます。Excel Onlineでの編集機能も、簡単でいいですね。 休日の朝から夕方まで、食事も風呂も忘れて没頭してしまうほど、Dataverseとモデル駆動型アプリは奥深く、楽しいツールです。Power Platformを使った業務改善に取り組んでいる方の参考になれば幸いです。 ついでに、モデル駆動型でグラフを作ってプライベートでPower Appsに費やした時間を可視化してみました。合計、156時間でした。(あと、今日だけで4.4時間でした笑) ![](https://flow-with-tech.com/media/wp/2025/12/CleanShot-2025-12-06-at-17.59.26@2x.png) --- # 【Power Apps】キャンバスアプリしか知らなかった私が、モデル駆動型アプリで「ビューが一瞬で作れる」衝撃を受けた話 - 公開日: 2025-12-04 - カテゴリ: Power Apps - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/powerapp-canvas-to-model-driven-surprise/ - サイト: 改善紀 — 好奇心の赴くままに。 --- ## はじめに Power Appsでアプリを作るとき、皆さんはどちらを使っていますか? 私はこれまで**キャンバスアプリ**しか知りませんでした。データの一覧画面を作るときも、ギャラリーコントロールを配置して、ラベルを並べて、検索ボックスを作って、フィルターの式を書いて…と、毎回頑張って一から作っていました。 先日Udemyでモデル駆動型アプリについて学んだところ、**衝撃を受けました**。 「え、ビューって一瞬で作れるの…?」 今回は、キャンバスアプリしか使ったことがない方に向けて、モデル駆動型アプリの「こんなことができるんだ」という発見を、素人目線でお伝えします。 ## キャンバスアプリで頑張ってた日々 まず、私がこれまでやってきたことを振り返ります。 キャンバスアプリでデータ一覧を表示する場合、だいたいこんな流れでした: 1. **空白のスクリーンを作成** 2. **ギャラリーを配置** 3. **データソースを接続**(SharePointやDataverseなど) 4. **ギャラリー内にラベルを並べて、列ごとに設定** 5. **検索ボックスを追加して、Filter関数でフィルタリング** 6. **並び替え機能が欲しければ、さらにコードを書く** 慣れてくれば10〜15分でできるようになりましたが、アプリを作るたびに「また一覧画面作るのか…」という気持ちになっていました。フィルターの条件を複数設定したいときも面倒でした・・・ 自由度が高い分、**全部自分で作らないといけない**のがキャンバスアプリの特徴です。 ## モデル駆動型アプリとの出会い そんな中、Dataverseについて学ぶ機会があり、合わせてモデル駆動型アプリの存在を知りました。 モデル駆動型アプリを初めて触ったとき、驚いたのがこれです: **「ビューが最初から用意されている」** Dataverseにテーブルを作成すると、そのテーブルに対して自動的にビュー(一覧画面)が生成されます。しかも、検索機能、フィルター機能、並び替え機能が**最初から使える状態**で。 「え、私が今まで頑張って作ってたやつ、最初からあるじゃん…」 この瞬間、Power Appsに対する見方が変わりました。 ## 【比較】キャンバスアプリ vs モデル駆動型アプリ 実際に作った画面を比較してみます。 ### キャンバスアプリの一覧画面 ![](https://flow-with-tech.com/media/wp/2025/12/CleanShot-2025-12-04-at-07.22.10@2x-1.png) *キャンバスアプリの一覧画面* - ギャラリー、ラベル、検索ボックスを自分で配置 - 検索・フィルター機能はPower FXで実装 - 見た目の自由度は高いが、全部手作り ### モデル駆動型アプリの一覧画面 ![](https://flow-with-tech.com/media/wp/2025/12/CleanShot-2025-12-04-at-07.25.23@2x-1.png) - Dataverseのテーブルを選ぶだけでビューが自動生成 - 検索、フィルター、並び替えが標準装備 - デザインの自由度は低いが、作成時間はほぼゼロ この違いを見て、「**モデル駆動型アプリって一覧作るのめちゃ向いてる・・・**」と気づきました。 ## モデル駆動型アプリでできること 実際に触ってみて、「これは便利だ」と感じた機能をまとめます。 ### 1. ビュー(一覧)の自動生成 テーブルを作成すると、自動的に一覧画面が用意されます。列の表示/非表示、並び順なども簡単に設定可能。 ![](https://flow-with-tech.com/media/wp/2025/12/CleanShot-2025-12-04-at-07.28.18@2x.png) ### 2. フォームの自動生成 データの新規作成・編集画面も自動生成されます。フィールドの配置やタブ分けなどのカスタマイズもGUIで直感的に操作できます。 ![](https://flow-with-tech.com/media/wp/2025/12/CleanShot-2025-12-04-at-07.29.48@2x.png) ### 3. 検索・フィルタリング機能 ユーザーが画面上で自由に検索したり、列ごとにフィルタリングしたりできます。**コードを一切書かずに**。 ![](https://flow-with-tech.com/media/wp/2025/12/CleanShot-2025-12-04-at-07.30.30@2x.png) 特定のプロジェクトの件数も一瞬でみれる・・・すごい! ![](https://flow-with-tech.com/media/wp/2025/12/image.png) ### 4. リレーションシップの扱いやすさ Dataverseのテーブル間リレーションシップを設定すれば、関連データの表示や参照が簡単にできます。これはテーブルの設計・作成時にやる必要があるみたいです。私はやってなかったので、まだ使えていません・・ ### 5. 業務プロセスフロー 承認フローのようなステップを踏む業務に対応した「ビジネスプロセスフロー」も組み込めます(これはまだ私も勉強中です)。 ## じゃあ、どっちを使えばいいの? ここまで読んで「じゃあモデル駆動型だけでいいじゃん」と思うかもしれませんが、そうでもありません。 ### キャンバスアプリが向いている場合 - **デザインの自由度が必要**(オリジナルのUIを作りたい) - **複雑な画面遷移や操作フロー**を実装したい - **Dataverse以外のデータソース**(SharePoint、Excelなど)を使いたい - モバイルアプリとして配布したい ### モデル駆動型アプリが向いている場合 - **データの登録・閲覧がメイン**の業務アプリ - **開発スピード重視**(とにかく早く作りたい) - **Dataverseをデータソースとして使う**前提 - 複数のテーブルを扱うリレーショナルなデータ構造 個人的には、「**データ管理系ならモデル駆動型、UI重視ならキャンバスアプリ**」という使い分けが基本かなと感じています。 あとはライセンスの観点からも考える必要があります。モデル駆動型アプリはM365ライセンスではなく、別途ライセンスが必要になります。アプリを使う人全員にライセンスを付与することができるのかも検討する必要があるみたいですね。この辺りは詳しく説明が難しいので省略します。 ## まとめ 今回、モデル駆動型アプリを学んで、改めて感じたことがあります。 **「適切なツールを選ぶだけで、工数が劇的に変わる」** キャンバスアプリしか知らなかった頃は、「Power Appsってこういうもの」と思い込んでいました。でも、モデル駆動型アプリという選択肢を知ったことで、アプリ開発の幅が一気に広がりました。 もしあなたが今、キャンバスアプリで一覧画面を頑張って作っているなら、一度モデル駆動型アプリを試してみてください。「え、こんなに簡単だったの?」という感動が待っているはずです。 --- **参考リンク** - [Microsoft Learn - モデル駆動型アプリとは](https://learn.microsoft.com/ja-jp/power-apps/maker/model-driven-apps/model-driven-app-overview) --- # 【Power Automate】「忙しい」の正体を見つける。DXの前にやるべき、FormsとPower Automateで作る「逃げ場のない」業務記録システム - 公開日: 2025-11-28 - カテゴリ: Dataverse・Automate・BI - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/forms-power-automate-time-tracking-system/ - サイト: 改善紀 — 好奇心の赴くままに。 --- ### はじめに:その「残業」、何をしていましたか? 「毎日残業続きで忙しい」 そう嘆く人は多いですが、「じゃあ昨日の残業時間、具体的に何時何分に何の作業をしていたの?」と聞かれて、即答できる人はどれくらいいるでしょうか。 何かを改善しようとするなら、まずは**現状を数値で正確に把握すること**が絶対条件です。 世の中は「DX(デジタルトランスフォーメーション)」という言葉で溢れていますが、足元の「自分が何に時間を使っているか」さえ把握できていない状態で、業務変革などできるはずがありません。本当のDXは、まず「己を知る」という泥臭いところから始まると私は思っています。 そこで私は、自らの行動をすべてデータ化するために、**「開始・終了時刻の入力を廃止した、極限まで手間を省いた業務記録システム」**を構築しました。 実際にこれを半年以上運用し、ありとあらゆる業務を記録し続けた結果見えてきたこと、そしてこのシステムが「ついサボってしまう人」にこそおすすめな理由をお話しします。 ### システムの全体像(アーキテクト図) 仕組みはシンプルです。Microsoft 365の標準機能(Forms, Power Automate, Excel, Outlook)を連携させています。 ![](https://flow-with-tech.com/media/wp/2025/11/CleanShot-2025-11-28-at-22.00.44@2x-3.png) ### このシステムが「最強」である3つの理由 #### 1. 「その瞬間」にFormsで回答するしかない強制力 このシステムには、「後からまとめて入力する」という概念がありません。タスクが終わったその瞬間にFormsを送信することが絶対ルールです。 なぜなら、**「今回のタスクの開始時刻」は「前回のタスクの終了時刻+1分」として自動計算されるから**です。 これは一見不自由に思えますが、実は強力なメリットがあります。一つでも記録をサボると、時間の計算が狂ってしまうため、**「毎回記録し続ける」以外の運用ができない**のです。 「つい記録をつけるのをサボってしまう…」 そんなあなたにこそ、このシステムをお勧めします。この「鎖」のような連続性が、サボり癖を強制的に矯正し、半強制的にログを残す習慣を作ってくれます。 #### 2. 入力項目は「何をしたか」だけ。言い訳の余地をなくす Formsの入力項目から「時間」を排除しました。入力するのは「件名」だけ。 スマホからでもPCからでも、数秒で送信できます。 「入力が面倒くさいから続かない」という言い訳を、システム側で物理的に排除しました。これにより、私は半年間、メイン業務だけでなく、ちょっとした雑務や休憩に至るまで、ありとあらゆる時間を記録することに成功しました。 「何をしましたか?」それだけ書けばいいです。 ![](https://flow-with-tech.com/media/wp/2025/11/CleanShot-2025-11-28-at-21.46.36@2x-1.png) #### 3. 即座にOutlookで「予実」が見える化される Formsを送信すると、即座にOutlookカレンダーに実績が登録されます。 予定(理想)と実績(現実)が並んで表示されることで、「この作業にこんなに時間がかかっていたのか」という残酷なまでの現実が可視化されます。 しかし、この可視化こそが改善の第一歩です。Outlookを見るたびに自分の時間の使い方が突きつけられるため、自然と「次はもっと効率よくやろう」という意識が芽生えます。 ### 結論:まずは数値化の鬼になろう 「忙しい」と嘆く前に、まずは自分の時間を1分単位で記録してみてください。 高度なITツールを導入する前に、FormsとPower Automateという身近なツールで、自分の働き方を「数値」で捉える。そこからしか、本当の意味での業務改善やDXは生まれないと確信しています。 半年間、全ての時間を記録し続けた私が保証します。このシステムは、あなたの働き方を劇的に変える「鏡」になるはずです。凡人の最強の生存戦略「愚直に続ける」で小さな変革を起こしましょう笑! ## よくある質問(FAQ) **Q1. 記録を忘れてしまった場合はどうすればいいですか?** A. 一度空でFormsを送信してください。そこから再スタートできます。ただし、忘れた分を遡って記録したい場合はExcelで手動修正が必要になり、かなり面倒です。この「面倒臭さ」が逆に「今この瞬間に記録しよう」というモチベーションになります。背水の陣です笑 **Q2. 休憩やトイレなども記録する必要がありますか?** A. 記録するのは必須ではありません。特定の行動だけを記録する運用も可能です。例えば、会議だけを記録したい場合、会議前に空でForms回答(開始時刻スタンプ)して、終了時に「会議」と回答する使い方もできます。記録したい業務に合わせて柔軟に運用してください。 **Q3. 業務時間外や休日の記録はどうしていますか?** A. 業務時間のみ記録しています。翌朝は空でForms回答から再スタートできます。プライベートまで記録する必要はありません。(プライベートではGoogle FormとGASを使って同様のシステムを構築することもできます。もしかしたら今後別記事で作り方を解説するかもしれません) **Q4. 具体的な設定方法や手順は公開されていますか?** A. 現時点ではシステム概要のみの紹介です。Power Automateのフロー設計や具体的な設定方法については、今後別記事で詳しく解説する予定です。(リクエストがあればコメントください!) --- # 【実体験】元現場監督からPython実務者へ。非IT人材が7ヶ月で機械学習モデルを作れるようになった学習記録 - 公開日: 2025-11-28 - カテゴリ: AI・Claude Code - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/non-it-python-ai-7-months/ - サイト: 改善紀 — 好奇心の赴くままに。 --- ## 「機械学習モデルを作ってください」という突然の辞令 2025年3月、私はやったことのない業務を任されました。機械学習モデルの作成です。 「Pythonって何ができるの?」「どうやったら自分のPCでPythonが動くの?」「機械学習って何?」 そんなレベルからのスタートでした。土木現場の施工管理を5年経験し、DX推進に1.5年携わってきた私にとって、プログラミングは完全に未知の領域でした。 機械学習モデルそのものは全てPythonで書いているわけではありません。AutoMLにデータを投入して、モデル構築はツールに任せています。ただ投入するためのデータ前処理はPythonで実行する必要がありました。 初めてPythonを触ってから7ヶ月後。プライベートで累計80.5時間の学習を経て、私は実務でデータ前処理をPythonで行えるようになっていました。この記事は、非IT人材がPythonを学び、生成AIの力を借りながら実務レベルに到達するまでの、リアルな記録です。 ![](https://flow-with-tech.com/media/wp/2025/11/image-11.png) --- ## Power BIとの出会いが、すべての始まりだった 私がデータに興味を持ったきっかけは、DX推進時代にさかのぼります。 現場に自分が展開したシステムが本当に使われているか、データでシビアに見たいと思って、Power BIに手を出しました。 データを可視化する面白さ、数字から現場の実態が浮かび上がる瞬間の快感。これを味わってから、私は「もっとデータと向き合いたい」と強く思うようになりました。 そしてIT企画部門へ希望に出して異動をしました。データ利活用という新たなフィールドへ踏み出すことになります。そして2025年3月、機械学習という未知の領域に挑戦することになりました。 --- ## 3月:基礎学習と挫折の予感(18.2時間) 最初の1ヶ月は、ほぼUdemyでの基礎学習に費やしました。 受講したコースと所要時間 - [【ゼロから始めるデータ分析】 ビジネスケースで学ぶPythonデータサイエンス入門](https://www.udemy.com/course/optworks_1/) ![](https://flow-with-tech.com/media/wp/2025/11/image-13.png) 変数、ループ、関数、条件分岐……プログラミングの基本文法を一つずつ学んでいきます。講座の動画を見て、手を動かして、演習問題を解く。 だが、すぐに壁にぶつかりました。 **「なんかこんなのがあった気がするけど、思い出せない」** **「書いてもエラーが出まくる」** 特に厄介だったのはループです。`for`文と`while`文、インデックスとイテレータ、`range()`の使い方……正直に言うと、今でも完全に理解しているとは言えません笑 「なんかそんなのあったな〜」となったぐらいです笑 ![](https://flow-with-tech.com/media/wp/2025/11/CleanShot-2025-11-28-at-10.42.21@2x.png) --- ## 5月〜9月:実務はフル生成AI、学習は細々と継続(累計約50時間突破) 5月に入ると、状況が一変しました。機械学習モデル作成プロジェクトが本格的に始まったのです。 なぜExcelではなくPythonで前処理を実行する必要があるのか。それは使用するデータ数と、再現性に尽きると思います。1つのデータに対して整形をすればいいとか、1回だけやればいいとかであればExcelでもどうにかなります。ただ、それが10ぐらいのデータを相手にして、こっちのデータとこっちのデータをくっつけて、条件で絞り込みして、新しい列を作成してとなるとそうはいきません。さらに元データ更新時に同じ処理ができるような再現性も必要なので、Pythonで処理を実行する必要があります。 データの前処理とは主にこんな感じです。 - データをノートブックに読み込む - 中身を見る(欠損はあるか、データ型は正しいか、変なデータが入ってないか) - データ同士をマージ(結合)したり、結合前後でのデータ数の変化を見る - 外れ値の検出と除去 - 特徴量エンジニアリング(たとえば、AとBを掛け合わせて新しい列を作成する) - データの分割(学習用・検証用・テスト用) これら全てをPythonで行う必要がありました。 ここで私は、ある決断をしました。 **「実務時間はフル生成AIで書く」** Udemy的な正攻法の学習を続けながら実務をこなすのは、時間的に無理でした。一個一個調べて手で書いているようでは、到底間に合わないしやってられない!! 実務では徹底的に生成AIを活用しました。 「いい時代だな〜」としみじみと思いました笑 ![](https://flow-with-tech.com/media/wp/2025/11/CleanShot-2025-11-28-at-10.42.00@2x.png) ### 生成AIへの投げ方のコツ 生成AIに投げる際は、Udemyでの基礎学習がかなり役に立ちました。**なんかこういうこと**をしたい、という**なんかこういうこと**がわかっているからです。生成AIは強力なツールですが、扱う人間のスキルが高いことに越したことはないと実感しました。 **【AIに投入する情報】** - やりたいこと(例:「このデータフレームから欠損値を含む行を削除したい」) - 最低限の条件 - 実行環境(Jupyter Notebook、Pythonのバージョンなど) - データフレーム名(df_train、df_testなど) - カラム名(例:'age', 'salary', 'target') - エラーが出たら、そのエラーメッセージも全文コピペ この方法で、9割以上のコードは動くようになりました。 ### コードは理解していなくても、結果は確認できる 正直、この時期のコードはほぼ理解していませんでした。 ```python df_train['age'].fillna(df_train['age'].median(), inplace=True) ``` たとえばこんなコード。今でもちょっと考えないと何しているのか理解できません笑 しかし、コードを理解していなくても、コードを実行した結果が合っているかどうかは確認することができます。 `.shape`、`.head()`、`.info()`、`.columns`といったメソッドを適宜使って、データの形や中身をチェックしました。期待通りの結果になっていればOKという感じです。 「これでいいのか?」という不安感はありましたが、締め切りは待ってくれません。まずは動くものを作る。理解は後からついてくる、と自分に言い聞かせました。 そして実際、その判断は正しかったです。 --- ## 8月:GitHub Copilotとの出会い(二刀流の始まり) 8月頃、私はGitHub Copilotの存在を知りました。 VS Code内でコードの続きを自動補完してくれるこのツールを、まずプライベートで試してみました。すると、これが驚くほど便利だったのです。(即、課金しました笑) そこで9月、試験的に会社でも使えるように上申しました。結果、承認。これにより、私は生成AI二刀流となりました。 **【私の生成AI使い分け】** - **GitHub Copilot(VS Code内)**: 細々としたコーディング、関数の補完、変数名の提案など。これで9割はいけました。 - **ChatGPT**: 少し複雑で長い処理が必要なとき。まとまったコードを書いてもらう感じです。 この二刀流により、コーディング速度が格段に上がりました。GitHub Copilotは「隣でアドバイスしてくれる先輩エンジニア」のような存在で、書きたいコードをほぼリアルタイムで提案してくれます。 --- ## そして機械学習モデルは完成した 色々あり一旦完成しました。Pythonもかなり丁寧にわかりやすく書くことを意識したので、後任者への引き継ぎもスムーズにできると期待しています。機械学習モデル作成において、Pythonでのデータ前処理は確かに重要ですが、それ以上に重要なことが他に山ほどあります。なので、最低限の知識を身につけたら、あとは生成AIの補助を受けて楽をして良かったです。せっかく苦労してコードを書いても、やっぱりいらないってなった時のダメージが少ないですしね。早く成果を出して、早く失敗することがプロジェクト成功に必要みたいです。 ## 生成AIは「相棒」であり「教師」だった 振り返ると、この7ヶ月間、生成AIなしでは絶対に乗り越えられませんでした。 ### 生成AIの使い方 **1. コード生成マシンとして(ChatGPT)** 「こういうことをしたい」→「コードを書いてもらう」→「動かす」→「エラーが出たら投げる」 複雑な処理はこのパターンです。 **2. リアルタイム補完として(GitHub Copilot)** コードを書きながら、次に書くべき処理を提案してもらう。 実務の9割はこれで回せました。 **3. エラー解決の先生として** 自分で書いたコードがエラーを吐いたとき、エラーメッセージを丸ごと投げると、原因と修正案を教えてくれます。Stack Overflowを検索する時間が劇的に減りました。 **4. 概念理解の対話相手として** 「そもそも機械学習って何?」「過学習ってどういうこと?」みたいな概念的な質問に、分かりやすく答えてくれます。技術書を読むより速いです。 **5. 愚痴を言う相手として**? 24時間365日どんな話でも聞いてくれます。新しい領域の業務でのモヤモヤや悩みも生成AIは受け止めてくれます。悩んだら相談もしてみましょう(なんでも肯定してくれるので、鵜呑みにしすぎないように笑) ### 「AI頼み」と「理解」のバランス もちろん、全てをAI任せにするのは危険です。 AIが生成したコードが何をしているか、最低限の理解は必要でした。じゃないと、エラーが出たときに何を修正すればいいか分かりません。 私が心がけたのは、「だいたい理解」です。完璧に理解しようとすると、時間がいくらあっても足りません。でも、コードの大まかな流れと、各行が何をしているかが分かれば、実務では十分でした。 --- ## Pythonを学んで見えてきたもの:データの解像度が上がる 7ヶ月間Pythonを学んで、私が得た最大の財産は「データの解像度が上がった」ことです。 ### Power BIでは見えなかったもの Power BIは強力なツールです。直感的な操作でデータを可視化できます。でも、Power BIでできることには限界があります。 - データの前処理が複雑な場合、Power Queryでは対応しきれない - 機械学習モデルを組み込むのは難しい - 細かいカスタマイズや自動化には向いていない Pythonを学んだことで、「データの裏側」が見えるようになりました。 データがどんな形式で保存されているのか。欠損値や異常値がどれくらいあるのか。変数同士の関係性はどうなっているのか。 こうした「データの実態」を把握できるようになったことで、Power BIでの可視化もより深いものになりました。 ### Microsoft FabricのNotebookで一気通貫の設計が可能に Pythonの前提知識があることで、Microsoft Fabricのエコシステム全体を少し使いこなせるようになったのも大きな収穫です。 **【Fabricでの一気通貫フロー例】** 1. **Power Apps**でSPOリストへデータ格納 2. **Data Flow Gen 2**でレイクハウスへデータ移行 3. **Notebook(Python)**でテキストからカテゴリをAI関数で生成 4. **Power BI**で可視化・分析 このように、データ収集から加工、分析、可視化まで、一貫した設計ができるようになりました。 特にNotebookでのPython処理は、Power Queryでは不可能だった複雑な加工や、AIを使った高度な処理を可能にします。これは、Pythonを学んでいなければ辿り着けなかった領域です。 ### ExcelとPower Platformの間にあるPython 私は今、市民開発推進チームに所属しています。Power Platformを使って、現場の業務を効率化するためのツールを作る支援をしています。 ここでも、Pythonの知識が活きています。 **【業務ツールの使い分け】** - **Excel**: 簡単な集計、数式ベースの処理 - **Power Automate**: 定型業務の自動化、システム間連携 - **Power Apps**: ユーザー向けのアプリ作成 - **Python(Fabric Notebook)**: 複雑なデータ処理、高度な自動化 - **Power BI**: 分析・可視化 Pythonは「Excel/Power Platformでは難しいけど、専門システムを作るほどでもない」という中間領域で威力を発揮します。 たとえば、「1万行を超えるデータの複雑な集計」「複数のCSVファイルを自動で結合」「簡易的な予測モデルの作成」といった処理は、Pythonの得意分野です。 --- ## 市民開発者が、Pythonやってみてもいいかも! 現在、私は市民開発推進の仕事をしています。そこで強く感じるのは、「市民開発者にこそPythonを学んでほしい」ということです。 ### 理由1:データへの理解が深まる Power AppsやPower Automateを作るとき、結局のところデータを扱います。データの構造を理解していないと、効率的なアプリは作れません。 Pythonでデータを触った経験があると、「このデータはこういう構造になっているはずだ」という感覚が身につきます。 ### 理由2:Power Platformの限界を超えられる Power Platformは万能ではありません。複雑な処理や大量データの処理には向いていません。 そんなとき、Pythonで前処理をしてからPower Platformに渡す、という使い方ができます。市民開発の可能性が一気に広がります。 ### 理由3:Fabricエコシステム全体を使いこなせる Microsoft Fabricは、データ基盤、分析、可視化を統合した強力なプラットフォームです。しかし、その真価を発揮するには、NotebookでのPython処理が不可欠です。 Pythonができることで、Power PlatformとFabricを組み合わせた、より高度なソリューションを設計できるようになります。 ### 理由4:「作れない」が「作れる」に変わる 「こういうツールが欲しいけど、Power Platformじゃ無理かな……」 そう思っていたものが、Pythonを学ぶことで「作れるかもしれない」に変わります。選択肢が増えることは、それだけで大きな価値があります。 ## よくある質問(FAQ) **Q1. プログラミング完全初心者でも本当にできますか?** A. できるかどうかというよりも、「できるまでやる」が正しいかもしれません。そのできた状態が自力100%ではなく、自力70%・生成AI30%という形でもいいと思います。ただし、自ら勉強して習得しようという意思や行動は必須です。どこまで行っても生成AIは補助にすぎません。とはいえ、生成AIがある今の時代は、昔と比べてだいぶ挫折しづらいと思います。一緒に頑張りましょう! **Q2. GitHub Copilotは必須ですか?** A. 必須ではありませんが、あるとスピードが格段に上がります。ChatGPTだけでも十分実務は回せますが、Copilotがあるとリアルタイムで補完してくれるので効率が全然違います。(あとストレスが減ります笑) **Q3. Udemyの講座は最後まで完走する必要がありますか?** A. 完走しなくても大丈夫です。基本文法(変数、if文、for文、関数、リスト)を「こんなのがあるんだな」程度に理解したら、実務で手を動かす方が身につきます。私もループは今でも完全には理解していません笑 **Q4. 生成AIにコードを書かせる時のコツはありますか?** A. 生成AIを使う際の基本的な留意事項を抑えることと、具体的な情報を渡すことです。「やりたいこと」「実行環境」「データフレーム名」「カラム名」を明確に伝えれば、9割以上のコードは動きます。エラーが出たら、エラーメッセージを全文コピペして投げ直せばOKです。 **Q5. ExcelやPower Queryではダメなんですか? Pythonを学ぶ必要性は?** A. ExcelやPower Queryは便利ですが、扱えるデータ件数に限界があります。また、複数のデータを結合したり、複雑な条件分岐や繰り返し処理、機械学習向けの高度なデータ処理はPythonでないと厳しいです。さらに、処理の再現性(同じ処理を何度も実行できる)もPythonの大きな強みです。また、Microsoft FabricのNotebookを使った一気通貫のデータ処理が可能になります。 --- # 【実体験】元現場監督がPower Appsを1年で140時間勉強した推移をPythonで可視化して振り返る - 公開日: 2025-11-27 - カテゴリ: Power Apps - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/from-civil-engineer-to-it-powerapps/ - サイト: 改善紀 — 好奇心の赴くままに。 --- ## はじめに 私は現在、市民開発系をしていますが、元々は土木の現場監督でした。日焼けしてヘルメットの顎紐のところだけ白くなって笑われたり、タイヤカバーが無い自転車で現場を走り背中が泥だらけになったり、現場のすみっこの落ち葉で昼寝してみたり。その後、DX推進の部署を経て、現在のIT企画部へ異動しました。 なんでこんなキャリアになっているのかわかりませんが、同期からはこんなことを言われたことがあります。 「好きを突き詰めているよね」と笑 Power BIから始まった私のPower Platform。今回はPower Appsとの出会い、そしてその後の好きを突き詰めた軌跡を実際の記録から紹介したいと思います。 「こんなやつおんや」「なんかPower Appsっておもろそう」そう思ってもらえたら嬉しいです。 ## Power Apps年間140時間の学習推移 これが私がプライベートでPower Appsを触っていた時間の全てです。 ![](https://flow-with-tech.com/media/wp/2025/11/image-7.png) - **棒グラフ:** 月間の学習時間(青:実践・制作など / 紫:Udemy) - **折れ線グラフ:** 累計学習時間 - **期間:** 2024年11月 〜 2025年11月 累計学習時間は **139.7時間**。 「なんだ、1年で140時間か」と思われるかもしれませんが、実はこの裏で **Power BI・Power Automate・機械学習(Python)の勉強も並行**していました。今回のグラフはあくまでPower Apps単体の数字です。 ## 1. 【模索期】2024年11月〜2025年1月:独学の限界 異動直後の11月頃からPower Appsを触り始めました。 しかし、グラフの通り学習時間は低空飛行。「なんか凄そうだけど、思い通りに動かない…」と、独学の壁にぶつかり、なかなか手が進まない時期でした。なんとか動くアプリができるけど、でもこれをどうすればいいのか、何ができていて何ができていないのかよく分かりませんでした。 ![](https://flow-with-tech.com/media/wp/2025/11/CleanShot-2025-11-27-at-13.00.27@2x.png) ## 2. 【覚醒期】2025年2月:Udemyへの投資と業務アプリ開発 「これは体系的に学ばないとダメだ」 そう感じ、2月に **Udemy** の講座を購入しました。グラフで紫色のバーが突出しているのがこの時期です。 ![](https://flow-with-tech.com/media/wp/2025/11/CleanShot-2025-11-27-at-13.01.18@2x.png) **受講したコースと実施した時間はこちら** - [Microsoft Power Apps 基礎マスターコース ヒョウノモトハル([リンク](https://www.udemy.com/share/105ONW3@ij0kKqPb-7H6JEB534OatlT26J62m2N2Vg7HIVG_4s30PaKSHBsys8qrQPSmTb4ZOw==/))] ![](https://flow-with-tech.com/media/wp/2025/11/image-5.png) - [Power Apps(パワーアップス)でたくさんのアプリを開発してきた経験から頻出テクニック([リンク](https://www.udemy.com/share/10cMdh3@a-ExP_DuyKmKgHxrTy_oAfelcz6YUD0rB5j4u_kQcwwz5nbLjMi7J3B7n8sdc_yyBg==/))] ![](https://flow-with-tech.com/media/wp/2025/11/image-6.png) インプットの効果は絶大でした。体系的に学ぶことができて、自分のやりたいことをすぐに形にできるようになりました。私は記録魔でもあるので、普段から自分の行動記録をつけています。Power Appsを学んだらまず作りたかったのが、行動記録アプリです。Udemyの勢いで作成して今でも使い続けています。 **自分が欲しいアプリを作るのが、一番の学習になりました!** > この1ヶ月についてはこちらの記事で当時のXへのポストを交えて、詳しく書いています。 > > もし興味があれば、こちらもぜひ見てみてください。 > > https://flow-with-tech.com/power-apps-first-month-learning-journey/ ## 3. 【実践期】2025年3月〜4月:登壇駆動開発 3月末にとあるイベントに登壇する申し込みをしました。軽いノリで笑 イベントまで1ヶ月しかないのに今からPower Appsを作って、発表資料作成し、当日のプレゼンを考えないと・・・ということで猛烈にPower Appsに打ち込みました。このインプットと多くの人へのアウトプットが、スキルアップにもつながったと思います。当日はスマホ1台でスライドでプレゼンと、Power Appsアプリの実演、開発裏話をOneNoteで紹介して会場・オンラインをかなり盛り上げました笑 一部いただいたコメントです! > 欧米のプレゼンを聞いているみたい笑 > > ゲーム発表の会場と間違えたのかな ![](https://flow-with-tech.com/media/wp/2025/11/CleanShot-2025-11-27-at-13.02.11@2x.png) ## 4. 【並走期】2025年6月〜9月:多角的なスキル習得へ 6月以降、Power Appsの学習時間がガクンと減っています。「飽きたのか?」と思われるかもしれませんが、違います。 実は3月から本業で **機械学習モデルの作成** を担当することになり、Pythonの学習に追われていました。大学では鉄筋を組んで、コンクリートを打設して、劣化させて破壊する研究をしていたような人です。プログラムなんてやったこともありませんし、Pythonって何というところから始まりました。 さらに、チームのメインミッションである **Power BI** や、業務効率化のための **Power Automate** の学習も並行して進めていました。 このグラフには表れていませんが、この時期のプライベート時間は他の技術スタック(BI, Automate, Python, ML)の習得にリソースを割いていました。 それでもPower Appsをゼロにはせず、細々とメンテナンスや学習を継続していました(まさに多足のわらじ状態)。 ![](https://flow-with-tech.com/media/wp/2025/11/CleanShot-2025-11-27-at-13.02.29@2x.png) ## 5. 【現在】2025年10月〜:そして「市民開発推進」へ そして迎えた2025年10月。 これまでのPower Appsへの取り組み(アプリ開発や登壇)が評価され、新しく発足した **「市民開発推進チーム」** にアサインされることになりました。 元現場監督が、1年で市民開発の旗振り役に。 11月もまだ機械学習モデル作成の業務は続いていますが、Appsの学習時間も再び右肩上がりになっています(グラフ右端)。 ![](https://flow-with-tech.com/media/wp/2025/11/CleanShot-2025-11-27-at-13.02.46@2x.png) ## おわりに 1年でPower Appsに費やした約140時間。 その裏側には、Power BIやAutomate、そしてPythonによる機械学習への挑戦がありました。自ら進んでの学習は苦ではなく、むしろ新しいことを知る・できるようになるたびに面白いなって思いながら進むことができました。 今回のグラフも、「Power Appsで記録したログをPythonで可視化する」という、今の私のスキルセット(Apps × Python)を象徴するアウトプットになりました。それに加えて、記録魔であることや一度決めたら淡々と継続するという自分の特性もかなり活かせていると思います。 これから、本格的に市民開発推進ができることが楽しみです。今まで誰もできなかったことを平然とやってのけたい。そんな密かに燃える野心を胸に、楽しんでいきたいと思います! ![](https://flow-with-tech.com/media/wp/2025/11/Gemini_Generated_Image_ohy95cohy95cohy9.png) ## よくある質問(FAQ) **Q1: 土木現場監督からIT部門への異動は、社内でどのように実現したのですか?** A: DX推進部署にいた時から、Power BIを活用したり、IT部門のPower BI相談室に通い詰めたりしてました。異動先の担当者と顔見知りになっていました。全く関わりのない部署への飛び込みではなく、日頃から交流を重ねていたことが、キャリアチェンジ実現の鍵だったと思います。 **Q2: Power Appsの学習に年間140時間は多いですか?少ないですか?** A: 多いか少ないかは一概には言えませんが、この140時間はPower Apps単体に絞った学習時間です。同時期に筆者はPower BI、Power Automate、Python(機械学習含む)も並行して学習していたため、テクノロジー学習全体ではさらに多くの時間を費やしています。 **Q3: 独学で挫折しかけたとき、どうやって突破口を見つけたのですか?** A: 「学習のための学習」ではなく、目の前にやりたいことや解決したい課題があり、それを解決するために学ぶスタイルを取っています。私自身「学習っていう感覚もない」と語るほど、実践的なアプローチです。2025年2月にはUdemyの体系的な講座を受講し、その直後に自分が毎日使う行動記録アプリを開発。自分のニーズに合ったものを作ることが、最高の学習になったそうです。なお、試験のための学習は苦手です笑 **Q4: 2025年6月以降に学習時間が減っているのはなぜですか?** A: 飽きたわけではなく、本業で機械学習モデルの作成を担当することになり、Pythonの学習に多くの時間を割く必要があったためです。さらにPower BIやPower Automateの学習も並行していました。Power Appsをゼロにはせず細々とメンテナンスや学習を継続しながら、複数の技術スタックを同時に習得する「多足のわらじ状態」で進めていました。 **Q5: 「登壇駆動開発」とは何ですか?どんな効果がありましたか?** A: 2025年3月末に登壇するイベントに申し込み、1ヶ月という短期間でPower Appsアプリの開発から発表資料作成、プレゼンまでを一気に仕上げた時期を指しています。このインプットとアウトプットの集中的なサイクルが、スキルアップに大きく貢献しました。 「習得できたから登壇するんじゃない。登壇するから習得できるんだ」と言えるようになりたいです笑 --- # 【Power Apps】生成AI分析が捗る!ボタン一つでデータを「テーブル形式」でコピーする実装テクニック - 公開日: 2025-11-26 - カテゴリ: Power Apps - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/powerapps-copy-data-for-generative-ai/ - サイト: 改善紀 — 好奇心の赴くままに。 --- 業務アプリで蓄積したデータを「ちょっと生成AIに分析させたい」「傾向を生成AIに探らせたい」と思ったことはありませんか? わざわざCSVエクスポート機能を作ったり、Excelファイルをダウンロードして添付するのは少し手間ですよね。 今回は、Power Appsの画面上から**ボタン一つで、Excelや生成AIにそのまま貼り付けられる形式でデータをクリップボードにコピーする方法**を紹介します。 ![](https://flow-with-tech.com/media/wp/2025/11/image-1.png) ### 実現したいこと - Power Apps 内のデータをフィルタリングして取得 - ヘッダー付きの「表形式(タブ区切り)」テキストとしてクリップボードにコピー - 生成AI のプロンプト欄にペーストして活用 ![](https://flow-with-tech.com/media/wp/2025/11/CleanShot-2025-11-26-at-21.32.15@2x.png) ### 実装コード ボタンの `OnSelect` プロパティに以下のコードを設定します。 ポイントは `Char(9)`(タブ文字)と `Char(10)`(改行文字)の使い方です。 **コード** ```js Copy( // 1. ヘッダー行の作成(タブ区切り) "ProjectName" & Char(9) & "CategoryName" & Char(9) & "ActionName" & Char(9) & "Notes" & Char(9) & "StartTime" & Char(9) & "EndTime" & Char(9) & "Duration" & Char(10) & // 2. データ行の連結 Concat( // 直近N日分のデータを抽出して開始時間順にソート Sort( Filter( WorkLog_Transaction, StartTime >= DateAdd(Today(), -Value(txtLastDate.Text), TimeUnit.Days) ), StartTime, SortOrder.Ascending ), // 各カラムをタブ区切りで結合 ProjectName & Char(9) & CategoryName & Char(9) & ActionName & Char(9) & Notes & Char(9) & Text(StartTime, "yyyy/mm/dd hh:mm") & Char(9) & Text(EndTime, "yyyy/mm/dd hh:mm") & Char(9) & Duration, // 行末に改行コードを入れる Char(10) ) ); Notify("データ(所要時間付き)をコピーしました", NotificationType.Success) ``` ### 技術的な解説ポイント #### 1. `Copy()` 関数の活用 Power Apps の `Copy()` 関数を使うと、指定したテキストをデバイスのクリップボードに送ることができます。これにより、ユーザーは「Ctrl + V」だけでデータを他のアプリに持ち出せます。 #### 2. `Char(9)` でExcelライクな挙動に ここが最大のポイントです。 文字列の連結に `Char(9)` を使用しています。これは ASCIIコードで **「水平タブ」** を意味します。 - **Excelに貼る場合:** タブが自動的に「列」の区切りとして認識され、綺麗にセルに入ります。 - **生成AIに貼る場合:** AIもタブ区切りテキストを「表データ」として認識しやすいため、構造化データとしてスムーズに解析してくれます。 #### 3. `Concat` で一括文字列化 `ForAll` ではなく `Concat` を使うことで、テーブル内の全レコードを単一の長い文字列(テキストの塊)に変換しています。ループ処理の中で各レコードの末尾に `Char(10)`(改行)を付与することで、行ごとのデータ整形を行っています。 #### 4. 日付の文字列化 `Text(StartTime, "yyyy/mm/dd hh:mm")` のように明示的にフォーマットを指定しています。AIに渡す際、ロケールに依存しない明確な書式にしておくことで、解析ミス(月と日の取り違えなど)を防ぐことができます。 ### 活用シナリオ:生成AIへのプロンプト例 このボタンでコピーしたデータを、生成AIに以下のように投げると効果的です。 > **ユーザー:** 以下のデータは私の作業ログです。時間の使い方の傾向を分析し、効率化のためのアドバイスを3点挙げてください。 > > [ここで Ctrl + V (コピーしたデータを貼り付け)] ### まとめ Power Apps はデータの入力だけでなく、データの「利活用」への入り口としても優秀です。 複雑な出力機能を実装しなくても、テキスト処理の工夫だけで、AI連携が劇的にスムーズになります。ぜひ試してみてください。 --- # 【Power Apps】業務記録アプリに後から一括登録機能を実装する方法 - 公開日: 2025-11-26 - カテゴリ: Power Apps - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/powerapps-bulk-registration-logic/ - サイト: 改善紀 — 好奇心の赴くままに。 --- 業務アプリ開発の持論として、「作業が終わったその瞬間にスマホやPCで記録するしかない仕様にする」というものがあります。 しかし、実際の現場はそう甘くありません。 作業中に手が離せなかったり、会議が連続していたりと、**「物理的にスマホを取り出して記録すること自体が不可能」**な場面が多々あります。 結果として、一日の終わりや休憩時間に「記憶を頼りにまとめて入力する」ことになるのですが、Power Appsの標準的なフォームでこれをやろうとすると、「新規作成 → 入力 → 保存 → 新規作成…」を繰り返すことになり、非常にストレスフルです。 そこで今回、**「後からまとめて振り返る」**ことに特化した、**「買い物かご方式の一括登録機能」**を実装しました。 技術的な工夫点、特に**「ユーザーの記憶を補助するロジック」**を中心に紹介します。 ![](https://flow-with-tech.com/media/wp/2025/11/image.png) ## 実装した機能の概要 今回作成したのは、以下のようなUIです。 - **一時保存(コレクション)機能:** 1件ずつ送信せず、手元でリストを作成する。 - **時刻の自動連携:** 直前のタスクの終了時間を、次のタスクの開始時間に自動セットする。 - **一括送信:** 最後にボタン一つでDataverseへ一括登録する。 ![](https://flow-with-tech.com/media/wp/2025/11/CleanShot-2025-11-26-at-18.25.04@2x.png) ## 1. 課題:後から入力する時の「記憶の寸断」を防ぎたい 後からまとめて日報を書く時、一番頭を使うのは**「時系列の整理」**です。 「えーっと、Aの会議が10時に終わって、そのあとBの資料作成をやって…」と思い出しながら入力している時に、毎回時間を手動で設定し直すのは思考のノイズになります。 そこで、**「前の行(タスク)の終了時間を、次の行の開始時間の初期値にする」**というロジックを組み込みました。これにより、ユーザーは作業内容を入れることだけに集中できます。 ## 2. 技術的な実装ポイント ここからは具体的なコード解説です。 データの格納先にはDataverseを使用し、アプリ内ではコレクション(`colWorkLogs`)で一時データを管理しています。 ### ① 「直前の終了時間」を取得して次につなげる(AddRecord) 「行追加ボタン」を押した時の処理です。 ここでのポイントは、**`Last()`関数でコレクションの最終行を取得**し、その終了時間を次の開始時間の基準にしている点です。 **コード** ```js // AddRecord ボタンの OnSelect // 1. 直前の行の終了時間を計算して取得 Set( varPrevEnd, If( CountRows(colWorkLogs) = 0, // 初回(0件)の場合は、DB上の最新データの終了時間などを取得 If(IsEmpty(WorkLog_Transaction), Now(), ... ), // 2件目以降:コレクションの最後の行(Last)を取得 With( {r: Last(colWorkLogs)}, // 日付と時間を合成してDateTime型にする r.EndDate + Time(r.EndHour, r.EndMinute, 0) ) ) ); // 2. 新しい行の開始時間を「直前終了時間の1分後」にセット Set( varStart, DateAdd(varPrevEnd, 1, TimeUnit.Minutes) ); // 3. コレクションに追加(時・分は分解して保持) Collect( colWorkLogs, { RowNo: CountRows(colWorkLogs) + 1, LocalId: GUID(), StartDate: DateValue(varStart), StartHour: Hour(varStart), StartMinute: Minute(varStart), // ... (その他の項目) } ); ``` `With`関数を使うことで、「直前の行(`r`)」という定義を明確にし、コードの可読性を高めています。これで「A作業が終わったら、即B作業」という連続した入力をスムーズに行えます。 ### ② 安全な一括登録(CreateRecord) 最後に、溜めたコレクションをデータベースに書き込む処理です。 ここでは単に保存するだけでなく、**「データの健全性チェック(バリデーション)」**を行ってから送信しています。 特に重要なのが**「開始時間が終了時間より後になっていないか(時刻逆転)」**のチェックです。 **コード** ```js // CreateRecord ボタンの OnSelect // 1. 未入力チェック & 時刻逆転チェック If( CountRows(...) > 0, Notify("未入力があります", ...), // 逆転(Start >= End)があるかチェック With( { badRows: Filter( colWorkLogs As r, // 開始日時と終了日時を合成して比較 (r.StartDate + Time(r.StartHour, r.StartMinute, 0)) >= (r.EndDate + Time(r.EndHour, r.EndMinute, 0)) ) }, If( CountRows(badRows) > 0, Notify("開始が終了以上の行があります。修正してください。", NotificationType.Error), // 2. 問題なければ一括登録(ForAll + Patch) With( { toSave: SortByColumns(colWorkLogs, "RowNo", SortOrder.Ascending) }, ForAll( toSave As r, With( { // ここで最終的なDateTime型を生成 st: r.StartDate + Time(r.StartHour, r.StartMinute, 0), et: r.EndDate + Time(r.EndHour, r.EndMinute, 0) }, Patch( WorkLog_Transaction, Defaults(WorkLog_Transaction), { ActionName: r.ActionName, StartTime: st, EndTime: et, Duration: DateDiff(st, et, TimeUnit.Minutes) // 所要時間も自動計算 } ) ) ); // 完了後の後始末 Clear(colWorkLogs); Notify("登録しました。", NotificationType.Success) ) ) ) ); ``` `ForAll`ループの中でも`With`関数を活用しています。 `st`(開始時間)と`et`(終了時間)を一時変数として定義することで、`Patch`関数の中が非常にスッキリし、所要時間(Duration)の計算などもしやすくなっています。 ## おわりに 業務アプリ開発において「UI/UX」というと、見た目の綺麗さが注目されがちですが、本当の使いやすさとは**「ユーザーの業務フロー(文脈)に沿っているか」**にあると思います。 今回は「その場で入力できない」という制約を前提に、「後から思い出しやすい」仕組みをコードで表現しました。 Power Appsのコレクションと`With`関数、そしてちょっとしたロジックの工夫で、現場に寄り添ったアプリは作れます。同じような課題を持つ方の参考になれば幸いです。 --- # 【Power Apps】Dataverseで習慣トラッカーを自作する!ForAllとPatchでリレーションを保存する「魔術」 - 公開日: 2025-11-23 - カテゴリ: Power Apps - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/powerapps-dataverse-habit-tracker-forall-patch/ - サイト: 改善紀 — 好奇心の赴くままに。 --- プライベートでも自分用の「業務・生活記録アプリ」を開発しています。 バックエンドをSharePointリストから **Dataverse** に移行し、リレーショナルなデータ構造で「習慣トラッカー」機能を実装しました。 これまでは食わず嫌いしていたDataverseですが、実際に触ってみてリレーション(関連付け)の仕組みを理解したら、**「なぜ今までこれを使わなかったんだ」**と後悔するほど快適でした。 今回は、個人的に「魔術」だと感じた、**ForAll と Patch を組み合わせたスマートな保存処理**について解説します。 ### 今回作りたい機能:習慣トラッカー やりたいことはシンプルです。 1. 事前に登録しておいた「習慣リスト(筋トレ、勉強、掃除など)」を一覧表示する。 2. やったものにチェックを入れる。 3. 「登録」ボタン一発で、選択した日付のデータとして保存する。 ### データベース設計:マスターとトランザクションの分離 SharePointリストのみで運用していた頃は、テキスト列にそのまま「筋トレ」などと書き込んでいましたが、今回はDataverseの強みを活かしてテーブルを分けました。 - **WorkLog_HabitMaster(マスターテーブル)** - 習慣の名前やIDを管理する定義テーブル。 - **WorkLog_HabitLog(トランザクションテーブル)** - 「いつ」「どの習慣を」「やったか」を記録する実績テーブル。 この2つを、Dataverseの **「検索列(Lookup)」** で紐づけています。これぞRDB(リレーショナルデータベース)の基本ですね。 ### 実装:これが「魔術」のコードだ 実際に「登録ボタン」の `OnSelect` プロパティに書いたコードがこちらです。 ギャラリー(一覧)に表示されているアイテムを一括で処理します。 **コード** ``` ForAll( Gallery2.AllItems As _Master, // ★ここで「_Master」というあだ名をつける Patch( WorkLog_HabitLog, // 保存先のテーブル Defaults(WorkLog_HabitLog), { HabitName: _Master, // ★ここが最大のポイント! Date: DatePicker1.SelectedDate, check: _Master.chkDid.Value // チェックしたかどうか } ) ); ``` このコードには、Power Apps初学者〜中級者が一度はつまずくポイントを突破するテクニックが詰まっています。 ![](https://flow-with-tech.com/media/wp/2025/11/CleanShot-2025-11-23-at-19.15.31@2x.png) #### 魔術ポイント①:As演算子で変数を支配する `Gallery2.AllItems As _Master` という部分です。 `ForAll` の中で `Patch` を使うと、今どのレコードを指しているのか(`ThisRecord` が何を指すのか)が曖昧になりがちです。 そこで `As _Master` と明示的に名前を付けてあげることで、**「今ループしているこの行は _Master だよ」** とコード内で宣言できます。これで変数の迷子を防げます。 #### 魔術ポイント②:リレーションの保存があまりに直感的 一番感動したのがここです。 ``` HabitName: _Master ``` 保存先の `HabitName` 列は、マスターテーブルへの検索列(Lookup)になっています。 従来のSharePointなどではIDを指定したりと面倒な処理が必要でしたが、Dataverseの場合は **「レコードそのもの(_Master)」を渡すだけで、勝手にリレーション(紐付け)が完了します。** 「IDを探して…」といった手続き不要で、「この親の子供です!」とオブジェクトを渡す感覚。これぞオブジェクト指向、これぞモダンなローコード開発です。 ### まとめ:Dataverseはいいぞ これまでは「ExcelやSharePointで十分」と思っていましたが、データの整合性や、アプリ側でのコード記述量を考えると、Dataverseのリレーション機能は強力な武器になります。 何より、コードが短くて美しくなるのが最高です。 「市民開発」のレベルを一段上げたい方は、ぜひDataverseの検索列と `ForAll` の組み合わせに挑戦してみてください。 --- # 【Power Apps】カンファレンスの予定登録が面倒すぎるので、AIにテキストを丸投げしてOutlook登録するアプリを作ってみた - 公開日: 2025-11-22 - カテゴリ: Power Apps - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/powerapps-ai-builder-schedule-automation/ - サイト: 改善紀 — 好奇心の赴くままに。 --- #### はじめに Microsoft AI Tourなどの大型カンファレンスに参加する際、どのセッションを回るか悩みますよね。 公式のタイムテーブルはあっても、**「自分が参加するセッションだけをOutlookに入れて、同行者にも空き状況や居場所を共有したい」**と思うことはありませんか? しかし、数十あるセッションの中から自分の行きたいものを選び、一つずつ「件名・時間・場所」をOutlookにコピペして登録するのはあまりにも面倒くさくて、気絶しそうです。 そこで今回は、**「Webサイトのセッション情報を適当にコピペしたら、いい感じに整形してOutlookに一括登録してくれるアプリ」**をPower Appsで作ってみました。 #### 作ったアプリの概要 今回作成したアプリの全体像はこちらです。 今は機能検証用なので見た目は無骨ですが、やっていることは以下の4ステップです。 1. Webサイトのセッション情報をテキストとしてコピー&ペーストする。 2. **AI Builder** がテキストを読み取り、構造化データ(JSON)に整形する。 3. 整形されたデータをPower Appsのギャラリーで一覧表示する。 4. 参加したいセッションにチェックを入れ、ボタンを押すと**Outlook予定表に一括登録**される。 **ポイントは、Power Automate(フロー)を使わずに、Power Appsの中だけで完結している点です。** ![](https://flow-with-tech.com/media/wp/2025/11/CleanShot-2025-11-22-at-09.49.09@2x.png) #### 技術的なポイント このアプリの肝となる技術を少しだけ解説します。 **1. AI Builder (GPT) によるテキスト整形** Webサイトからコピーしたテキストは、改行やスペースが含まれていて形式がバラバラです。これをPower Appsで扱いやすくするため、AI Builder(GPTモデル)に以下の指示を与えています。 **AI Builderへの指示(Copilotで作成)** ``` You are tasked with extracting specific event-related information from the provided text and formatting it for integration with Power Apps. Instructions: Analyze the input text carefully to identify and extract the following details for every event mentioned in the text: Subject: The main topic or title of the event. StartDatetime: The starting date and time of the event. EndDatetime: The ending date and time of the event. Place: The location where the event will take place. Ensure that the extracted information is accurate and corresponds exactly to the details found in the input text. Format the extracted data into a JSON array (list) of objects suitable for passing to Power Apps. If any of the required fields are missing for a specific event, indicate their absence explicitly with a null or empty value. Respond only with the valid JSON array without additional commentary. Output Format: Provide the output as a JSON array containing objects with the following keys: "Subject": string or null "StartDatetime": string or null (use ISO 8601 format if possible) "EndDatetime": string or null (use ISO 8601 format if possible) "Place": string or null Example: JSON[ { "Subject": "Team Meeting", "StartDatetime": "2024-07-01T09:00:00", "EndDatetime": "2024-07-01T10:00:00", "Place": "Conference Room A" }, { "Subject": "Project Review", "StartDatetime": "2024-07-01T13:00:00", "EndDatetime": "2024-07-01T14:00:00", "Place": "Online" } ] Provide the input text here: Input Text ``` ![](https://flow-with-tech.com/media/wp/2025/11/CleanShot-2025-11-22-at-09.53.31@2x.png) これにより、人間が読めるテキストを、アプリが処理できるデータ形式(JSON)に変換しています。 **2. JSONのパースとコレクション化** AIが出力したJSON文字列を、Power Appsの `ParseJSON` 関数を使って読み取り、コレクション(アプリ内の一時テーブル)に格納します。これでギャラリーへの表示が可能になります。 **Power FXコード** ``` // 1. まずコレクションを初期化 Clear(colEvents); // 2. JSONを解析して、ループ処理でコレクションに追加 // ParseJSON(varJsonString).events で "events" 配列にアクセスします ForAll( Table(ParseJSON(varJsonString.Text).events), Collect( colEvents, { Subject: Text(Value.Subject), // 日時は ISO形式なので DateTimeValue で日付型に変換 StartDatetime: DateTimeValue(Text(Value.StartDatetime)), EndDatetime: DateTimeValue(Text(Value.EndDatetime)), Place: Text(Value.Place) } ) ); ``` **3. Outlookへの一括登録** チェックボックスにチェックが入っている項目に対して、`ForAll` 関数を使用し、Office365Outlookコネクタをループさせています。 Power Automateにデータを渡す必要がないため、アプリの動作も軽快で、実装もシンプルになります。 ![](https://flow-with-tech.com/media/wp/2025/11/CleanShot-2025-11-22-at-09.55.30@2x.png) #### 実際に使ってみて これまで手作業で1つ1つ登録する、気絶してしまいそうな作業をしなくても良くなりました。何なら一旦全てのセッションをOutlookに一括で登録してしまって、重複してるものや休憩したい時間帯のセッションを削除してしまってもいいかもしれないです。 今回は自分用なのでUIは最低限ですが、本格的に運用するならデザインを整えてみたいです。 Power Platformを使えば、こうした「気絶しそうな場面」を数時間で解決できるのが楽しいですね。 --- # 【Power Apps】行動記録アプリに習慣トラッカーを追加してみた - 公開日: 2025-11-18 - カテゴリ: Power Apps - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/powerapps_habittracker/ - サイト: 改善紀 — 好奇心の赴くままに。 --- ## はじめに この記事を読むことで自分の行動を記録するだけじゃなくて、習慣トラッカーも同じアプリ内で実施する方法がわかります。自分の全てをデータにしたい市民開発者へ向けて!! ## そもそもの行動記録アプリ 自分がいつ何をしたかわからなくなりませんか。データとして記録をして後から振り返ることで気づきを経て、行動を変容していく。これこそが業務改善の真髄なのではないでしょうか。では、なぜ記録した方がいいとわかっていてもできないのでしょうか。 それは、面倒臭いから! じゃあ、その面倒くささを最小限にできたらいいのでは。ついでにプロジェクトとかカテゴリ情報を付与できたらあとから分析できてなお良いのでは。ということで作成したアプリになります。細かい説明は今回は省きますが、私はこれで半年以上記録を継続しています。 ## 習慣トラッカーをしたいきっかけ 確かに行動を記録しておけば振り返ることはできます。ただ、連続的なデータしかありません。任意の日付に筋トレをしたかどうかなどのフラグは後々のデータ分析の段階で付与してあげるしかありません。そして、習慣というものはデータ分析の段階ではなく、日常的に可視化して意識する必要があるのです。つまり日々使用しているアプリの中で、昨日の習慣記録がなければ強制的に記録画面へ遷移して記録するぐらいの強制力が必要となってくるのです。ということで習慣トラッカー機能を追加実装しました。 ## 実際のアプリ画面 昨日の記録がなければ最初から習慣トラッカー画面に移動します。記録をして再度アプリを起動するといつも通りの行動記録画面から起動するようにしました。 ![](https://flow-with-tech.com/media/wp/2025/11/CleanShot-2025-11-18-at-18.51.50.gif) ## 実装方法 StartScreenにてこのコードを入れるだけです。 最後のレコードをとってきてそれが今日と一致していれば行動記録画面に、違うなら習慣トラッカー画面へ遷移します。細かくやろうとすると、もっと設定した方がいいのですが、毎日起動する、毎日ちゃんと記録する前提ならこれでOKです! ![](https://flow-with-tech.com/media/wp/2025/11/CleanShot-2025-11-18-at-19.01.24@2x.png) ## まとめ 長く使われるものというのは、圧倒的に普遍である。 --- # 100冊読書の振り返り(2025年) - 公開日: 2025-11-16 - カテゴリ: LifeLog - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/100冊読書の振り返り(2025年)/ - サイト: 改善紀 — 好奇心の赴くままに。 --- ![](https://flow-with-tech.com/media/wp/2025/11/CleanShot-2025-11-15-at-10.15.41@2x.png) ## 【達成!】年間100冊読書をしました。 11月中ば時点で100冊読書を達成しました。 ![](https://flow-with-tech.com/media/wp/2025/11/CleanShot-2025-11-16-at-11.32.28@2x-1.png) *累計冊数* ![](https://flow-with-tech.com/media/wp/2025/11/CleanShot-2025-11-16-at-11.32.44@2x-1.png) *月別冊数* ## 私が「年間100冊」を目指した、たった2つの理由 1. 去年、75冊読んだ。じゃあ来年は100冊目指してみようと思った 2. 100冊読むってどんな感じなのか知りたかった ## 結論「冊数は関係ない」 何冊読むかを目標にすることはやめようと思う。数を目標にしてもなんの意味もないとわかった。なぜならこうして振り返ってみて、これがめちゃくちゃいいやんけっていう本がないからだ。その時々で自分の悩みや課題を解決、新しい発見があったと思う。でも、長く心に残っているのは数冊だ。その数冊に出会うための残りの数十冊があるのかもしれない。よく考えてみれば、なんだってそうなんじゃないか。人生において無駄なことなんて一つもなくて、一見無駄と思えることも、無駄であることに意味がある。つまり、「無用の用」ということだ。そう考えると、あんまりだったなあと思う本たちにも愛おしく感じる。大事なものに気づかせてくれて、ありがとう。 ## 1月「話題の本に読み耽る」 ![](https://flow-with-tech.com/media/wp/2025/11/CleanShot-2025-11-15-at-10.24.25@2x.png) とにかく話題になっている、面白いと言われている本を買って読みました。 バリ山行:山に魅せられた男。ヤバいやつを見ていたら、一番やばいやつは自分自身だったのかもしれないという恐怖。 DTOPIA:カッターで金玉を取り出してあげる少年(狂気) ## 2月「パンチライン爆誕」 フューチャーされそうでされなさそうで、されそうだった月 ![](https://flow-with-tech.com/media/wp/2025/11/CleanShot-2025-11-15-at-10.29.15@2x.png) ゲーテは全てを言った:とにかく”ゲーテ曰く”をつけておけば全てが解決する。 小説:川端康成ばりのパンチラインだった。どれだけ小説に全てを注ぎ込み、本を読むことをやめられないか、目の前に情景がはっきりと浮かぶような一文で、衝撃を受けた。多分服はグレーのパーカーで、なんともいえない色のズボンなんだろう。裾がボロボロになっていそう。アパートで本を読んでいるときに、暗い部屋の中で、キッチンの水道から一滴滴り落ちて、シンクに跳ねていそう。隣の部屋のポストには郵便物がこれでもかと詰め込まれて、チラシが共用の廊下の隅っこで雨に打たれて、へばりついていそう。それすらも、そのアパートの一部かのように。確かにシロアリに食われ尽くし、シロアリからすらも見捨てられたこのアパートだが、それでも新しく入ってくるものがある。空いた穴を埋めるように、さも当たり前かのように、カラフルで陽気なチラシが染み入るのだろうか。そんなことが頭に浮かびました。 > 月収は一一万ほどで生活はいつも苦しかったが本を読む時間が減るのだけは堪えられずそれ以上は働けなかった。牛丼を買って食べようかと思った。二分間考え抜いてからやめた。一足しか持っていない靴の底が擦り減っていた。濡れた場所を通る時は滑らないように上から踏みしめて歩いた。アパートの玄関の木枠を摑むと手が食い込んで崩れた。白蟻に食われていて、もうその白蟻もいなくなって、木の空洞だけが残っていた。金は足りなかった。小説を買う金も足りないのに他のことには回せなかった。 > > (小説より引用) ## 3月「恵まれてるはずなのに、なんかずっと苦しい」 健康でお金にも困っていない。仕事もうまくいっている。希望した部署への異動もかなっているし、新しいことにも挑戦ができている。でもなんかずっと苦しい。プライベートの時間で学習をする。それ自体が楽しいんだけど、なんか悶々とする。そんな月でした。 ![](https://flow-with-tech.com/media/wp/2025/11/CleanShot-2025-11-15-at-10.40.26@2x.png) ドイツ人のすごい働き方:仕事おわりには「ファイアーベント!(Feierabend!)」という挨拶をするのが一般的らしい。パーティの夕方と直訳できて、仕事終わりがお祝いのニュアンスが入ってるんだって。「お先に失礼します、お疲れ様です。」の日本とは全然文化が違うなあ。「人生の半分は整理整頓」ということわざもあるみたいだし、結構自分に合う文化があるのかもしれないなあと思った。こんな働き方を日本でもやりたいなあ。 ## 4月「やっぱり苦しい。」 仕事を減らしたい。いろんなことを並行して進めないといけなくて、とにかく苦しい。定時で帰宅するようにしているけど、家に帰ってからも仕事のことを考えてしまう。キックボクシングを始めた。佐久間さんの本をたくさん読んでみた月だ。 ![](https://flow-with-tech.com/media/wp/2025/11/CleanShot-2025-11-15-at-10.55.31@2x.png) SLOW 仕事の減らし方:この本を手に取っている時点で結構疲れている気がする。こういう仕事を減らしましょうとか、ミニマルにスッキリという本は、定期的に読みたくなる。どうしても増やすとか頑張るとか、無意識のうちに肩肘はってしまっている自分をほぐしてくてる。タスクを1つ引き受けると、関係者との間接コストがついてくる。確かになあと思った。そしてその間接コストはみんな侮っている。だから、仕事を引き受けるかどうかは慎重になる自分を持った方がいいと思う。早く苦しさから抜け出したいなあって思いました。 ## 5月「老子はほぼ”草”」 会社帰りに公園でサッカーをする。大学の後輩2人とだ。「余命はあと1週間です」って宣告されたら、今日みたいな1日を過ごしたいなあって思うような日を過ごせた。ノスタルジックな瞬間であった。 ![](https://flow-with-tech.com/media/wp/2025/11/CleanShot-2025-11-15-at-10.59.06@2x.png) ## 6月「月末転機来たりし」 キーエンスには衝撃を受けたな。こんなことが会社でもできたら、公平で頑張った人が報われるようになるだろうな。 ![](https://flow-with-tech.com/media/wp/2025/11/CleanShot-2025-11-15-at-11.05.57@2x.png) キーエンス最高 自省録は心に染みている。やっぱり古典こそが至高なのだろうか。 ## 7月「途切れるキャリアに戸惑う人生」 すぐに役立つものはすぐに役に立たなくなる。これは自分自身のことなんじゃないか。自分のキャリアについて見つめ直す。柄にもなく。そして悩む日々。 ![](https://flow-with-tech.com/media/wp/2025/11/CleanShot-2025-11-15-at-11.07.14@2x.png) ## 8月「そうだ明日から台湾に行こう」 人混みに疲れ果てる。お盆休み。明日から台湾に行ってしまった。そう灼熱であった。 ![](https://flow-with-tech.com/media/wp/2025/11/CleanShot-2025-11-15-at-11.07.44@2x.png) ## 9月「さよなら素晴らしき日々よ。」 キックボクシングの退会、大学生の頃に買ったBMXを粗大ゴミでの処分。さようなら、素晴らしき日々よ。 ![](https://flow-with-tech.com/media/wp/2025/11/CleanShot-2025-11-15-at-11.08.03@2x.png) ## 10月「異動そして、変わらない仕事よ。」 異動したけど、前のチームのことを年内はやっているというもどかしさ。もっと手放したいけど、どうにもならない日々を過ごす。 ![](https://flow-with-tech.com/media/wp/2025/11/CleanShot-2025-11-15-at-11.08.33@2x.png) ## 今後について 古典を読む。分かりにくいものにこそ価値があるのではないだろうか。心に染みる一冊を。 --- # Power Apps超基礎的備忘録「AddColumns編」 - 公開日: 2025-11-13 - カテゴリ: Power Apps - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/power-apps超基礎的備忘録「addcolumns編」/ - サイト: 改善紀 — 好奇心の赴くままに。 --- AddColumnsを使おうとした。でもなんかうまくできない。。私のつまづいたポイントを備忘録としてここに記します。 ## Power AppsでAddColumnsを使用するときのポイント 1. 新しいコレクションに入れる 2. 新しいカラム名に、””はつけない ## 検証のために作成したコレクション 日時を持ったコレクションを作成しました。このコレクションの日時から日付のみの列を新しく作りたいと仮定します。 ``` ClearCollect( colSample, { dt: DateTimeValue("2025/11/10 09:30:00"), name: "会議A", memo: "月曜定例" }, { dt: DateTimeValue("2025/11/11 15:00:00"), name: "商談B", memo: "顧客訪問" }, { dt: DateTimeValue("2025/11/13 18:15:00"), name: "作業C", memo: "バグ修正" } ) ``` ## 新しいコレクションに入れる AddColumnsは、Add(加える)・Columns(カラム)ということから、既存のテーブルに列を追加できそうな気がしませんか? そうじゃないみたいです。colSmapleという既存のコレクションに、"nichiji"という列を追加しようとするとエラーが出ました。(nichijiじゃなくてnichiですね。dateでもありますが) ![](https://flow-with-tech.com/media/wp/2025/11/CleanShot-2025-11-13-at-18.31.51@2x-1.png) 正解はこちら。新しいコレクションを作成しなければなりません! ![](https://flow-with-tech.com/media/wp/2025/11/CleanShot-2025-11-13-at-18.34.00@2x.png) ## 新しいカラム名に""はつけない はいはい。文字列だから""で囲っとけばいいんでしょ。と思っていませんか? 生成AIはそう思っています。なので生成AIに書いてもらった場合は、手動で””を消して使います。 ![](https://flow-with-tech.com/media/wp/2025/11/CleanShot-2025-11-13-at-18.35.35@2x.png) 列名は思い切って""無しで希望するカラム名を書いてしまいましょう。 ![](https://flow-with-tech.com/media/wp/2025/11/CleanShot-2025-11-13-at-18.34.00@2x-1.png) ## 所感 日々の小さな学びや成長って楽しい。 --- # 梯子酒のライフログ - 公開日: 2025-11-08 - カテゴリ: LifeLog - 著者: tan(@kama_bizdev) - URL: https://flow-with-tech.com/梯子酒のライフログ/ - サイト: 改善紀 — 好奇心の赴くままに。 --- ## はじめに 飲み屋さんが400軒近くある街にたまたま引っ越した。会社の家賃補助規定が渋すぎて半年近く物件が見つからなかった結果、なんか立地の割に安い物件を見つけたのがきっかけだ。来る前は何も知らなかった。そしてとあるイベントが開催されていたので、参加してみる。そこから一人梯子酒ライフが始まった。2年間で100軒近く開拓をしてみた。行きつけと呼べそうなお店もできた。そして、先日またイベントに参加してきた。この記事は、過去最高の8軒を梯子したライフログである。 ## 1軒目「砂肝を食う」 滞在時間:35分 一番ディープなエリアの端っこから攻めてみる。砂肝は好きだ。お好み焼きに具材として入れて食べるのが一番好きだ。一杯目から芋焼酎のソーダ割にしてみた。今日行くお店の情報収集もしてみる。 ## 2軒目「とあるオブジェクトを探し求めて」 滞在時間:25分 今回のお題はなかなか難しかった。しかし、普段から飲みに行くわけでもないのに、飲屋街をぷらぷら意味もなく散歩をしている自分には簡単だった。なぜなら、分からないなら分かるまでぷらぷら歩けばいいからだ。そして、1軒目から東西方向で見て対極の地へ辿り着く。まだ時間が早いからか、他にお客さんはいなかたった。コーヒー焼酎を飲んでみる。お題をクリアした達成感と、コーヒーの風味を味わう。 ## 3軒目「最果ての地へ行く」 滞在時間:21分 何を思ったのだろうか。「そうだ、北の果てに行こう。」ということで歩き出す。途中の公衆トイレで用をたす。一人で飲んでいると、お店のトイレをお借りするタイミングを失うことがある。歩くこと15分。途中で行き止まりの道に出会し、引き返す。たどり着いたのは元気の良い鉄板屋さん。お刺身3点がついてくるとのことなので、おばんざいを頼んでみる。お店の方が小声で「めっちゃおばんざいでるな・・・」と呟いていたのは、聞こえないふりをしておく。右前方のカウンターでニコニコしながら隣の若者と話をしているおじいちゃんが見える。「ああ、俺もおじいちゃんにニコニコと話を聞いてもらいたい笑」と思いつつ、お刺身を食べる。青ニンニクの乗ったマグロ・柿ペーストの乗ったはまち(多分)・薬味たっぷりの鰹。どれも最高に美味しかった。鉄板料理を頼みたいところだが、今日はまだ先がある。帰りに入浴剤を頂いた。 ## 4軒目「狭い店再び」 滞在時間:36分 そう、北の最果てにいたのだ。再び最果てから19分かけて歩いて中心地へと戻る。狭い狭い店に入ってみる。既視感がある。そう、隣のお店とシンメトリーになっているんだ。こんなにも狭い店があるなんて。カウンターには店員さんが2名いらっしゃる。この空間だと違和感がある。一人でも狭いのに。イベントの時だけ二人らしい。柿の種を食べる。豆乳ハイを飲む。ちょっと休みたいときに飲むやつだ。先に入っていた人が出ていく。一つずつ奥に詰める。また新しい人が入り口側に座る。ロケット鉛筆方式だ。上部に収納されていた、ベイブレードもどきがすごく気になった。あと、出ていく時には満員電車から降りるムーブが疑似体験できる。狭い。でも不思議と居心地は良い。 ## 5軒目「音楽には酔いしれる」 滞在時間:36分 梯子をしていると、どうしても音楽に酔いしれたくなる瞬間がある。会話をどうしてもしたいタイプじゃないからだろうか。入った瞬間にわかる。「これ、すごいやつじゃん」ということで、飲み物はジンジャエールにする。梯子をすることによって気づいた、真理がある。飲み屋でノンアルコールを頼んでもいいということだ。お酒が強くない人でも、楽しんでいいっていことだ。ジンジャエール片手に、最高の空間と最高の音楽に酔いしれた。また来たい。 ## 6軒目「通り道、寄ってみた」 滞在時間:25分 次に行きたい店がまだ開いてないので、途中で寄ってみた。鶏肉のささみ刺しはトラウマがあるのだが、よく見ずに頼んだ、プレートに乗っていた。恐怖に打ち勝ちつつ、食す。やっぱり刺しは美味い。高熱に見舞われないことを祈ろう。そして、このことは忘れよう。 ## 7軒目「猫リターンズを期待して」 滞在時間:30分 次に行こうとしていたお店が開いたので行ってみた。「なんすか?やってないですけど」と言われてしまった。HPを確認してみたけどやっぱりやってるみたいだ。まあ、タイミングが悪かったのかもしれない。当てが外れたので、ふらふらと彷徨ってみる。猫いいなあ。ということで、猫のいる店に行ってみる。猫おるなあと思いつつ、ジントニックを飲む。猫いい。 ## 8軒目「肉食う」 滞在時間:43分 この時間になると開いている店も少なくなってくる。肉食える店開いてんな。チラと覗いてみると、店員さんと目があう。行ったことなかったし、入ってみる。飲んで飲んで飲んで、肉食うのも悪くない。いや、最高だ。また、今度しっかり食べにきたい。 ## 総歩行距離 5km ## まとめ よく歩き、よく飲み、よく楽しんだ。 ---