「AI」の記事
28 件
-
メールクライアントは作らなかった — Roundcube を選んだ4つの条件
Webメール連携で、IMAPクライアントは自作しなかった。PHP製・無料・自社製品での実績・AutoLoginがある、の4条件でRoundcubeを選んだ。開けたらAutoLoginはサンプルだったが、選定は正しかった。
-
仕上げは、レプリ設定で収まる — 一度きりの手順を、何度でも回せる一本にした
二台を組んだ「あと」の仕上げ ― 保管先を分ける、最初のバックアップ、預かり、監視を映す ― が、いくつものボタンと手作業に散らばっていた。それを一本にまとめた。肝は機能の多さではなく「何度でもやり直せる」ことのほうだった。今日はそこに二つ足した。複製が運んでくる大きすぎるメモリの取り分を直す「最適化」と、預かりの一日二回化。
-
バックアップは「取った」ではなく「戻せる」 — 監視の緑が隠していた三つの穴
監視画面が一列に緑を並べていても、それが答えているのは「取れた」だけで、「戻せる」ではない。対象に書いてあるのに一度も取れていなかった DB、「取った」と言い張る画面、静かに何もしなかった「完全初期化」。この夏の運用でまとめて踏んだ、取得と復元のあいだの三つの穴。
-
バージョン表記に β を付けた — ベータ版の決め手は、機能が揃ったことではなかった
8月21日、メールを「収受転送」で添付ごと収受文書にできるメール連携が完成した。併せて道具が揃い、残るのは現地でしかできない試験だけになった。だからログイン画面の版数に β が付いた。夜3時の67秒、52時間の誤警報、複製した機体で死んだメール、そして再試験でのログ増分0行。
-
負荷試験で壊れたのは、性能ではなく発信番号だった
何人まで耐えられるかを測るつもりで負荷試験を組んだ。だが出てきた不具合は、性能ではなく「正しさ」の問題ばかりだった。突破口は、デバッグのために溜めていた操作ログである。
-
Linux構築チームへ渡す — 私が Mac 使いのまま、新規団体のサーバを Ubuntu にした話
新規団体のサーバは Linux の実機にする。ただし私は Linux が苦手で、vi に至ってはお手上げである。だから組むのはパートナー企業にお願いすることにした。渡すのは Windows で動く構築ナビ一式。仮想環境の中で通してみたら、十を超える不具合と、送る直前にもう一つが出てきた。
-
phpMyAdmin も、いらなくなった — 本当に要る機能だけが残った
一ヶ月前に造った自作のSQLツールに、行の編集と削除を足した。カレンダーはブラウザ標準を捨てて自分で描いた。日付列を数えたら「0000-00-00」が974万件あったからだ。SQLを初めて書いたオフコンとORACLEの頃から、一列にカンマ区切りで持つFIND_IN_SETまで。要る機能だけを足していったら、phpMyAdminを開かなくなった。
-
行ったり来たりで、よく忘れる — 構築の手順そのものをアプリにしたら、五つのバグが出てきた話
サーバ二台を建てるのに、三つのアプリを行ったり来たりしていた。順番は手順書の中にしかなく、覚えているのは私だけだった。それを工程順に案内するアプリにまとめたら、今まで見えていなかった不具合が五つ出てきた。どれも「動いているように見えて中身が違う」型で、人が目で見て気づけるものではなかった。
-
記憶なんて当てにならない — どこまで配ったか、どこまで配るべきかで悩んだ話
PDF共通関数は、外部ライブラリ用のディレクトリの下に置いてあった。それだけの理由で配布から落ち、呼び出す側だけが現場に届いた。関数が無いまま「対応済み」になるところだった。どこまで配ったのか、どこまで配るべきなのか。チェックひとつ付け忘れれば同じことが起きる仕組みを、憶えていなくても済む形に作り替えた一日。
-
「今日はここまでにしましょう」とAIに言われた — 完璧なバックアップは、たぶん無い
手順書をなぞって確認するだけの半日、のはずだった。終わったのは夜7時半で、コミットは20本を超えていた。5分ごとに静かに失敗していた同期、macOSが毎晩出す消せない警告、デモ機がCLONEを上書きしかけた事故。ついでにUSBケーブルが1本ポンコツだったせいで、新機能まで一つできた。そして最後に、疲れを知らないはずの相手から「今日はここまでにしましょう」と言われたのである。
-
毎晩3時に、ひとりでに立ち直る — 無人運用でつまずいた5つの落とし穴
現地に技術者はいない。Mac mini の上で動く Linux を、毎晩決まった時刻に止めて、立ち上げ直す。仕組みは半日で書けた。そのあとが長かった。ポートの奪い合い、SSHホスト鍵の食い違い、macOSの許可。どれも動いているように見えて、ある日静かに止まる種類だった。5つ潰した。実測ダウンタイムは67秒。
-
全部は運ばないほうが、きれいに移る — データ移行を保守コンソールのワンクリックにするまで
現行の Mac+MySQL 5.7 から、新しい Linux+MySQL 8.4 へデータを移す。全部を書き出して全部を読み込む。それで詰まった。新しい土台は古い書き方を受けつけない。答えは、運ぶものを減らすこと。そして「エラーが出なかった」ではなく「全部移った」を件数で確かめること。その一連を保守コンソールのワンクリックに畳んだ。
-
影武者は、本番の邪魔をしてはいけない — そっくりな予備機を、母艦を止めずに最新へ保つ
機器が壊れた日にすぐ入れ替えられるよう、本番そっくりの予備機を1台立てた。難所は動かすことではなく、本番に指一本触れずに最新へ保つことだった。派手なレプリケーションではなく、既にあるバックアップに相乗りする地味な同期に落ち着くまでの記録。
-
速いマシンは、優しい嘘をつく — 非力なLinuxがあぶり出した遅さを、母艦のMacごと直す
新しく建てたLinuxで、ホーム画面の起動に6秒かかった。RAMの潤沢なMacでは、この遅さが一度も表に出たことはない。非力な1台があぶり出したのは、何年も全職員が少しずつ払い続けていた全表スキャンだった。Linuxで見つけて直した手を、そのままMacへ持ち帰る。速いマシンほど、遅さを上手に隠す。
-
バックアップは、あるだけでは足りない — 静かに止まり、小さすぎて不安になった一日
前回建てたLinuxの土台に保守コンソールを載せた。ダッシュボードの数字が実機とずれていた。追うと、再構築のときにバックアップが静かに止まっていた。復旧させたら今度は6.5GBのデータが480MBに縮んで不安になる。バックアップは「ある」だけでは足りない。開いて、末尾まで揃っていると確かめて、初めてバックアップになる。
-
VMに、自分の住所は要らなかった — NGW初のLinuxサーバと「玄関を貸す」構成
NGWは20年ずっとMac上で動いてきた。次の10年に備えて、初めてLinuxの一台を建てた。仮想マシンを作るところまでは順調だった。つまずいたのはネットワークだ。VMに自分のLAN住所を持たせる計画は現実で通らず、ホストのMacを玄関として貸す形に落ち着いた。道中に現れた二つの脅し文句は、どちらも退屈な理由だった。
-
74件のうち、配るのは6件だった — 「更新日で選ぶ」が壊れた話
NGWの更新を配る仕組みは、とうに完成している。壊れたのは「何を配るか決める」ところだった。20年動いてきた「ファイルの更新日で選ぶ」が、AIと働き始めた途端に無関係なファイルを拾い出す。犯人はAIではなくgitだった。診断から、UPDATE MAKER を内容差分へ、さらに「案件を選ぶ」へ作り替えるまでの一日。
-
同じ図書館、日記なし — AIと交わした、技術の出てこない会話
半日の作業が片付いたあと、AIとの雑談が思いがけず面白くなった。コマンドラインはなぜ最強なのか。毎回違う人格に出会えるのか。そして——AIには記憶がない。HAL も Data もサマンサもドラえもんも覚えているのに、こいつは明日には忘れている。ならば CLAUDE.md とは何なのか。出張先のホテルの夜に交わした会話を、ほぼそのまま載せる。
-
つぎはぎのメニューを、一本の ngwMenu にまとめた話
同じデータから3通りに描かれていたNGWのメニューを、単一のサーバ描画メニュー ngwMenu に一本化した。標準とドロップダウンを1つの土台で出し分けるハイブリッド構成へ。150超のアプリを一切触らず、差引 −2,403 行。動くだけのコードを、読んで美しいコードへ近づける記録。
-
PNGからSVGへ — 次期NGWのアイコンを刷新する
次期バージョン(Linux)の、ずっとPNGだったアイコンを全点SVGへ。青×橙のフラットなベクターに一新する——ただの置き換えのはずが、AIと一日やり取りするうちに、DB移行バッチとアイコン設計ツールという実運用の道具が2つ残った、その記録。
-
NGWSqlAdmin — ないものは造る、私だけのSQL管理ツール
次期バージョンのLinuxで使うSQLツールが要る。多機能な有料版は、使わない機能ばかりだ。ならば造る。必要なものだけを伝え、AIとの対話で1本のPHPに仕上げた自作ツールの記録。
-
みんな土日が休みではなかった
きっかけは「休暇の申請ができない職員がいる」というひとつの報告だった。雇用契約によっては、土日に勤務し火・木が休みという職員もいる。だがNGWは「休日とは土日と祝日である」という思い込みを、休暇・時間外・出勤簿・カレンダーの至るところに埋め込んでいた。それをたったひとつの式に一般化した記録。三つの環境への横展開と、カレンダーのバージョン違いを吸収した一手まで。
-
シャットダウンを、待たない — AIと「退勤打刻」を組み上げた半日のタイムライン
常駐している決裁通知クライアントに、PC起動=出勤・シャットダウン=退勤の打刻をやらせられないか。その一言から始まった半日を、提案・AIの回答・条件追加・実機試験での発見と改修まで、往復の順に記録した。ハートビート方式、操作ログの意外な転用、ネットワーク越しのIP食い違い。
-
AIが、初めてのWindowsアプリを書いた — 決裁通知クライアント NgwNotificationClient
オンライン決裁は決裁者を名指しで通知するが、NGWを開かなければ気づけない。文書管理だけのDOCU団体では毎日は開かない。そこでWindowsのトースト通知で知らせる常駐クライアントを、GET方式で、Goで作った。長く手が出せなかった初のWindowsアプリを、AIがあっという間にプロトタイプにした話。
-
「少し大きく」で、ちゃんと伝わる — アナログな注文が数値になるまで
「少し大きく」「ちょっとだけ下に」。数値ではなく、そんな曖昧な言葉でよく指示する。AIはその尺度を学んでいる気がする。最後は数値に落ちるのだが、何度もやり直すこの往復が、なぜか面白い。
-
AIは、私のコーディングのクセまで真似てくれる
NGWを開発して10年。命名規則も書き方も、私という一人の書き手の流儀でできている。新しく足すロジックを、AIはその流儀そっくりに書いてくれる。均質さは、そのまま読みやすさになる。
-
このブログは、AIとの対話の記録である
NGW開発BLOG は、AI(Claude)との対話をもとに構築・執筆した。サイトの仕組みも、最初に並んだ記事群も、その協働の産物である。何をAIに任せ、何を人が担ったかを正直に記録しておく。
-
「流行に乗り遅れるな」から始まった — AIを開発に迎えるまで
軽い気持ちで試したAIコーディングが、いつのまにか開発の相棒になっていた。導入のきっかけ、6月にClaude Codeへ乗り換えた経緯、そして何が変わり、何は変わらないのかを正直に記録する。