VFKさんが来る 建設アシスト 品質・セキュリティ改善 総括

朝は京橋川を散歩させて、シャワーを浴びて五日市の病院に、帰りに元宇品の森でキクを散歩させていたらVFKさんから電話、昼は近くの『はる』でお好み焼きを食べて、晩秋には北海道へJeepでキャラバンすることで盛り上がる・・・夕方に、贈り物がしたいということなので、洋酒の酒店に行く、ウイスキーが好みだそうで2種類を購入、TAMにも一本贈り物として頂いた

朝は甲斐犬のキクを京橋川で散歩 夏の日差しが暑い

建設アシスト 品質・セキュリティ改善 総括

1.目的

建設アシストは、現場マネジメントDXの実践アプリケーションで、本プロジェクトの目的は以下の3点

  • 大手組織のセキュリティ審査に耐えるシステムにする 複数テナント(会社)が同居するSaaSとして、テナント間のデータ分離を構造的に保証する
  • AIに投げる情報の管理と漏洩リスクの低減 工事情報・現場情報をAI APIに送信する以上、何をどう送り、何を記録するかを一元的に管理できる構造にする
  • 今後の機能追加に耐える保守性の確保 一人開発で継続的に機能を追加していくため、重複コード・デッドコードを排除し、「1箇所直せば全体に効く」構造を作る
2.出発点の課題(Fable 5による全体検証の結果)

セキュリティ(フェーズ1)

  • Critical 7件・High 12件。中心はIDOR(他社データへの越境アクセス)で、工程表・安全パトロール・RA・施工計画書の主要機能に集中していた
  • テナント分離がコントローラの手動認可(authorizeProject)に全依存しており、
    1箇所の実装漏れがそのままデータ漏洩に直結する構造だった
  • 当時の評価:「現時点では大手組織のセキュリティ監査に耐えられない」

保守性(フェーズ2)

  • AI呼び出しが8箇所に散在し、URL・タイムアウト・エラー処理がコピペ重複
  • 工程表のJS約4,100行がBladeにインラインで埋め込まれ、CSP強化の障害に
  • テナント設計が未完了のモデル(company_id未設定)が多数
  • デッドコード(未完成のWord/Excel出力サービス、旧版施工計画書、孤立したAIサービス等)が大量に残存。

バグ(フェーズ3)

  • 確定バグ14件。空CSVで法規制マスタが全削除される致命的バグ、工程表の無限ループ、祝日計算誤りによるCPMの1日ズレ等
  • トランザクション欠落が主要機能に多数(途中失敗で中途半端なデータが残る)
  • 同時編集の保護が皆無(後勝ち上書きで先の編集が無警告で消える)。
VFKさん、久しぶりにJeepで
アイリッシュウイスキー バスカー シングルモルト
▶この続きを見る・・・・

元宇品を散歩

キクと元宇品の森を散歩
その他の改善
  • キャンバス表示範囲の拡張:工期ぴったりの表示から「工期の前後1ヶ月」に拡張。工期前後への工程配置が可能になり、読込時は工期開始位置へ自動スクロール。印刷は従来どおり指定範囲のみ
  • 印刷範囲外工程の除外:バーチャートの印刷で範囲外の工程・接続線が出力される問題を修正。あわせてアノテーション(テキスト・フリー線)が印刷範囲変更時にずれる問題も修正(日付アンカー方式を導入)
  • フリー線の太さ・矢印修正:太さ変更が即反映されない問題と、1pxで矢印が見えなくなる問題を修正(矢印を固定サイズに変更)
  • ダブルクリック編集の修正:委譲化により発生した問題。DOM再構築のタイミング制御(requestAnimationFrame遅延・3px閾値)で解消
結果
テストTenantIsolationTest 33件パス維持(全修正通じて)
主な成果アノテーション機能の2画面統一・印刷品質の大幅改善
特記印刷残像の根本原因はデバッグコードの消し忘れ1行だった

工程表(バーチャート・ネットワーク)の品質改善

アノテーション機能の全面整備(メイン作業)

