管理者 のすべての投稿

Java:SQL接続でつまずかないためのtry-with-resources活用法

JavaでSQL接続を扱うとき、多くの初心者が陥るのが「リソースの解放忘れ」「例外処理の煩雑さ」です。
特に Connection, PreparedStatement, ResultSet の3つは明示的に close() しないと、メモリリークや接続枯渇の原因になります。

この記事では、そんな問題をtry-with-resources構文でスマートに解決する方法を紹介します。


🧱 try-with-resourcesとは?

Java 7以降で導入された構文で、AutoCloseable インターフェースを実装したオブジェクトを
自動的にクローズしてくれる仕組みです。

✅ 従来のコード例(Java 6以前)


👉 冗長で、finally ブロックがネストしやすく、例外の見落としが発生しやすいのが難点です。

🚀 try-with-resourcesを使った改良版


✨ メリットまとめ
項目従来の書き方try-with-resources
リソース解放明示的にclose()が必要自動でcloseされる
コード量冗長スッキリ
例外の安全性finallyで記述ミスの恐れ例外を安全に補足
可読性低い高い

🧠 複数リソースを扱うときのポイント

try(...) の中で複数のリソースを「セミコロン ;」で区切って宣言できます。


順序は重要

最後に開いたリソース (ResultSet) から順に自動クローズされます(LIFO順)。


⚙️ try-with-resourcesとカスタムクラス

自作クラスでも AutoCloseable を実装すれば、
try-with-resources構文で安全に自動クローズが可能です。


出力結果:
処理中...
リソースを解放しました

⚠️ 注意点:例外の隠蔽に注意

もし try 内と close() 内の両方で例外が発生した場合、
try 内の例外が優先され、close() の例外は「抑制された例外」として記録されます。


🔍 まとめ

ポイント内容
構文try(リソース宣言){ ... }
バージョンJava 7以降
対応型AutoCloseableを実装する全クラス
主な利点コード簡略化・例外安全性・リソースリーク防止

💬 おわりに

try-with-resources は見た目以上に強力です。
「リソース管理を明示的に書かない」だけで、コードの信頼性と保守性が大幅に向上します。

特にSQL接続まわりでは、この構文を使わない理由がないほどの必須テクニックです。
今後のJava開発では「標準の書き方」として身につけておきましょう。

CSSとHTMLだけで作る立体的カードUI(Shadow DOM対応)

JavaScriptなしで、transform / perspective / layered shadowsCSSカスタムプロパティ だけで

“パッ”と目を引く3Dカードを作成してみましょう。

さらに Shadow DOM 内でも同じ見た目を再現できるよう、::part() と変数で拡張可能にします。


ゴール(できあがりイメージ)

  • マウスホバーでわずかに傾く3D表現

  • 斜めに流れるハイライト(きらめき)

  • ライト/ダークどちらでも映える配色

  • prefers-reduced-motion でアニメ控えめ

  • Shadow DOM対応::part() と CSS変数で外部からのテーマ変更OK

デモ:CSSとHTMLだけで作る3DカードUI

💡 マウスを乗せるとカードがわずかに傾き、立体的な効果が確認できます。


最小HTML(ライトDOM版) 

コアCSS(ライトDOM版) 


Shadow DOM に対応させる考え方

ポイントは 「パーツを切り出す」「CSS変数でテーマ化」
外側(ライトDOM)から Shadow DOM 内を直接スタイルできないため、コンポーネント作者が part を付与し、利用者は ::part() で装飾色や半径は CSS変数で調整します。

Web Component 側(作者向け:影DOM内のテンプレ)

※ここでは概念を示すための HTMLスケッチ です。実際の ShadowRoot 作成は JS が必要ですが、スタイル設計の指針としてご覧ください。

利用者側(外部)からのテーマ上書き例 

まとめ

  • 作者は Shadow DOM 内で CSS変数part名を定義

  • 利用者ホストへ変数指定し、必要なら ::part() でピンポイント調整


デザインバリエーション(クラス追加だけ)


アクセシビリティと実用Tips

  • ボタン/リンクのヒット領域は最低44×44pxを意識(paddingで確保)

  • prefers-reduced-motion に配慮(すでに対応)

  • コントラストoklchcolor-mix()で暗所・明所どちらも読みやすく

  • 画像のalt を適切に

  • フォールバック:古い環境では oklch が未対応 → 代替色を上書き可能に


