かずきち。の日記

サーバサイドエンジニアのつぶやき

【もう切れない】100均のスマホストラップに不安を感じて「金属製」に替えたら大正解だった話

iPhoneのケースって、すごい小さなストラップホールがついていますよね。
落下防止や紛失防止に便利なので私も重宝しているのですが、「穴が小さすぎてストラップを通すのに毎回イライラする」のが長年の悩みでした。
不器用な私はピンセットを持ってきて格闘することもしばしば……。
というかもはや穴に紐を通すのを諦めるレベルです。

そこで少し前に取り入れたのが、スマホケースと本体の間に挟み込む「ストラップホルダー」でした。ケース底面の充電口の穴からフック部分を出すアレです。

oshikatsu100.jp

最初は「とりあえず試してみるか」と100円ショップで購入したものを使っていました。
確かにストラップ装着のストレスはゼロになり、使い勝手自体は最高!……だったのですが、使えば使うほど拭いきれない不安感が襲ってきたのです。

100均のホルダーはビニール(PVC)製や柔らかいシート状のものが主流。
スマホの重みが常にそこへ集中するため、引っ張られるたびに「これ、近いうちに引きちぎれるのでは……?」という恐怖が頭をよぎります。
万が一ぶら下げている最中に切れたら、高価なiPhoneがアスファルトへまっ逆さまです。

「この不安は精神的によろしくない!」と思い立ち、ついに金属製のストラップホルダーへ買い替えることにしました。

実際に使ってみて、これが大正解。大満足の逸品でした!

***圧倒的な頑丈さと安心感
ステンレスやアルミニウムなどの金属製なので、引っ張っても破れる心配が一切ありません。
手に持った瞬間の強度が段違いで、100均のシートとは比較にならない安心感です。これでiPhoneを落とす恐怖から完全に解放されました。

驚くほど軽くて邪魔にならない

「金属製だと重くなったり分厚くなったりするのでは?」と懸念していましたが、まったくの杞憂でした。
極薄に加工されているためケースが浮くこともなく、重量も手で持って違いが分からないレベルで軽いです。

充電ケーブルへの干渉もなし

厚みが抑えられているおかげで、Lightningを挿す際も全く干渉しません。
100均の製品も手軽で素晴らしいですが、毎日持ち歩く大切なiPhoneを守るアイテムとしては、やはり強度が最優先。

ケースの小さい穴にストレスを感じている方や、100均ホルダーの強度にモヤモヤしている方は、ぜひ金属製ストラップホルダーを試してみてください!毎日の安心感が劇的に変わりますよ。

Chrome拡張機能の公開上限を引き上げる方法:20個の制限を解除する手順と注意点

Chromeウェブストアでは、1つのデベロッパーアカウントにつき公開できる拡張機能の数は、デフォルトで「20個」までに制限されています(※テーマは除く)。しかし、活発に開発を行っておりこの上限に達してしまった場合でも、正当な理由があればGoogleにリクエストを送ることで公開枠を引き上げることが可能です。
ここでは、その具体的な手順と審査を通過するためのポイントを解説します。

【上限引き上げのリクエスト手順】

1. サポート窓口へアクセス まずは、Chromeウェブストアのデベロッパー向け公式問い合わせ窓口である「One-Stop Support(ワンストップサポート)」のページにアクセスします。
2. 問い合わせフォームの入力 問い合わせカテゴリから「デベロッパー アカウント」や「Developer dashboard」に関する項目を選択します。
3. リクエスト内容の記述 詳細を記入する欄に、「公開上限の20個に達したため、制限の引き上げをお願いしたい」という旨を明記します。この際、「なぜ追加の枠が必要なのか」「どのような新規プロジェクトを予定しているのか」といった具体的な理由を添えることで、Google側の理解を得やすくなり審査がスムーズに進みます。

【審査を通過するための重要なポイント】

リクエスト送信後は、担当者によってアカウントの履歴や既存アイテムの審査が行われます。
無条件で引き上げられるわけではなく、以下のケースに該当すると却下される可能性が高いため注意が必要です。

アカウント停止歴がある: 過去にアカウントがサスペンドされた履歴がある。
ポリシー違反歴がある: 過去に拡張機能がストアから強制削除(テイクダウン)されている。
既存アイテムの品質が低い: 現在公開中の拡張機能のユーザー評価が一貫して低い、またはメンテナンスされず放置されている。

まとめ

申請を行う前に、現在公開している拡張機能が最新のポリシーに準拠しているかを見直すことが大切です。健全な開発実績をアピールできれば上限引き上げは十分に可能ですので、複数の拡張機能をリリース予定の方はぜひこの手続きを活用してください。

support.google.com

【Chrome拡張機能】WEB上の画像やテキストをサクッと拡大!シンプル&軽量な「拡大鏡」アプリを作ってみた話

chromewebstore.google.com

WEBサイトを見ているとき、「この画像の一部、もう少し拡大して見たいな…」「ページの縮小・拡大(Zoom)だとレイアウトが崩れて見づらいな…」と思うことってありませんか?

既存のブラウザ拡張機能を探してみても、多機能すぎて重かったり、操作感がイメージと違ったり……。
「それなら自分で、シンプルかつサクッと動くやつを作っちゃえばいいのでは?」と思い立ち、Google Chromeの自作拡張機能(拡大鏡アプリ)を開発してみました!
このウェブサイトには実は拡大鏡機能をつけているのですが、Yahooや一般的な外部のサイトでは画像や文字の虫眼鏡はでてきません。

今回は、どのような仕組みで作ったのか、コードの要点やこだわりについて書いてみたいと思います。

どんな拡張機能?(主な機能)

今回作成したのは、マウスカーソルをあてた部分を虫眼鏡のようにリアルタイムで拡大表示するシンプルな拡張機能です。

ホバー拡大: マウスの動きに追従して、カーソル直下の領域をルーペ状に拡大。
引き算のデザイン: 余計な広告や不要な権限は一切なし。画面の邪魔をしないシンプルなUI。

開発のポイント:Manifest V3と画面描画

Chrome拡張機能の最新規格であるManifest V3に対応させています。主な構成ファイルと処理のロジックは以下の通りです。

