grep

① 概要 grep は、入力データから指定したパターンに一致する行を抽出するコマンドである。 ファイル指定時だけでなく、標準入力から与えられたデータも処理対象とし、 入力元に依存しない共通の処理モデルを持つ。 ② 主要オプション -f : 検索パターンをファ…

ESP32 BLE広告を「状態」として扱う(SwitchBot温度計の観測)

確認したこと BLE広告は単発イベントではなく周期的に到達する。 ESP32側では広告を逐次処理するのではなく、1デバイスの状態として保持する構造が必要になる。 本記事では、SwitchBot温度計のBLE広告を対象に、状態として扱える最小構成を実機で確認した。 …

ESP32 BLE受信データの設計

目的 ESP32でBLEスキャンを行う際、 onResult() コールバックで取得したデータが、 どこまで生きているのか loop() から使えるのか どのように置くと挙動が変わるのか を 実機で順に確認する 結論 BLEコールバックで取得したデータは、そのままでは loop() …

ESP32 × BLE スキャン入門

環境 OS:Windows ボード:ESP32-WROOM IDE:Arduino IDE 2.x 今回のゴール ESP32 が周囲の BLE デバイスをスキャンし、 見つけたデバイス情報をシリアルモニタに表示できること 実際に動かした BLE スキャンコード 以下は、ESP32 で BLE スキャンを行う最小…

ESP32-WROOM 初期セットアップで詰まったポイントまとめ(Arduino IDE 2.x / Windows)

環境 OS:Windows 10 / 11(64-bit) ボード:ESP32-WROOM IDE:Arduino IDE 2.x Arduino IDE 2.x のインストール(Windows) Arduino公式サイトから Windows Win 10 or newer (64-bit) を選択してダウンロード ダウンロードしたインストーラを起動 ライセン…

DTOとEntity

1. 概要 データベースから複数件のレコードを取得する場合、 1件ずつ文字列で返す方法では扱いにくくなる。 そこで、検索結果を保持するための DTO(Data Transfer Object) を用意し、 DAO(Data Access Object)で取得したレコードを DTO のリストに詰めて…

【Java】try-catch の中に return を書かないほうがいい理由

結論 JDBC などのリソース管理を伴う処理では、 try / catch の中で return を書かない設計が望ましい。 理由は、制御フローと例外設計が不明瞭になり、 保守時に意図しない挙動や設計事故を招きやすくなるためである。 ただし、try-with-resources を使用し…

git reset と git clean の違い・使い分け

Git

git reset が対象とするもの git reset が操作するのは tracked(Git が追跡している)ファイルと履歴のみ。 commit(HEAD) index(ステージングエリア) working tree(作業ツリー) この 3 層のうち、どこまで状態を戻すかを指定するコマンドが git reset…

JDBC接続コードにおける接続管理と例外処理