よく使うCSSカスタムプロパティ(外から上書きOK)

変数名役割
--card-bg背景色#fff / #111
--card-fg文字色#111 / #eee
--card-accentCTAなどの強調色oklch(0.78 0.17 30)
--card-radius角丸12px / 20px
--card-shadow-1影レイヤ(近)0 1px 2px rgba(0,0,0,.2)
--card-shadow-2影レイヤ(遠)0 8px 24px rgba(0,0,0,.12)
--card-border境界線1px solid rgba(0,0,0,.06)
--card-tilt傾き(通常)rotateX(5deg) rotateY(-6deg)
--card-tilt-hover傾き(ホバー)rotateX(6.5deg) rotateY(-10deg)
--card-glossハイライトlinear-gradient(120deg, transparent 30%, rgba(255,255,255,.4) 45%, transparent 60%)
--card-gloss-sizeハイライトサイズ200% 200%

トラブルシュート

  • 立体感が弱い--card-tilt と影(--card-shadow-2)を強める

  • グロスが強すぎる--card-gloss の不透明度を上げる(=白を薄く)

  • 画面酔いprefers-reduced-motion 環境で確認、もしくはカードに .is-outline を付与

  • Shadow DOM で色が変わらない → 変数は ホスト(custom element)側に定義しているか確認


まとめ

項目ポイント
3D表現transformとperspectiveで奥行きを演出
輝き::beforeのグラデとbackground-positionで流し込み
配色oklchとcolor-mixでライト/ダーク両対応
アクセシビリティprefers-reduced-motionと十分なヒット領域
Shadow DOM作者はpart公開&変数化/利用者は::part()と変数上書き
拡張クラス追加でelevated/glass/outlineを切替

【Windows 11】コマンドプロンプト起動時に全角入力になる問題を解決!ターミナル設定で半角英数に固定する方法

Windows 11で「cmd(コマンドプロンプト)」を開くと、なぜか最初から 全角入力(ひらがな)モード になってしまう──。
以前はIMEの詳細設定やレジストリ編集が必要でしたが、最新版(Windows 11 24H2以降)では、Windows ターミナルの設定から簡単に解決できます。

🖥️ 検証環境

  • OS:Windows 11 Pro 24H2

  • 構成:コマンドプロンプト(cmd.exe)を既定プロファイルとして使用

※上記環境では、「既定の IME 入力モード」をプロファイル単位で制御できます。


⚙️ 症状

  • コマンドプロンプトを開いてコマンド入力してみると「全角」入力モードになっていて、ん?と思うことがあります。

  • 半角/全角ボタンで半角入力モードには戻るが、コマンドプロンプト起動直後が全角入力モードという状態


🧭 原因

Windows 11では、入力モード(半角/全角)が アプリ単位で記憶される仕様になっています。
CMDが前回全角で閉じられた場合、次回も全角モードで開いてしまうことがあるのです。

しかし、新しいWindows ターミナル環境(v1.21以降) では、この初期状態をプロファイルごとに固定できるようになりました。


✅ 解決方法(最新版:Windows ターミナル設定でIMEモードを固定)

① Windows ターミナルを開く

  • スタートメニューで「cmd」または「Windows Terminal」を検索して起動します。

  • 上部タブで「コマンド プロンプト」を開きます。


② 設定を開く

  • 右上の「▼」アイコン → 「設定」をクリック
     またはショートカットキー Ctrl + ,(カンマ) でもOK。


③ 「スタートアップ」メニューを選択

左メニューから「スタートアップ」を開きます。


④ 「既定の IME 入力モード」を変更

  • 「既定の IME 入力モード」という項目があります。

  • ここをクリックして 「半角英数字(英語)」 を選択。

  • 最後に「保存」をクリック。


🧩 効果

これで、コマンドプロンプトを開いた瞬間に自動的に「A(半角英数)」モードでスタートします。
他のアプリ(メモ帳・ブラウザなど)のIMEには影響しません。


💬 旧環境(設定項目がない場合)

