<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>FITSブログ</title>
	<atom:link href="https://blog.fits-inc.jp/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.fits-inc.jp</link>
	<description>Webシステムの受託開発でお困りなら</description>
	<lastBuildDate>Tue, 30 Jun 2026 11:39:01 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://blog.fits-inc.jp/wp-content/uploads/2024/06/cropped-image-5-32x32.png</url>
	<title>FITSブログ</title>
	<link>https://blog.fits-inc.jp</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Claude Code v2.1.196 で地味に嬉しいアップデート：Agents View が格段に開きやすくなった</title>
		<link>https://blog.fits-inc.jp/2026/06/30/claude-code-v2-1-196-%e3%81%a7%e5%9c%b0%e5%91%b3%e3%81%ab%e5%ac%89%e3%81%97%e3%81%84%e3%82%a2%e3%83%83%e3%83%97%e3%83%87%e3%83%bc%e3%83%88%ef%bc%9aagents-view-%e3%81%8c%e6%a0%bc%e6%ae%b5%e3%81%ab/</link>
		
		<dc:creator><![CDATA[editor]]></dc:creator>
		<pubDate>Tue, 30 Jun 2026 11:25:10 +0000</pubDate>
				<category><![CDATA[AI／Claude記事]]></category>
		<guid isPermaLink="false">https://127.0.0.1/?p=1205</guid>

					<description><![CDATA[最近、Claude Code のバージョンが v2.1.196（2026年6月29日リリース）に上がりました。バグ修正や細かい調整が中心のリリースでしたが、個人的に「これは嬉しい！」と感じた変更があったので紹介します。  [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>最近、Claude Code のバージョンが v2.1.196（2026年6月29日リリース）に上がりました。バグ修正や細かい調整が中心のリリースでしたが、個人的に「これは嬉しい！」と感じた変更があったので紹介します。</p>
<h2>何が変わったか</h2>
<p><strong>フォアグラウンドセッションでも <code>←</code> 1回でAgents Viewに移動できるようになりました。</strong></p>
<p>リリースノートにはこう書いてあります：</p>
<blockquote>
<p>Changed opening the agents view from a foreground session to require a single ← press instead of two, matching the behavior in background sessions</p>
</blockquote>
<p>以前はフォアグラウンドセッション（通常の作業中の画面）から Agents View を開くには、<code>←</code> キーを <strong>2回</strong> 押す必要がありました。バックグラウンドセッションでは1回で開けていたのに、フォアグラウンドだけ2回必要という微妙な非一貫性があったわけです。</p>
<p>今回の変更でフォアグラウンドも1回に統一されました。</p>
<h2>Agents View って何？</h2>
<p>Claude Code には複数のエージェント（サブタスク）を並列で動かす機能があります。Agents View はその実行中エージェントの状態を一覧で確認できる画面です。</p>
<pre><code>┌─ Agents ─────────────────────────────────────────────────────┐
│ ● agent-1  Running  「APIエンドポイントの調査中...」          │
│ ● agent-2  Running  「テストコードのレビュー中...」           │
│ ✓ agent-3  Done     「ドキュメント生成完了」                  │
└──────────────────────────────────────────────────────────────┘
</code></pre>
<p>複数のエージェントを走らせているとき、Agents View を素早く確認できるかどうかはワークフローの快適さに直結します。</p>
<h2>実際の使い勝手</h2>
<p>弊社では複数プロジェクトを並行開発することがよくあります。特に便利なのが以下のようなフローです。</p>
<ol>
<li>「このコードをレビューして」と Claude Code に依頼する</li>
<li>レビュー用のサブエージェントが起動する</li>
<li><strong>そのサブエージェントにカーソルを合わせた状態で <code>←</code> を押す</strong></li>
<li>Agents View にそのエージェントが追加され、進捗をいつでも確認できる</li>
</ol>
<p>サブエージェントが動いている間も自分は別の作業を続けられますし、Agents View を <code>←</code> 1回でサッと開いて状態確認できるので、思考の流れを途切れさせずに作業を進められます。</p>
<p>弊社では現在、レビューエージェントの起動は手動で行っています。これはレビュースキルやモデルを使い分けたいためで、状況に応じて意図的に選んで起動しています（エージェント選定も含めて自動化するフルオートモードも搭載しています）。それでも「依頼→サブエージェント起動→<code>←</code>でフォーカス→Agents Viewで追跡」という流れが定着すると、複数エージェントを走らせているときの確認作業がかなりスムーズになります。</p>
<p>また、Agents View 内での操作もシームレスです。<strong>↑↓キーでメインエージェントとサブエージェントを行き来して、<code>←</code>キーでAgents Viewに戻り、別のタスクに移動</strong>——この一連の操作がキーボードだけで完結するのがとても気持ちいいです。ウィンドウを切り替えたりタブを探したりすることなく、作業の流れを完全に維持したまま複数タスクを管理できます。</p>
<p>これまでは Agents View を開くたびに <code>←←</code> と2回打つ必要があり、「あ、そうだった」と毎回思い出す小さなストレスがありました。1回になるだけで体感が変わりますね！</p>
<h2>余談：以前から使えた隠し機能だった</h2>
<p>実は、Claude Code にこの機能が存在することを知らなかった方も多いのではないでしょうか。<code>←</code> キーでAgents Viewに行けること自体、リリースノートを追っていないと気づきにくい機能です。</p>
<p>「最初から2回押しで使えたのに気づいてなかった」という方も多いかもしれません（筆者もそのひとりです）。</p>
<p>こういう細かい UX 改善が積み重なって、ツールの使いやすさは少しずつ上がっていくものですね。Claude Code は更新頻度が高く、毎週のように改善が入ってくるので、定期的にリリースノートを眺める習慣をつけておくと発見があります。</p>
<hr />
<h2>おわりに</h2>
<p>AIツールを使った過去資産のリニューアルや、自社の開発プロセスにAIを組み込みたいとお考えの方は、ぜひ弊社にお声がけください。FITSは仙台を拠点に大規模なAI駆動開発を手がけており、要件定義から実装・運用まで一貫してサポートいたします。</p>
<p>お問い合わせは <a href="https://www.fits-inc.jp/inquiry/">FITSお問い合わせページ</a> からお気軽にどうぞ。</p>
<hr />
<p><strong>参考</strong><br />
&#8211; <a href="https://github.com/anthropics/claude-code/releases/tag/v2.1.196">Claude Code v2.1.196 リリースノート（GitHub）</a></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Claude Code がまたアップデートされてた話 — ちらつきのない新描画モードが来た</title>
		<link>https://blog.fits-inc.jp/2026/06/26/claude-code-%e3%81%8c%e3%81%be%e3%81%9f%e3%82%a2%e3%83%83%e3%83%97%e3%83%87%e3%83%bc%e3%83%88%e3%81%95%e3%82%8c%e3%81%a6%e3%81%9f%e8%a9%b1-%e3%81%a1%e3%82%89%e3%81%a4%e3%81%8d%e3%81%ae/</link>
		
		<dc:creator><![CDATA[editor]]></dc:creator>
		<pubDate>Fri, 26 Jun 2026 05:16:15 +0000</pubDate>
				<category><![CDATA[AI／Claude記事]]></category>
		<guid isPermaLink="false">http://127.0.0.1/?p=1198</guid>

					<description><![CDATA[Claude Code を起動したら、いつもと違う案内が出てきた。気づかないうちに、ターミナルの描画方式が刷新されていた話です。 起動したら見慣れないメッセージが Claude Code を起動したら、いつもと違う案内が [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Claude Code を起動したら、いつもと違う案内が出てきた。気づかないうちに、ターミナルの描画方式が刷新されていた話です。</p>
<h2>起動したら見慣れないメッセージが</h2>
<p>Claude Code を起動したら、いつもと違う案内が表示された。</p>
<pre><code>&#x2714; Using flicker-free rendering · if you want to go back, use /tui default
    · Click to move your cursor in the text input
    · Click to expand collapsed tool results
    · By default, text auto-copies when you select it (/config to change)
    · Hold Fn while selecting to use your terminal's native copy instead</code></pre>
<p>「お、なんか新しくなってる」と思って調べてみたら、ターミナルの描画方式が刷新されたお知らせだった。気づかないうちにどんどん便利になっていく。</p>
<h2>今回有効になったもの：ちらつきのない新描画モード（flicker-free / NO_FLICKER）</h2>
<p>新しい描画エンジン（experimental renderer）が有効になったという通知。Anthropic が「NO_FLICKER モード」として発表していたもので、2026年4月に Product Hunt にも登場して話題になっていたらしい。</p>
<p>そういえばうちのメンバーが以前 Slack に「Agent View の画面めっちゃ点滅するから Claude に相談したら『持病みたいなもんです』って言われた　草」と投稿していた。あれはこのことだったのかも。当の Claude も認めていたとは。</p>
<h3>何が変わった？</h3>
<ul>
<li><strong>画面のちらつき（フリッカー）がなくなった</strong> … 出力が更新されるたびに画面全体がチカッと白く再描画される現象が解消</li>
<li><strong>マウス操作に対応</strong>
<ul>
<li>入力欄をクリックするとカーソルがその位置に移動（矢印キー連打から解放）</li>
<li>折りたたまれたツール実行結果をクリックで展開</li>
<li>ホイールでスクロール、URL を直接クリック</li>
</ul>
</li>
<li><strong>入力欄が常に画面下部に固定</strong> … どれだけ出力が流れても入力位置が動かない</li>
<li><strong>長時間セッションでもメモリ使用量がフラット</strong> … 画面に見えている範囲だけ描画する仕組み（Vim や htop と同じ発想で、表示制御をアプリ側に持ってきた）</li>
</ul>
<h3>ちょっとした操作メモ</h3>
<ul>
<li>テキストは<strong>選択するだけで自動コピー</strong>される（<code>/config</code> で変更可能）</li>
<li>ターミナル本来のコピーを使いたいときは <strong>Fn を押しながら選択</strong></li>
<li>元の描画方式に戻したいときは <code>/tui default</code></li>
</ul>
<blockquote>
<p>感想：地味だけど毎日触る部分が快適になるのは一番効く。ちらつきが消えるだけでこんなに見やすいとは。</p>
</blockquote>
<h2>v2.1.193（2026年6月25日）で増えた機能</h2>
<p>調べたら、ちょうど直近の v2.1.193 でもいろいろ追加されていた。</p>
<ul>
<li><strong>bash モード（<code>!</code>）でファイルパスのライブ補完</strong> が効くようになった ← これ地味に嬉しい</li>
<li><strong>MCP サーバーの認証案内</strong> … 認証が必要なときに <code>/mcp</code> を案内してくれる</li>
<li><strong>Auto モードの拒否理由を表示</strong> … なぜブロックされたかが transcript / トースト / <code>/permissions</code> で見えるように</li>
<li><strong><code>autoMode.classifyAllShell</code></strong> … すべての Bash/PowerShell コマンドを auto-mode の分類器に通す設定</li>
<li><strong>アイドル状態のバックグラウンドシェルを自動でメモリ回収</strong></li>
<li>バックグラウンドエージェントが<strong>別タスクを進めながら</strong>動けるよう改善</li>
</ul>
<h3>このあたりの最近のバージョンも合わせて面白かったもの</h3>
<ul>
<li><strong><code>/rewind</code> コマンド（v2.1.191）</strong> … <code>/clear</code> する前の会話を復元できる。やらかしたときの保険になる</li>
<li><strong>ストリーミング中の CPU 使用率を約37%削減（v2.1.191）</strong> … 体感の軽さに効いてそう</li>
<li><strong>フルスクリーンモードのメニューでマウスクリック対応（v2.1.187）</strong> … 今回の描画刷新と地続き</li>
<li><strong>Auto モードの安全強化（v2.1.183〜）</strong> … <code>git reset --hard</code> や <code>terraform destroy</code> など破壊的コマンドを明示指示なしではブロック</li>
</ul>
<h2>X などで話題になっていた「これ気になる」機能</h2>
<p>最近の Claude Code 周りで盛り上がっていた、個人的に試してみたい機能たち。</p>
<h3>1. Agent Teams（エージェント・チームズ）</h3>
<p>複数の Claude Code が並列で作業して大きなタスクを分担。2026年4月に Claude Opus 4.6 とともに<strong>リサーチプレビュー</strong>として登場（本記事執筆時点でもリサーチプレビュー）。各エージェントがそれぞれ独立した最大100万トークンのコンテキストを持つ。<br />
→ <strong>使ってみた：</strong> すでに使っています。ワクワクしますね。大きめのリファクタや調査を「手分け」してもらえて便利です。ただ Windows 版は Mac 版と機能差異があるようで、Windows ユーザーには少し使いづらそうでした。</p>
<h3>2. Remote Control（リモートコントロール）</h3>
<p>ローカルで動いている Claude Code のセッションを、スマホ（iOS/Android の Claude アプリ）やブラウザから遠隔操作できる（2026年2月リサーチプレビュー）。<br />
→ <strong>現状 OFF：</strong> ガバナンス上いったん OFF にしています。確認が取れたら ON にしたい機能です。</p>
<h3>3. 音声モード（<code>/voice</code>）</h3>
<p>2026年3月追加、20言語対応。<br />
→ <strong>個人的な感想：</strong> Mac の音声入力を日頃から使っているので、「あまり不便を感じていなかった」というのが正直なところ。ただ、ひとつ気になっていたのが「Claude 側はコンテキストを反映して音声認識してくれるのか？」という点。調べてみたら、<strong>そうでした</strong>。公式ドキュメントによると「現在のプロジェクト名と git ブランチ名が認識ヒントとして自動で追加される」とのこと。コーディング語彙（regex、OAuth、JSON、localhost など）の認識精度もチューニング済みで、Mac の音声入力と使い分ける価値は十分ありそうです。</p>
<h3>4. レート制限の緩和</h3>
<p>2026年5月、5時間レート制限が2倍に。Pro/Max のピークタイム制限も撤廃。<br />
→ これは話題というより素直にありがたいニュース。長時間エージェント運用が現実的に。</p>
<h2>まとめ</h2>
<p>起動時のメッセージひとつ取っても、裏ではこまめに改善が積み重なっているのが分かる。ちらつき解消みたいな「触り心地」の改善から、Agent Teams みたいな働き方そのものを変える機能まで、振れ幅が広い。</p>
<p>気づいたら便利になっている。アップデートを追いかけるだけでも楽しいですね。これからも頻繁にチェックしようと思います。</p>
<hr>
<h2>参考リンク</h2>
<ul>
<li><a href="https://code.claude.com/docs/en/changelog">Claude Code changelog（公式）</a></li>
<li><a href="https://code.claude.com/docs/en/fullscreen">Fullscreen rendering &#8211; Claude Code Docs</a></li>
<li><a href="https://www.producthunt.com/products/claude-code-no_flicker-mode">Claude Code Rendering（Product Hunt）</a></li>
</ul>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ClaudeCodeでブログ引っ越しをやってみたら、ネコちゃんが大活躍した話</title>
		<link>https://blog.fits-inc.jp/2026/02/21/claudecode%e3%81%a7%e3%83%96%e3%83%ad%e3%82%b0%e5%bc%95%e3%81%a3%e8%b6%8a%e3%81%97%e3%82%92%e3%82%84%e3%81%a3%e3%81%a6%e3%81%bf%e3%81%9f%e3%82%89%e3%80%81%e3%83%8d%e3%82%b3%e3%81%a1%e3%82%83%e3%82%93/</link>
		
		<dc:creator><![CDATA[editor]]></dc:creator>
		<pubDate>Sat, 21 Feb 2026 07:49:54 +0000</pubDate>
				<category><![CDATA[AI／Claude記事]]></category>
		<guid isPermaLink="false">http://127.0.0.1/?p=1178</guid>

					<description><![CDATA[仙台でWebシステムの受託開発を行っている株式会社FITSです。 弊社では業務のさまざまな場面でAIを活用しています。今回は、会社のブログサーバーの引っ越し作業を、AIエージェント（Claude Code）と一緒にやって [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>仙台でWebシステムの受託開発を行っている株式会社FITSです。</p>
<p>弊社では業務のさまざまな場面でAIを活用しています。今回は、<strong>会社のブログサーバーの引っ越し作業を、AIエージェント（Claude Code）と一緒にやってみた</strong>話をご紹介します。しかもネコちゃんが作業してくれます。</p>
<h2>きっかけ：ブログのサーバーを新しくしたい</h2>
<p>弊社のブログは、AWSのLightsailというサービスの上でWordPressを動かして運用しています。</p>
<p>このブログサーバー、もともと一番小さいプラン（メモリ0.5GB）で動かしていたのですが、WordPressを快適に動かすにはちょっと力不足。さらに、サーバーに入っているソフトウェア（データベースやWebサーバー）のバージョンが古くなってきていました。</p>
<p>そこで、<strong>新しいサーバーを立てて、データを引っ越そう</strong>ということに。ついでにメモリも倍増させます。</p>
<table style="border-collapse:collapse; width:100%;">
<thead>
<tr>
<th style="border:1px solid #ccc; padding:8px; background:#f5f5f5;">項目</th>
<th style="border:1px solid #ccc; padding:8px; background:#f5f5f5;">旧サーバー</th>
<th style="border:1px solid #ccc; padding:8px; background:#f5f5f5;">新サーバー</th>
</tr>
</thead>
<tbody>
<tr>
<td style="border:1px solid #ccc; padding:8px;">メモリ</td>
<td style="border:1px solid #ccc; padding:8px;">0.5GB</td>
<td style="border:1px solid #ccc; padding:8px;"><strong>1.0GB（2倍）</strong></td>
</tr>
<tr>
<td style="border:1px solid #ccc; padding:8px;">ディスク</td>
<td style="border:1px solid #ccc; padding:8px;">20GB</td>
<td style="border:1px solid #ccc; padding:8px;"><strong>40GB（2倍）</strong></td>
</tr>
<tr>
<td style="border:1px solid #ccc; padding:8px;">月額</td>
<td style="border:1px solid #ccc; padding:8px;">$5.0</td>
<td style="border:1px solid #ccc; padding:8px;"><strong>$7.0（+$2）</strong></td>
</tr>
<tr>
<td style="border:1px solid #ccc; padding:8px;">データベース</td>
<td style="border:1px solid #ccc; padding:8px;">古いバージョン</td>
<td style="border:1px solid #ccc; padding:8px;"><strong>最新バージョン</strong></td>
</tr>
<tr>
<td style="border:1px solid #ccc; padding:8px;">Webサーバー</td>
<td style="border:1px solid #ccc; padding:8px;">古いバージョン</td>
<td style="border:1px solid #ccc; padding:8px;"><strong>最新バージョン</strong></td>
</tr>
</tbody>
</table>
<p>月額たった$2アップで、メモリもディスクも倍。ソフトウェアも全部最新。やらない理由がありません。</p>
<h2>でも、サーバーの引っ越しってめんどくさい</h2>
<p>サーバーの引っ越しって、地味に手順が多いんです。</p>
<ol>
<li>新しいサーバーを作る</li>
<li>セキュリティの設定をする</li>
<li>旧サーバーからデータベースやファイルをコピーする</li>
<li>新サーバーに取り込む</li>
<li>ちゃんと動くか確認する</li>
<li>ネットワークの向き先を切り替える</li>
<li>SSL証明書（httpsの鍵）を設定する</li>
<li>後片付けをする</li>
</ol>
<p>手作業でやると、どこかで打ち間違えたり、手順を飛ばしたりしがち。そこで……</p>
<h2>AIに全部やらせよう</h2>
<p><strong>Claude Code</strong>（Anthropic社が提供するAIエージェント）は、ターミナル（黒い画面）で動くAIです。人間がキーボードで打つコマンドを、AIが代わりに実行してくれます。</p>
<p>つまり、<strong>サーバーにSSH接続してコマンドを打つ作業</strong>も、AIにお任せできるわけです。</p>
<h3>やったこと</h3>
<p>Claude Codeに「ブログサーバーを新しいインスタンスに移行して」と伝えたところ、こんな流れで進みました。</p>
<ol>
<li><strong>計画を立てる</strong> — AIが移行手順を10ステップで提案（数秒）</li>
<li><strong>移行スクリプトを作る</strong> — AIが約330行のシェルスクリプトを自動生成（数十秒）</li>
<li><strong>人間がレビューする</strong> — 内容を確認してバグを1件発見・修正（数分）</li>
<li><strong>実行する</strong> — スクリプトを実行して、AIが全工程を自動で処理</li>
</ol>
<p>計画もスクリプト作成も一瞬。人間がやるのはレビュー（確認）だけです。</p>
<h2>レビューで見つけたバグ</h2>
<p>AIが作ったスクリプト、ほぼ完璧だったのですが、1つだけバグがありました。</p>
<p>サーバーの引っ越しでは、途中でネットワークのアドレスを旧サーバーから新サーバーに付け替えます。AIはこの<strong>「付け替えた後も、古いアドレスに接続しようとしていた」</strong>んです。</p>
<p>住所が変わったのに、前の住所に手紙を送っちゃうようなもの。これは人間がレビューして発見・修正しました。</p>
<p>ちなみに、今のAIは<strong>プロンプト（指示）や用途を適切に設計すれば、レビュー作業もAIに任せることができます。</strong>今回はあえて人間がレビューしましたが、次回は「レビュー担当AI」を用意するのもアリですね。</p>
<h2>作業ネコちゃんと監督ネコちゃん</h2>
<p>せっかくなので、実行も少し楽しくしました。</p>
<p>画面を上下に2分割して、<strong>「作業ネコちゃん」</strong>（作業する側）と<strong>「監督ネコちゃん」</strong>（チェックする側）の2匹のAIエージェントに役割を分けて実行させました。</p>
<p>監督ネコちゃんは、作業ネコちゃんから報告を受けるたびに内容をチェックして、問題なければ<strong>「ヨシッ！」</strong>と承認します。特に重要な工程（ネットワーク切り替えなど）では、監督ネコちゃんの承認がないと先に進めない仕組みです。</p>
<p><!-- ターミナル風モックアップ：監督ネコちゃんが作業を承認している様子 --></p>
<div style="background:#1e1e1e; border-radius:8px; overflow:hidden; font-family:'Courier New',Consolas,monospace; font-size:13px; line-height:1.6; margin:1.5em 0; max-width:100%;">
<!-- タイトルバー --></p>
<div style="background:#333; padding:6px 12px; display:flex; align-items:center;">
<span style="display:inline-block; width:12px; height:12px; border-radius:50%; background:#ff5f56; margin-right:6px;"></span><br />
<span style="display:inline-block; width:12px; height:12px; border-radius:50%; background:#ffbd2e; margin-right:6px;"></span><br />
<span style="display:inline-block; width:12px; height:12px; border-radius:50%; background:#27c93f; margin-right:6px;"></span><br />
<span style="color:#999; font-size:12px; margin-left:8px;"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f431.png" alt="🐱" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 監督ネコちゃん</span>
</div>
<p><!-- 監督ネコちゃんのペイン --></p>
<div style="padding:12px 16px; color:#d4d4d4; border-bottom:2px solid #444;">
<div style="color:#888;">── 監督ネコちゃん ──</div>
<div><span style="color:#6a9955;"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4cb.png" alt="📋" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 作業ネコちゃんからの報告を確認中&#8230;</span></div>
<div>&nbsp;</div>
<div><span style="color:#569cd6;">【フェーズ6: 動作確認（仮IP）】</span></div>
<div><span style="color:#d4d4d4;">  WordPress管理画面&#8230; </span><span style="color:#6a9955;"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> OK</span></div>
<div><span style="color:#d4d4d4;">  ブログ表示&#8230; </span><span style="color:#6a9955;"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> OK</span></div>
<div><span style="color:#d4d4d4;">  データベース&#8230; </span><span style="color:#6a9955;"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> OK</span></div>
<div><span style="color:#4ec9b0; font-weight:bold;"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f431.png" alt="🐱" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 監督ネコちゃん「ヨシッ！動作確認OKニャ！」</span></div>
<div>&nbsp;</div>
<div><span style="color:#ce9178;"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a0.png" alt="⚠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 【フェーズ7: ネットワーク切り替え】— 重要工程</span></div>
<div><span style="color:#ce9178;">  <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a0.png" alt="⚠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> この工程は監督ネコちゃんの承認が必要です</span></div>
<div><span style="color:#d4d4d4;">  旧サーバーからIPアドレスを切り離し&#8230; </span><span style="color:#6a9955;"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></span></div>
<div><span style="color:#d4d4d4;">  新サーバーにIPアドレスを割り当て&#8230; </span><span style="color:#6a9955;"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></span></div>
<div><span style="color:#4ec9b0; font-weight:bold;"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f431.png" alt="🐱" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 監督ネコちゃん「ヨシッ！切り替えてOKニャ！」</span></div>
</div>
<p><!-- 作業ネコちゃんのペイン --></p>
<div style="padding:12px 16px; color:#d4d4d4;">
<div style="color:#888;">── 作業ネコちゃん ──</div>
<div><span style="color:#569cd6;">【フェーズ7: ネットワーク切り替え】</span><span style="color:#6a9955;"> 実行中&#8230;</span></div>
<div><span style="color:#d4d4d4;">  <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4e1.png" alt="📡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 監督ネコちゃんの承認を確認&#8230; </span><span style="color:#6a9955;"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 承認済み</span></div>
<div><span style="color:#d4d4d4;">  <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f504.png" alt="🔄" class="wp-smiley" style="height: 1em; max-height: 1em;" /> IPアドレス切り替え中&#8230;</span></div>
<div><span style="color:#6a9955;">  <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> ネットワーク切り替え完了！</span></div>
</div>
</div>
<p style="text-align:center; color:#666; font-size:0.9em;">監督ネコちゃんが「ヨシッ！」で承認。ネットワーク切り替えという重要な工程も安心です。</p>
<p><!-- ターミナル風モックアップ：全工程完了の様子 --></p>
<div style="background:#1e1e1e; border-radius:8px; overflow:hidden; font-family:'Courier New',Consolas,monospace; font-size:13px; line-height:1.6; margin:1.5em 0; max-width:100%;">
<!-- タイトルバー --></p>
<div style="background:#333; padding:6px 12px; display:flex; align-items:center;">
<span style="display:inline-block; width:12px; height:12px; border-radius:50%; background:#ff5f56; margin-right:6px;"></span><br />
<span style="display:inline-block; width:12px; height:12px; border-radius:50%; background:#ffbd2e; margin-right:6px;"></span><br />
<span style="display:inline-block; width:12px; height:12px; border-radius:50%; background:#27c93f; margin-right:6px;"></span><br />
<span style="color:#999; font-size:12px; margin-left:8px;"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f431.png" alt="🐱" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 移行完了！</span>
</div>
<p><!-- 監督ネコちゃんのペイン --></p>
<div style="padding:12px 16px; color:#d4d4d4; border-bottom:2px solid #444;">
<div style="color:#888;">── 監督ネコちゃん ──</div>
<div><span style="color:#569cd6;">[進捗: 10/10 フェーズ完了]</span></div>
<div>&nbsp;</div>
<div><span style="color:#4ec9b0; font-weight:bold; font-size:1.1em;"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f389.png" alt="🎉" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 全フェーズ完了！ヨシッ！！！</span></div>
<div><span style="color:#4ec9b0;"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f431.png" alt="🐱" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 作業ネコちゃんお疲れさまニャ！</span></div>
<div><span style="color:#4ec9b0;"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f431.png" alt="🐱" class="wp-smiley" style="height: 1em; max-height: 1em;" /> ブログ記事も書くニャよ！</span></div>
<div>&nbsp;</div>
<div><span style="color:#6a9955;"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 監督業務完了ニャ</span></div>
</div>
<p><!-- 作業ネコちゃんのペイン --></p>
<div style="padding:12px 16px; color:#d4d4d4;">
<div style="color:#888;">── 作業ネコちゃん ──</div>
<div><span style="color:#6a9955;"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> フェーズ10: 後片付け&#8230; 完了</span></div>
<div>&nbsp;</div>
<div><span style="color:#4ec9b0; font-weight:bold; font-size:1.1em;"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f389.png" alt="🎉" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 移行完了ニャーーー！！！</span></div>
<div>&nbsp;</div>
<div><span style="color:#569cd6;">====================================</span></div>
<div><span style="color:#569cd6;">  全10フェーズ正常完了</span></div>
<div><span style="color:#569cd6;">  ブログURL: https://blog.fits-inc.jp</span></div>
<div><span style="color:#569cd6;">====================================</span></div>
</div>
</div>
<p style="text-align:center; color:#666; font-size:0.9em;">全工程完了！監督ネコちゃん「ヨシッ！！！」作業ネコちゃん「移行完了ニャーーー！！！」</p>
<p>実際の作業はすべてAIが自動で行っています。人間はターミナルを眺めているだけ。ネコちゃんたちが頑張ってくれました。</p>
<h2>移行結果</h2>
<p>無事、ブログの引っ越しが完了しました。</p>
<table style="border-collapse:collapse; width:100%;">
<thead>
<tr>
<th style="border:1px solid #ccc; padding:8px; background:#f5f5f5;">項目</th>
<th style="border:1px solid #ccc; padding:8px; background:#f5f5f5;">移行前</th>
<th style="border:1px solid #ccc; padding:8px; background:#f5f5f5;">移行後</th>
</tr>
</thead>
<tbody>
<tr>
<td style="border:1px solid #ccc; padding:8px;">メモリ</td>
<td style="border:1px solid #ccc; padding:8px;">0.5GB</td>
<td style="border:1px solid #ccc; padding:8px;"><strong>1.0GB</strong></td>
</tr>
<tr>
<td style="border:1px solid #ccc; padding:8px;">データベース</td>
<td style="border:1px solid #ccc; padding:8px;">旧バージョン</td>
<td style="border:1px solid #ccc; padding:8px;"><strong>最新バージョン</strong></td>
</tr>
<tr>
<td style="border:1px solid #ccc; padding:8px;">Webサーバー</td>
<td style="border:1px solid #ccc; padding:8px;">旧バージョン</td>
<td style="border:1px solid #ccc; padding:8px;"><strong>最新バージョン</strong></td>
</tr>
<tr>
<td style="border:1px solid #ccc; padding:8px;">SSL証明書</td>
<td style="border:1px solid #ccc; padding:8px;">設定済み</td>
<td style="border:1px solid #ccc; padding:8px;"><strong>新規取得・設定済み</strong></td>
</tr>
<tr>
<td style="border:1px solid #ccc; padding:8px;">月額</td>
<td style="border:1px solid #ccc; padding:8px;">$5.0</td>
<td style="border:1px solid #ccc; padding:8px;"><strong>$7.0</strong></td>
</tr>
</tbody>
</table>
<p>サーバーの中身はすべて最新になり、メモリにも余裕ができました。ブログの表示速度も体感で速くなっています。</p>
<h2>AIにインフラ作業を任せてみて</h2>
<p>今回の移行を通じて感じたのは、<strong>AIは「速くて正確な作業員」として非常に優秀</strong>だということです。</p>
<ul>
<li><strong>計画立案：</strong>移行手順の洗い出しが数秒で完了</li>
<li><strong>スクリプト生成：</strong>330行の移行スクリプトが数十秒で完成</li>
<li><strong>実行：</strong>10ステップの作業を自動で正確に実行</li>
<li><strong>チェック体制：</strong>監督ネコちゃん＋作業ネコちゃんの2体制で安全に運用</li>
</ul>
<p>今回は人間がスクリプトをレビューしてバグを1件見つけましたが、実はこの<strong>レビュー作業もAIに任せることができます。</strong>プロンプト（指示）や用途を適切に設計すれば、AIが計画・実行・チェックまで一貫して担える時代になっています。</p>
<p>もちろん、<strong>お客様の大事なシステムをお預かりする以上、最終的な判断と責任は人間が持ちます。</strong>大事なのは、「AIにどこまで任せて、どこで人間が判断するか」を正しく設計すること。AIの得意・不得意を把握した上で、適切に使い分けることが重要です。</p>
<h2>まとめ</h2>
<p>弊社FITSは仙台を拠点に、こうした<strong>AI活用を日常の業務に取り入れながら</strong>、Webシステムの開発・運用を行っています。</p>
<p>「AIってどう使うの？」「自社の業務にも使えるの？」といったご相談も大歓迎です。<strong>仙台でAIを使っていろいろやっている会社</strong>として、お気軽にお声がけください。</p>
<hr />
<p><em>この記事の執筆・移行作業は、Claude Code（Anthropic）を活用して実施しました。ネコちゃんたちもお疲れさまでした。</em></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>さかえさんのランチに行ってきました</title>
		<link>https://blog.fits-inc.jp/2024/10/22/%e3%81%95%e3%81%8b%e3%81%88%e3%81%95%e3%82%93%e3%81%ae%e3%83%a9%e3%83%b3%e3%83%81%e3%81%ab%e8%a1%8c%e3%81%a3%e3%81%a6%e3%81%8d%e3%81%be%e3%81%97%e3%81%9f/</link>
		
		<dc:creator><![CDATA[FITS Admin]]></dc:creator>
		<pubDate>Tue, 22 Oct 2024 04:13:41 +0000</pubDate>
				<category><![CDATA[ブログ]]></category>
		<guid isPermaLink="false">https://blog.fits-inc.jp/?p=1155</guid>

					<description><![CDATA[JAビル宮城の地下にある「さかえ」さんのランチで天丼を頂いてきました！こちらのお店は16:00-22:00営業の、天ぷらやお寿司が味わえる居酒屋さんなのですが、先日訪問した際に「ランチもやってるよー」ということだったので [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">JAビル宮城の地下にある「さかえ」さんのランチで天丼を頂いてきました！こちらのお店は16:00-22:00営業の、天ぷらやお寿司が味わえる居酒屋さんなのですが、先日訪問した際に「ランチもやってるよー」ということだったので行ってきました！</p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="759" src="https://blog.fits-inc.jp/wp-content/uploads/2024/10/image-1024x759.png" alt="" class="wp-image-1156" srcset="https://blog.fits-inc.jp/wp-content/uploads/2024/10/image-1024x759.png 1024w, https://blog.fits-inc.jp/wp-content/uploads/2024/10/image-300x223.png 300w, https://blog.fits-inc.jp/wp-content/uploads/2024/10/image-768x570.png 768w, https://blog.fits-inc.jp/wp-content/uploads/2024/10/image-1536x1139.png 1536w, https://blog.fits-inc.jp/wp-content/uploads/2024/10/image.png 2044w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">場所はJAビルの地下です。JAビルはオフィスのある南町通りからは遠いので、自転車で行く感じですね。表には写真みたいに看板しか出てないのですが、JAビルの横の階段を下がっていくと・・</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="759" src="https://blog.fits-inc.jp/wp-content/uploads/2024/10/image-1-1024x759.png" alt="" class="wp-image-1157" srcset="https://blog.fits-inc.jp/wp-content/uploads/2024/10/image-1-1024x759.png 1024w, https://blog.fits-inc.jp/wp-content/uploads/2024/10/image-1-300x223.png 300w, https://blog.fits-inc.jp/wp-content/uploads/2024/10/image-1-768x570.png 768w, https://blog.fits-inc.jp/wp-content/uploads/2024/10/image-1-1536x1139.png 1536w, https://blog.fits-inc.jp/wp-content/uploads/2024/10/image-1.png 2044w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">ご覧のように地下への入り口が現れ、入り口進んで真ん中ほどにお店があります。「寿司」「天ぷら」「極上麦酒」ののれんがかっこいいですね！（天ぷらののれんは畳まれてますが）なお入り口は手動ドアなので、手をかけてぐっと開きましょう</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="759" src="https://blog.fits-inc.jp/wp-content/uploads/2024/10/image-2-1024x759.png" alt="" class="wp-image-1158" srcset="https://blog.fits-inc.jp/wp-content/uploads/2024/10/image-2-1024x759.png 1024w, https://blog.fits-inc.jp/wp-content/uploads/2024/10/image-2-300x223.png 300w, https://blog.fits-inc.jp/wp-content/uploads/2024/10/image-2-768x570.png 768w, https://blog.fits-inc.jp/wp-content/uploads/2024/10/image-2-1536x1139.png 1536w, https://blog.fits-inc.jp/wp-content/uploads/2024/10/image-2.png 2044w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">外の壁にもメニューがあります。どうやらお目当ての天丼は400円プラスすると、極上天丼（エビが4本プラス）になるみたいです。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="759" height="1024" src="https://blog.fits-inc.jp/wp-content/uploads/2024/10/image-3-759x1024.png" alt="" class="wp-image-1159" srcset="https://blog.fits-inc.jp/wp-content/uploads/2024/10/image-3-759x1024.png 759w, https://blog.fits-inc.jp/wp-content/uploads/2024/10/image-3-222x300.png 222w, https://blog.fits-inc.jp/wp-content/uploads/2024/10/image-3-768x1036.png 768w, https://blog.fits-inc.jp/wp-content/uploads/2024/10/image-3.png 1124w" sizes="auto, (max-width: 759px) 100vw, 759px" /></figure>



<p class="wp-block-paragraph">着丼！</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="759" src="https://blog.fits-inc.jp/wp-content/uploads/2024/10/image-4-1024x759.png" alt="" class="wp-image-1160" srcset="https://blog.fits-inc.jp/wp-content/uploads/2024/10/image-4-1024x759.png 1024w, https://blog.fits-inc.jp/wp-content/uploads/2024/10/image-4-300x223.png 300w, https://blog.fits-inc.jp/wp-content/uploads/2024/10/image-4-768x570.png 768w, https://blog.fits-inc.jp/wp-content/uploads/2024/10/image-4-1536x1139.png 1536w, https://blog.fits-inc.jp/wp-content/uploads/2024/10/image-4.png 2044w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">アップも。ボリュームたっぷりです。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="759" src="https://blog.fits-inc.jp/wp-content/uploads/2024/10/image-5-1024x759.png" alt="" class="wp-image-1161" srcset="https://blog.fits-inc.jp/wp-content/uploads/2024/10/image-5-1024x759.png 1024w, https://blog.fits-inc.jp/wp-content/uploads/2024/10/image-5-300x223.png 300w, https://blog.fits-inc.jp/wp-content/uploads/2024/10/image-5-768x570.png 768w, https://blog.fits-inc.jp/wp-content/uploads/2024/10/image-5-1536x1139.png 1536w, https://blog.fits-inc.jp/wp-content/uploads/2024/10/image-5.png 2044w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">えび2本、ピーマン、なす、さつまいも、蓮根、ちくわ、しめじ（舞茸じゃなくてしめじなの珍しいですね）などが載っていて、大満足の味でした！なお、タレは衣に絡ませてあるので、どこを食べてもタレの味がして美味しい！以前に、アーケードの天丼てんやがなくなって、仙台で天丼が食べたくなったらどこ行けばいいんやーって悲しい気持ちになったのですが、これからはさかえさんに行こうと思います。なお、店長さんのお名前がさかえさんなので、お店のなまえもそこから取ったんだろうなーって思ってます。</p>



<p class="wp-block-paragraph">あと、帰り道で知ったのですが勾当台公園に地下道を通す工事をやっているみたいですね。どこまで伸びるか分からないですがフェスやイベントの際に、東と西が行き来しやすくなる配置だといいですね。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="759" height="1024" src="https://blog.fits-inc.jp/wp-content/uploads/2024/10/image-6-759x1024.png" alt="" class="wp-image-1162" srcset="https://blog.fits-inc.jp/wp-content/uploads/2024/10/image-6-759x1024.png 759w, https://blog.fits-inc.jp/wp-content/uploads/2024/10/image-6-222x300.png 222w, https://blog.fits-inc.jp/wp-content/uploads/2024/10/image-6-768x1036.png 768w, https://blog.fits-inc.jp/wp-content/uploads/2024/10/image-6.png 1124w" sizes="auto, (max-width: 759px) 100vw, 759px" /></figure>



<p class="wp-block-paragraph">店名：寿司・天ぷら・極上麦酒さかえ<br>場所：JAビル宮城の地下１階<br>訪問日：10/21（月）<br>頼んだもの：天丼大盛り1200円<br>定休日：日曜日</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Yappliのフォームの外部API連携について</title>
		<link>https://blog.fits-inc.jp/2024/06/21/yappli-lite-api/</link>
		
		<dc:creator><![CDATA[FITS Admin]]></dc:creator>
		<pubDate>Fri, 21 Jun 2024 07:47:53 +0000</pubDate>
				<category><![CDATA[ブログ]]></category>
		<guid isPermaLink="false">https://blog.fits-inc.jp/?p=1147</guid>

					<description><![CDATA[こんにちは！FITSのアプリ開発WGです。今日はYappliのフォーム機能を使っていて気になった機能（外部API連携）について調べたことを記事にまとめています。Yappliはノーコードのアプリ開発プラットフォームで、弊社 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">こんにちは！FITSのアプリ開発WGです。今日はYappliのフォーム機能を使っていて気になった機能（外部API連携）について調べたことを記事にまとめています。Yappliはノーコードのアプリ開発プラットフォームで、弊社では月額39,800のYappli Liteプランを契約しています。</p>



<p class="wp-block-paragraph">最初に契約した時に手違いがあったのか、必要なチュートリアル資料などが送られてきておらず、公式のチュートリアルアプリを色々と確認しながら少しずつ機能の理解を深めていきました。その中で一番理解が難しかったのがフォーム機能に内包されている「外部API連携」です。</p>



<p class="wp-block-paragraph">この外部API連携については全然情報が出て来ず、こちらで想定するSlack連携などを組み込んでも全く動作してくれませんでした。設定としては</p>



<p class="wp-block-paragraph">・会員登録APIのエンドポイント（プレビューアプリ用）<br>・会員登録APIのエンドポイント（本番アプリ用）<br>・APIのリクエストパラメータへのマッピング</p>



<p class="wp-block-paragraph">が存在するようです。試しに設定したエンドポイントに送られてくるデータをネットワークのログで確認したところ</p>



<pre class="wp-block-code"><code>parameters&#91;ud_id]=xxx&amp;parameters&#91;created_at]=2024-06-21 07:27:36&amp;parameters&#91;param1]=yyy&amp;parameters&#91;param2]=zzz</code></pre>



<p class="wp-block-paragraph">というように、設定したパラメータが parameters[パラメータ名] =バリューのペアで入ったテキストを、URLエンコードしたものが入っているようでした。ただ、郵便番号や性別、生年月日などは含まれておりません（おそらくYappliのサーバーにだけ連携されているのかと）</p>



<p class="wp-block-paragraph">最終的にどのように利用すればいいのかをサポートに確認したところ、Yappli Lite では外部API連携の設定はできるのだけど、プランの機能には含まれていない、とのことでした。Yappli が機能追加ごとの課金であることは知っていましたが、必要最低限のYappli LiteプランではAPI連携系の機能は一切使えない、とのことでした。Yappli Liteを使ってAPIサーバーとの連携を使ったアプリを作りたい、という場合は注意が必要そうです。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>php実行時にlibicuio.73.dylibphpの参照エラー</title>
		<link>https://blog.fits-inc.jp/2024/06/20/libicuio-73-dylibphp/</link>
		
		<dc:creator><![CDATA[FITS Admin]]></dc:creator>
		<pubDate>Thu, 20 Jun 2024 22:33:04 +0000</pubDate>
				<category><![CDATA[技術ブログ]]></category>
		<category><![CDATA[icu4c]]></category>
		<guid isPermaLink="false">https://blog.fits-inc.jp/?p=1144</guid>

					<description><![CDATA[先日、開発環境を立ち上げる際にphp実行時エラーに遭遇しました。 brew info で調べてみるとicu4cの74が入っていたようなので、Qiitaや他のテックサイトを参考に、gitからicu4cの73をbrew ta [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">先日、開発環境を立ち上げる際にphp実行時エラーに遭遇しました。</p>



<pre class="wp-block-code"><code>% php -v
dyld&#91;84774]: Library not loaded: @loader_path/../../../../opt/icu4c/lib/libicuio.73.dylib
Referenced from: &lt;90055B36-6315-3FD7-9F54-5F9D08D9F325> /opt/homebrew/Cellar/php@8.0/8.0.30/bin/php
Reason: tried: '/opt/homebrew/Cellar/php@8.0/8.0.30/bin/../../../../opt/icu4c/lib/libicuio.73.dylib' (no such file), '/usr/local/lib/libicuio.73.dylib' (no such file), '/usr/lib/libicuio.73.dylib' (no such file, not in dyld cache)
zsh: abort php -v

</code></pre>



<p class="wp-block-paragraph">brew info で調べてみるとicu4cの74が入っていたようなので、Qiitaや他のテックサイトを参考に、gitからicu4cの73をbrew tapしてインストールする方法を試していたのですが、gitリポジトリでgit clone する際にicu4cのログがgit logで見つからず（おそらくパスが間違っていたのだと思うのですが）、最終的に下記の方法でlibicu4cの7.3をインストールしました。</p>



<pre class="wp-block-code"><code>wget https://raw.githubusercontent.com/Homebrew/homebrew-core/6aca0f221ee4ac0c25735dbf31cc01fed984d8f6/Formula/icu4c.rb<br>brew reinstall --formula icu4c.rb</code></pre>



<p class="wp-block-paragraph">最終的にはphp8.0をバージョンアップすることで恒久対応を行ったのですが、取り急ぎphp8.0を使わなくてはいけない方でlibicu4cがバージョンアップされてしまって困っている方がいたら上記の方法で解決できる可能性があります。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Lightsailで運用しているWordPressのPHPバージョンアップ作業</title>
		<link>https://blog.fits-inc.jp/2024/06/16/lightsail-wordpress-php-version-up-php8-2/</link>
		
		<dc:creator><![CDATA[FITS Admin]]></dc:creator>
		<pubDate>Sun, 16 Jun 2024 08:47:21 +0000</pubDate>
				<category><![CDATA[ブログ]]></category>
		<guid isPermaLink="false">https://blog.fits-inc.jp/?p=1112</guid>

					<description><![CDATA[こんにちは、FITSのブログ担当です。本日はWordPressのために実施した、PHPのバージョンアップ作業について紹介しますね。なお今回のWordPressはLightsail上で運用されています。 まず、PHPのバー [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">こんにちは、FITSのブログ担当です。本日はWordPressのために実施した、PHPのバージョンアップ作業について紹介しますね。なお今回のWordPressはLightsail上で運用されています。</p>



<p class="wp-block-paragraph">まず、PHPのバージョンアップを行う必要性についてですが、PHPのバージョンを更新せずにWordPress を運用していると、ダッシュボードに「PHPの更新を推奨」というメッセージが表示されることがあります。PHPにもバージョンごとにサポート期間が設定されていますので、それが切れるとWordPress側で親切にも警告を表示してくれる、ということですね。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="790" height="382" src="https://blog.fits-inc.jp/wp-content/uploads/2024/06/image.png" alt="" class="wp-image-1113" srcset="https://blog.fits-inc.jp/wp-content/uploads/2024/06/image.png 790w, https://blog.fits-inc.jp/wp-content/uploads/2024/06/image-300x145.png 300w, https://blog.fits-inc.jp/wp-content/uploads/2024/06/image-768x371.png 768w" sizes="auto, (max-width: 790px) 100vw, 790px" /></figure>



<p class="wp-block-paragraph">この「PHPの更新についてさらに詳しく」を見るとわかるのですが、WordPress自体にはPHPのバージョンアップをサポートする機能はなく、単純にバックアップを取った後に自身でPHPをバージョンアップさせることとなります。</p>



<p class="wp-block-paragraph">ただ、過去の経験からLightsailにおけるPHPのアップデート作業は依存関係などで作業が複雑化することが多く、単純にLightsailに別なWordPressインスタンスを構築し、そこに対してバックアップデータを復帰するのが最も確実な対応方法となります。まずはLightsailのダッシュボードから新しいインスタンスを立ち上げていきます。その際に、WordPress用インスタンスイメージを選びましょう。また、立ち上げたら静的IPアドレスをアタッチしておくと良いです。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="641" src="https://blog.fits-inc.jp/wp-content/uploads/2024/06/image-1-1024x641.png" alt="" class="wp-image-1114" srcset="https://blog.fits-inc.jp/wp-content/uploads/2024/06/image-1-1024x641.png 1024w, https://blog.fits-inc.jp/wp-content/uploads/2024/06/image-1-300x188.png 300w, https://blog.fits-inc.jp/wp-content/uploads/2024/06/image-1-768x481.png 768w, https://blog.fits-inc.jp/wp-content/uploads/2024/06/image-1.png 1092w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">立ち上げインスタンスを確認すると、PHPのバージョンが新しくなっていることが分かります。※PHPのバージョンはbitnamiのWordPressイメージ次第のため、新しくはあるものの、最新のPHPバージョンではないことに注意してください。</p>



<pre class="wp-block-code"><code>bitnami@ip-xxx-xxx-xxx-xxx:~$ php -v
PHP 8.2.19 (cli) (built: May 7 2024 15:22:14) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.19, Copyright (c) Zend Technologies
with Zend OPcache v8.2.19, Copyright (c), by Zend Technologies
bitnami@ip-xxx-xxx-xxx-xxx:~$</code></pre>



<p class="wp-block-paragraph">さらに、WordPressの認証情報を確認し、管理画面にもログイン可能であることを確認します。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="449" src="https://blog.fits-inc.jp/wp-content/uploads/2024/06/image-2-1024x449.png" alt="" class="wp-image-1117" srcset="https://blog.fits-inc.jp/wp-content/uploads/2024/06/image-2-1024x449.png 1024w, https://blog.fits-inc.jp/wp-content/uploads/2024/06/image-2-300x131.png 300w, https://blog.fits-inc.jp/wp-content/uploads/2024/06/image-2-768x336.png 768w, https://blog.fits-inc.jp/wp-content/uploads/2024/06/image-2-1536x673.png 1536w, https://blog.fits-inc.jp/wp-content/uploads/2024/06/image-2.png 1895w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">今回の環境ではWordPressのファイル群は /opt/bitnami/apps/wordpressにまとまっていました。wp-content の中に以降に必要となる uploads、themes、pluginsなども存在しています</p>



<pre class="wp-block-code"><code>root@ip-xx-xx-xx-xx:/opt/bitnami/apps/wordpress/htdocs# ls
activate.html wp-activate.php wp-content wp-mail.php
index.php wp-admin wp-cron.php wp-settings.php
license.txt wp-blog-header.php wp-includes wp-signup.php
pairing.html wp-comments-post.php wp-links-opml.php wp-trackback.php
readme.html wp-config.php wp-load.php xmlrpc.php
robots.txt wp-config-sample.php wp-login.php

root@ip-xx-xx-xx-xx:/opt/bitnami/apps/wordpress/htdocs# ls wp-content/
cache      languages  themes   upgrade-temp-backup  w3tc-config
index.php  plugins    upgrade  uploads</code></pre>



<p class="wp-block-paragraph">さらに、データベースのダンプデータ（バックアップデータ）も取得しておきます。</p>



<pre class="wp-block-code"><code>#mysqldump -u bn_wordpress -p bitnami_wordpress &gt; bitnami_wordpress.sql</code></pre>



<p class="wp-block-paragraph">この後はバックアップデータを移行先の Lightsail インスタンスに格納する必要があります。SSHでCLIから接続しても良いのですが、今回Advanced File ManagerプラグインのFTP機能を使ってアップロードすることにします。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="480" src="http://54.150.137.162/wp-content/uploads/2024/06/image-3-1024x480.png" alt="" class="wp-image-1126" srcset="https://blog.fits-inc.jp/wp-content/uploads/2024/06/image-3-1024x480.png 1024w, https://blog.fits-inc.jp/wp-content/uploads/2024/06/image-3-300x141.png 300w, https://blog.fits-inc.jp/wp-content/uploads/2024/06/image-3-768x360.png 768w, https://blog.fits-inc.jp/wp-content/uploads/2024/06/image-3.png 1292w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">後は必要なファイルと、データベースの取り込みをすれば作業完了ですが「このサイトに重大なエラーがありました」が発生しました。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="250" src="http://54.150.137.162/wp-content/uploads/2024/06/image-4-1024x250.png" alt="" class="wp-image-1128" srcset="https://blog.fits-inc.jp/wp-content/uploads/2024/06/image-4-1024x250.png 1024w, https://blog.fits-inc.jp/wp-content/uploads/2024/06/image-4-300x73.png 300w, https://blog.fits-inc.jp/wp-content/uploads/2024/06/image-4-768x187.png 768w, https://blog.fits-inc.jp/wp-content/uploads/2024/06/image-4-1536x375.png 1536w, https://blog.fits-inc.jp/wp-content/uploads/2024/06/image-4.png 1582w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">wp-config.php のデバッグ設定をONにしてデバッグします</p>



<pre class="wp-block-code"><code>define( 'WP_DEBUG', true );

define( 'WP_DEBUG_DISPLAY', true);

define( 'WP_DEBUG_LOG', true );</code></pre>



<p class="wp-block-paragraph">結果、今回は下記のエラーが発生していました<br><strong>Fatal error</strong>: Uncaught Error: Call to undefined function create_function()<br><strong>Fatal error</strong>: Array and string offset access syntax with curly braces is no longer supported<br>これらは、PHPのバージョンが上がって廃止になったものなので、create_functionを無名関数に置き換え、配列への波括弧によるアクセスを、角括弧に置き換えれば問題なく動きます（今回はテーマのファイルで発生していたため、少し発見が遅れました）</p>



<p class="wp-block-paragraph">後はLet &#8216;s Encrypt を使ってSSL対応を行います。今回はbitnamiのイメージを使っているので、certbotではなくてbncertを使うことで恒久的なSSL対応が可能となります。<br>参考：AWS公式ドキュメント「Lightsail WordPress のインスタンスで HTTPS を有効にする」<br><a href="https://docs.aws.amazon.com/ja_jp/lightsail/latest/userguide/amazon-lightsail-enabling-https-on-wordpress.html">https://docs.aws.amazon.com/ja_jp/lightsail/latest/userguide/amazon-lightsail-enabling-https-on-wordpress.html</a></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Google Workspaceのグループメール閲覧権限問題とその対処法</title>
		<link>https://blog.fits-inc.jp/2024/05/24/google-workspace%e3%81%ae%e3%82%b0%e3%83%ab%e3%83%bc%e3%83%97%e3%83%a1%e3%83%bc%e3%83%ab%e9%96%b2%e8%a6%a7%e6%a8%a9%e9%99%90%e5%95%8f%e9%a1%8c%e3%81%a8%e3%81%9d%e3%81%ae%e5%af%be%e5%87%a6%e6%b3%95/</link>
		
		<dc:creator><![CDATA[FITS Admin]]></dc:creator>
		<pubDate>Fri, 24 May 2024 12:02:20 +0000</pubDate>
				<category><![CDATA[ブログ]]></category>
		<guid isPermaLink="false">https://blog.fits-inc.jp/?p=1098</guid>

					<description><![CDATA[こんにちは！FITSの情報システムワーキンググループ（情シスWG）です。情報シスWGでは社内システムの運用や権限、ロールの確認をメインに活動しています。今回はその活動の中で見つけた運用の注意点を備忘録も兼ねて共有します！ [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">こんにちは！FITSの情報システムワーキンググループ（情シスWG）です。<br>情報シスWGでは社内システムの運用や権限、ロールの確認をメインに活動しています。今回はその活動の中で見つけた運用の注意点を備忘録も兼ねて共有します！</p>



<p class="wp-block-paragraph">FITSではGoogle Workspaceを利用しています。<br>あるとき、Googleグループのすべてのメールが閲覧できるという報告を受けました。<br>幸い、情報漏洩などの事故は起きていませんでしたが、今後に備えて原因の解明と対策を行いました。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1022" height="513" src="https://blog.fits-inc.jp/wp-content/uploads/2024/05/google-group-1.png" alt="" class="wp-image-1102" srcset="https://blog.fits-inc.jp/wp-content/uploads/2024/05/google-group-1.png 1022w, https://blog.fits-inc.jp/wp-content/uploads/2024/05/google-group-1-300x151.png 300w, https://blog.fits-inc.jp/wp-content/uploads/2024/05/google-group-1-768x386.png 768w" sizes="auto, (max-width: 1022px) 100vw, 1022px" /></figure>



<h2 class="wp-block-heading">原因の特定</h2>



<p class="wp-block-paragraph">原因はGoogle Workspaceの管理者ロール設定にありました。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1022" height="541" src="https://blog.fits-inc.jp/wp-content/uploads/2024/05/role編集後.png" alt="" class="wp-image-1103" srcset="https://blog.fits-inc.jp/wp-content/uploads/2024/05/role編集後.png 1022w, https://blog.fits-inc.jp/wp-content/uploads/2024/05/role編集後-300x159.png 300w, https://blog.fits-inc.jp/wp-content/uploads/2024/05/role編集後-768x407.png 768w" sizes="auto, (max-width: 1022px) 100vw, 1022px" /></figure>



<p class="wp-block-paragraph">以下のロールが割り当てられたメンバーは、グループ側の設定で閲覧制限をかけていても適用されずに閲覧が可能です。<br>・特権管理者<br>・グループ管理者<br>閲覧できる旨の報告をしてくれた方は、グループ作成業務の際にグループ管理者ロールを割り当てられていたため、意図せず全てのメールが閲覧できる状態でした。</p>



<h2 class="wp-block-heading">対策</h2>



<p class="wp-block-paragraph">グループの閲覧権限は必要のない権限であったため、ロール権限からグループの閲覧権限を外すことを試みましたが、特権管理者ロールやグループ管理者ロールはプリセットなロールであり、権限の変更はできませんでした。</p>



<p class="wp-block-paragraph">そのため、グループの閲覧以外の権限を同等にした管理者ロールを手動で作成し、そちらに現在のメンバーを移行することで対応しました。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="912" height="799" src="https://blog.fits-inc.jp/wp-content/uploads/2024/05/Groups-Administrator-fixed.png" alt="" class="wp-image-1104" srcset="https://blog.fits-inc.jp/wp-content/uploads/2024/05/Groups-Administrator-fixed.png 912w, https://blog.fits-inc.jp/wp-content/uploads/2024/05/Groups-Administrator-fixed-300x263.png 300w, https://blog.fits-inc.jp/wp-content/uploads/2024/05/Groups-Administrator-fixed-768x673.png 768w" sizes="auto, (max-width: 912px) 100vw, 912px" /></figure>



<h2 class="wp-block-heading">注意点</h2>



<p class="wp-block-paragraph">この対応を行う際には以下の点に注意が必要です。</p>



<p class="wp-block-paragraph">特権管理者ロールは特殊なロール（スーパーアドミン）であり、権限設定画面に明記されていない権限と紐づいています。<br>つまり、権限を手動で同等に作成したつもりでも、今まで出来ていた操作ができなくなることがあります。<br>例えば、Google WorkspaceとAWSのIAMを統合してSSOを利用する場合、特権管理者ロールを持っていないとそれらの設定や操作ができません。</p>



<p class="wp-block-paragraph"><a>&#8211; 参考リンク: Configure SAML and SCIM with Google Workspace and IAM Identity Center &#8211;</a></p>



<h2 class="wp-block-heading">その他の対応方法</h2>



<p class="wp-block-paragraph">私が行った方法以外にも、以下のような対応方法が考えられます。<br><br>・管理者の権限の見直し<br>不必要に管理者権限を持っているメンバーがいないか確認し、権限を持つ人数を最小限に抑えること。管理者権限を持つ必要があるか確認を行い、必要のないメンバーからはその権限を削除する。<br><br>・情報の機密性の評価<br>共有される情報の機密性を評価し、Googleグループ内で共有すべきでない機密性の高い情報は、もっとセキュアな方法（例えば、エンドツーエンド暗号化を提供するプラットフォーム）で共有することを検討する。</p>



<h2 class="wp-block-heading">まとめ</h2>



<p class="wp-block-paragraph">組織でGoogle Workspaceを運用する場合、管理者権限は情シスなど一部のメンバーに限定しプロジェクトメンバーには権限のサブセットをロール化するのが基本となります。<br>もし管理者権限を運用されているのであれば、不要な権限を与えてしまっていないかと、<br>別途ロールを発行することが可能か検討するのが良いかもしれません。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>きゅむろんが公開されました</title>
		<link>https://blog.fits-inc.jp/2024/05/22/%e3%81%8d%e3%82%85%e3%82%80%e3%82%8d%e3%82%93%e3%81%8c%e5%85%ac%e9%96%8b%e3%81%95%e3%82%8c%e3%81%be%e3%81%97%e3%81%9f/</link>
		
		<dc:creator><![CDATA[FITS Admin]]></dc:creator>
		<pubDate>Wed, 22 May 2024 05:34:11 +0000</pubDate>
				<category><![CDATA[ブログ]]></category>
		<guid isPermaLink="false">https://blog.fits-inc.jp/?p=1091</guid>

					<description><![CDATA[弊社にて開発協力している最新気象レーダーMP-PAWRのデータ配信プラットフォーム 「きゅむろん」（ベータ版）のサイトが公開されました。高性能なMP-PAWRのデータを3D表示に時間軸を加えた4Dで表示することが可能な画 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">弊社にて開発協力している最新気象レーダーMP-PAWRのデータ配信プラットフォーム 「きゅむろん」（ベータ版）のサイトが公開されました。高性能なMP-PAWRのデータを3D表示に時間軸を加えた4Dで表示することが可能な画期的なシステムとなっております。詳しくは株式会社Preferred Networks様のサイトで ニュースリリースをご覧いただけます。</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-preferred-networks wp-block-embed-preferred-networks"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="KQ88G7uIda"><a href="https://www.preferred.jp/ja/news/pr20240522/">最新気象レーダーMP-PAWRのデータ配信プラットフォーム 「きゅむろん」（ベータ版）を公開</a></blockquote><iframe loading="lazy" class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8220;最新気象レーダーMP-PAWRのデータ配信プラットフォーム 「きゅむろん」（ベータ版）を公開&#8221; &#8212; Preferred Networks" src="https://www.preferred.jp/ja/news/pr20240522/embed/#?secret=KQ88G7uIda" data-secret="KQ88G7uIda" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>laravel11でlaravel-adminがエラーになる話</title>
		<link>https://blog.fits-inc.jp/2024/05/16/laravel-admin%e3%81%a7isdoctrineavailable%e3%81%8cerror/</link>
		
		<dc:creator><![CDATA[FITS Admin]]></dc:creator>
		<pubDate>Thu, 16 May 2024 02:35:31 +0000</pubDate>
				<category><![CDATA[ブログ]]></category>
		<guid isPermaLink="false">https://blog.fits-inc.jp/?p=1080</guid>

					<description><![CDATA[みなさんこんにちは！本日はlaravelの最新バージョンであるlaravel11にlaravel-adminを入れて運用できるかどうかを確認した時のお話をします。 結論から言うと「laravel-admin自体は動くけど [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">みなさんこんにちは！本日はlaravelの最新バージョンであるlaravel11にlaravel-adminを入れて運用できるかどうかを確認した時のお話をします。</p>



<p class="wp-block-paragraph">結論から言うと「laravel-admin自体は動くけどartisan adminの一部のコマンドが動かない」という状況になります。laravel11ではこちらのリンクにあるようにDoctrine DBALの依存関係がなくなっています。</p>



<p class="wp-block-paragraph"><a href="https://laravel.com/docs/11.x/upgrade#doctrine-dbal-removal">https://laravel.com/docs/11.x/upgrade#doctrine-dbal-removal</a></p>



<p class="wp-block-paragraph">なのでlaravel-adminを使いたい場合は、laravel10の導入が選択肢となりそうです。</p>



<h2 class="wp-block-heading">laravel11とlaravel-adminの導入</h2>



<p class="wp-block-paragraph">laravel11導入とlaravel-adminのインストールを順を追って説明すると、まずは公式の</p>



<p class="wp-block-paragraph"><a href="https://readouble.com/laravel/11.x/ja/installation.html">https://readouble.com/laravel/11.x/ja/installation.html</a></p>



<p class="wp-block-paragraph">にあるインストールコマンド（下記はMacOSの場合）</p>



<pre class="wp-block-code"><code>curl -s "https://laravel.build/laravel11" | bash</code></pre>



<p class="wp-block-paragraph">でlaravel11をインストールします（URLの末尾はアプリのディレクトリとなる）。インストールが終わったらコンテナを起動しましょう</p>



<pre class="wp-block-code"><code>cd laravel11
./vendor/bin/sail up</code></pre>



<p class="wp-block-paragraph">コンテナが起動したら</p>



<pre class="wp-block-code"><code>./vendor/bin/sail artisan migrate</code></pre>



<p class="wp-block-paragraph">これだけでlaravel11はインストール完了です。とっても簡単ですね。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="635" src="https://blog.fits-inc.jp/wp-content/uploads/2024/05/image-1024x635.png" alt="" class="wp-image-1082" srcset="https://blog.fits-inc.jp/wp-content/uploads/2024/05/image-1024x635.png 1024w, https://blog.fits-inc.jp/wp-content/uploads/2024/05/image-300x186.png 300w, https://blog.fits-inc.jp/wp-content/uploads/2024/05/image-768x477.png 768w, https://blog.fits-inc.jp/wp-content/uploads/2024/05/image-1536x953.png 1536w, https://blog.fits-inc.jp/wp-content/uploads/2024/05/image-2048x1271.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">次に、laravel-adminを導入していきます。</p>



<pre class="wp-block-code"><code>./vendor/bin/sail composer require encore/laravel-admin
./vendor/bin/sail artisan vendor:publish --provider="Encore\Admin\AdminServiceProvider"
./vendor/bin/sail artisan admin:install</code></pre>



<p class="wp-block-paragraph">こちらもとっても簡単ですね。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="600" src="https://blog.fits-inc.jp/wp-content/uploads/2024/05/image-1-1024x600.png" alt="" class="wp-image-1085" srcset="https://blog.fits-inc.jp/wp-content/uploads/2024/05/image-1-1024x600.png 1024w, https://blog.fits-inc.jp/wp-content/uploads/2024/05/image-1-300x176.png 300w, https://blog.fits-inc.jp/wp-content/uploads/2024/05/image-1-768x450.png 768w, https://blog.fits-inc.jp/wp-content/uploads/2024/05/image-1-1536x900.png 1536w, https://blog.fits-inc.jp/wp-content/uploads/2024/05/image-1-2048x1200.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">次に、モデル用のコントローラーを生成するためにいつものコマンドを叩いたところエラーが発生。</p>



<pre class="wp-block-code"><code>./vendor/bin/sail artisan admin:make UserController --model=App\\Models\\User</code></pre>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="479" src="https://blog.fits-inc.jp/wp-content/uploads/2024/05/image-2-1024x479.png" alt="" class="wp-image-1087" srcset="https://blog.fits-inc.jp/wp-content/uploads/2024/05/image-2-1024x479.png 1024w, https://blog.fits-inc.jp/wp-content/uploads/2024/05/image-2-300x140.png 300w, https://blog.fits-inc.jp/wp-content/uploads/2024/05/image-2-768x359.png 768w, https://blog.fits-inc.jp/wp-content/uploads/2024/05/image-2.png 1428w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<pre class="wp-block-code"><code>   BadMethodCallException 

  Method Illuminate\Database\MySqlConnection::isDoctrineAvailable does not exist.

  at vendor/laravel/framework/src/Illuminate/Macroable/Traits/Macroable.php:112
      108▕      */
      109▕     public function __call($method, $parameters)
      110▕     {
      111▕         if (! static::hasMacro($method)) {
  ➜ 112▕             throw new BadMethodCallException(sprintf(
      113▕                 'Method %s::%s does not exist.', static::class, $method
      114▕             ));
      115▕         }
      116▕ 

  i   Bad Method Call: Did you mean Illuminate\Database\MySqlConnection::availableAt() ? </code></pre>



<p class="wp-block-paragraph">んん？なんでしょうこれは。と思って調べるとバッチリ「Laravel11ではDoctrine DBAL関連のメソッドが削除された」と出てきますね。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="715" src="https://blog.fits-inc.jp/wp-content/uploads/2024/05/image-3-1024x715.png" alt="" class="wp-image-1088" srcset="https://blog.fits-inc.jp/wp-content/uploads/2024/05/image-3-1024x715.png 1024w, https://blog.fits-inc.jp/wp-content/uploads/2024/05/image-3-300x209.png 300w, https://blog.fits-inc.jp/wp-content/uploads/2024/05/image-3-768x536.png 768w, https://blog.fits-inc.jp/wp-content/uploads/2024/05/image-3-1536x1072.png 1536w, https://blog.fits-inc.jp/wp-content/uploads/2024/05/image-3.png 1544w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">代替としてSchema::xxxを使えとあるのですが、現時点ではlaravel-adminがこれに対応するかどうか不明ですので、一旦laravel11とlaravel-adminの組み合わせは選択肢から外すのが良さそうです。</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