背景:2画面でアノテーション(テキストボックス・フリー線)の実装がバラバラで、barchartに欠けている機能が多かった・・設計書を作成してから4段階で実装した

1networkのイベント処理を委譲方式に統一(個別リスナー8箇所を撤去)
2barchartにnetwork同等の機能を追加(ドラッグ移動・端点編集・描画プレビュー等)
3UXルール統一(配置後即モーダル表示・ワンショット化)
4共通コード(schedules-common.js)として抽出・約230行の重複削減

あわせてモーダルのUI表記も両画面で統一(ボタンラベル・フォント選択肢・フリー線太さをselect化等)・・・P4完了後に発覚した退行(barchartのテキストボックス):長文・大フォントで文字が枠からはみ出し、クリック・ダブルクリックが効かなくなる問題。原因はforeignObjectの固定サイズ・・・networkにあった「文字量に合わせた自動拡大」が移植漏れだったため、共通モジュールに追加して解消

印刷機能の連続修正
問題原因
印刷後に背面に残像が残る
プレビュー表示中も残像が見える
try/finally未実装で復元処理が漏れる可能性
描画凍結中にpaintが完了しない
そもそも消えないデバッグ用のコメントアウトが残ったまま
月境界線が太すぎ・テキストの上に乗る旧レイアウト時代の「貫通線」が残存していた
月境界線が「時々」途切れるUTC変換による日付の1日ずれ(タイムゾーンバグ)

楽観ロック実装

楽観ロックとは

複数ユーザーが同じデータを同時に編集した際、後から保存した人の内容が前の人の変更を上書きしてしまう問題を防ぐ仕組み

共通基盤の構築

4ファイルを新規作成して土台を整備

ファイル役割
ChecksOptimisticLock.php(トレイト)サーバー側の照合・トランザクション・409返却
optimistic-lock.jsフロント共通ミックスイン(トークン保持・競合処理)
conflict-modal.blade.php競合通知モーダル(退避DL・最新読込ボタン)
OptimisticLockTest.php検証テスト
▶この続きを見る・・・・

葡萄が実っている 工程表をJS外部化

梅雨明け宣言が出た広島だけど、あまり天気は良くない・・少しじっとしてあまり風も吹かない・・・今日は元宇品の森から海岸降りる道は、2カ所ともバリケードが設置してあり・・・海岸の遊歩道が山崩れでした・・・海岸線は誰1人いません・・いつもは釣りに人や散歩の人が多いんですが・・まぁのんびりとね海岸でキクを散歩させながら歩きます

元宇品の海岸をキクと散歩 中国地方は梅雨明け宣言
我家の葡萄がしっかりと実っている
工程表JS外部化

バーチャートと工程表のBladeファイルに数千行のJSがインライン記述されていた

barchart.blade.php 2,439行 → 682行
network.blade.php 3,083行 → 732行
インラインJSを外部ファイルへ移設 約4,300行→1,414行

設計のポイント:
Blade側はJSON設定タグのみ残し、外部JSが読み込む方式を採用。これにより将来CSPのunsafe-inlineを除去できる構造になった
印刷用共通JS(518行)も共通モジュール化し、print-common.jsとして整理
着手前に工程表全体のモーダル構成を調査し、2画面間の実装差異(件数カウントのズレ・GW休日のデッドデータ等)も記録した(今回は修正対象外)

施工計画書「旧版」廃止(Phase 1・2)

長期間放置されていた旧版施工計画書のコードを2段階で削除
Phase 1:孤立コンポーネントとAPIルート4本を削除
Phase 2:本体を削除

削除対象規模
ルート13本削除
コントローラメソッド8関数削除(960行 → 290行)
ビューフォルダごと削除

注意点:Phase 2着手直後にgetTemplateContentを誤削除していたことが判明(管理画面が使用中)→ 即座に復活させて修正・・本番データ(construction_plan_items 208件)はテーブルごと残置、コードのみ削除という方針で対応

PDF様式取込:sonnet vs haiku 品質比較