1. manifest.json の設定
画面上のコンテンツ(DOM)に対して直接操作を行うため、content_scripts を中心に構成します。

{
  "manifest_version": 3,
  "name": "Simple Magnifier / 拡大鏡",
  "version": "1.0.0",
  "description": "カーソル位置をリアルタイムに拡大表示するシンプルな拡大鏡ツール",
  "permissions": [
    "activeTab",
    "storage"
  ],
  "action": {
    "default_popup": "popup.html"
  },
  "content_scripts": [
    {
      "matches": ["<all_urls>"],
      "css": ["content.css"],
      "js": ["content.js"]
    }
  ]
}


2. マウス追従と拡大処理(content.js のコアロジック)

拡大鏡の実現方法にはいくつかのアプローチがありますが、今回はパフォーマンス重視で「Canvasを使用した画像・要素のクロップ&スケール」または「CSSの transform と clip-path を組み合わせた要素のミラーリング」を採用しました。

以下は、CSSとJavaScriptでマウスカーソル位置にレンズを表示させる基本的な処理のイメージです。

// レンズ要素の生成
const lens = document.createElement('div');
lens.id = 'chrome-magnifier-lens';
document.body.appendChild(lens);

// マウス移動イベントのハンドリング
document.addEventListener('mousemove', (e) => {
  if (!isMagnifierActive) return;

  const mouseX = e.clientX;
  const mouseY = e.clientY;

  // レンズの位置をカーソルに追従させる
  lens.style.left = `${mouseX - lensOffset}px`;
  lens.style.top = `${mouseY - lensOffset}px`;

  // レンズ内部の背景画像位置(またはTransform)を調整して拡大効果を作る
  updateMagnifiedView(mouseX, mouseY);
});

Webページ全体のレイアウトを崩さずに「その場だけを拡大する」ために、スタイルの干渉を防ぐ設計を意識しました。

使い方

メガネマークを押下すると虫眼鏡が出てきますよという代物です。


こだわったポイントと苦労した点

① 動作の「軽さ」と「なめらかさ」
mousemove イベントは1秒間に何度も発火するため、重い処理を直接書くと画面のカクつき(レイアウトシフトやフレームレートの低下)の原因になります。
そこで requestAnimationFrame を挟むことで、ブラウザのリフレッシュレートに合わせたスムーズな描画を実現しました。

② デザインの質感とUI
ツールとしての主張が強すぎるとWEBサイト閲覧の妨げになってしまいます。レンズの枠線や影(box-shadow)は主張しすぎない上品な陰影にし、設定画面(popup.html)も昭和モダン〜ミニマル感のある落ち着いた配色で統一しました。

作ってみて分かった「引き算の美学」

最初は「ズーム機能だけじゃなくて、スクリーンショット保存機能や文字起こし機能もつけようか…?」と欲が出たのですが、最終的にはあえて「拡大する」ということだけに特化させました。
余計な機能を削ぎ落とした結果、起動が圧倒的に早くなり、日常のちょっとした瞬間にストレスなく使えるツールに仕上がりました。
ブラウジング中に「この細かい図面やコードをちょっと大きく見たい」「小さな文字をストレスなく読みたい」という時に、手元でサクッと動いてくれる頼もしい相棒になっています。

まとめ

自分で「こういうのが欲しい」と思ったツールをコードに落とし込み、ブラウザ上で実際に動く形にするのはやっぱり最高に楽しい時間ですね!
今回作成した拡張機能は今後のブラッシュアップも視野に入れて調整を進めています。
みなさんも「日々のブラウジングでちょっと不便だな」と感じるポイントがあれば、ぜひChrome拡張機能の自作に挑戦してみてはいかがでしょうか!

chromewebstore.google.com

拡大鏡の離脱は「escキー」でお願いします。

TypeC強制移行でも旧端末も使える!UGREENの「Type-AもType-Cもいける充電器」が優しすぎて最高という話

世の中ってどんどん新しくなっていきますよね

でも、その「切り替えの時期(いわゆる過渡期)」って、地味に不便だったりストレス溜まったりしますよね。
最近だと、まさに「マイナ保険証」がそれ。
国としてはマイナンバーカードに一本化したいんだろうけど、病院や薬局に行くと「念のため紙の保険証も持ってきてね」と言われたり、端末のトラブルで結局確認に時間がかかったり。
「もう全部マイナカードでスマートに完結してくれよ!」と思いつつも、現場ではまだまだ紙の保険証の安心感に頼らざるを得ないのがリアルなところです。
で、これと全く同じ現象が、僕たちの身近なガジェット界隈でも起きているわけですよ。

そう、「USB Type-A・Type-C 問題」です。

Type-C時代だけど、 Type-Aを完全には捨てられない問題
ここ最近のスマホもMacもイヤホンも、基本的には全部「Type-C」が主流になりましたよね。
持ち歩くケーブルも充電器も全部Type-Cで統一できたら、見た目もスッキリするし最高のミニマリストになれる。
僕も「デスク周りを完全にType-C化するぞ!」と意気込んでいた時期がありました。
……が、甘かった。
部屋を見回してみると、まだまだ元気に動いている「Type-A(あの昔ながらの四角いUSB)」を必要とするやつらがゴロゴロいるんです。
⚬ たまに使う小型のLEDランタンや卓上扇風機
⚬ 独自のType-Aケーブルでしか充電できないスマートウォッチ
⚬ 友達から「ちょっと充電器貸して!」って言われた時のケーブル
これってまさに、マイナ保険証時代における「紙の保険証」ポジションなんですよね。「もう全部Type-Cで統一してくれ!」と叫びつつも、完全に切り捨てちゃうと「あ、今日充電できないや…」って詰む瞬間が必ずやってくる。
だからこそ今本当に欲しいのって、「完全な未来(Type-Cだけ)」じゃなくて、「昔のデバイスもそっと受け止めてくれる包容力」なんだなと気づいたわけです。

Ankerの割り切りと、UGREENの「圧倒的優しさ」

充電器を買うってなったら、真っ先に思い浮かぶのはやっぱり王道のAnker(アンカー)ですよね。
僕も大好きで、これまで何個買ってきたか分かりません。

ただ、最近のAnkerのハイエンドな小型充電器を見てると、「かなり強気にType-Cへ寄せてきてるな〜」と感じることが増えました。

