ログインに関するセキュリティ

1.ログインに関するセキュリティ

SaaS運用に向けたセキュリティ強化として、フェーズ1(必須項目)の完了およびフェーズ2の主要項目を実装した。

1-1. HTTPS強制(フェーズ1)
  • iPadのChromeブラウザでログインフォーム送信時に「送信されている情報は保護されません」の警告が表示されていた。
  • XサーバのSSL化は設定済みだったが、LaravelのURL生成がHTTPになっていた。
    ① `app/Providers/AppServiceProvider.php` に追記
    “`php
    use Illuminate\Support\Facades\URL;

    public function boot(): void
    {
    if (!app()->environment(‘local’)) {
    URL::forceScheme(‘https’);
    }
    }
    ② `bootstrap/app.php` にTrustProxies設定を追加
    “`php
    $middleware->trustProxies(at: ‘*’);
    “`

結果

  • iPadでの警告が解消された。
  • ローカル環境(HTTP)では適用しない条件分岐を追加し、ローカルの動作も正常化。
1-2. セッションのセキュア設定(フェーズ1)

本番・ローカル各.envに以下を追記:

項目本番ローカル
SESSION_SECURE_COOKIEtruefalse
SESSION_ENCRYPTtruetrue
SESSION_SAME_SITEstrictlax

結果

  • セッションCookieのHTTPS限定送信を設定。
  • セッションデータの暗号化を有効化。
  • 既存ログインユーザーのセッションが一度無効化されたが、再ログインで正常動作を確認。
1-3. ログイン失敗のロック機構(フェーズ1)

app/Http/Requests/Auth/LoginRequest.php を確認した結果、Laravel標準のRateLimiterによる以下の機能がすでに実装済みであることを確認した。

  • 5回失敗でアカウント一時ロック
  • メール+IPアドレスの組み合わせでカウント
  • 時間経過で自動解除
  • Lockoutイベントの発火

結果

  • 追加実装不要。実装済みを確認。
1-4. セキュリティヘッダーの実装(フェーズ2)

app/Http/Middleware/SecurityHeadersMiddleware.phpを新規作成し、bootstrap/app.php` に登録。

設定したヘッダー:

ヘッダー設定値効果
Strict-Transport-Securitymax-age=31536000HTTPS強制をブラウザに記憶
X-Frame-OptionsDENYクリックジャッキング防止
X-Content-Type-OptionsnosniffMIMEタイプ誤判定防止
Referrer-Policystrict-origin-when-cross-originURL漏洩防止
Content-Security-Policyself + unsafe-inlineXSS対策

注意事項

  • ローカル環境(APP_ENV=local)では全ヘッダーをスキップする条件を追加。
  • TipTapエディタ・Axios使用のため、CSPは段階的に厳格化する方針とした。
1-4. セキュリティヘッダーの実装(フェーズ2)