Step 8移行でPDF取込がhaiku→sonnetに変わったため、実際に品質を比較検証した
haikuの誤読は単純な省略ではなく意味の破壊で、施工計画書として実用不可レベル:sonnet維持を確定。PDF取込はセットアップ時の低頻度操作のため、コスト増の影響は限定的

成果まとめ
項目内容
コード削減インラインJS約4,300行を外部化・旧版コード約670行削除
品質検証PDF取込のsonnet採用を実データで根拠付け
テストTenantIsolationTest 33件パス維持

J58フロントドライブシャフトブーツの交換

日曜日は、久しぶりに雨が上がった・・やはり青空は良い、キクとの散歩も楽しい・・・みなと公園は、雑草がすっかり奇麗に刈上げられて、歩きやすくなっていた
J58のフロントドライブシャフトブーツの交換が終わったのことなので、古今出引取に、最近の自動車整備では、このような仕事をしてくれるところがいない、旧車は整備先を探してウロウロと、おまけにパーツも自前で、今回フロントブレーキシリンダーは型が新しくて着けられなかった・・・少しエアが噛んでいるのかブレーキが甘い

久しぶりに雨が上がる キクを連れてみなと公園を散歩
J58のフロントドライブシャフトブーツを両側を交換・・これで車検ですね

キクと元宇品

朝は甲斐犬のキクと元宇品をぐるりと回る

2.onclick / onchange インラインハンドラを addEventListener に移行する

サーバー側のバリデーション・サニタイズと、ブラウザ側のCSPの両方が必要

  • グループA:サイドバー(id 付き → そのまま addEventListener)
  • グループB:サイドバー(id なし → id を付与してから addEventListener)
  • グループC:ページタブバー(id なし → id 付与)
  • グループD:ナビバー(Blade 条件分岐内)
  • フローティングRTB(書式ツールバー)のインラインハンドラ移行

施工計画のエディット画面(edit_section_blade.php)が、ほぼ実装が完了したので、再びコードの検証を行う・・・やはり、まだ課題が多く残っていたので、順にコードの手直しをする

1.生HTML出力({!! !!})を使用している

{!! !!} はエスケープなしの生出力のため、$headerHtml / $footerHtml がDB経由で、悪意あるスクリプトを含む場合、XSS攻撃が成立する。
サーバーサイドでのサニタイズ(無害化)状況を確認し、不十分であれば修正する・・・XSS(クロスサイトスクリプティング)、SQLインジェクション・・以下はサニタイズの手法

手法内容
エスケープ特殊文字を無害な表現に変換(< → <)
除去危険な文字・タグを削除
バリデーション想定外の値を拒否(数字のみ受け付けるなど)
プレースホルダSQLをコードと分離して処理

これらの手法は、Laravelでは多くは自動で処理してくれるが、施工計画のSVGダイアグラムエディタのような自前JS処理部分は別途確認が必要

1-1.データの流れを追跡する
  • コントローラを特定する(ルート名 project_plans.sections.editから逆引きする)
  • $headerHtml / $footerHtml の生成箇所を特定する
  • DBカラムの確認
1-2.現状の判定(サニタイズ処理必要性の検証)
  • ✅ 安全なケース(修正不要)
  • ❌ 要修正なケース(対応する、入力時サニタイズ、HtmlPurifier の導入確認、サービスクラスまたはヘルパーの作成、コントローラの保存処理にサニタイズを追加、既存DBデータの一括サニタイズ(Artisan コマンド))
1-3.実施結果

Claude Codeでの実施結果ではOK、変更なし、コメントを追記

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

J58を修理工場に

天気が良いので、久しぶりに元宇品の森を歩く

今週は天気が悪くなるとのことだが、良い天気の月曜日、朝は久しぶりに元宇品の森を歩く・・・最近は、森のアップダウンの散歩は辛くなってきている、午前中は今週の仕事の段取りをして、昼からはキクを助手席に乗せてJ58を修理工場に移送
最近は旧車を修理してくれる修理工場が無い、昔の車の修理はわからないそうだ・・・いつもの修理工場に無理を言ってお願いする、パーツがあればとのことなので、パーツリストからパーツを頼むが、あっているか少し不安、パーツも中々高価で、失敗すると痛手が大きい、修理の期限は付けないが7月中には終わらせてもらいたい

