もしこのブログがお役に立ちましたら、次回のAmazonでのお買い物時に こちらのリンクから 購入していただけますと嬉しく思います。

2025年4月22日

Cloudflare Workersに設定した変数をJavaScriptで出力する

Cloudflare Pagesなどを使って静的なHTMLをホスティングしているとします。ただし、API KeyなどはHTMLのJavaScriptに直書きするのではなく、別の手段で保持したい場合があるかも知れません。そんな時にはWorkersを使うと幸せになれます。手順は下記の通りです。

  1. Workersにシンプルな"Hello world"プロジェクトを作成する
  2. 作成したプロジェクトの「設定」→「変数とシークレット」から「追加」を押し、"タイプ"="テキスト"でAPI Keyなどのキー・バリューを作成する
  3. コード編集画面を開き、下記のコードに変更してデプロイする
export default {
  async fetch(request, env, ctx) {
    let ret = "";
    for (var key in env) {
      ret += "const " + key + " = \"" + env[key] + "\";\r\n";
    }
    return new Response(ret);
  },
};
デプロイ後、https://[プロジェクト名].[サブドメイン].workers.dev/ にアクセスすると、「変数とシークレット」にある全ての変数(定数)が下記のように表示されます。
const key1 = "value1";
const key2 = "value2";
あとは静的なHTMLに下記のコードを追加すれば、HTML内のJavaScriptで変数(上記の例ではkey1やkey2)を利用できます。
<script src="https://[プロジェクト名].[サブドメイン].workers.dev/"></script>
以上、お役に立てば幸いです。

2025年1月3日

CMF Watch Pro 2でカメラのリモート撮影ができない場合

CMF Watch Pro 2をAndroidと連携させている場合、「カメラのリモート操作」でシャッターボタンを押しても音量が変化するだけで、シャッターが切れないということがあります。そんな時にはAndroid側で下記の操作をしてみてください。(SonyのAndroidカメラアプリを例にしています)

  • カメラアプリを開く
  • 右上の歯車マークを押して「カメラ設定」を開く
  • 「共通」の「音量ボタン設定」を開く
  • 「シャッター」という選択肢を押す
同じような設定があるカメラアプリであれば対応可能だと思います。ぜひお試しください。

2023年12月25日

EdgeやChromeでアドレスバーのカーソルが透明になる問題について

(以下はAMD Radeon GPUを搭載したWindows11のノートPCで起きた問題ですが、Radeon搭載のデスクトップPCでも発生するかもしれません)

EdgeやChromeで新しいタブを開いたとき、アドレスバー(検索バー)のマウスカーソルが数秒間透明になって見えにくくなることがあります。手元の環境では以下の方法で解決しました。

  1. Windows11の「設定」を開き、「アクセシビリティ」→「マウスポインターとタッチ」と進む
  2. 「マウスポインターのスタイル」にある左から2番目の項目を選ぶ
マウスポインターのデザインが若干ダサくなりますが、この方法が一番安定している気がします。

(以下は2024/12/23までの方法)

Microsoft Edgeの場合

  • 「設定」→「システムとパフォーマンス」を開き、「使用可能な場合はハードウェア アクセラレータを使用する」をオフにしてEdgeを再起動する

Google Chromeの場合

  • 「設定」→「システム」を開き、「ハードウェア アクセラレーションが使用可能な場合は使用する」をオフにしてChromeを再起動する

2023年12月24日

Eclipseの「呼び出し階層を開く」(Open Call Hierarchy)が機能しなくなった場合

Eclipseをアップデートした場合などに、「呼び出し階層を開く」(Open Call Hierarchy)が機能しなくなることがあります。その場合には以下の手順で解決できます。

  1. Eclipseを終了する
  2. workspaceのフォルダーを開き、「.metadata」→「.plugins」→「org.eclipse.jdt.core」の順に開く
  3. 「savedindexnames.txt」と、「.index」拡張子のファイルをすべて削除する
  4. Eclipseを起動する
手元の環境では、表記の問題だけでなく、Stringで記述した完全修飾名(FQCN)のホバー機能(Ctrlキー+マウスオーバーで遷移できる機能)も動作するようになりました。

2021年7月19日

mysqlで「java.lang.IllegalArgumentException: HOUR_OF_DAY: 0 ->1」というエラーが出る

javaでMySQL Connector/J 8.0を使ってdate型カラムのデータを取得する際、
java.lang.IllegalArgumentException: HOUR_OF_DAY: 0 ->1
というエラーが出る場合があります。ある特定の日付が格納されている場合にこのエラーが出ますが、その日付とは下記の4つ。
1948-05-02 1949-04-03 1950-05-07 1951-05-06
何の日付かと言うと、過去に日本で4回だけ導入されたサマータイムの開始日です。どうしてエラーが起きるかというと、1つ目の例で言うと、1948-05-02の00:00:00から00:59:59はこの世に存在しないからです。つまりdate型カラムで1948-05-02が格納されている場合、DBには1948-05-02 00:00:00に相当するデータがありますが、その時間が当時の日本には存在しなかったのでエラーが出るわけです。

この場合、JDBCの接続URLを次のように修正する必要があります。
serverTimezone=Asia/Tokyo ↓ serverTimezone=GMT%2B9
このように、タイムゾーンIDではなくオフセットで指定するとサマータイムを認識させないで済みます。