もしこの設定が表示されない場合は、
Windows ターミナルのバージョンが古いか、Windowsが22H2〜23H2世代の可能性があります。
その場合は以下のいずれかで対処可能です:

  • IMEの「アプリごとの入力モード設定」をオフ

  • PowerShellスクリプト/レジストリで EnablePerAppMode=0 を設定

(※旧環境向けの方法は別記事で解説予定)


🧊 まとめ

方法対応バージョン難易度備考
ターミナル設定Windows 11 24H2以降★☆☆(簡単)推奨
IME詳細設定~23H2★★☆旧UIで利用可
レジストリ変更全バージョン★★★管理者権限が必要

✨ 結論

🔹 今のWindows 11なら、コマンドプロンプトのIME初期状態はターミナルで設定するのが最も確実!
🔹 スクリプトもレジストリも不要。GUIで一発設定。

この新機能のおかげで、開発や管理作業のたびに「半角に戻す」手間はもう不要です。
環境が24H2以降なら、ぜひ設定しておきましょう。

Oracle「ORA-00054: リソースがビジー状態です」発生時の回避策

Oracleで以下のようなエラーが出ることがあります:

ORA-00054: リソースがビジー状態です。NOWAITを指定したためまたはタイムアウトが発生しました。

これは「対象のオブジェクトが別のセッションでロックされており、現在アクセスできない」ことを意味します。
主に DDL(CREATE、ALTER、DROPなど)を実行した際 に発生します。


🧠 主な発生原因

原因説明
セッションロック他のセッションがテーブルやインデックスを更新中でロック中
長時間トランザクションCOMMITされていないセッションが存在
DDLとDMLの競合DML実行中にALTER TABLEなどDDLを実行しようとした
自動統計・バックアップ中バックグラウンド処理が対象オブジェクトをロックしている

🧩 ロック状況の確認方法

1️⃣ ロックされているオブジェクトを特定


2️⃣ SQLを確認

🧰 回避策①:ロック解除(セッション切断)

他セッションが原因の場合は、該当セッションを強制終了します。


sidserial# は上記クエリで確認可能。

管理者権限(SYSDBA)が必要です。


🧰 回避策②:NOWAIT句またはWAIT句を利用

NOWAIT句(即時判定)


ロック中なら即エラーを返します。スクリプト制御時などに便利です。

WAIT句(待機)


最大10秒まで待機して、解除されれば処理を続行します。

🧰 回避策③:時間をおいて再実行

統計収集や自動ジョブが走っている時間帯(例:夜間バッチ中)に発生しやすいため、
時間をおいて再実行 するのも有効です。
特に自動メンテナンスが有効な環境では、深夜帯に競合することが多いです。


🧰 回避策④:DDLを業務外時間に実行

DDLはオブジェクトを完全ロックするため、
業務時間内にALTERやDROPを実行すると高確率で発生します。

定期メンテナンス時間帯 にスケジュール化しましょう。


⚠️ 注意点

  • KILL SESSION は強制終了のため、他処理への影響リスク がある

  • バッチ処理や自動統計のタイミングと重なると再発する

  • ロック発生元を特定し、原因セッションの対処を優先 することが重要


✅ まとめ(表)

対策内容注意点
セッション確認v$locked_object でロック特定管理者権限が必要
強制切断ALTER SYSTEM KILL SESSION他処理への影響注意
WAIT句利用ロック解除を待つタイムアウト指定が重要
実行タイミング調整バッチや統計処理の時間帯を避ける定期メンテナンス枠を活用

JSいらず!HTMLだけでポップアップを出せる「popover」属性がすごい

これまで「ポップアップ」や「モーダルウィンドウ」を作るには、
JavaScriptやCSSトリックを駆使するのが当たり前でした。

ところが最近、**HTMLだけでポップアップを表示できる新属性「popover」**が登場!
これが想像以上にシンプルで、しかも見た目も自然なんです。

この記事では、「popover」属性の基本的な使い方から応用例までまとめています。


🚀 popover属性とは?

popover属性は、HTMLの要素に「ちょっとした吹き出し」や「軽いモーダル」を表示するための新仕様です。
JavaScriptなしで開閉制御でき、ボタンやリンクに紐づけて簡単に使えます。

対応ブラウザ

  • ✅ Chrome 114以降

  • ✅ Edge 114以降

  • ✅ Safari 17以降

  • ⚠️ Firefox(現時点では開発中)