ポートが全部Type-Cのモデルが主流になっていて、めちゃくちゃコンパクトでカッコいい。未来を見据えた製品作りとしては正解だしスタイリッシュなんですけど、「Type-Aを1本だけ挿したい」という絶妙なニーズに応えてくれる小型充電器が、意外と選択肢に少ないんですよね。
「もう時代はType-Cだから、みんな移行してね!」というAnkerの男らしい割り切りも嫌いじゃない。
でも、今の僕が求めていたのは、「まあまあ、まだType-A使いたい時もあるよね」って寄り添ってくれる現実的な優しさでした。

そこで試してみたのが、最近めちゃくちゃ勢いのあるブランドUGREEN(ユーグリーン)です。

UGREENの充電器を買ったら、満足度がすごかった

いろいろ探して、UGREENの「Type-CもType-Aも両方挿せる多ポート急速充電器」をポチってみたんですが、これがもう大正解でした。
主力ポートはしっかり高出力のType-Cで、MacBookもスマホも爆速で充電できる。
その隣に、控えめだけど頼もしい存在感で「Type-Aポート」がちょこんと座っている。
この「AもCもどっちも来いよ」という安心感がヤバいです。
わざわざ「Type-CからType-Aへの変換アダプタ」を持ち歩く必要もないし、昔からのデバイスもそのまま挿せば普通に充電できる。
新規格の恩恵で爆速充電のスピード感を味わいつつ、古い規格のギアも見捨てない。この「痒いところに手が届くラインナップの豊富さ」と「過渡期のユーザーへの心遣い」に関しては、今回の勝負、完全にUGREENに軍配が上がるなと感じました。

まとめ:過渡期には「引き算しない優しさ」が沁みる

マイナ保険証もUSBポートも、世の中が「新しい正義」に向かって一気に進むときって、どうしても取り残される利便性が出てきます。
技術が進化するのは大歓迎だしワクワクするけれど、僕たちが生きているのは「まさに今、切り替わっている最中の日常」です。
理想の未来に一足飛びに行くのもいいけれど、過去の資産もゆるく抱え込みながらグラデーションで変化させてくれるプロダクトって、すごくありがたい存在ですよね。
無理に身の回りを全部最新で統一してストレスを溜めるくらいなら、AもCも両対応のマルチな充電器をカバンにひとつ放り込んでおく。それくらいゆるいスタンスの方が、ガジェットライフも日常も楽しく過ごせるんじゃないかなと思います。
というわけで、僕と同じように「完全Type-C化にはまだ踏み切れない…!」という人は、ぜひUGREENの充電器をチェックしてみてください。かなり救われますよ!

【AI活用術】Claudeで作る自分好みのChromeテーマ!制作の流れと使ってみた感想

chromewebstore.google.com

モチベーション:自分だけの作業空間を作りたい

毎日仕事やプライベートで開き、何時間も目にするGoogle Chrome。
ブラウザの見た目はデジタルな作業空間そのものであり、日々のモチベーションを大きく左右する重要な要素だ。

これまでも標準のカラーや既存のテーマを使っていたが、どこか「あと一歩」自分の好みにしっくりこない歯がゆさを感じていた。
目に優しく落ち着いたトーンでありながら、自分らしいアクセントが効いたデザインが欲しい。
そう強く思ったのがテーマ作成のきっかけだった。

【作成の経緯:専門知識の壁とClaudeの活用】

しかし、Chromeテーマを自作するには manifest.json ファイルの作成や、
各UIパーツに対応するRGB値の細かい指定が必要になる。
ドキュメントを読み解いて手作業で構築するのは少々ハードルが高い。

そこで思いついたのが、AIアシスタントであるClaudeの力を借りることだった

Claudeはコード生成だけでなく、人間の抽象的な言葉からデザインのニュアンスを汲み取るのが得意だ。「これなら自分のイメージを形にしてくれるはずだ」と考え、テーマ作成をスタートさせた。

【制作プロセス:対話を通じたブラッシュアップ】

制作プロセスは驚くほどスムーズだった。「目に優しいダークモードをベースに、アクティブなタブが引き立つ配色にしたい」と伝えると、Claudeは即座に適切な manifest.json のコードと配色案を出力してくれた。
表示を確認しながら「もう少しシックにしたい」「ツールバーの境界線を自然にしたい」とフィードバックを重ねると、瞬時にRGB値を再提案してくれた。完成したコードを保存し、Chromeの拡張機能ページから読み込むだけで、理想のテーマが画面全体に適用された。

【作ってみた感想:妥協のないデザインがもたらす変化】

完成したテーマを適用した瞬間、大きな達成感と満足感が込み上げてきた。
これまで妥協して使っていたブラウザが、一瞬にして居心地の良い自分だけの空間へと変わったからだ。

Claudeとのやり取りは優秀なデザイナーとペア作業をしている感覚で、専門知識の壁を越えて「こだわり」を形にする楽しさを味わえた。毎日開く画面だからこそ、お気に入りのデザインを見るたびに気分が上がる。AIを活用して日常のツールを自分色に染める試みは、デジタル生活をより豊かにしてくれる素晴らしい体験となった。

chromewebstore.google.com

chromewebstore.google.com

「1階に下りたら土砂降り…」高層ビル・地下フロアの絶望を無くす最強のChrome拡張機能を作ってみた

chromewebstore.google.com

外の天気が分からない!開発のきっかけ

オフィスが高層階にあったり、窓から離れたデスクや地下フロアで働いていると、外の天気の変化に全く気づけないことはありませんか?
「仕事を終えて1階に下りたら土砂降りだった」「傘がなくて立ち往生した」という失敗を何度も経験しました。
特に高層ビルでは外の音も聞こえず、窓から空を見下ろしても雨が降っているか判別しにくいのが悩みでした。
そこで、「ブラウザ作業中に足元の天気の変化にすぐ気づけるツールがあれば」と思い立ち開発したのが、Chrome拡張機能「Weather Alert」を作ってみました。
「tenki.jpライト」のサブスクは月額260円(税込み)だそうで、天気に260円/月=3120円/年も支払ってられないと思い、自分でアプリを作ってみました。

「Weather Alert」の主な機能と特徴