Connection をフィールドに持たない理由 NG 例 public class DatabaseConnection { private Connection con = null; public void connect() ・・・ 修正版 public class DatabaseConnection { public Connection connect() { Connection con = null; ・・・ …

InnoDB(MySQL) とは何か

MySQL を業務で利用する際、ほぼ例外なく指定されるのが ENGINE=InnoDB である。 これは単なる「デフォルト設定」ではない。 InnoDB は、 データを どのように保存し 同時アクセスを どの粒度で制御し 障害発生時に どこまで復旧できるか という データベー…

WebアプリからDBの値を取得する(DAOの使用)

1. 概要 JDBC をそのまま Servlet に書き込むと、DB 接続、SQL 実行、結果処理、画面遷移といった処理が一つのメソッドに集中しやすい。 処理が肥大化すると並行開発がしづらくなり、再利用性も低下する。 そこで、データベースに関わる部分だけを専用のクラ…

ログ解析に必須の Linux コマンドまとめ(grep / awk / sed / wc)

ログ解析やレスポンスタイム調査で日常的に利用する grep / awk / sed / wc の実用的な使い方をまとめる。 1. grep テキストから特定のパターンを検索する最も基本的なツール。 基本的な使い方 標準入力から検索 cat XX | grep "XX" 単一ファイルから検索 gr…

State Manager

State Managerとは AWS Systems Manager の State Manager は、ハイブリッド環境やマルチクラウド構成を含むノードを、定義した望ましい状態(Desired State)へ維持し続けるための機能である。 EC2・オンプレミス・他クラウドのサーバなど、多様なノードが…

AWS Service Catalogとは

AWS Service Catalogとは AWS Service Catalog を使うと、組織が「承認済みのITサービス」だけをリスト化し、 ユーザーにセルフサービスで提供できる。 いわば “会社公式のAWSアプリストア” を作るイメージである。 1. AWS Service Catalog でできること AWS…

AWS Artifactとは

AWS Artifactとは AWS Artifact は、AWS が受けている 外部監査レポート(ISO、SOC、PCIなど) や 企業が AWS と締結すべき 各種契約(BAAなど) を扱う専用ポータルである。 1. AWS Artifact の役割 AWS Artifact は、AWS が実施しているセキュリティ管理や…

JDBCによる検索処理

1. 検索処理の全体の流れ JDBC による検索処理は次の五つの段階で構成される。 DB へ接続する SQL を実行するための Statement を生成する SQL を実行する(executeQuery) ResultSet を使って検索結果を読み取る リソースを解放する 更新処理との違いは、ex…

(基礎)WebアプリからDBの値を取得する

1. 概要 フォームから送信された POST リクエストを Servlet が受け取り、 データベースに接続して値を取得し、その値を JSP に渡して表示する。 ここでは、データベースから 1 件だけ値を取得し、 それを JSP に表示するまでの最小構成を整理する。 2. サン…

PreparedStatementの基礎

1. PreparedStatement を使った処理の流れ 処理の手順は通常の JDBC と同じで、以下のように進む。 データベースへ接続する プレースホルダ(?)を含む SQL を渡して PreparedStatement を生成する ? に値をセットし、SQL を実行する(更新または検索) 検索…

JDBC更新処理

1. JDBC 更新処理の全体フロー JDBC を使った更新処理は次の 4 ステップで構成される。 データベースに接続(Connection の取得) ステートメント(Statement)を生成 SQL を実行 リソース(Statement・Connection)を解放 この流れを確実に守ることが、正常…

SQLの基礎

1. SQL の基本 4 文(CRUD) SQL の操作は大きく次の 4 種類に分かれる。 機能 文 目的 取得 SELECT データを取り出す 追加 INSERT データを登録する 更新 UPDATE 既存データを変更する 削除 DELETE データを消す 2. SELECT文(データの取得) ■ 基本構文 SE…

JDBC・SQL・RDBの基礎

1. データベースと JDBC の基礎 ■ データベースとは データを体系的に整理し、効率よく保存・検索・更新・削除できるようにした仕組み。 もっとも一般的なのが RDB(リレーショナルデータベース)。 データを表形式(テーブル)で管理 列(column)=属性 行…

AWS Audit Manager まとめ

--- AWS環境のコンプライアンス監査を“自動化”し、Evidence(証拠)収集の負荷を大幅に削減するためのサービスが AWS Audit Manager である。 Audit Manager を活用することで、 AWS 使用状況の継続的な監査 コントロール(統制)の有効性の評価 証拠収集の…

Amazon Detective

1. Amazon Detective とは Amazon Detective は、AWS 内のログを自動的に集約し、 ユーザー、IAMロール、EC2、IP、API操作、通信先などの情報を 時系列 × 関連性の観点で分析・可視化するサービスである。 対応するログソース AWS CloudTrail(API イベント…

Security Hub

AWS公式ドキュメントをベースにしつつ、 **Security Hub / CSPM についてまとめてみた 1. Security Hub とは AWS Security Hub は “AWS 全体のセキュリティ状態を統合し、標準化し、優先順位をつけて可視化する” ためのサービスである。 AWS やサードパーテ…

Servlet の基本仕様まとめ

Jakarta Servlet の基本仕様と、フォーム処理・セッション・リダイレクトの流れを整理した。 1. Jakarta Servlet の概要 Jakarta EE(旧 Java EE)の Web 技術 HTTP リクエストを受け取り、HTTP レスポンスを返すコンポーネント HttpServlet を継承し、doGet…

【Java基礎】クラス・インスタンス・ArrayListの復習

この記事では、ToDo アプリ 【Java Web入門】第4問:ToDoリストを MVC 構成で実装する - 1% Better Engineer を題材に、Java の基礎の中で理解が曖昧だった部分を中心に復習した。 1. クラスとインスタンスの基礎 クラスは設計図と言われるが、設計図がある…

【Java Web入門】第4問:ToDoリストを MVC 構成で実装する

① 問題 今回は、簡単な ToDo リストを題材にしながら MVC の役割分担 をつかむ練習をする。 Controller(Servlet)、Model(Java クラス)、View(JSP)をキレイに分けることが目的。 仕様は以下のとおり。 フォームから入力した ToDo をリストに追加する Se…

Terraform state コマンド

Terraform の state サブコマンドは、tfstate を直接操作するコマンド群である。 state の移動・削除・確認など、緊急時のトラブル対応に強力な手段となる。 あまり使用したことがなく、ちゃんと理解できていない部分も多かったため、今回あらためて公式ドキ…

Terraform refreshとトラブルシューティング

refreshとrefresh-onlyの違い コマンド 内容 特徴 terraform refresh 実際の環境とstateファイルを同期する 変更内容を事前に確認できず、stateファイルを自動で上書きするためリスクが高い terraform apply -refresh-only 現在の構成を維持したままstateだ…

【Java Web入門】第3問:リクエストスコープと forward

1. 問題 入力値を受け取り、サーブレットで計算し、結果をリクエストスコープに格納してJSPに渡す。 仕様: JSPで「数値A」「数値B」を入力 Servletで合計を計算(A+B) request.setAttribute("result", sum) JSPで ${result} を表示 学習ポイント: request…