※2025年現在、多くのモダンブラウザでサポートが進んでいます。


🧱 基本の使い方

✅ 最小構成の例 


<表示例>

💬 ポイント解説

  • popover 属性を付与した要素が、ポップアップ対象になります。

  • popovertarget 属性で、どの要素を表示するか指定します。

  • ボタンをクリックするだけで自動的に開閉制御してくれます。


🎨 スタイルを整える

デフォルトのままだと少し味気ないので、CSSで整えましょう。


これで、軽いツールチップやメニュー風の見た目にできます。

背景を白系にすれば、Webアプリ風のモーダルにも。


⚙️ 応用:自動で閉じる・メニュー風表示 

popovertargetaction="toggle" を使うと、クリックごとに開閉を切り替えられます。
ナビゲーションメニューやヘルプボックスなどにも応用可能です。

<表示例>


🧠 裏側の仕組み

HTMLの「popover」属性は、ブラウザ側で開閉制御を自動的に処理します。
内部的には :popover-open という擬似クラスが追加され、
CSSで開閉状態を検知することもできます。


この仕組みにより、JSでイベントを監視せずとも

**「開いたときだけアニメーション」**などを実現できます。


💻 実用例:通知メッセージ


JavaScript不要で、ユーザーに小さなメッセージを伝えることが可能です。

フォーム送信後の完了メッセージなどにもぴったり。


⚠️ 注意点

  • 古いブラウザでは未対応なので、必要に応じて<dialog>タグやJSフォールバックを検討。

  • 開く方向は自動制御されるため、細かい位置調整が難しい場合があります。

  • 長文や複雑なレイアウトには不向き(軽量ポップアップ用途がベスト)。


🌟 まとめ

特徴内容
JavaScript不要HTMLだけで完結
見た目自由CSSで簡単カスタマイズ
軽量ページ読み込みが早い
一部ブラウザ注意Firefoxは実装中

🔮 今後の展望

「popover」属性はまだ新しい技術ですが、
“JavaScriptレスなUI” を目指すHTML進化の象徴です。

今後は、ツールチップ・通知・設定メニューなど、
より多くのシーンで採用が進むと期待されます。

🧠 Pythonで学ぶ画像認識入門:TensorFlowとKerasで手書き数字を判定する方法(4) ~学習済みモデルで自作画像を認識~

前回の

🧠 Pythonで学ぶ画像認識入門:TensorFlowとKerasで手書き数字を判定する方法(3) ~CNNによる高精度モデル編~

までで、MNISTデータセットを使い高精度なCNNモデルを作成しました。
今回はその学習済みモデルを再利用し、自分で描いた手書き数字画像を実際に判定してみましょう。


ステップ①:学習済みモデルの保存

前回での学習コードに以下を追加して、モデルを保存しておきます。


これで C:\python_env\mnist_cnn_model.h5 が生成されます。


ステップ②:自作画像を準備する

1️⃣ 白背景に黒文字で「0〜9」の数字を描いた画像を用意
2️⃣ 画像サイズを 28×28ピクセル にリサイズ
3️⃣ ファイル形式は .png または .jpg でOK

(例)

C:\python_env\my_digit.png

※手書きペイントツールで描いてもOK。
できるだけ文字を中央に配置し、背景は白が理想です。


ステップ③:推論スクリプトを作成

ファイル名:

predict_my_digit.py

内容:


ステップ④:実行

仮想環境を有効化して、次のコマンドを実行:


ステップ⑤:結果と考察

項目内容
予測結果AIが自作の手書き数字を正しく認識し、予測結果が画面に表示される
処理時間数百ミリ秒程度で即時に判定が完了
注意点白背景×黒文字の前提で学習しているため、背景と文字が逆の場合は反転処理を削除
応用例手書き書類の数字抽出、郵便番号や伝票番号の自動読み取りなどに応用可能
考察CNNモデルにより自作データでも高い精度を維持。前処理(反転・正規化)が認識精度に大きく影響

💡 ワンポイント

もし背景が黒で文字が白の場合は、
次の行を削除してください:


✅ まとめ

これで「自分の描いた手書き数字」をAIが正しく認識できるようになりました。
この流れを応用すれば、より複雑な画像分類(例えば「猫と犬」や「手書き文字分類」)にも発展できます。