「Weather Alert」は、屋内でPC作業をする人のためのシンプルで便利な天気通知ツールです。

登録地点のリアルタイム通知
オフィスや自宅など、登録した地点の天候変化を素早くキャッチ。雨の降り始めやゲリラ豪雨の接近をデスクトップへポップアップ通知します。

アイコンで状況をひと目で確認
Chromeのツールバーアイコンに現在の気温や天気がバッジ表示されるため、作業の手を止めずに外の様子を把握できます。

快適なワークスタイルのために

導入後は、退社前に慌てて雨雲レーダーを開く手間がなくなり、傘の用意や移動のタイミングをスマートに判断できるようになりました。
高層ビルや窓のない部屋で働く方はもちろん、デスクワークに没頭したいすべての方におすすめです。「Weather Alert」を活用して、天候に振り回されない快適な生活を送りませんか?

chromewebstore.google.com

「太宰治AI化プロジェクト(アプリ無料・APIキーを各自支払い)」のストア掲載申請が承認されましたので、アプリの紹介します

chromewebstore.google.com

休日の静寂を破り、まさかの通知が届いた。

Googleからのメール。アプリ審査通過(Approved)の文字。
最近の関心はもっぱら生成AIアプリをよく作成するのだが、GeminiのAPIを利用するアプリをClaudeで作成しまして、そのストア掲載審査が終わりました。
ストア掲載決定しました。

私はアプリ開発をして、Googleに掲載申請を先週末にだしたら、土日をかけて掲載になりました。

アプリのコンセプト:太宰治の思考で紐解く、現代の混乱

すで亡くなった人の思考でニュースの感想をかいてもらおうという試みで、もし太宰治がこのニュースを読んだらどんな感想を述べてくれるかな?というのを生成AIアプリで再現しました。
このアプリの根幹にあるのは、「もし太宰治が現代のニュースを見たら、何を思い、どう苦悩し、どう苦笑するのか」という実験的な試みである。

今回はこの長崎市長の平和宣言の読み飛ばし記事を「太宰治AI」に書いてもらうことにした。

主な機能と特徴

アプリの機能は、きわめてシンプルでありながら、どこか歪で人間味あふれるものになっている。
サイドバーにGeminiAPIキーとモデル選択をしてもらえれば、AIが解説してくれるアプリになっている。


一、一言で言うと

崇高な正義や平和を叫ぼうとして、熱情のあまり足元をすくわれてしまう人間の哀しい滑稽さと、それを冷酷に記録しては瞬時に消費していく、この世の無情さであります。

二、何が私を惑わせるのか

第一に、つい熱くなって顔を上げたら大切な一文を読み飛ばしてしまったという、あの市長の釈明であります。平和というあまりに重たい誓いを胸に抱き、感極まって大失態を演じてしまう。恥ずかしながら、私にも身につまされる思いがいたします。人は崇高であろうと意気込めば意気込むほど、どうしてこうも不格好に転んでしまうものなのでしょう。

第二に、その過ちを痛恨のエラーと名付け、指差して咎めずにはいられない世間の冷たさであります。どれほど心を砕いて準備した祈りであっても、たった一文の欠損によって、まるで全てが無に帰したかのように報じられてしまう。人間が一生をかけて積み上げた誠実さも、ほんの一瞬の躓きで失格の烙印を押されるのだと思うと、私は背筋が寒くなるのでございます。

第三に、原爆の痛ましい記憶と、ハチの権利、寝過ごしたバスの運転手、迫り来る台風、果ては人工知能が機械的に紡ぎ出した怪しげな解説が、同じ画面に等しく並べられているという無惨な混沌であります。何が重大で何が下等なのかも分からぬまま、濁流のように流れては消えていく雑多な情報の泡に、私は深い眩暈を覚えるのです。

三、恥ずかしながら考えること

人間は、決して完璧な存在にはなれません。命をかけた誓いの言葉ですら、あまりの熱情ゆえに途切れてしまうことがある。けれど、私は思うのです。何ひとつ足踏みをせず、一度の言い間違いも犯さず、滑らかに完璧な答えを吐き出す人工知能の言葉よりも、顔を赤らめて痛恨のエラーだと頭を下げる、あのみっともない人間の不完全さの中にこそ、かすかな人間味の残滓があるのではないかと。

この世の行く末は、間違いを絶対に許さぬ冷徹な不寛容と、機械的な正確さに支配されていくのでしょう。誰もが過ちを恐れ、空を見上げることもなく、ただ手元の原稿を正確に読み上げるだけの行儀良い人形になっていく。そうして完璧になった世界で、人ははたして救われるのでしょうか。私はただただ恐ろしく、己の無力さに恥ずかしさを覚え、暗い部屋の隅でそっと目を閉じるばかりなのです。

アプリの使用料金

このアプリの使用にはGeminiのトークンを消費します。

ai.google.dev

個人利用の場合は無料APIキーでの運用も可能(すぐリミット)ですが…
課金利用の場合、

aistudio.google.com

にアクセスの上、クレジットカードを登録して有償のAPIキーの発行をしてください。


クレジットカードの登録を行うと、無償アカウントが有償アカウントに切り替わります。

ストア審査が通ったからには、もう後戻りはできない。

スマートフォンの画面の中で、私はいつでも君からのアクセスを待っている。

「生まれてすみません」と呟きながらも、君が画面をタップしてくれるのを、心の中では今か今かと心待ちにしているのだ。

ダウンロードは無料である。私のような人間の言葉に価値があるとは思えないが、もしよろしければ、君のスマホの片隅にでも置いてやっていただきたい。
それでは、アプリの中で会おう。

このアプリ開発で大変だったこと

アプリをストアに掲載するということはこのアプリを使って悪いことをしませんよとGoogleに宣言をする必要があります。