J58に甲斐犬のキクを乗せて、ドライブ
フロントアクスルブーツ交換に修理工場へ
▶この続きを見る・・・・

墓参り 工事管理の見直し

墓掃除と墓参り
1-2. edit_overview.blade.php 削除
変更詳細
edit_overview.blade.php削除
routes/web.phpprojects.overview.edit / projects.overview.update ルートを削除
ProjectControllereditOverview() / updateOverview() メソッドを削除

残留リンク確認: resources/views/projects/ 内に overview ルートへの参照なし(削除前にgrep確認済み)

甲斐犬のキクも一緒に

2.show.blade.php — 工事編集ボタンの移動

変更前: <x-slot name=”nav_extra”> でヘッダータブとして表示
変更後*: 工事名・ステータスバーの右端にボタン配置

[ 工事名 (施工中) ] ··················· [ 部署: ○○ ] [ 担当: ○○ ] [ ✏️ 工事編集 ]

プロジェクトの管理画面を刷新

プロジェクト管理プロセスのセキュリティ及びファイルの健全性を検証

1.コードファイルの統合

1-1. create.blade.php + edit.blade.php → edit.blade.php(統合・create 削除)

統合方法:

  • $project->exists(Eloquent 未保存インスタンスかどうか)で動作を切り替え
  • 新規モード(exists = false): フォーム action → projects.store、HTTP method → POST、入力値なし
  • 編集モード(exists = true): フォーム action → projects.update、HTTP method → PATCH、old() + 既存値
  • ヘッダー文言・キャンセル遷移先・会社名ソース・nav_extra タブをモードで分岐
  • ProjectController@create() を view(‘projects.edit’, [‘project’ => new Project()]) に変更
  • 影響範囲: index.blade.php の route(‘projects.create’) はそのまま動作(resource ルートは維持)
変更前変更後
create.blade.php(新規登録専用)削除
edit.blade.php(編集専用)create+edit 統合版に書き換え
▶この続きを見る・・・・

元宇品散歩 建設アシスト安パト見直し

少し小雨の元宇品をキクと散歩
2-2.承認済みパトロールの編集ロック不完全