🧠 Pythonで学ぶ画像認識入門:TensorFlowとKerasで手書き数字を判定する方法(3) ~CNNによる高精度モデル編~

前回の記事

🧠 Pythonで学ぶ画像認識入門:TensorFlowとKerasで手書き数字を判定する方法(2) ~実践サンプルコード編~

では、全結合層(Dense Layer)のみを使った
シンプルなニューラルネットワークで手書き数字を認識しました。

今回はその続編として、
より高い精度を実現するために

  • 🌀 CNN(畳み込みニューラルネットワーク)

  • 🌊 Dropoutによる過学習防止

  • ⚙️ 学習率調整(Learning Rate Scheduling)

を導入した「高精度モデル版」を構築します。


🧩 動作環境(同シリーズ共通)

項目バージョン・設定内容
OSWindows 11 Pro(64bit)
Python3.13.7(公式版インストーラ)
pip25.2
仮想環境venv(C:\python_env\env)
TensorFlow2.20.0
matplotlib3.10.6


🧱 ステップ①:CNNを使ったモデル構築

CNNは画像認識に特化したネットワーク構造で、
人間の「目」と同じように特徴(輪郭・形・濃淡)を自動的に抽出します。


⚙️ ステップ②:学習率を調整して最適化

Adam オプティマイザの learning_rate を指定することで、
勾配更新のスピードを細かく制御できます。


📈 ステップ③:学習を実行

学習中の精度や損失の推移がターミナルに表示されます👇



🧾 ステップ④:テストデータで評価

CNNを導入したことで、精度は 約99%前後 に向上します🚀


🧠 ステップ⑤:予測結果の可視化


📊 ステップ⑥:精度の推移をグラフ化(オプション)

このグラフで、学習が過学習に陥っていないか確認できます。

💾 手順まとめ:ファイル保存〜実行まで

① ファイルを作成

任意のテキストエディタ(例:VSCode、メモ帳、サクラエディタなど)で
以下のコードをコピーして貼り付けてください。

ファイル名は:

mnist_cnn_high_accuracy.py

② コード内容(完全版)


③ 保存場所

わかりやすくするために、
これまでと同じフォルダ内(例:C:\python_env)に保存するのがおすすめです。

C:\python_env\mnist_cnn_high_accuracy.py

④ 実行手順

1️⃣ 仮想環境を有効化(重要):


2️⃣ スクリプトを実行:

⑤ 実行結果

  • 学習が進むと各 Epoch ごとの精度が表示される

  • 終了時に

    Test accuracy: 0.9935

    のような高精度結果が出る

  • その後、

    • AIが予測した数字画像(例:「7」)

    • 学習精度グラフ(train_acc / val_acc)
      が順に表示されます


⑥ 終了後

仮想環境を終了:


🚀 結果と考察

比較項目前回(Dense)今回(CNN+Dropout)考察
モデル構造全結合層のみ畳み込み+プーリングCNNが画像の空間特徴を直接学習でき、汎化性能が向上
エポック数510学習回数は増えるが精度向上に寄与
学習時間(目安)約5秒約20秒パラメータが増えるため計算時間は増加
精度(テスト)約97.6%約99.2%CNN導入で+1〜2ポイント改善
過学習対策なしDropout(0.5)Dropoutにより汎化が改善し、過学習を抑制

CNNを導入することで、特徴抽出の自動化が進み、
より安定した高精度の画像認識が可能になりました。


💡 応用ポイント

  • 🔹 BatchNormalization を追加するとさらに安定化

  • 🔹 データ拡張(ImageDataGenerator) で汎化性能アップ

  • 🔹 モデル保存model.save("mnist_cnn_model.h5")


✅ まとめ

本記事では、

CNN(畳み込みニューラルネットワーク)+Dropout+学習率調整
を導入して、手書き数字認識AIを高精度化しました。

精度は 約99% に到達し、実用的な画像認識モデルの基礎が完成です。

🔜 次回予告

「(4) 学習済みモデルを使って自分の手書き画像を判定する」

自分で描いた数字画像を読み込んで、
AIがそれを正しく識別できるか試してみましょう🖋️

🧠 Pythonで学ぶ画像認識入門:TensorFlowとKerasで手書き数字を判定する方法(2) ~実践サンプルコード編~

