<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>NGW開発BLOG</title>
    <link>https://ngw.ictcacao.com/NgwTechBlog/</link>
    <description>自治体向け行政システム NGW の設計判断・実装の裏側を綴る技術ブログ。</description>
    <language>ja</language>
    <item>
      <title>メールクライアントは作らなかった — Roundcube を選んだ4つの条件</title>
      <link>https://ngw.ictcacao.com/NgwTechBlog/posts/why-roundcube.html</link>
      <guid>https://ngw.ictcacao.com/NgwTechBlog/posts/why-roundcube.html</guid>
      <pubDate>Sun, 23 Aug 2026 00:00:00 GMT</pubDate>
      <description>Webメール連携で、IMAPクライアントは自作しなかった。PHP製・無料・自社製品での実績・AutoLoginがある、の4条件でRoundcubeを選んだ。開けたらAutoLoginはサンプルだったが、選定は正しかった。</description>
    </item>
    <item>
      <title>仕上げは、レプリ設定で収まる — 一度きりの手順を、何度でも回せる一本にした</title>
      <link>https://ngw.ictcacao.com/NgwTechBlog/posts/finish-in-repl-setup.html</link>
      <guid>https://ngw.ictcacao.com/NgwTechBlog/posts/finish-in-repl-setup.html</guid>
      <pubDate>Sun, 23 Aug 2026 00:00:00 GMT</pubDate>
      <description>二台を組んだ「あと」の仕上げ ― 保管先を分ける、最初のバックアップ、預かり、監視を映す ― が、いくつものボタンと手作業に散らばっていた。それを一本にまとめた。肝は機能の多さではなく「何度でもやり直せる」ことのほうだった。今日はそこに二つ足した。複製が運んでくる大きすぎるメモリの取り分を直す「最適化」と、預かりの一日二回化。</description>
    </item>
    <item>
      <title>バックアップは「取った」ではなく「戻せる」 — 監視の緑が隠していた三つの穴</title>
      <link>https://ngw.ictcacao.com/NgwTechBlog/posts/taken-vs-restorable.html</link>
      <guid>https://ngw.ictcacao.com/NgwTechBlog/posts/taken-vs-restorable.html</guid>
      <pubDate>Sun, 23 Aug 2026 00:00:00 GMT</pubDate>
      <description>監視画面が一列に緑を並べていても、それが答えているのは「取れた」だけで、「戻せる」ではない。対象に書いてあるのに一度も取れていなかった DB、「取った」と言い張る画面、静かに何もしなかった「完全初期化」。この夏の運用でまとめて踏んだ、取得と復元のあいだの三つの穴。</description>
    </item>
    <item>
      <title>バージョン表記に β を付けた — ベータ版の決め手は、機能が揃ったことではなかった</title>
      <link>https://ngw.ictcacao.com/NgwTechBlog/posts/promoted-to-beta.html</link>
      <guid>https://ngw.ictcacao.com/NgwTechBlog/posts/promoted-to-beta.html</guid>
      <pubDate>Sat, 22 Aug 2026 00:00:00 GMT</pubDate>
      <description>8月21日、メールを「収受転送」で添付ごと収受文書にできるメール連携が完成した。併せて道具が揃い、残るのは現地でしかできない試験だけになった。だからログイン画面の版数に β が付いた。夜3時の67秒、52時間の誤警報、複製した機体で死んだメール、そして再試験でのログ増分0行。</description>
    </item>
    <item>
      <title>わしらは怪しいコピー隊 ― 138個だけが、どうしても写らないのだ</title>
      <link>https://ngw.ictcacao.com/NgwTechBlog/posts/rsync-in-a-button.html</link>
      <guid>https://ngw.ictcacao.com/NgwTechBlog/posts/rsync-in-a-button.html</guid>
      <pubDate>Tue, 11 Aug 2026 00:00:00 GMT</pubDate>
      <description>移行試験でファイル一式を写すことになった。408GB、73万個。Finderはぐんにゃり止まり、rsyncに乗り換えたら今度は138個だけが写らない。犯人はファイル名の切られ方であった。</description>
    </item>
    <item>
      <title>LGWANに任意団体の事務局を持ち込んだら、つまづいたのはDatePickerだった</title>
      <link>https://ngw.ictcacao.com/NgwTechBlog/posts/cgw-ngw.html</link>
      <guid>https://ngw.ictcacao.com/NgwTechBlog/posts/cgw-ngw.html</guid>
      <pubDate>Sun, 09 Aug 2026 00:00:00 GMT</pubDate>
      <description>自治体向けの文書管理グループウェアに、任意団体向けの事務処理ツールを連携させた。一日の作業のうち、一番時間を食ったのは月名が英語で出ることだった。</description>
    </item>
    <item>
      <title>負荷試験で壊れたのは、性能ではなく発信番号だった</title>
      <link>https://ngw.ictcacao.com/NgwTechBlog/posts/loadtest-found-correctness.html</link>
      <guid>https://ngw.ictcacao.com/NgwTechBlog/posts/loadtest-found-correctness.html</guid>
      <pubDate>Sat, 08 Aug 2026 00:00:00 GMT</pubDate>
      <description>何人まで耐えられるかを測るつもりで負荷試験を組んだ。だが出てきた不具合は、性能ではなく「正しさ」の問題ばかりだった。突破口は、デバッグのために溜めていた操作ログである。</description>
    </item>
    <item>
      <title>Linux構築チームへ渡す — 私が Mac 使いのまま、新規団体のサーバを Ubuntu にした話</title>
      <link>https://ngw.ictcacao.com/NgwTechBlog/posts/handing-linux-to-the-team.html</link>
      <guid>https://ngw.ictcacao.com/NgwTechBlog/posts/handing-linux-to-the-team.html</guid>
      <pubDate>Fri, 07 Aug 2026 00:00:00 GMT</pubDate>
      <description>新規団体のサーバは Linux の実機にする。ただし私は Linux が苦手で、vi に至ってはお手上げである。だから組むのはパートナー企業にお願いすることにした。渡すのは Windows で動く構築ナビ一式。仮想環境の中で通してみたら、十を超える不具合と、送る直前にもう一つが出てきた。</description>
    </item>
    <item>
      <title>phpMyAdmin も、いらなくなった — 本当に要る機能だけが残った</title>
      <link>https://ngw.ictcacao.com/NgwTechBlog/posts/no-more-phpmyadmin.html</link>
      <guid>https://ngw.ictcacao.com/NgwTechBlog/posts/no-more-phpmyadmin.html</guid>
      <pubDate>Tue, 04 Aug 2026 00:00:00 GMT</pubDate>
      <description>一ヶ月前に造った自作のSQLツールに、行の編集と削除を足した。カレンダーはブラウザ標準を捨てて自分で描いた。日付列を数えたら「0000-00-00」が974万件あったからだ。SQLを初めて書いたオフコンとORACLEの頃から、一列にカンマ区切りで持つFIND_IN_SETまで。要る機能だけを足していったら、phpMyAdminを開かなくなった。</description>
    </item>
    <item>
      <title>取りに来るのか、送るのか — 仕様が決まらないまま、サイネージの「今日の会議」を無人化した</title>
      <link>https://ngw.ictcacao.com/NgwTechBlog/posts/signage-push-or-pull.html</link>
      <guid>https://ngw.ictcacao.com/NgwTechBlog/posts/signage-push-or-pull.html</guid>
      <pubDate>Tue, 04 Aug 2026 00:00:00 GMT</pubDate>
      <description>新しい庁舎の入口にデジタルサイネージが付く。そこへ「今日の会議」を出す。誰も更新しない仕組みにした。渡し方が決まっていないので、送る形と取りに来られる形の両方を用意した。作っている途中で、予約の時刻と会議の時刻は違うという当たり前に気づいた。</description>
    </item>
    <item>
      <title>行ったり来たりで、よく忘れる — 構築の手順そのものをアプリにしたら、五つのバグが出てきた話</title>
      <link>https://ngw.ictcacao.com/NgwTechBlog/posts/build-navigator.html</link>
      <guid>https://ngw.ictcacao.com/NgwTechBlog/posts/build-navigator.html</guid>
      <pubDate>Sun, 02 Aug 2026 00:00:00 GMT</pubDate>
      <description>サーバ二台を建てるのに、三つのアプリを行ったり来たりしていた。順番は手順書の中にしかなく、覚えているのは私だけだった。それを工程順に案内するアプリにまとめたら、今まで見えていなかった不具合が五つ出てきた。どれも「動いているように見えて中身が違う」型で、人が目で見て気づけるものではなかった。</description>
    </item>
    <item>
      <title>記憶なんて当てにならない — どこまで配ったか、どこまで配るべきかで悩んだ話</title>
      <link>https://ngw.ictcacao.com/NgwTechBlog/posts/how-far-to-ship.html</link>
      <guid>https://ngw.ictcacao.com/NgwTechBlog/posts/how-far-to-ship.html</guid>
      <pubDate>Sat, 01 Aug 2026 00:00:00 GMT</pubDate>
      <description>PDF共通関数は、外部ライブラリ用のディレクトリの下に置いてあった。それだけの理由で配布から落ち、呼び出す側だけが現場に届いた。関数が無いまま「対応済み」になるところだった。どこまで配ったのか、どこまで配るべきなのか。チェックひとつ付け忘れれば同じことが起きる仕組みを、憶えていなくても済む形に作り替えた一日。</description>
    </item>
    <item>
      <title>リターンキーを、また「バーン」と叩くようになった — 体験用サーバ二台と、三十年前の手つき</title>
      <link>https://ngw.ictcacao.com/NgwTechBlog/posts/return-key.html</link>
      <guid>https://ngw.ictcacao.com/NgwTechBlog/posts/return-key.html</guid>
      <pubDate>Fri, 31 Jul 2026 00:00:00 GMT</pubDate>
      <description>二日かけて体験用のサーバを二台建てた。コマンドは覚えられないので、やることは全部ボタンにしてある。その途中で「画面にはオンと出ているのに誰も入れない Mac」に半日を溶かし、犯人は自分の設定ファイルの一行だった。そして夕方、自分がリターンキーを「バーン」と叩いていることに気づいた。昔やっていたように。</description>
    </item>
    <item>
      <title>52時間、止まっていたのは見張りのほうだった — バックアップではなく、その周りを作り直した一日</title>
      <link>https://ngw.ictcacao.com/NgwTechBlog/posts/rebuilding-backup-what-breaks-first.html</link>
      <guid>https://ngw.ictcacao.com/NgwTechBlog/posts/rebuilding-backup-what-breaks-first.html</guid>
      <pubDate>Wed, 29 Jul 2026 00:00:00 GMT</pubDate>
      <description>朝、2台の画面が正反対のことを言っていた。片方は正常、片方は「52時間バックアップが止まっている」。追ってゆくと、バックアップは一度も止まっていなかった。止まっていたのは、それを見に行く先だった。その日、世代の預かりから監視アプリまで作って、最後にこう言われた。「十年後も正常に稼働しているためのバックアップシステムだと思う」。</description>
    </item>
    <item>
      <title>「今日はここまでにしましょう」とAIに言われた — 完璧なバックアップは、たぶん無い</title>
      <link>https://ngw.ictcacao.com/NgwTechBlog/posts/ai-said-lets-stop-here.html</link>
      <guid>https://ngw.ictcacao.com/NgwTechBlog/posts/ai-said-lets-stop-here.html</guid>
      <pubDate>Mon, 27 Jul 2026 00:00:00 GMT</pubDate>
      <description>手順書をなぞって確認するだけの半日、のはずだった。終わったのは夜7時半で、コミットは20本を超えていた。5分ごとに静かに失敗していた同期、macOSが毎晩出す消せない警告、デモ機がCLONEを上書きしかけた事故。ついでにUSBケーブルが1本ポンコツだったせいで、新機能まで一つできた。そして最後に、疲れを知らないはずの相手から「今日はここまでにしましょう」と言われたのである。</description>
    </item>
    <item>
      <title>毎晩3時に、ひとりでに立ち直る — 無人運用でつまずいた5つの落とし穴</title>
      <link>https://ngw.ictcacao.com/NgwTechBlog/posts/unattended-reboot-five-pitfalls.html</link>
      <guid>https://ngw.ictcacao.com/NgwTechBlog/posts/unattended-reboot-five-pitfalls.html</guid>
      <pubDate>Wed, 22 Jul 2026 00:00:00 GMT</pubDate>
      <description>現地に技術者はいない。Mac mini の上で動く Linux を、毎晩決まった時刻に止めて、立ち上げ直す。仕組みは半日で書けた。そのあとが長かった。ポートの奪い合い、SSHホスト鍵の食い違い、macOSの許可。どれも動いているように見えて、ある日静かに止まる種類だった。5つ潰した。実測ダウンタイムは67秒。</description>
    </item>
    <item>
      <title>全部は運ばないほうが、きれいに移る — データ移行を保守コンソールのワンクリックにするまで</title>
      <link>https://ngw.ictcacao.com/NgwTechBlog/posts/data-migration-one-click.html</link>
      <guid>https://ngw.ictcacao.com/NgwTechBlog/posts/data-migration-one-click.html</guid>
      <pubDate>Tue, 21 Jul 2026 00:00:00 GMT</pubDate>
      <description>現行の Mac＋MySQL 5.7 から、新しい Linux＋MySQL 8.4 へデータを移す。全部を書き出して全部を読み込む。それで詰まった。新しい土台は古い書き方を受けつけない。答えは、運ぶものを減らすこと。そして「エラーが出なかった」ではなく「全部移った」を件数で確かめること。その一連を保守コンソールのワンクリックに畳んだ。</description>
    </item>
    <item>
      <title>影武者は、本番の邪魔をしてはいけない — そっくりな予備機を、母艦を止めずに最新へ保つ</title>
      <link>https://ngw.ictcacao.com/NgwTechBlog/posts/standby-twin-sync.html</link>
      <guid>https://ngw.ictcacao.com/NgwTechBlog/posts/standby-twin-sync.html</guid>
      <pubDate>Mon, 20 Jul 2026 00:00:00 GMT</pubDate>
      <description>機器が壊れた日にすぐ入れ替えられるよう、本番そっくりの予備機を1台立てた。難所は動かすことではなく、本番に指一本触れずに最新へ保つことだった。派手なレプリケーションではなく、既にあるバックアップに相乗りする地味な同期に落ち着くまでの記録。</description>
    </item>
    <item>
      <title>速いマシンは、優しい嘘をつく — 非力なLinuxがあぶり出した遅さを、母艦のMacごと直す</title>
      <link>https://ngw.ictcacao.com/NgwTechBlog/posts/slow-query-hidden-by-ram.html</link>
      <guid>https://ngw.ictcacao.com/NgwTechBlog/posts/slow-query-hidden-by-ram.html</guid>
      <pubDate>Mon, 20 Jul 2026 00:00:00 GMT</pubDate>
      <description>新しく建てたLinuxで、ホーム画面の起動に6秒かかった。RAMの潤沢なMacでは、この遅さが一度も表に出たことはない。非力な1台があぶり出したのは、何年も全職員が少しずつ払い続けていた全表スキャンだった。Linuxで見つけて直した手を、そのままMacへ持ち帰る。速いマシンほど、遅さを上手に隠す。</description>
    </item>
    <item>
      <title>バックアップは、あるだけでは足りない — 静かに止まり、小さすぎて不安になった一日</title>
      <link>https://ngw.ictcacao.com/NgwTechBlog/posts/backup-exists-vs-restorable.html</link>
      <guid>https://ngw.ictcacao.com/NgwTechBlog/posts/backup-exists-vs-restorable.html</guid>
      <pubDate>Sun, 19 Jul 2026 00:00:00 GMT</pubDate>
      <description>前回建てたLinuxの土台に保守コンソールを載せた。ダッシュボードの数字が実機とずれていた。追うと、再構築のときにバックアップが静かに止まっていた。復旧させたら今度は6.5GBのデータが480MBに縮んで不安になる。バックアップは「ある」だけでは足りない。開いて、末尾まで揃っていると確かめて、初めてバックアップになる。</description>
    </item>
  </channel>
</rss>