Windows 11の「クイック設定」でよく使う機能を一瞬で呼び出す方法

Windows 11では「アクションセンター」が廃止され、代わりに 「クイック設定」 が搭載されています。
Wi-FiやBluetooth、音量・明るさの調整といった操作を、わざわざ設定アプリを開かずにその場で切り替えられる便利な機能です。

ただ22H2以前はカスタマイズ可能でしたが、22H2からは標準では編集不可となっているので少々使い勝手が悪くなってます。。


クイック設定の開き方

クイック設定を開く方法はとても簡単です。

  • タスクバー右下の Wi-Fi/音量/バッテリー アイコンをクリック

  • または ショートカットキー:Windowsキー + A

このどちらでも同じクイック設定パネルが表示されます。


クイック設定でできること

クイック設定では次のような機能をワンクリックで操作できます。

  • Wi-Fi の接続切り替え

  • Bluetooth のオン/オフ

  • 機内モード

  • 夜間モード(ブルーライトカット)

  • モバイル ホットスポット

  • アクセシビリティ機能

  • 音量・明るさの調整

普段よく使う機能がここに集約されているため、PC操作がスムーズになります。


クイック設定のカスタマイズ方法(22H2以降)

Microsoft は Windows 11 24H2 から 「クイック設定の固定化」 を行い、ユーザーが自由にタイルを編集できないように仕様変更しました。
そのため24H2以前にあった「+ボタン」や「鉛筆マーク」が存在せず、右クリックでも編集不可になっています。


レジストリ編集で編集機能を復活させる方法(自己責任)

Reddit ユーザーが共有している回避策として、レジストリを編集して クイック設定の編集機能を有効化 する方法があります。

手順

  1. レジストリエディタを開く

    • Win + Rregedit と入力 → Enter

  2. 以下のキーを探す

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PolicyManager\default\QuickActions\AllowCustomization
  3. 右ペインの value01 に変更
    (DWORD値が存在しない場合は新規作成)

  4. サインアウト or 再起動

  5. クイック設定に再度アクセスすると、編集オプションが復活する可能性あり


注意点

  • この方法は 非公式の回避策 であり、Microsoft がサポートしていません。

  • 将来のアップデートで無効化される可能性があります。

  • 誤ったレジストリ編集はシステム不具合の原因になるため、必ずバックアップを取った上で自己責任で行ってください。


歯車アイコン(⚙)の役割

クイック設定の右下にある 歯車アイコン は「設定アプリ(Win + I)」へのショートカットです。
詳細なシステム設定やネットワーク管理を行いたいときに利用します。


ショートカットでさらに効率化

  • Win + A … クイック設定をすぐに開く

  • Win + N … 通知センターを開く(併用すると便利)

作業中でも一瞬で呼び出せるので、キーボード操作に慣れるとさらに快適です。


まとめ

  • Windows 11 のクイック設定は、よく使う機能をまとめた 簡易コントロールパネル

  • Win + A で一瞬で開ける

  • 22H2からユーザーが自由にタイルを編集できないように仕様変更されている。

ログ出力が一気に効率化!log4j2を使うべき場面とは

Java開発におけるログ出力は、障害解析・性能改善・監査の三種の神器。長年使われてきた log4j 1.x に対し、後継の log4j2 は「高速・柔軟・安全」に大幅進化しています。本稿では、違いが直感的に分かる比較と、**失敗しない導入手順(Maven/Gradle、設定、非同期化、移行の落とし穴まで)**をまとめます。


1. log4j 1.x と log4j2 の要点比較

観点log4j 1.xlog4j2
パフォーマンス同期中心。大量ログでアプリに負荷LMAX Disruptorによる非同期ロガーで高速・低レイテンシ
設定形式properties / XML のみXML / JSON / YAML / properties、ホットリロード対応
非同期化AsyncAppenderのみAsyncAppender+Async Logger(全ロガー非同期も可)
GC負荷文字列連結が発生しやすくGC負担増遅延評価(ラムダ/プレースホルダ)で不要時は連結処理なし
拡張性限定的フィルタ / レイアウト / Appender が豊富(JSON出力、Failover等)
メンテナンスEoL(保守終了)現行バージョン維持(常に最新2.xを推奨)