前回の記事
🧠Pythonで学ぶ画像認識入門:TensorFlowとKerasで手書き数字を判定する方法(1) ~環境構築編~

では、

「Python公式版+仮想環境を使ったTensorFlow開発環境構築」
を行い、AI開発の準備が整いました。

今回はその続編として、
実際にTensorFlowとKerasを使って手書き数字を判定するAIモデルを作る実践編 を解説します。
データの読み込みからモデルの学習・評価・予測までを、
最小限のシンプルなコードで体験してみましょう。


🧩 動作環境(前回と同じ構成)

項目バージョン・設定内容
OSWindows 11 Pro(64bit)
Python3.13.7(公式版インストーラ)
pip25.2
仮想環境venv(C:\python_env\env)
TensorFlow2.20.0
matplotlib3.10.6


🧠 ステップ①:MNISTデータセットを読み込む

TensorFlowには「手書き数字データ(MNIST)」が標準で付属しています👇


🧩 ステップ②:データの前処理


これで学習が安定し、計算精度が向上します。

🧩 ステップ③:モデル構築(Keras Sequential)


🧩 ステップ④:学習を実行


約5エポックで 98%前後の精度 が出るはずです✨

🧩 ステップ⑤:テストデータで評価


🧩 ステップ⑥:実際に予測してみる


AIが画像を認識して、数字を正しく判定してくれます👀✨

ステップ①~⑥のコードについて

各ステップは、順番に実行される処理の流れを分けて説明しているだけで、
実際のプログラムとしては 連続して動く1つのコード になります。

つまり、実際に実行する場合は次のようにすべてまとめて書いて問題ありません👇


✅ 例:mnist_sample.py として保存する内容


💾 保存と実行

  1. C:\python_env などに上記を mnist_sample.py として保存

  2. 仮想環境を有効化:


  3. 実行:

  4. 実行例

📊 補足:精度向上のヒント

  • CNN(畳み込みニューラルネットワーク) を導入する

  • Dropout で過学習を防止

  • エポック数や学習率 の調整

これらを追加すると、より実践的なモデルになります。


🚀 まとめ

本記事では、
TensorFlowとKerasを用いて「手書き数字判定AI」を実装しました。

これで、

  • データの前処理

  • モデル構築

  • 学習・評価・予測
    というAIの基本的な流れを一通り理解できたはずです。

次回

🧠 Pythonで学ぶ画像認識入門:TensorFlowとKerasで手書き数字を判定する方法(3) ~CNNによる高精度モデル編~

は、CNNを用いた高精度モデル化(第3回) に挑戦します🔥

🧠 Pythonで学ぶ画像認識入門:TensorFlowとKerasで手書き数字を判定する方法(1) ~環境構築編~

AIや機械学習に興味がある方にとって、「画像認識」は最初の一歩として最適なテーマです。
今回は Python + TensorFlow + Keras を使って、手書き数字を自動判定するプログラムを実際に作ってみましょう。
有名な「MNIST(エムニスト)」という手書き数字データセットを使うことで、数十行のコードで高精度な認識が可能になります。


~公式版インストールから仮想環境・動作確認まで~


💻 環境例

項目バージョン・設定内容
OSWindows 11 Pro(64bit)
Python3.13.7(公式版インストーラ)
pip25.2
仮想環境venv(C:\python_env\env)
TensorFlow2.20.0
matplotlib3.10.6

🧩 ステップ①:公式Pythonのインストール

1️⃣ Python公式サイトへアクセス

👉 https://www.python.org/downloads/windows/

2️⃣ 最新の「Windows installer (64-bit)」をダウンロード

①Downloads → Windows を選択し、「Latest Python 3 Release – Python 3.13.7」をクリック

②画面下にある「Windows installer (64-bit)」をクリックしてダウンロード

3️⃣ インストーラ起動後の設定

以下のチェックを必ず確認してください。

Add python.exe to PATH
Use admin privileges when installing py.exe
➡ 「Customize installation」を選択して進む

4️⃣ Advanced Options の設定

  • ☑ Install Python 3.13 for all users

  • ☑ Add Python to environment variables

  • ☑ Precompile standard library

  • 📁 インストール先を以下に変更:

    C:\Python313

5️⃣ 「Install」をクリックして完了!