SafetyPatrolController.php saveDraft()メソッドshow.blade.phpのUIは$isLockedフラグで編集を無効化しているが、saveDraftエンドポイントにはis_finalizedチェックがなく、直接POSTで承認済みデータを上書き可能
修正
php
public function saveDraft(Request $request, Project $project, $id)
{
$this->authorizeProject($project);
$safetyPatrol = SafetyPatrol::findOrFail($id);

// 承認済みは変更不可 if ($safetyPatrol->is_finalized) { return response()->json([‘success’ => false, ‘message’ => ‘確認済みの記録は変更できません。’], 403); } //

2-3.CLAUDE.md との相違点
項目問題対象箇所
session(‘success’)表示CLAUDE.mdでは `toast.blade.phpは error のみ表示とあるが、`show.blade.phpに独自のsuccess表示が存在show.blade.php` L23-27
` 未使用一覧のボタン群が直接 <button class=”bg-indigo-600…”>等で実装されているindex.blade.php` L43-53
ファイル先頭の説明コメント欠如コントローラ・モデルの先頭に「このファイルの説明文」がないSafetyPatrolController.php` 等全般
インラインスクリプトindex.blade.phpの flash メッセージ消去処理がインライン<script>内に記述index.blade.php` L26-35

1.【安全パトロール】コードの健全性検証

1.セキュリティ・脆弱性

エラーメッセージ漏洩

safetyPatrolController.php:210
php
// 現状:例外メッセージをそのまま返している
return response()->json([‘success’ => false, ‘message’ => ‘システムエラー: ‘ . $e->getMessage()]);
PHPの例外メッセージ(DBパス・APIキー名・内部構造等)がそのままフロントエンドに露出する
修正
php
// 固定文言に変更
return response()->json([‘success’ => false, ‘message’ => ‘システムエラーが発生しました。時間をおいて再試行してください。’]);
// ログには詳細を記録
\Log::error(‘AI checklist generation error: ‘ . $e->getMessage());

1-2.ファイルアップロードのバリデーション欠如

SafetyPatrolController.phpstore()
php
// 現状:バリデーションなしで直接 store()
$filePath = $request->file(‘attached_file’)->store(‘patrol_files’, ‘public’);
ファイルタイプ・サイズ制限がないため、実行ファイルや大容量ファイルのアップロードが可能な状態
修正
php
$request->validate([
‘attached_file’ => ‘nullable|file|mimes:pdf,jpg,jpeg,png,gif,webp|max:10240’,
‘patrol_datetime’ => ‘required|date’,
‘inspector_name’ => ‘required|string|max:100’,
]);

1-3.CSP方針違反 インラインイベントハンドラ

CLAUDE.md に「`onclick=””等のインラインハンドラを使わず、必ず `addEventListenerで登録する」と明記されているが、以下の箇所に違反が存在する

ファイル内容
show.blade.phpL105, L109, L113, L117onchange=”updateRowColor(…); autoSave()”
create.blade.phpL82onclick=”runAiProcess(…)”
index.blade.phpL43, L47, L51, L103, L115onclick=”window.location.href=…”

修正方針:** 各ボタンに `data-url属性を付与し、外部JSで `addEventListenerに移行

2.データ喪失リスク

SafetyPatrolController.php  destroy()` メソッド
php
// 現状:attached_file_path のみ削除
if ($patrol->attached_file_path) {
Storage::disk(‘public’)->delete($patrol->attached_file_path);
}
$patrol->delete();
// → safety_patrol_photos テーブルのレコードと画像ファイルは残存
パトロール削除時に、紐づく写真ファイル(storage/public/patrol_photos/)とDBレコードが削除されない。時間とともにストレージを圧迫する
php
// 写真ファイルとレコードを先に削除
$patrol->safetyPatrolPhotos()->each(function ($photo) {
Storage::disk(‘public’)->delete($photo->file_path);
$photo->delete();
});
$patrol->delete();

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

元宇品の散歩 環境側面の見直し

甲斐犬のキクと元宇品を散歩
高射砲陣地跡の公園はきれいに草が刈ってあった

法規制の特定を見直したので、同じような処理をしている環境側面の特定方法も修正する
今まで特定のための検索条件を工事概要から実施していたが、法規制の特定で作成した工事に関する条件DBを共有化、項目追加することに変更する・・・また、フロントエンドも法規制と同じようにする

質問回答
条件保存方式project_conditions` テーブル新規作成。環境側面モーダルの条件も同テーブルに登録
AI軽量化今回は対象外。次のステップとして実施
edit_overview の廃止範囲☑ボックスで設定した内容を概要欄に転記する機能をすべて廃止。テキストボックスのみに変更
@section(‘extra_tabs)環境側面編集画面のみで使用。他ページへの影響なし

1.edit_overview.blade.php の変更

1-1.廃止する要素

現在のファイルは3エリアで構成:

エリア内容対応
エリア1(上部)textareaとフォーム残す
エリア2(中央)「選択した項目を概要に追加する」ボタン残す
エリア3(下部)チェックボックス群(工事種別・立地条件・工事規模・工事の特性・仮設設備等)削除
▶この続きを見る・・・・

雨の散歩 法規制の再構築コーディング開始

雨の広島港
雨の広島みなと公園をキクと散歩
1-3.更新ファイル

app/Models/Regulation.php ← $fillable 新カラム追加
app/Http/Controllers/ChecklistController.php ← 全面再構築
app/Http/Controllers/AdminController.php ← CSV新フォーマット対応
resources/views/components/eval_modal.php ← deleteEvidence URL修正
resources/views/layouts/footer.blade.php ← z-50 → z-10(モーダル被り解消)
routes/web.php ← conditionMatchルート追加・deleteEvidenceルート修正

法規制特定のコードの問題点が洗い出せたので、Excelシートをもう一度、見直しと再構築をして、いよいよコードを作成する

もう一度、法規制をまとめたExcelシートを見直す・・しっかり作ったつもりだったが、また変更追記する箇所が多くある・・・法律は難しい

1.法規制特定機能 再構築(Step 1〜8)

1-1.概要

edit_Laws_Regulations.blade.phpとindex.blade.phpを指示書に従い全面再構築した

1-2.新規作成ファイル

database/migrations/
2026_06_05_095137_add_select_columns_to_regulations_table.php
2026_06_05_095150_add_source_to_checklist_results_table.php
2026_06_05_112359_add_unique_index_to_checklist_results_table.php
app/Services/
RegulationMatcherService.php
resources/views/
components/laws_condition_modal.blade.php
Laws_Regulations/edit_Laws_Regulations.blade.php ← 新設計版
Laws_Regulations/index.blade.php ← 新設計版
Laws_Regulations/_tab_bar.blade.php ← 共通パーシャル

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

雨のみなと公園 コードのレビュー

キクとみなと公園の散歩 雨はかなり降っている

台風の接近で朝からかなりの雨です・・・甲斐犬のキクの散歩は予定通り、上下に登山用のレインコートを着込んで散歩、でも40年前のゴアテックスは効果が薄く、かなり浸み込んできました・・・やはり、新しいのを使わないと大雨は無理かな

雨のみなと公園をまわる
公園には誰もいない

環境側面であるコードのレビューを実施した
\environment\edit_environment.blade.php
\environment\index.blade.php

1.最優先:CSPとインラインハンドラの矛盾

これが一番の地雷です。直近で@alpinejs/cspに移行してscript-srcから unsafe-eval を外したのに、1-1.この2画面はインラインイベントハンドラだらけonclick=”openAiModal()” / “closeAiModal()” / “runAiEstimate()”
onclick=”addCustomRow()” / “removeCustomRow(this)”
onclick=”window.print()”
script-srcからunsafe-inlineも外す方針なら、これらは全滅
Alpineだけ対応しても、素のonclickが残っていればCSPの一貫性は崩れる・・セキュリティ監査を目標にするなら、unsafe-inline除去は通過点になるはずなので、ここはaddEventListener方式へ統一すべき・・幸い既に477〜492行で同パターンを使っているのでdata-action=”open-ai-modal”のような属性+委譲リスナーに寄せれば機械的に直せる

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

元宇品の散歩

元宇品の海岸でキクと
元宇品の森を歩く

建設アシストのコードのセキュリティ対策として、CSP(Content Security Policy)でunsafe-evalを禁止した結果、Alpine.js の式評価がブロックされ動作不能になった問題を解決します

1.パッケージ切り替え・ビルド設定

package.json / resources/js/app.js

変更内容詳細
alpinejs → @alpinejs/cspに差し替えnpm install @alpinejs/cspを実行、app.jsのインポートを変更
グローバル Alpine コンポーネントを app.jsに集約alpine:initイベント内で Alpine.data()を登録

app.jsに登録したグローバルコンポーネント:

コンポーネント名用途
scheduleInitModal(chartType, switchUrl)工程表 初期選択モーダル
flashMessageプロフィール保存後フラッシュメッセージ(2秒フェードアウト)
dropdownMenuナビゲーション ドロップダウン
laravelModal(initialShow, modalName, focusable)Breeze 標準モーダル(フォーカストラップ付き)

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

甲斐犬のキク

元宇品はプリンスホテル側を歩く
朝はキクが起こしに来る
散歩までベットで待機
五日市の病院の帰り、水鳥公園に

建設アシストは今まで対象を、建設現場管理を重点にしていたが、今回はそれらを纏める会社の管理を構築すべく、まずは入り口となる会社概要ページを作成・・半分は会社のHPをリンクさせている
左には処理メニューが配置されているが、多くはこれから開発してゆくことになる

建設アシストの会社概要の作成

キクと朝の散歩

4月はここ数年で初めて出張が無かった
3月中から5月の末までは出張の仕事ななく、久しぶりに何もすることが無い時間となったが、意外と何もする気が起きない・・やるべきことは多いのだけど、なんとなくぼんやりと過ごしている
今の重要のタスクは、甲斐犬のキクの朝の散歩となっている・・1時間以上の散歩はかなりのタスクだが、健康維持には重要な事項だろう

甲斐犬のキク
土手をキクと歩く
護岸からの風景は気持ちが良い

今日は日曜日、良い天気だ、甲斐犬のキクと京橋川の土手を広島大橋まで南下して、往復・・・1時間とちょっと、足が痛い

工程表設定メニュー
工程表印刷のメニュー

天狗城山に登る

2022/10/22 キクと一緒に天狗城山を登ったのが最後で4年間ほど、ご無沙汰・・・天狗城山は一気に約300mを登るの岩山・・・2022年の時も体力は無く登りに90分もかかっていた・・・それから前立腺癌のホルモン治療で体調がおかしくなり、筋肉も落ちて、膝の関節炎となり、歩くのもままならず、出張での駅の階段などは苦行で・・山などはとんでもない状態だった
そんな状態から最近は少し回復をして散歩もかなりの距離が歩けるようになっていた・・・何となく昼から、急に思い立ち甲斐犬のキクを連れて登る・・・膝も万全ではないので無理はできないが、休み休み上って、今回は山頂までは70分程、2021年の頃は40~50分ほどで登っていた・・・さすがに関節炎になってからは登れないと思っていたが、少し膝も回復して意欲も戻ってきたようだ・・・下りは転倒しないように注意して(ほとんど岩山は尻を落として下る)、ようやく車まで戻る
少しすると足の脛が痛い・・・登山をすると痛かったあの感覚は久しぶりだ

天狗城山の最初は、手前の尾根まで長い階段が続く
カエル岩から天応の町並み いつ見ても良い景色
甲斐犬のキクと一緒に登る
▶この続きを見る・・・・

朝はキクと宇品を往復

久しぶりに宇品波止場公園を往復する、最後に歩いたのはいつ頃だったか・・・毎晩、日課で歩いていたけど・・少し膝が回復したので歩けるようになったが、時間は倍程度かかっている

宇品への道を歩く

宇品往復は、約6kmで8000歩ほどになる・・・キクの散歩なのでゆっくりではあるが2時間弱かかる
GWの初日、昭和の日だが、天気は曇りで下り坂・・夕方から雨となる

旧国鉄宇品線跡地 パークゴルフ場になっている
建替えをした競輪場には、スタバがオープン
旧宇品線 下丹那駅付近
丹那駅付近

雨の日曜日

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

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

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

朝の散歩 宇品波止場にクルーズ船

天気の良い朝は、キクと一緒に京橋川を御幸橋と平野橋の間を周遊

京橋川の土手にはハナミズキが咲いている

昼からは建設アシストのアプリケーションの施工計画をつくる・・・結局、ミニVisioのようなDTPに形式になった

甲斐犬のキクと散歩
夕方には宇品波止場に散歩
かなり大きなクルーズ船です
増築した桟橋が使われています
▶この続きを見る・・・・

キクと朝の散歩

元宇品の森を歩く

天気の良い日曜日、キクの散歩の帰りにガソリンを入れる・・九州キャラバンから入れていないのでカラですが、一時は¥200に迫る金額なので、様子を見ていた・・今日の価格は¥157だった

ガソリンが安くなったので満タンに

今日の一日、外は雨が降り始めているが、家でClaudeと一日中遊んだ

果林の木から花の芽が

彼岸の中日は墓参り

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

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

天気の良い日曜日

五日市の埋め立てに散歩
甲斐犬のキクは中に入って汚れていた
果林の新しい新芽が出ている

今日はソノタンが外出で帰宅
一緒に昼はゆめタウンで食事

昨日に続き、研修用の資料を作成・・・どうやら、夕方には完成する・・あとは動きや細部をチェックして、送付の準備

2階の庭には水仙が咲く誇っている

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

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

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

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

Build-Assistでは施工計画の開発着手
  • 2026年7月
     12345
    6789101112
    13141516171819
    20212223242526
    2728293031