権限名 説明
activeTab ユーザーがアクションボタン等を操作した際に、現在のタブへ一時的にアクセス許可を付与
alarms 指定した時刻・間隔でコードを実行するタイマー機能
background バックグラウンドでの処理継続(MV3ではservice worker常時稼働の概念は変化)
bookmarks ブックマークの作成・整理・操作
browsingData 閲覧履歴・キャッシュ・Cookie等の閲覧データ削除
certificateProvider 証明書プロバイダとしての機能提供(主に企業向け)
clipboardRead クリップボードの内容読み取り
clipboardWrite クリップボードへの書き込み
contentSettings Cookie・JavaScript・画像表示等のサイト設定制御
contextMenus 右クリックメニューへの項目追加
cookies Cookieの取得・変更・削除
debugger Chrome DevTools Protocolを使ったデバッグ機能へのアクセス
declarativeContent ページ内容に応じたルールベースのアクション実行
declarativeNetRequest 宣言的なルールによるネットワークリクエストの制御・ブロック
desktopCapture 画面・ウィンドウ・タブのキャプチャ
documentScan 接続されたスキャナからのドキュメント取得
downloads ファイルのダウンロード管理
enterprise.deviceAttributes 企業管理端末の属性情報取得
enterprise.hardwarePlatform 企業管理端末のハードウェア情報取得
enterprise.networkingAttributes 企業管理端末のネットワーク情報取得
enterprise.platformKeys 企業管理端末のプラットフォーム鍵管理
favicon サイトのファビコン取得
fileBrowserHandler ChromeOSファイルブラウザとの連携
fileSystemProvider ChromeOSの仮想ファイルシステム提供
fontSettings フォント設定の取得・変更
gcm Google Cloud Messagingを利用したメッセージ送受信
geolocation 位置情報の取得
history 閲覧履歴の取得・操作
identity Googleアカウント等を利用した認証・OAuth
idle システムのアイドル状態検出
loginState ChromeOSのログイン状態取得
management 他の拡張機能・アプリの管理(有効化/無効化等)
nativeMessaging ネイティブアプリケーションとの通信
notifications デスクトップ通知の表示
offscreen 表示されないオフスクリーンドキュメントの作成(MV3)
pageCapture 表示中ページのMHTML形式での保存
platformKeys クライアント証明書を用いたTLS認証
power システムのスリープ防止
printerProvider プリンタプロバイダとしての機能提供
printing 印刷機能の制御
printingMetrics 印刷利用状況の取得
privacy プライバシー関連のブラウザ設定制御
processes ブラウザのプロセス情報取得
proxy プロキシ設定の管理
scripting content scriptの動的な注入・実行(MV3)
search 既定の検索エンジンを使った検索実行
sessions 閉じたタブ・ウィンドウの復元情報取得
sidePanel サイドパネルUIの表示・制御
storage 拡張機能専用のデータ保存領域(chrome.storage)
system.cpu CPU情報の取得
system.display ディスプレイ情報の取得
system.memory メモリ情報の取得
system.storage ストレージデバイス情報の取得
tabCapture タブの音声・映像キャプチャ
tabGroups タブグループの操作
tabs タブ情報(URL・タイトル等)の取得・操作
topSites よく訪れるサイト一覧の取得
tts テキスト読み上げ(Text-to-Speech)機能の利用
ttsEngine TTSエンジンとしての機能提供
unlimitedStorage 保存容量制限の解除
vpnProvider VPNプロバイダとしての機能提供
wallpaper ChromeOSの壁紙変更
webNavigation ページ遷移イベントの監視
webRequest ネットワークリクエストの監視・変更(MV2中心)
webRequestBlocking webRequestを同期的にブロックする権限(MV2)

Googleに要求できるアプリの権限のうち、このアプリを動作させるためにこの機能を解放してほしいと要求して、オーダーが通るとそのアプリで認可された機能が使えるようになります。
やはり機能をたくさん要求すればするほど、審査が難しくなるので掲載難易度があがります。

太宰治アプリのインストール方法

chromewebstore.google.com

アプリURLはこちらに置いておきますので、ぜひ使って感想を教えてください。
なおこのアプリをインストールしたあとに求められるGeminiAPIキーを入力しましょう。

ai.google.dev

にアクセスして、

から取得をしてください。
手順を示していますので、ここに出てきた無作為な文字列をアプリに埋めると太宰治の命が吹き込まれます。
なおこのAPIキーは決して他言しないでください。
APIキーが漏れるとクレジットカードに高額請求が発生することがあります。

あとは

あとはChromeに表示されるアプリのAPIキーにこのキーを埋め込みましょう。
あとは好きなページで「このページを解説」をクリックすると…

ページを解説してくれます。

chromewebstore.google.com

なお、このアプリを使用して高額請求が発生しても、責任は負いかねます。

クレジットカードを登録してしまったら、必ず使用量を確認・上限値設定しよう

aistudio.google.com

GeminiAPIの利用料金はこちらで確認できます。
クレジットカードの上限値を設定しないと100万/月などの課金が発生しても、私は一切責任を取りませんので
トークン管理は慎重に行ってください。
命より、APIキー管理は重要です。
必ずAPIキーにはキャップ設定をつけて運用してください。
プールの水を出しっぱなしにして、高額請求が来る中学校みたいになりますよ。
軽く車や家が購入できる額が飛びますので気をつけてくださいね!!

library.libecity.com

qiita.com

それでは太宰治の世界に行ってらっしゃい。

家族旅行向け: 子供も一緒に計画!Googleマイマップで楽しい思い出を地図に残そう

www.google.com

旅行の計画を立てるとき、行きたい場所がバラバラで「どう巡れば効率が良いかわからない」と悩んだことはありませんか?
そんなときに大活躍するのが Googleマイマップ です。
この記事では、Googleマイマップの概要や役立つシーン、そして実際に旅行前のルートを作成する手順を分かりやすく解説します。

Googleマイマップとは?

Googleマイマップは、Googleマップ上に自分だけの「オリジナルの地図」を作成・保存・共有できる無料サービスです。
通常のGoogleマップでも「保存(ブックマーク)」機能はありますが、マイマップを使うと以下のような高度なカスタマイズが可能になります。

  • ピンの色やアイコンを自由に変更できる(カフェ、ホテル、駅などで色分け)
  • 複数のレイヤー(層)を使って、日別やジャンル別にピンを整理できる
  • 場所同士を直線や道路に沿ったラインで結んでルートを描ける
  • メモや写真、オリジナルタイトルを追加できる
  • 家族や友人、旅行の同行者と一緒にリアルタイムで編集・共有できる