結論:高負荷・可観測性重視の現場ほど log4j2 一択。


2. こんな場面で「log4j2」を選ぶ

  • 大量ログ(秒間1000件~万件)を裁くWeb/バッチ、IoT、決済、EC

  • 本番でログレベルを動的変更したい(再起動なしで即調査)

  • JSON出力で Elasticsearch / OpenSearch / Splunk / Datadog に流す

  • 遅延評価MDC(相関ID) で可観測性とパフォーマンスを両立したい


3. 導入手順(Maven/Gradle)――最短で“動く”まで

ここでは log4j2 を実装(Core)として使い、APIは SLF4J で書く構成を推奨します。
理由:ライブラリ間の共通言語として SLF4J がデファクト、実装差し替えも容易。

3.1 依存関係を追加

Maven(pom.xml)

Gradle(Kotlin DSL) 

重要:既存で引き込まれる logback-classicslf4j-log4j12除外してください(重複実装エラー&二重出力の原因)。

3.2 旧実装の衝突を避ける(例:Maven の除外) 

3.3 最小構成の設定ファイル(src/main/resources/log4j2.xml 

  • monitorInterval="30":30秒ごとに設定ファイルの変更を検知し、再起動なしで反映

3.4 SLF4J での利用コード 

3.5 ローリングファイル+JSON(実戦向け) 

  • JSON出力で可観測性基盤にそのまま投入可能。

  • max="30":古いファイルを30世代で自動削除。

3.6 非同期化の推奨設定(高スループット向け)

方法A:Async Appender(部分的に非同期)

方法B:Async Logger(全ロガーを非同期化)

  1. 依存に disruptor を追加(前述)

  2. JVM 起動オプションに以下を付与

目安:秒間数千件以上のログ、遅延許容な処理では Async Logger が強力。
低遅延の必要なクリティカル処理(トランザクション境界直前など)は同期Appenderで分離も可。

3.7 現場で必須の“相関ID”(MDC/ThreadContext)

  • 分散トレーシングやバッチ内のジョブ相関に必須。

3.8 動的なログレベル変更(コード&設定)

  • コードで変更 

  • 設定のホットリロードmonitorInterval でファイルを書き換えるだけ

3.9 他フレームワークのログを一本化(任意)

  • JUL(java.util.logging)→ Log4j2log4j-jul を追加し、

  • Commons Logging(JCL)→ Log4j2log4j-jcl を追加


4. 旧 log4j 1.x からの移行チェックリスト

  1. jar の置換と衝突解消

    • 1.x の log4j-1.2.x.jar を除去

    • log4j-api, log4j-core, log4j-slf4j2-impl を追加

    • 他実装(logback 等)を除外

  2. 設定ファイルを置き換え

    • log4j.propertieslog4j2.xml(or .json/.yaml) に構造変換

  3. コードの修正方針(推奨順)

    • SLF4J API へ書き換え(LoggerFactory.getLogger 等)

    • もしくは log4j2 API へ(org.apache.logging.log4j.LogManager.getLogger

    • 当面の暫定策として log4j-1.2-api(互換レイヤ)もあるが恒久利用は非推奨

  4. 性能と出力の検証

    • 期待QPSでのバックプレッシャディスク枯渇を確認

    • 非同期化の有無でレイテンシ差を測定

  5. 運用監視

    • -Dlog4j2.debug=true で起動し、設定解決やエラーを起動時に確認

    • ログローテーションと世代数の上限を監視に組み込み


5. 開発・運用の実用Tips

  • 重い toString() を直接連結しないlog.debug("x={}", () -> obj.heavyToString())

  • Failover Appender で出力先障害に備える(ネットワークストレージ等)

  • パターン設計:時刻、レベル、ロガー、メッセージ、%throwable、MDC を最低限

  • 本番では INFO 以上、詳細調査時のみ一時的に DEBUG/TRACE を開ける

  • 最新 2.x 系を採用(セキュリティ修正が継続されるため)


6. まとめ

  • log4j2 は “高速+柔軟+安全”。大量ログ・可観測性要件に強い。

  • 導入は依存追加 → 設定作成 → 非同期化の3ステップが核。

  • 移行は衝突除去と設定変換が肝。SLF4J API で書くと将来の実装差し替えも容易。

社員証の「所持チェック」がセキュリティ強化にならない理由

最近、一部の企業で「社員証や入館証を毎週持っているかチェックする」という運用が行われているという噂を耳にします。社員証には入館証の機能なども併用して持たせている企業も多いので、
一見すると「セキュリティを高めている」ように見えますが、実際にはこれは上層部だけが満足するセキュリティを強化しない無駄な儀式でしかなく、むしろ社員の不信感を高める行為になるのでまとめてみました。

筆者も以前、週毎に所持チェックなどが実施された時期があってうんざりしていたことがあったので注意喚起も込めてます。


1. チェックしても失くした場合は即日悪用されるリスク

  • 入館証を落とした場合、拾った人に悪意があればその日から建物に入れてしまいます。

  • 仮に「週一で持っているかチェック」しても、発覚するのは最長で7日後
    ※じゃあ毎日チェックすればいいという話ではありませんからねw

  • つまり、被害が起きてから気づくだけで、防止にはなりません。


2. 「持っているか」しか見ていない

  • チェックは所詮「その時にカードを持っている」ことしか確認できません。

  • しかし問題は「持っている本人が正しい人かどうか」「貸し借りや不正利用がないか」です。

  • 本来求められるのは 本人確認(生体認証やスマホ認証) であって、カードの有無ではありません。


3. 無駄にコストだけかかる

  • 例えば500人の会社で、1人あたりチェックに1分かかるとします。

  • 毎週やれば 年間400時間以上の労働時間が消えます。

  • その割に得られるセキュリティ効果はゼロ。費用対効果としても最悪の愚行です。


4. 本当に強化すべきはここ

  • 紛失した時にすぐ失効できる仕組み
    → 「無くしたら即座に無効化」ができれば、拾われても使えない。

  • 入口での本人確認を強化
    → 生体認証やスマホ連動で「本人+デバイス」の組み合わせを確認する。

  • 入退館ログの自動監視
    → 普段と違う時間帯や場所の入館を自動検知してアラートを出す。

これらは「社員証チェック」よりも遥かに直接的で効果があります。


5. チェックはむしろ逆効果

  • 社員から見ればこの時代に小学生の名札チェックのようなことをいい大人になってもされることで会社から「信用されていない」「子供扱いされている」としか映らず、不信感しか生まれません。

  • 会社側は「安心したいだけ」、社員側は「不信感しか生まれない」という最悪の意識ギャップが生まれます。「典型的なSecurity Theater(見せかけの安全)」

  • 結果、セキュリティ意識が高まるどころか、信頼関係が壊れてモチベーション低下につながり、最悪退職などにもつながりかねません。


まとめ

社員証の所持を頻繁にチェックすることは、セキュリティ強化には一切つながりません
必要なのは「即時失効」「本人確認の仕組み強化」「ログ監視」であり、持ち物検査のような形式的な運用ではありません。

企業側が「やってる感」で安心したいだけの施策は、結局社員からの信頼を失い、逆にリスクを高める結果を招くので注意しましょう。

Oracle DBでORA-12170「接続タイムアウト」が出る場合の調査方法

Oracleデータベースに接続しようとした際に、ORA-12170: TNS: 接続タイムアウトが発生しました というエラーが出ることがあります。
このエラーは、クライアントからデータベースへの接続要求がタイムアウトした場合に発生します。ネットワーク障害や設定不備、ファイアウォールの影響など原因は多岐にわたります。この記事では、調査のポイントをステップごとに解説します。


1. エラーメッセージの確認

まずは実際のエラーメッセージを確認しましょう。例えば以下のように出力されます。

ORA-12170: TNS: 接続タイムアウトが発生しました

sqlplus やアプリケーションログに記録されることが多いので、詳細をログからもチェックしておきます。


2. ネットワークレベルの確認

接続タイムアウトの多くはネットワーク経路に起因します。以下を確認しましょう。

  • ping でホストに疎通できるか

  • tnsping でOracleリスナーの応答があるか

  • ファイアウォールやセキュリティグループで 1521/TCP(デフォルトポート)がブロックされていないか

  • VPNやプロキシ経由の場合、経路に問題がないか


3. Oracle Listenerの確認

データベース側でリスナーが正常に動作しているか確認します。

lsnrctl status
  • 状態が READY になっているか

  • 正しいホスト名・ポートで待ち受けているか

  • リスナーログにエラーが出ていないか


4. SQL*Net / TNS設定の確認

クライアント側の tnsnames.ora や接続文字列の設定を見直します。

  • HOST名/IPアドレス が正しいか

  • SERVICE_NAME / SID が一致しているか

  • 環境変数 ORACLE_HOMETNS_ADMIN の設定が適切か

また、サーバ側の sqlnet.ora にて SQLNET.INBOUND_CONNECT_TIMEOUTSQLNET.OUTBOUND_CONNECT_TIMEOUT が過剰に短く設定されていないかも確認します。


5. ファイアウォール / OS設定の確認

サーバOS側の設定も見直す必要があります。

  • OSファイアウォール(iptables / firewalld / Windows Defender Firewall)がポート1521を許可しているか

  • クラウド環境の場合、セキュリティグループやネットワークACL が接続をブロックしていないか

  • 複数NICやロードバランサーを経由している場合に経路の設定が正しいか


6. タイムアウト値の調整

原因が不明な場合、タイムアウト値の調整も検討できます。

  • クライアント側: sqlnet.oraSQLNET.OUTBOUND_CONNECT_TIMEOUT

  • サーバ側: sqlnet.oraSQLNET.INBOUND_CONNECT_TIMEOUT

  • Listener側: listener.oraINBOUND_CONNECT_TIMEOUT_LISTENER

ただし、根本原因がネットワークや設定不備である場合は、単なる延命策になってしまう点に注意が必要です。


まとめ

ORA-12170 が発生した場合の調査手順は以下の流れで進めると効率的です。

  1. ネットワーク疎通確認(ping / tnsping)

  2. リスナー稼働状況確認(lsnrctl status)

  3. 接続設定(tnsnames.ora / 接続文字列)の確認

  4. サーバ側ファイアウォールやクラウドセキュリティ設定の確認

  5. タイムアウト設定の調整

多くの場合、ネットワーク経路やファイアウォールが原因となるケースが多いため、まずは通信経路の確認から着手するのがポイントです。

HULFT連携:Javaからユーティリティコマンドを呼び出す実装例

HULFTには「送受信ジョブを定義して使う方法」以外に、utlsendなどのユーティリティ系コマンドを直接呼び出してファイル転送や加工を行う手段があります。
これらは事前の送受信定義が不要で、コマンド実行時に条件を指定できるため、テスト送信・スポット利用・簡易処理に非常に便利です。

本記事では、JavaでHULFTコマンドを実行する例をご紹介します。

  • utlsend : ファイル送信

  • utlrecv : ファイル受信

  • utlconcat : ファイル連結

  • utlsplit : ファイル分割


Javaから外部コマンドを実行する基本

Javaでは ProcessBuilder を使うことで、外部のHULFTコマンドを呼び出せます。
エラー出力も標準出力にまとめる設定をすれば、ログ管理が容易になります。

共通の呼び出しテンプレートは以下の通りです。

以降の例では、この runCommand を利用して各ユーティリティコマンドを実行します。


1. ファイル送信(utlsend

事前の送信定義が不要で、対象ファイルと宛先ノードを直接指定できます。

  • -f : 送信するファイルパス

  • -n : 宛先ノード名(HULFTに登録済み)


2. ファイル受信(utlrecv

受信ジョブを登録せず、コマンドだけでファイルを取得できます。

  • -f : 保存先のファイル名

  • -n : 送信元ノード名


3. ファイル連結(utlconcat

複数のファイルを1つにまとめたいときに使います。

  • -o : 出力ファイル名

  • -f : 結合対象のファイル(複数指定可)


4. ファイル分割(utlsplit

大きなファイルを分割して処理したいときに使います。

  • -f : 分割対象ファイル

  • -l : 分割する行数(例:1000行ごと)


運用上の注意点

  1. PATHの設定
    Javaから呼び出す際は、utlsend.exe などのHULFTバイナリがPATHに通っている必要があります。
    通っていない場合はフルパス指定が必須です。

  2. 終了コードの確認

    • 0 : 正常終了

    • 0以外 : エラー(詳細はHULFTマニュアルのエラーコード参照)

  3. ログ管理
    実際の業務バッチでは process.getInputStream() の内容をファイル出力してログ管理することを推奨します。


まとめ

  • utlsend でファイルを即送信できる

  • utlrecv で即時受信が可能

  • utlconcat でファイルを連結

  • utlsplit でファイルを分解

これらをJavaから呼び出すことで、柔軟なファイル連携や加工処理が実現できます。

インターネット速度測定サービス「Speedtest」と「Fast.com」の違いを比較してみた

インターネットが遅いと感じたときや、回線品質を確認したいときに便利なのが「ネット速度測定サービス」です。代表的なものに Speedtest by OoklaFast.com(Netflix提供) があります。
今回はこの2つで実際に速度を計測し、結果を比較してみました。


計測結果の比較

Speedtestの結果

  • ダウンロード:749.95 Mbps

  • アップロード:450.32 Mbps

  • Ping:26 ms

  • 接続サーバ:東京(fdcservers.net)

Fast.comの結果

  • ダウンロード:190 Mbps

  • アップロード:570 Mbps

  • レイテンシ:12〜32 ms

  • 接続サーバ:東京・大阪(KDDI/Netflix系)

👉 同じ回線を使用しているにもかかわらず、下り速度に大きな差が出ました。


なぜ結果が違うのか?

1. サーバの違い

  • Speedtest:テスト用に用意されたサーバ(東京・世界各地)を利用。

  • Fast.com:Netflixの動画配信サーバ(CDN、KDDI系など)を利用。

→ ISP(プロバイダ)のピアリング状況によって、速度差が出やすい。


2. 計測方法の違い

  • Speedtest:複数の接続を同時に行い、理論的な最大スループットを測定。

  • Fast.com:大容量データを一定時間ダウンロードし、動画ストリーミングに近い実効速度を測定。

→ そのため、Speedtestの方が「回線の性能」に近く、Fast.comの方が「動画サービス利用時の体感速度」に近い。


3. ISPの最適化

多くのプロバイダは、動画配信トラフィックを特別に扱っています。Netflixなどの動画ストリーミングでは制御が入ることがあり、Fast.comでは「実際の動画視聴環境に近い速度」が表示されるケースがあります。


どちらを信じるべき?

  • 回線の最大性能を知りたい → Speedtest

  • NetflixやYouTubeなど動画視聴の快適さを知りたい → Fast.com

両方を併用することで「理論値」と「実利用値」をバランスよく確認できます。


まとめ

  • SpeedtestとFast.comでは、計測サーバと方式の違いから結果に差が出る。

  • Speedtestは回線の理論性能を測りたいときに有効。

  • Fast.comは動画配信サービスでの実利用速度を知るのに便利。

  • ネット環境を正確に把握するには、複数のサービスで測定して比較するのがおすすめです。