🧩 ステップ②:インストール確認

インストール完了後、コマンドプロンプトで以下を実行👇

✅ 出力例

🧩 ステップ③:仮想環境の作成と有効化

プロジェクト専用の仮想環境を作成して、ライブラリの競合を防ぎます。


有効化:

✅ 成功すると、プロンプトの先頭に (env) が表示されます

🧩 ステップ④:TensorFlowとmatplotlibをインストール

仮想環境が有効な状態で以下を実行👇


インストール後に確認:

✅ 出力例(抜粋)


🧩 ステップ⑤:動作確認

TensorFlowが正常に動作しているか確認します。


✅ 出力例:

※ oneDNN に関する警告が表示されても正常です。
性能最適化のための通知なので無視してOKです。


🧩 ステップ⑥:仮想環境の管理コマンドまとめ

操作内容コマンド
仮想環境を終了deactivate
仮想環境を再開cd C:\python_env && env\Scripts\activate
ライブラリ一覧確認pip list
仮想環境の削除rmdir /s /q C:\python_env

✅ まとめ

この手順で構築すれば、
Windows上で安定して動作する TensorFlow + Keras + matplotlib 環境が整います。
AI学習・画像認識・データ分析など、あらゆるPython開発に対応可能です💡

💬 次回予告

次の記事

🧠 Pythonで学ぶ画像認識入門:TensorFlowとKerasで手書き数字を判定する方法(2) ~実践サンプルコード編~

では、「TensorFlowとKerasで手書き数字を判定する」実践サンプルコード

を紹介します。
実際にMNISTデータセットを使って、
AIが数字を“読む”プロセスを一緒に学んでいきましょう。

JavaScriptなしで実現!HTML5 Canvasアニメーションで魅せるWeb装飾

HTML5の登場以降、Webデザインの表現力は大きく進化しました。
その中でも<canvas>タグは、まるで映像作品のような動きをブラウザ上で描くための強力な機能です。

「アニメーション=JavaScriptが必要」と思われがちですが、実はJavaScriptを使わずにCanvasを動かす方法も存在します。
今回は、HTML5の<canvas>タグだけで実現できる動くWeb装飾について紹介します。


🖋️ <canvas>タグの基本とは?

<canvas>タグは、HTML5で導入されたグラフィック描画用の要素です。
通常はJavaScriptを使って図形やアニメーションを描きますが、近年はCSSアニメーションやSVG、さらにはGIF・APNGを組み合わせてCanvasを動かす手法も増えています。


このようにCanvasを定義するだけで、背景や装飾として利用可能。

さらに、CSSや画像アニメーションを活用することで、JavaScriptなしでも“動きを感じさせる”デザインを作ることができます。


🌊 JavaScriptなしで実現する波紋・粒子エフェクト

近年注目されているのが、Canvasを静的画像やCSSアニメーションと組み合わせるアプローチです。

✅ 例:波紋エフェクト(CSS連携) 


これだけで、Canvas上に波紋が広がるような演出をCSSだけで表現できます。

動的スクリプトが不要なので、ローディング画面やメインビジュアルにも最適です。

サンプル


✨ パーティクル風の演出も可能

粒子(パーティクル)をイメージした演出も、背景のCanvasを複数重ねることで再現可能です。
たとえば、透明度の異なる複数のCanvasレイヤーをCSSで重ねると、光がゆらめくような表現になります。



これにより、動きを感じさせる静かな装飾が可能になります。

サンプル


🧩 活用シーン

HTML5 Canvasを使った静的アニメーションは、以下のような場面で効果的です。

  • 🌐 ローディング画面:シンプルで軽量な波紋アニメーションを表示

  • 🖼️ メインビジュアル:粒子や光を使った背景エフェクト

  • 🔲 ボタンホバー時:クリック誘導に動きを加える

  • 💻 プレゼン用サイト:静かな動きでブランド感を演出


💬 まとめ

JavaScriptを使わなくても、HTML5 Canvasを上手く活用すれば軽量で美しいアニメーション表現が可能です。
CSSやCanvasレイヤーを組み合わせることで、Webサイト全体の印象を大きく向上させることができます。

「動き=JS」ではなく、「表現=HTML5 × CSS × Canvas」
これが、モダンWebデザインの新しいアプローチです。