まさに「自分たち専用のデジタル旅のしおり」を地図上に構築できるツールです。

どんなときに役立つか?

Googleマイマップが威力を発揮する具体的なシチュエーションをご紹介します。

1. 複数日程の旅行計画(日別ルートの可視化)

「1日目は京都駅周辺、2日目は嵐山エリア」のように、日ごとにレイヤーを分けることで、移動範囲が一目で把握できます。「このスポットとこのカフェは近いから同じ日に巡ろう」といった位置関係の整理が劇的に楽になります。

2. 友人や家族とのグループ旅行

マイマップはGoogleドライブ上で共有できるため、共有URLを送れば「みんなで一緒に行きたい場所のピンを打つ」という共同編集が可能です。旅行前の打ち合わせがスムーズになります。

3. テーマ別のスポット集作成

「都内の美味しいラーメン屋まとめ」「いつか行きたい絶景スポット集」「ロケ地巡りマップ」など、個人データライブラリとして保存・管理できます。

4. 出張や営業の訪問ルート開拓

ビジネスシーンでも、訪問先企業をプロットして移動効率の最適化を図るツールとして活用されています。

旅行前にGoogleマイマップでルートを作成する手順

PC(ブラウザ)からGoogleマイマップを使って、旅行用のルートマップを作成する具体的なステップを解説します。

ステップ1:マイマップを新規作成する