app/Http/Middleware/SecurityHeadersMiddleware.hpを新規作成し、bootstrap/app.php` に登録。

設定したヘッダー:

ヘッダー設定値効果
Strict-Transport-Securitymax-age=31536000HTTPS強制をブラウザに記憶
X-Frame-OptionsDENYクリックジャッキング防止
X-Content-Type-OptionsnosniffMIMEタイプ誤判定防止
Referrer-Policystrict-origin-when-cross-originURL漏洩防止
Content-Security-Policyself + unsafe-inlineXSS対策

注意事項

  • ローカル環境(APP_ENV=local)では全ヘッダーをスキップする条件を追加。
  • TipTapエディタ・Axios使用のため、CSPは段階的に厳格化する方針とした。
1-5. 不審ログイン通知メール(フェーズ2)

新しいIPアドレスからのログインを検知し、登録メールアドレスへ通知メールを自動送信する機能を実装。
新規作成ファイル
app/Mail/SuspiciousLoginMail.php
resources/views/emails/suspicious_login.blade.php
resources/views/emails/suspicious_login_text.blade.php(HTML/テキスト両形式対応)

    修正ファイル
    app/Http/Controllers/Auth/AuthenticatedSessionController.php

      検知ロジック:

      $isNewIp = !LoginLog::where(‘user_id’, $user->id) ->where(‘ip_address’, $request->ip()) ->where(‘id’, ‘!=’, $log->id) ->exists(); if ($isNewIp && $user->email) { Mail::to($user->email)->send( new SuspiciousLoginMail($user, $request->ip(), now()->format(‘Y年m月d日 H:i’)) ); }

      メール設定

      環境設定
      本番Xサーバ SMTPサーバ(sv13426.xserver.jp:587)
      ローカルMAIL_MAILER=log(ログファイルに出力)

      動作確認結果

      • Gmail:受信トレイに正常届を確認 ✅
      • MSN(Outlook):迷惑メールフォルダに届くことを確認 ✅

      残課題

      MSN/Outlookの迷惑メール判定を解消するため、DNSへのSPFレコード追加を推奨。
      レコード種別:TXT
      値:v=spf1 include:xserver.jp ~all

      2.フェーズ別進捗

      フェーズ1(必須・リリース前)
      項目状態
      パスワードのハッシュ化(bcrypt)✅ 完了(実装済み確認)
      HTTPS強制✅ 完了
      セッションのセキュア設定✅ 完了
      ログイン失敗のロック機構✅ 完了(実装済み確認)
      フェーズ2(リリース後早めに)
      項目状態
      セキュリティヘッダー(HSTS等)✅ 完了
      不審ログイン通知メール✅ 完了
      SPF・DKIMの設定⬜ 未対応(推奨)
      パスワードリセットフローの強化⬜ 未対応(次回

      建設アシストセキュリティ監査

      1. セキュリティ監査の実施

      iso_app (建設アシスト)のセキュリティ強化を実施する

      1.1 監査方法

      Claude Code(Opus 4.7)を「セキュリティ監査員」として起用し、以下の観点でアプリケーション全体を調査しました。

      • 認証・認可の漏れ(全コントローラーを網羅的に調査)
      • テナント分離の実装状況(マルチカンパニー対応の確認)
      • ファイルアクセス制御
      • AI API への機密情報送信リスク
      • 入力検証・出力エスケープ
      • 依存ライブラリの脆弱性
      1.2 監査サマリー
      重大度 件数対応状況
      Critical6件 4件完了・2件対応中
      High8件7件完了・1件対応中
      Medium2件計画中
      合計16件 11件完了

      3. High 項目の詳細

      項目コントローラー内容状態
      認可漏れChecklistControllergetEvidence で他社データをJSON取得可能✅ 完了
      認可漏れEnvironmentControllerindex/edit/save/aiEstimate でテナント確認なし✅ 完了
      認可漏れRiskAssessmentControllerdownloadAttachment で他社ファイルダウンロード可能(16メソッド)✅ 完了
      AI情報AuditAiService被監査対象名・業務概要がAPI送信される⚠ 対応中
      AI情報SafetyPatrolController作業内容・使用機械の詳細が送信される⚠ 対応中
      AI情報risk_assessment.blade.php下請業者名・プロジェクト名がプロンプトに含まれる⚠ 対応中

      4. 是正処置の内容

      4.1 共通トレイトの新規作成

      認可ロジックを一元化する AuthorizesTenantAccess トレイトを作成しました。

      app/Http/Controllers/Concerns/AuthorizesTenantAccess.php

      このトレイトにより:

      • 認可ロジックが1箇所で管理される
      • 各コントローラーへの適用が use 一行で済む
      • 将来の Policy 移行への布石となる
      • 役割ベースの例外(システム管理者は全社アクセス可)を正しく処理
      4.2 適用したコントローラーと保護されたメソッド数
      コントローラー保護メソッド数対応回
      ProjectController8メソッド第1回
      ConstructionPlanController15メソッド第1回
      SafetyPatrolController14メソッド第1回
      ChecklistController6メソッド第1回
      EnvironmentController4メソッド第2回
      RiskAssessmentController16メソッド第2回
      合計63メソッド
      4.3 テストケース(26件 全PASS)

      各コントローラーに対して以下のパターンを網羅的にテスト:

      • 他社ユーザーが各リソースにアクセス → 403
      • 自社ユーザーがアクセス → 200(正常)
      • role=1 システム管理者 → 全社アクセス可(200)
      • 削除・変更系でDBの状態が変わらないことを確認
      4.4 実施コストと効果
      項目内容
      実施時間(合計)約2時間半
      API利用コスト$6.51(約1030円)
      外注した場合の市場価格130〜350万円相当
      コスト比約1300〜3500倍の費用対効果
      コード変更量673行追加、12行削除
      テスト件数26件 全PASS

      2. Critical 項目の詳細

      2.1 テナント分離の欠落(Critical 1〜4) ✅ 完了

      最も重大な問題でした。URL のIDを変えるだけで他社のデータに読み取り・編集・削除アクセスが可能な状態でした

      対象コントローラー影響範囲重大度
      ProjectControllershow/edit/update/destroy/editOverview/updateOverview/uploadPhoto(8メソッド)Critical
      ConstructionPlanControllerdownloadDocx/downloadXlsx/generatePdf/diagramEditor等(15メソッド)Critical
      SafetyPatrolControllercreate/store/index/show/destroy/generateAiChecklist等(14メソッド)Critical
      ChecklistControllerdeleteEvidence/getEvidence等(6メソッド)Critical
      2.2 AI API への機密情報送信(Critical 5〜6) ⚠ 対応中

      発注者名・予算・下請業者名・近隣企業名などが、マスキングなしで Anthropic Claude API に送信される可能性がありました。

      【現状の評価(設計意図の確認後)】
      現状のAI利用は「チェックボックス選択による固定語彙のみを送信」という設計になっており、実質的な機密情報漏洩リスクは低い状態です。ただし、将来の機能拡張で誰かがフリーテキストを送る実装をしてしまうリスクの予防として、コードレベルのガード機構を実装予定です。

      5. 進捗状況

      フェーズ内容状態
      Phase Aリスクアセスメント(自主監査)✅ 完了
      Phase B-1Critical 1〜4 テナント分離✅ 完了
      Phase B-2High 7〜9 認可漏れ(Environment, RiskAssessment)✅ 完了
      Phase B-3Critical 5〜6, High 10〜12 AI関連⏳ 次フェーズ
      Phase B-4Medium 13 ファイル名処理⏳ 後ほど
      Phase CAIゲートウェイ構築・匿名化📅 来月
      Phase D監視・運用体制の確立📅 数ヶ月後
      Phase E継続的改善(PDCA)継続

      6. 次フェーズの計画

      6.1 AI送信情報のガード機構(InputValidator)

      現在の「固定語彙のみ送信」という設計意図をコードで強制するバリデータークラスを実装します。

      • 会社名・個人名らしき文字列の検出
      • 長い数字列(電話番号・契約番号等)の検出
      • 検出時の警告ログ記録
      • 既存のAI Serviceへの組み込み(5箇所)
      6.2 将来計画:ローカル AI 前処理

      契約事項・技術的背景・経営内容の文書化を扱う際、自前サーバーに置いたローカルAIで一般化処理をしてから外部AIに送信する仕組みを構築予定です。

      • ルールベース匿名化サービス(Phase 1): 氏名・会社名・金額の自動マスキング
      • ローカルLLM検証(Phase 2): Ollama + Llama 3.2 などで自前AIの感触をつかむ
      • 統合AIゲートウェイ(Phase 3): 匿名化→外部AI→復元のパイプライン構築

      日曜日も天気が良い

      元宇品の森の中
      元宇品のプリンスホテル側を散歩
      Codexをインストールする

      建設アシストのコードが多くなってきたので、Claude Codeのトークン消費が多くなってくる(毎回、コードを読み込んで応答するため)・・・2日ごとにクレジット要求が来るようになったので、今噂のchatJPのClaude Code向けのプラグインであるCodexをインストールをして、さっそく工事管理のフロントエンドを修正させたが、ずいぶん時間がかかり、おまけにClaude codeも消費しているようで、またクレジットが切れてしまった・・・いくら請求が来るのか戦々恐々・・・Codexが使えるようであればFreeから契約するかと思っていたが、もう少し様子をみる必要がある・・・・Claude Codeを使わなくても、Clude,Geminiなどでもコード作成はできるが、スピードとシステム全体の網羅性はClaude Codeを使いだすと数倍以上に効率が良いため、中々戻れない

      ▶この続きを見る・・・・

      内部監査システムを構築

      昨日に引き続き内部監査のシステムを構築する・・・ようやく、難しい監査チェックシートを作成、かなりClaudeを使い倒していると、昨日に引き続きもう追加のクレジットの要求・・・かなりの金食い虫だが、仕事は素晴らしいので対価としては多少納得
      内部監査システムはかなり完成に近い、明日で細かな詳細を仕上げるかな

      朝の散歩では、宇品波止場にはクルーズ船が停泊
      内部監査の個別監査計画書
      内部監査リスト
      監査チェックシート ISOシステムはタブメニューで
      監査チェックシートはCSVで雛形を取り込み

      内部監査の複雑な仕組みのアプリうケーションが作成できれば、どのような業務アプリも作成できる自信がついた

      監査指摘シート
      監査での不適合 是正処置報告書

      雨の4月の最終日

      4月の最終日は、朝から雨となり一日中降り続く・・・ゆっくりと朝食をした後に、レインコートを着込んでキクの散歩・・いつもより短いコースで切上げる
      今日は、ネットワーク工程表のアプリを仕上げることに・・・しかし、最近のClaudeは少しポンコツ気味なってきた、要求が難しいのもあるが、中々良い結果を返さない・・・何回も繰り返していると、トークンが増えて、またクレジットを要求される・・・今回はかなりつぎ込んだな

      朝から雨が降る レインコードでキクの散歩
      建設アシストでネットワーク工程表アプリを作成する
      ネットワーク工程設定画面

      雨の日曜日

      朝はまだ雨は小雨 元宇品の森を散歩 今日は山歩きは辛かった

      朝から少しづつ降り出した雨は、昼頃から本降りの雨となって夜半まで降り続く・・・朝は、キクと元宇品の森を散歩で歩く、日曜日なのでマラソンする人や、犬の散歩など多くの人が来ていて、灯台の駐車場は満車の状態・・・散歩の帰りには、ガソリンが警告灯が付いたので、四国の旅行で給油したときから給油していない・・忘れないうちにスタンドで給油、まだガソリンは¥157と安かった
      昼前に買い物に行き、明日の厨房の大工仕事のため、木材を購入する
      昼からは、ネットワーク工程表のアプリケーションを作成する・・・やはりネットワーク工程表は中々難しいが、Claudeが手助けしてくれるが、難しい依頼はトークンの消費が激しく、クレジットの要求がすぐ来るので、使い方は考えながらする必要がある
      夕方には、ほぼ納得できるような工程表が作れるアプリケーションが出来上がった・・・実際に入り色な工程を作成して調整してゆく必要があるが、問題は印刷のスケールをどのように調整するかが当面の課題、ネットワークがうまく表現できない

      建設アシストで工程表の作成アプリケーションを作成中

      建設アシスト Help作成

      各ページにHelpのモーダルを設置

      きょうから少し天気は下り坂
      建設アシストも予定していたメニューは、ほぼ出来上がったので、各ページにHelpのモーダルをつくり、使い方などの説明を書いてゆく
      それに合わせて、動きやメニューボタンの配置など細かな操作部分の改修を行ってゆく・・・地味な作業だが、これが重要・・・・しかし、割と単調なので疲れてしまう
      AIの選定の調整も重要なので、条件を変えて確認する

      小雨の桜は八分咲き

      京橋川の土手の桜は八分咲き
      建設アシストの環境側面のアプリを作成
      春ですね

      昨日にようやくClaude Codeに渡す要件ができたので、改めてもう一要件を見直して、修正する
      昼過ぎからClaude Codeに要件を渡すと、修正を含めて2時間ほどで、環境側面のアプリケーションが作成できた・・・Claude Codeは素晴らしく優秀、しかし昨日に月の利用限度は超えてしまい、追加のクレジットを購入することになった
      さてこれから、色々データを与えて正しい判断をするかを確認しなくてはならない

      4月は雨から

      雨の広島みなと公園

      早くも4月となった
      朝から雨が降っている、キクの散歩はみなと公園をぐるりと回る・・桜が咲き始めた

      イチゴを食べながら
      Excelで環境側面をつくる

      いよいよ、建設アシストの環境側面をつくるが、中々難しい・・・まずはもう一度、ISO14001を読み直し、環境側面とは何か設定しなおす・・・ようやく、頭が整理できたので。AIで要件をつくる

      昼からディスプレイの配置換え

      散歩でキクは猫ちゃんとご挨拶

      午前中は散歩から帰ると、建設アシストのリスクアセスメント作成手順のデザイン変更とAIによるRA項目の特定を調整する・・・かなり使えるようになってきた

      天気の良い、京橋川の土手
      昼から机のディスプレイの配置換え

      彼岸の中日は墓参り

      良い天気なので、前の日に花を購入して墓参りにRIEと行く、中日なので墓参りの人が多くて混雑していた・・そのあと、買い物に、かなり多くのものを購入

      今日はお寺も混雑
      甲斐犬のキクと元宇品の散歩
      元宇品には椿が咲いていた
      Build-Assist申込画面
      メールが送付される

      下松から広島に Build-Assist申込画面

      下松での仕事は予定通り、今日で完了
      ここの組織も3年間ほど訪問したが、今回が最後となる
      少し早く終わったが、新幹線の時間が悪く、1時間弱、徳山駅で待つ

      下松での出張は朝から雨となり、帰宅まで雨は降っている

      そろそろBuild-Assistの試験運用を始めてゆくので、申し込み用の入口をつくる・・申し込みをホームページから受付して、メール認証を経て、IDの発行をする過程・・中々複雑で、難しい、ゆくゆくは電話認証も組み入れたいが、当面は、メール認証のみで運用予定

      朝の散歩 下松に出張

      京橋川の土手を歩く 良い天気でモクレンが奇麗
      昼から下松に出張

      今日は朝から暖かい良い天気、散歩の後、Build-Asasistの施工計画書を手直し、やはり計画書は工事の種類、発注先によって多様な纏め方が存在して、一様な標準化したスタイルは難しい・・・試行錯誤しながら、最適を求めてゆくしかない・・・新たに、組織ごとに独自の内容が追加登録できるタイプに変更した

      昼から二日間の予定で下松に出張、ちょうど良いのぞみが連絡出来て最短時間で下松駅に到着できた

      施工計画書のテンプレート化を図っているが、2~3種類では収まらない

      気持ちの良い土曜日だが、デスクワーク

      天気の良い京橋川の土手を歩く
      甲斐犬のキクと散歩
      3/24には研修の資料は月曜日には送付しなくては

      三日間、VFKさんと九州で遊んだので、いよいよ資料の提出までの時間がない・・・散歩が終わるとPPTの作成を夕方まで頑張る
      どうやら、全体の構成が完成した・・基本的には3年前の資料を修正するつもりだったが、3年も経つと情勢が変化して内容が陳腐化するので、ほとんど作り直し

      夕方からBild-Assist(建設アシスト)の新しいページとして、施工計画書の作成に取り掛かったが、これは中々手ごわい、どこで妥協するかがポイントか

      Build-Assistでは施工計画の開発着手

      午前中は研修資料、昼から安全パトロール写真台帳

      元宇品の森をキクと歩く

      研修用の資料提出が来週初めと迫ってきたので、今日は午前中はPPTの編集、午後からはBuild-Assistの安全パトリール写真台帳をLaravelで作成

      広島港の入口の灯台
      砂浜で甲斐犬のキク 三日ぶりの散歩
      安全パトロールの写真台帳をつくる・・・写真撮影用
      ▶この続きを見る・・・・

      安全パトロールシステムの完成

      キクと京橋川の土手を散歩
      ようやく安全パトロール表がPDFで出力できた
      AIでチェック項目を作成させた安全パトロールチェック表 タブレット対応
      安全パトロール出力 条件入力

      昨日からトラブっていた、PDF印刷をプラウザ経由に変更してようやくまともに、AI判定のボーダルの変更、追加機能を色々加えて、どうやら原型は出来上がった

      曇りから雨 安全パトロール表の作成

      京橋川の土手をキクと歩く 朝は曇りだが、昼からは小雨になる

      散歩から帰ると、今日も一日Webアプリケーションにのめり込み・・・昨日はRA表の骨格が出来上がったので、今日は条件を入れてAIに安全パトロール表を作成させて、チェックしてコメント入れて帆山管理するシステムに着手、夕方には骨格は出来上がった
      途中からGeminiの様子がおかしくなる、ちょっと違うスイッチが入ったような・・軌道修正が大変

      RA表のExcel変換と別RA表の保存機能を
      条件を入れてAIに安全パトロール表を作成させる
      ▶この続きを見る・・・・

      作業リスクアセスメント表の構築

      今朝は、元宇品の森を散歩して海岸に出る
      海岸から今日は階段で車の場所に

      元宇品の散歩 最後に海岸からあがる100段以上の階段がある

      今週は、建設アシストのWebアプリケーションづくりをしている・・・今日は一気に、安全作業リスクアセスメント表を作成するアプリケーションを作成
      当初、思っていた内容よりかなり進んだ仕様となった・・これが実際の現場で使う日が来と・・・ワクワク感がとまらない・・Geminiとの作業は最近は相性がよくなり、作業スピードが格段に上がる

      作業リスクアセスメントの管理表
      AIで作らせた作業リスクアセスメント表
      AIで作った作業リスクアセスメント表を修正する
      ▶この続きを見る・・・・

      キクの散歩とアプリケーションづくり

      朝はいつものように朝食を食べてから、キクを連れて散歩
      帰ると、今日も一日中、Gemini3と会話しながら建設アシストのアプリケーションをつくる
      Laravelは奥が深くて覚えきれない・・・今日は印刷とExsel出力をつくる・・・奇麗なExcelが出力できる
      夜に、VFKさんと九州旅行の宿を2日予約する

      京橋川の土手を歩く 気持ちの良い朝
      甲斐犬のキクも散歩を楽しむ
      法規制リストの印刷とExcel出力を作成
      Excel用のプログラム(phpspreadsheet)をインストール

      建設アシストWebアプリケーション

      工事概要のページに写真が掲載できるようにする

      今朝は朝から小雨が降る・・キクを連れて広島みなと公園をまわる・・昼過ぎにQPJさんがワインを1本持ってきた

      法規制のAI判定をやり直して有料に

      工事概要から法規制とAIで特定させるコードが複雑になっていたので、分離し独立のコードに、しかしAIを弄ると何故かエラーが続出、どうもGoogleのAIとの連携がかなり微妙、無料版では対応できそうもないので、有料版に切り替える・・・APIキーを取り直して色々するが夕方まで時間がかかる
      夕方から工事概要のページに写真を掲載できるようにするが、これも配置に3時間以上時間がかかる
      今日も一日Gemini3と遊ぶ

      建設アシストシステムの構築

      元宇品にある宇品灯台
      元宇品の森を歩く
      原文表示のモーダル

      「順守評価(エビデンス保存)機能」
      アップロードされたファイル名(保存用名と元名)、関連する工事ID(project_id)、法規制ID(regulation_id)を紐づけて管理
      別ファイルのモーダルとして切り出し、メンテナンス性を向上。
      JavaScript (Fetch API) を使い、画面をリロードせずにファイルをアップロード。
      アップロード成功時に、親画面(チェックリスト)の行の背景色をリアルタイムで「薄いグリーン」に変更

      確定申告が終わった

      元宇品の森を歩く 朝日が木々の中から
      木々の間から似島が見える 20年前は木々が茂っていなかった
      青色申告会で申告をする・・色々とトラブったが無事に申告
      ログイン画面のデザインを変更
      ▶この続きを見る・・・・

      Webアプリケーションの作成

      皆実町をキクと散歩
      ログイン画面
      • 法規制をAIで特定させるプロセスを構築
      • 登録された「工事概要」の文章と、データベース内の「法規制リスト」を合体させて、AIへ送るための質問文(プロンプト)を自動で組み立てる仕組みを構築
      • 当初、法規制のデータを「親・子」の複雑な階層構造(parent_id)で取り出そうとしてエラーが起きていました。これを「A・B・Cなどのグループコードごとに分けたフラットな構造」に書き換えることで、無事に画面が表示
      法規制チェックリスト画面

      ローカル環境で作成したこのシステムを、実際に外部サーバー(Xサーバーなど)へアップロードして動作テストを試みるが、「サーバー環境特有の通信の壁」にぶつかり、翌日の「タイムアウトとの激闘」へ

      神戸で安全研修をする

      暖かい広島みなと公園を散歩 少し早めに切上げて準備を
      リエの夕食をキクが狙っている

      昼前に広島を出発して、新神戸から地下鉄で大倉山に、歩いてアステップ神戸に、今日はここで安全研修を実施する(研修資料にかけた工数は対価にはまったく合わないが)・・・予定通り、研修は終わって、予定より早い新幹線に乗ることができた

      会場は神戸の大倉山にあるアステップ神戸 13:30~16:30

      今回の研修のために12月後半から色々と考察をしてよい勉強となり、この結果を今回のWebアプリケーション(建設アシストシステム)を作るきっかけとなった・・・昔、BASICで徹夜してプログラミングしていた頃を思い出しながら、面白さにすっかりのめり込んでいる
      帰ってから、法規制チェックリストのAI判定部分をつくる・・・やはり、このパートは簡単には行かない・・・AIの判定スピードの調整、APIとの整合、結果の受取、その都度エラーが続き、何回かテストプログラムを走らせて検証しながら作成する、さすがに研修後のなので頭が痛くなったが、何とか判定部分のプログラムを完成させて・・・今夜は終わり

      ▶この続きを見る・・・・

      元宇品線の跡を歩く

      丹那の旧宇品線の跡 線路跡が分かるのはこの場所だけ

      天気が良い月曜日で祭日、キクに引っ張られて、なんとなく宇品の宇品波止場公園までを往復、すっかり暖かくなり春の兆しだ
      ちょっと前までは、このコースは毎晩寝る前に、甲斐犬のカイと一緒に歩いていたコースだ・・今は信じられない

      元丹那駅があった場所 TAMは蒸気機関車が走っていたころを知っている
      マツダの中門にある下丹那駅跡 横はパークゴルフになっている

      明日は、神戸で安全研修をしなくてはならないので、午前中はPPTを確認してちょっとした修正をする
      昼からはWebアプリケーションの本丸となる法規制チェックリストの作成・・AIを組み込んで法規制の特定の実施

      安全研修は初めてだが、良い勉強になった
      法規制チェックリストの作成

      五日市の埋め立てに

      五日市の埋め立てに甲斐犬のキクと散歩

      今日は日曜日、久しぶりにソノタンの外出、インフルエンザが流行って中々、外出許可が下りなかった・・・久しぶりにサンマルクで昼食して、買物
      余った時間では、Webアプリケーションの開発に、Geminiの支援があるので作成できるが、Geminiとのやり取りもようやくコツらしいものが分かってきた・・・テキストでのやり取りなので、しっかりとした会話をしないと意図が通じない
      慌てず、省略をせず、しっかりと主語をはっきりさせて、実行すべき内容を明確にする、一度に複雑な指示をしない・・・会話は意外と面白い

      埋立地の端の堤防から外へ出ると、目のまえに厳島
      管理者メンテナンス画面の整備

      甲斐犬のキクと散歩

      家のキッチンで甲斐犬のキク
      今朝も良い天気 京橋川を南下
      広島市郷土資料館 横の公園はもとカルビーの工場があった
      ヒデが一時、通っていたナンガ保育所、すっかり奇麗に建て替わっている

      今日も散歩の後は、Geminiの支援を受けて、Webアプリケーションを作成する
      ローカルの環境で試作したWebアプリケーションがテストできる環境は、かなりのスピードアップ
      しかし、難しい処理が続くとGeminiは適格性を欠いてくるので、あまり鵜呑みにはできない・・よくコードを理解してから作成しないと、とんでもない手戻りが発生する

      免責画面の作成
      工事リストい画面の作成

      Github・ローカルでLaravelでプログラミング

      今日は、散歩から帰ると本気で確定申告の書類をつくる
      一部、源泉徴収票が無いのでネットでダウンロードするのに時間がかかり、16時にどうやら完成

      Githubのデスクトップをインストール いよいよプロの領域
      ローカルで作ったプログラミングファイルを、ターミナルで転送する

      昨晩からGithubを導入して、ローカルな環境に、Laravelを構築してプログラミングをして、ローカルな環境でWebページを確認する、本格的な体制を構築する
      しかし、教科書通りにはゆかない・・Laravelの環境までは何とか構築できたが、サーバーからクラウドのGithub経由でファイルのダウンロードができない・・・エラーの出まくり・・・24時過ぎにようやくダウンロードができた・・・ローカルにDBをつくってWebページで動くようにする

      今日は、16時頃からローカルのLaravelでヘッダーとフッターのデザインをプログラミング修正して、その結果をGithubでクラウドにUP、サーバーでデータを受け取る
      何とか無事に、公開のWebページで変更した、ヘッダーとフッターが確認できた
      ようやく何とかGithubが使いこなせそうだ・・プロのIT技術者(ひよっこだけど)

      • 2026年6月
        1234567
        891011121314
        15161718192021
        22232425262728
        2930