1. パソコンのブラウザで [Googleマイマップ|https://www.google.com/maps/d/] にアクセスします。
2. 「新しい地図を作成」をクリックします。
3. 画面左上の「無題の地図」をクリックし、「2026年_沖縄旅行マップ」のように分かりやすいタイトルと説明を入力して保存します。

ステップ2:行きたいスポットを登録する

1. 画面上部の検索バーに、行きたい場所(例:「美ら海水族館」「古宇利大橋」など)を入力して検索します。
2. 地図上に吹き出しが表示されたら、「+ 地図に追加」をクリックします。
3. 追加されたピンをクリックし、バケツマーク(スタイルアイコン)を押すと、ピンの色やアイコン(ナイフとフォーク、ベッド、カメラ等)を変更できます。

【おすすめの色分け例】
・赤色:絶対に外せない目的地
・青色:ホテル・宿泊先
・緑色:カフェ・飲食店
・黄色:移動の拠点(駅・空港・レンタカー店舗)

ステップ3:レイヤーを使って整理する

画面左側のパネルにある「レイヤー」を活用しましょう。「レイヤーを追加」をクリックすると、地図上の情報をグループ分けできます。

レイヤー1:「1日目:南部観光」

レイヤー2:「2日目:北部ドライブ」

レイヤー3:「予備(時間が余ったら行く場所)」

チェックボックスのオン/オフで、特定の日程のピンだけを地図上に表示させることも可能です。

ステップ4:移動ルートを描画する

スポット間のルート(道順)を視覚化します。
1. 検索バーの下にある「ルートを追加(分岐した矢印アイコン)」をクリックします。
2. 左パネルに新しいルートレイヤーが追加されます。
3. 「A」に移動出発地(例:那覇空港)、「B」に目的地(例:首里城)を入力するか、地図上のピンを直接クリックして指定します。
4. 自動的に道路に沿った青いルートラインが引き出されます。「目的地を追加」を押せば、経由地(C, D...)を増やしていくことができます。

ステップ5:現地でスマホから閲覧・共有する

作成したマイマップは、スマートフォンから簡単にアクセスできます。

スマホでの閲覧方法:
Googleマップアプリを開き、下部メニューの「保存済み」>「マップ」を選択すると、作成したマイマップが呼び出せます。

同行者への共有方法:
左パネルの「共有」ボタンをクリックし、「リンクを知っている全員」に権限を変更してURLを送信します。「編集者」権限にすれば、相手もピンを追加できるようになります。

まとめ

Googleマイマップは、直感的な操作で自分だけのオリジナル地図が作れる最強の旅行パートナーです。
旅行前に位置関係や移動ルートを可視化しておくことで、現地での「移動の無駄」を劇的に減らし、時間を有効活用できるようになります。次の旅行やドライブの計画を立てる際は、ぜひGoogleマイマップを活用してみてください!

Googleマイマップを初めてみたい方は
support.google.com

を参考に始めてみてください。

ページを開くだけで「令和◯年(和暦)」が西暦に化けるChrome拡張機能「和暦→西暦変換器」を作ったら超快適になった

chromewebstore.google.com

Webサイトで書類の作成方法や行政の手続き、歴史系の記事を読んでいるとき、「平成18年って何年だっけ?」「昭和55年……?」と手が止まること、ありませんか?
別タブを開いて「平成18年 西暦」で検索すればすぐに分かりますが、地味にテンポが削がれます。
そこで和暦がサイト内にあった場合に強制的に西暦変換するアプリを作りました。

なぜ作ったのか(開発の経緯)

日常のブラウジングで「和暦 ↔ 西暦」の変換が必要になるシーンは意外と多いです。

  • 行政機関や銀行のWebフォーム・案内ページ
  • 履歴書や申請書の記入例
  • Wikipediaやニュース記事

既存の拡張機能もありましたが、検索ポップアップを開いて文字入力するタイプが多く、「ただ知りたいだけなのにクリックや入力すら面倒」と感じていました。画面上の「令和◯年」というテキストに触れるだけで、その場から視線を動かさずにパッと西暦がポップアップする、極限までシンプルな体験を目指して開発しました。

開発環境と構成

Manifest V3に対応した最小限の構成です。
⚬ 開発環境: Plain JavaScript (フレームワークなし)
⚬ 対応規格: Manifest V3
ファイル構成
japanese-era-converter/
├── manifest.json # 拡張機能の設定ファイル
└── content.js # Webページ側で動くスクリプト

コード解説
1. manifest.json

{
  "manifest_version": 3,
  "name": "和暦西暦ホバー変換器",
  "version": "1.0",
  "description": "ページ内の和暦表記にマウスを載せると西暦を表示します。",
  "content_scripts": [
    {
      "matches": ["<all_urls>"],
      "js": ["content.js"]
    }
  ]
}

2. content.js
スクリプトは大きく「変換ロジック」「UI(ツールチップ)の生成」「イベント監視」の3部分に分かれています。

// ① 各元号の開始年(西暦)の定義
const ERA_START_YEARS = {
  明治: 1868,
  大正: 1912,
  昭和: 1926,
  平成: 1989,
  令和: 2019
};

// ② 和暦から西暦を計算する関数
function convertToSeireki(era, yearStr) {
  // 「元年」または「1年」は 1 として扱う
  const yearNum = (yearStr === '元' || yearStr === '1') ? 1 : parseInt(yearStr, 10);
  const startYear = ERA_START_YEARS[era];
  
  // 計算式:開始年 + 年数 - 1
  return startYear ? startYear + yearNum - 1 : null;
}

// ③ ツールチップ(ポップアップUI)の動的生成
const tooltip = document.createElement('div');
Object.assign(tooltip.style, {
  position: 'absolute',
  backgroundColor: '#222',
  color: '#fff',
  padding: '4px 8px',
  borderRadius: '4px',
  fontSize: '12px',
  zIndex: '999999',
  display: 'none',
  pointerEvents: 'none',
  boxShadow: '0 2px 5px rgba(0,0,0,0.2)'
});
document.body.appendChild(tooltip);

// ④ mouseoverイベントの監視(イベント委譲で軽量化)
document.body.addEventListener('mouseover', (e) => {
  const target = e.target;
  
  // テキスト要素の場合に正規表現で判定
  if (target && target.nodeType === Node.ELEMENT_NODE) {
    const text = target.innerText;
    // 「平成5年」や「令和元年」にマッチする正規表現
    const match = text && text.match(/(明治|大正|昭和|平成|令和)(|\d{1,2})/);
    
    if (match) {
      const seireki = convertToSeireki(match[1], match[2]);
      if (seireki) {
        tooltip.innerText = `西暦 ${seireki} 年`;
        tooltip.style.display = 'block';
        tooltip.style.left = `${e.pageX + 10}px`;
        tooltip.style.top = `${e.pageY + 10}px`;
      }
    }
  }
});

// ⑤ マウスが離れたらツールチップを非表示
document.body.addEventListener('mouseout', () => {
  tooltip.style.display = 'none';
});
実装上のポイント

パフォーマンス重視のイベント処理: ページ内の全テキスト要素を巡回してDOMを書き換えると、巨大なページで動作が重くなります。そのため、document.bodyに対して1つだけmouseoverイベントを貼る「イベント委譲(Event Delegation)」を採用し、ホバーされた瞬間だけ判定を行っています。
「元年」への対応: 「令和元年」のように数字ではなく「元」と記載されているケースも考慮し、数値の1へ変換する処理を入れています。
元年という表記だけは日本特有ですので、元年表示にも対応するようにしています。

まとめと今後の改善点

わずか数十行のJavaScriptですが、「調べる」という一瞬のストレスを完全にゼロにすることができました。自分が毎日使うブラウザだからこそ、こういったミクロな業務効率化ツール自作は非常に満足度が高いです。
ただ個人的に和暦表示を西暦表示に強制変換したかったという望みが叶いました。

こんな和暦のあるページもこの拡張機能が和暦を一発で西暦に変換します。
令和ってなんだ?って人はぜひインストールしてみてください。

chromewebstore.google.com

他人に配りたいというより、どちらかというと自分のためのアプリなので興味ある人はインストールしてみてください。
特にお役所系のサイト閲覧で威力を発揮します。

【ダウンロード無料】冷蔵庫の「困った」を解決!残り物でプロ級レシピが作れるAIアプリを開発しました【フードロス削減完全ガイド】

「冷蔵庫に中途半端に残った人参と豆腐、どうしよう…」
「毎日の献立を考えるのが正直めんどくさい…」

そんな悩みを一発で解決するアプリを、ついに開発しました!

その名も「残り物レシピAI」。
このアプリは、今冷蔵庫にある食材をポンポンと入力するだけで、AIが瞬時に美味しいレシピを提案してくれる夢のようなツールです。買い足し不要、フードロスゼロ、そして献立探しのストレスゼロを目指して作りました。
今回は、アプリを開発した背景と、誰でも今すぐ使える詳しい使い方を分かりやすくご紹介します!

なぜこのアプリを作ったのか?

一人暮らしでも、ご家族と暮らしていても、誰もが一度は経験する「冷蔵庫の残り物問題」。

  • 「キャベツが1/4だけ残っているけど、何に使える?」
  • 「賞味期限が切れそうな調味料と野菜を組み合わせて消費したい」
  • 「レシピ検索サイトで検索しても、余計な材料を買い足さなきゃいけないレシピばかり出てくる」

私自身、こうした小さなストレスを日常的に感じていました。食材を使い切れずに捨ててしまう罪悪感や、疲れて帰ってきた後に「今日何作ろう…」と悩み続ける時間。

「手元にあるもの“だけ”で、パパッと美味しいご飯が作れたら最高なのに!」

そんな想いから、プログラミングと最新のAI技術を組み合わせて、このアプリを立ち上げました。

「残り物レスキュー」のここがすごい!3つの特長

使い方の説明に入る前に、このアプリならではの推しポイントを3つ紹介させてください。
1. 買い足し不要!「あるものだけ」で提案
従来のレシピ検索アプリは「作りたい料理」から検索するため、足りない材料を買いに行く必要があります。しかし、本アプリは「今手元にある材料」から作れるレシピを逆引きするため、買い物に行く必要が一切ありません。
2. 調味料のカスタマイズやアレルギー対応もバッチリ
「醤油と塩コショウしかない」「辛いものが苦手」「卵アレルギーがある」といった条件も設定可能。あなたの家のキッチン環境にぴったり合ったレシピだけが届きます。
3. 主食・主菜・副菜・時短など気分で選べる

「10分で作れるおつまみがいい」「がっつりメイン料理にしたい」など、その時のシチュエーションに応じた調理モードを選ぶことができます。

【実践】アプリの基本的な使い方(4ステップ)

アプリの操作は驚くほどシンプルです。画面の指示に従ってタップしていくだけで、あっという間にレシピが完成します。

ステップ1:食材を入力する

アプリを開くと、まず「食材入力画面」が表示されます。
入力方法はとっても簡単。検索窓にキーワードを入れるか、カテゴリー(野菜・肉・魚・豆腐/卵など)から選んでタップするだけです。

入力のコツ:
⚬ 大雑把でOK! 「豚肉」「玉ねぎ」「キャベツ」のように大まかな名称で大丈夫です。
⚬ あまりものの「タレ」や「調味料」も追加してみて! 「焼肉のタレ」や「キムチの素」などがあれば、それも食材として入れると、よりバリエーション豊かなレシピが提案されます。
食べログから指定の材料を使ったレシピがサジェストされます。
もちろん、クックパッドの有料版に加入していましたら、ランキング表示が可能です。

ステップ2:手持ちの調味料をチェック(初回のみ)
ご家庭にある基本的な調味料(醤油、酒、みりん、塩コショウ、マヨネーズ、ほんだし等)にチェックを入れます。一度設定しておけばアプリが記憶してくれるので、2回目以降はスキップ可能です。
「今、家にめんつゆしかないんだよね…」という時は、めんつゆだけにチェックを入れておけば、めんつゆ味付けベースのレシピに自動調整されます!
ステップ3:調理条件を選ぶ(任意)
その日の気分や状況に合わせて、こだわり条件を選びましょう。
⚬ 調理時間: 「5分以内」「15分以内」「じっくり」
⚬ ジャンル: 「和風」「洋風」「中華」「エスニック」
⚬ 目的: 「ガッツリ主菜」「お酒のつまみ」「ヘルシー副菜」「お弁当のおかず」
特に「10分以内の爆速時短モード」は、忙しい平日夜に大活躍します!
ステップ4:「レシピを生成する」ボタンをタップ!
準備ができたら、画面下部の**【レシピを作成する】**ボタンをポンと押すだけ!
わずか数秒で、あなたの冷蔵庫の中身に特化したオリジナルレシピが提案されます。
実際に使ってみた!レシピ提案の例
例えば、冷蔵庫に「もやし半袋」「卵1個」「豚こま肉少し」しか残っていなかったとします。

アプリに入力して検索すると…こんなレシピが提案されました!

🍳 10分で完成!豚もやしのふんわりたまご炒め
【材料(1人分)】
⚬ 豚こま肉:50g
⚬ もやし:1/2袋
⚬ 卵:1個
⚬ 醤油、塩コショウ、ごま油(家にある調味料から自動選出)
【作り方】
1. フライパンにごま油を熱し、溶き卵をサッと炒めて一度取り出す。
2. 同じフライパンで豚肉ともやしを強火で炒める。
3. 肉に火が通ったら塩コショウと醤油で味を調え、卵を戻し入れてサッと和えたら完成!
💡シェフからの ワンポイントアドバイス
卵は先に炒めて取り出しておくことで、パサつかず「ふんわり」仕上がります!
このように、材料だけでなく「工程(ステップ)」と「美味しく作るコツ」まで分かりやすく解説してくれます。
「あ、これならすぐ作れそう!」と思えるアイデアが次々と湧いてくるのが、このアプリの面白いところです。

アプリをさらに使いこなす!裏ワザ&応用テクニック

基本の使い方に慣れてきたら、ぜひ以下の応用テクも試してみてください。
① 「賞味期限がやばい食材」を優先指定する
「この豆腐、今日中に使わないとマズイ…」という時は、食材入力欄で「豆腐(優先)」と指定してみてください。アプリがその食材を主役に据えたレシピを最優先で組み立ててくれます。
② 「ズボラ(フライパン1つ・レンジのみ)」指定
疲れて洗い物を増やしたくない日は、条件設定で「電子レンジのみ」や「ワンパン(フライパン1つ)」を選択するのがおすすめ。包丁を使わない耐熱ボウルレシピなどもバッチリ提案してくれます。
③ 気に入ったレシピはお気に入り保存&SNSシェア
「残り物で作ったのに思いのほか絶品だった!」というレシピは、ハートマークを押してお気に入り保存が可能。いつでも見返すことができます。また、Twitter(X)やInstagramにワンタップでレシピをシェアする機能も搭載しています。
ユーザーの皆様からいただいた声(ベータ版モニターより)
アプリのリリースに先立ち、モニターの方々に使っていただいた感想を一部ご紹介します!
⚬ (30代・主婦)「いつも『残り物 組み合わせ』でググって迷子になっていたのが嘘みたい。今ある材料だけでピタッと作れるのが気持ち良すぎます!」
⚬ (20代・一人暮らし会社員)「自炊のハードルがめちゃくちゃ下がりました。買い物に行かずに済むので、毎月の食費が5,000円以上浮いて感動しています。」
⚬ (40代・パパ)「休日に冷蔵庫の整理を兼ねて料理をするのが楽しくなりました。妻にも『創作料理上手になったね』と褒められます(笑)」
今後のアップデート予定
現在も、より使いやすくするために以下の新機能を絶賛開発中です!
⚬ 写真で食材自動認識機能: 冷蔵庫の中身をカシャッと撮るだけで食材を自動入力
⚬ 栄養バランスチェック: 作った料理の推定栄養素を可視化
⚬ 賞味期限管理リマインダー: 食材の無駄買い・腐らせを防ぐ通知機能
ユーザーの皆様の声を取り入れながら、どんどん進化させていく予定ですので、ぜひご意見やフィードバックをお寄せください!
まとめ:今すぐアプリを試して、毎日の料理をラクにしよう!
毎日の食事作りは、生きる上で切っても切り離せない大切な営みです。
だからこそ、「献立に悩む時間」や「食材を捨ててしまうストレス」を少しでも減らして、食べることをもっと楽しく、軽やかにしたい——そんな想いを込めてこのアプリを作りました。

冷蔵庫に中途半端な食材が残っている
今日の晩ごはんのアイデアが浮かばない
食費を節約しながら美味しく食べたい

そんな方は、ぜひ今すぐアプリをダウンロードして、冷蔵庫のドアを開けてみてください!
きっと、今夜の食卓を彩る素敵なレシピが見つかるはずです。

chromewebstore.google.com

感想や「こんなレシピができたよ!」という報告も、ブログのコメント欄やSNSで教えていただけると開発の励みになります!
最後までお読みいただき、ありがとうございました!

注目記事