D&DしたQRコード画像をブラウザ上でデコードする

ブラウザ上にドラッグ&ドロップ (D&D) されたQRコードの画像を、読み込んでデコードするUIを作りたい。

Pure JavaScript で動作する、QR コードデコーダー(パーサー) cozmo/jsQR が有名なので、これを使ってみよう。

jsQR は、 png や jpg といった画像コンテナの解凍機能も、 HTML や DOM, Web 周りに特化した機能も一切無いため、読み込ませた画像は何らかの方法で Uint8ClampedArray な RAW 画像に変換して渡す必要がある。

ちょっと遠回りにはなるが、

  1. D&D されたファイルの File API を読み取る
  2. FileReader API を使って、ファイルを DataURI として読み込ませ、 img タグに表示させる
  3. OffscreenCanvasOffscreenCanvasRenderingContext2D を経由して ImageData を作成する
  4. jsQR に処理を投げる

といった処理になるだろうか。

早速実装してみよう。

実装

続きを読む

ブラウザのタイトルや URL をコピーするブックマークレット【スマホ&阿部寛対応】

ブラウザで表示しているページのタイトルと URL を一括でコピーしたり、 markdown などのマークアップ言語でフォーマットされたものを、クリップボードにコピーしたくなることは無いだろうか?

意外にも、主要なブラウザには表示ページのタイトル名すら簡単にコピーする方法がない。

いくつかのブラウザ拡張機能(アドオン)には、上述の機能を提供しているものがいくつもある。
しかし、これだけのために拡張機能を入れるのもなんだかなと。
場合によっては、ポリシー等様々な理由で拡張機能を入れることを制限されている場合もあるだろうし。

そこで、表示中ページのタイトルと URL を任意の種類にフォーマットしてクリップボードへコピーしてくれるブックマークレットを作ってみた。

ブックマークレットとした事により、拡張機能の使えないスマートフォンの Chrome や Safari といった、とても不便なブラウザでも利用できる。

使い方

ブラウザのタイトルや URL をコピーするブックマークレット

続きを読む

電Go!! の ZUIKI コンは製造時期による違いがある?

電車でGO!!専用ワンハンドルコントローラー - 瑞起 ZUIKI (以下、 ZUIKIコン) には、 型番 : ZKNS-001 の通常版 と、 型番:‎ZKNS-002 の EXCLUSIVE EDITION の二種類ある。

ただどうも、それ以外に製造時期による違いもあるようだ。

その違いのせいで、 JR東日本トレインシミュレータ で ZUIKIコン 使うツールがな機能しなくなって困ったので、その対処をした話。

きっかけ

元々、2021年の発売当初から通常版の ZUIKIコン を購入しており、公式で対応している 電車でGo!! Switch 版 や ソニックパワードの 鉄道にっぽん! シリーズ Real Pro など に加え、 Switch版電車でGOワンハンドルマスコンで操作できるようにしてみました - Steam コミュニティー で紹介されてるツールを使って JR東トレシム で使っていたりしていた。

程よい重量感や操作感で臨場感が爆上がり… というか、無いと面白みが8割減レベルに気に入っており、最近 EXCLUSIVE EDITION を買い増した。

…ところが買い増しした ZKNS-002 は、Switch 版や 鉄道にっぽん! シリーズでは問題なく動くのに、上記ツールを使って JR東トレシム しようとすると以下のようなエラーが出て動かない。

Traceback (most recent call last):
  File "main.py", line 24, in <module>
  File "SwitchDenGo.py", line 32, in loadStatus
pygame.error: Invalid joystick button
[33064] Failed to execute script 'main' due to unhandled exception!

存在しない joystick 番号を指定されてエラーになってる。
…つまりボタン配置が違う?

しかしそもそも、この ZUIKIコン は汎用 USB コントローラ として認識されるモノだし、Windows OS 側のデバイスの設定を見ても、どちらも同じ "One Handle MasCon for Nintendo Switch" と認識され、全くボタン配置で認識されている。
なんでボタン配置がズレるのか、訳がわからないよ。

上記 Steam コミュニティー でも、同じような問題に遭遇している人が何人かいる。
しかも、 通常版 ZKNS-001 か EXCLUSIVE EDITION ZKNS-002 かを問わず発生するようだ。

つまり、型番違いによる仕様変更が原因ではない…?

意外なる原因

続きを読む

PC Manager をオフラインやプロキシ環境下でインストールする

システム最適化ソフト「Microsoft PC Manager」が、 v3.1.3 で日本語に対応したらしい。

元々中国向けに提供されていたものが、英語、それ以外の言語と順次展開が拡大されおり、今回めでたく日本語対応したようだ。
…あれ? こないだまで最新ベータ版は v3.2 だったような…?
まぁいいか。

Windows 11 だと何かとメモリを食いつぶされて、 16~32GB 程度のメモリでは VM や WSL の起動に失敗することが多々あるので、 Windows 98 や Me の時代を思い出すようなメモリクリーンアップ機能は、今の時代でも重宝される。

さて、この Microsoft PC Manager だが Microsoft の公式ページ からインストーラをダウンロードして実行しても、オフライン環境やプロキシ環境下だと「インストール ファイルをダウンロードできませんでした。後でもう一度お試しください。」等と表示されて、インストールに失敗する。

インストーラ (MSPCManagerSetup.exe) が実行時に実プログラムをダウンロードする必要があるからだ。

どこかにオフライン版のインストーラはないものか…
と調べていたら、 FANDOM の Wiki にオフラインインストーラのリンクの作り方が書いてあった。

続きを読む

個人用 Clipchamp から組織ユーザーへプロジェクトを無理やり移行する

この記事では、 個人アカウント用 Clipchamp から組織(法人)ユーザーの Clipchamp へプロジェクトを移行する方法、およびその応用で、個人用から別の個人用ユーザーに Clipchamp プロジェクトを移行(コピー)する方法を説明する。


去る7月31日に、 動画編集アプリ Clipchamp が組織アカウントに対応し、ビジネス向け Microsoft 365 に加わることが発表された。

これにより、 Microsoft での買収以降どのプランが商用利用可能なのか曖昧だった Clipchamp が、組織アカウント上で安心して商用利用できる事になる。
北米時間の 2023年10月15日 に Clipchamp が商用ユーザーで利用可能になったことが発表 され、 Microsoft 365 の対象プランのライセンスを持つ全てのユーザーに対し Clipchamp が一般公開された。

さて、 Clipchamp が組織アカウントに対応したことで、旧来の個人アカウント用 Clipchamp アカウントで作成していたプロジェクトを、組織アカウントに移行したくなる場合もあるだろう。

しかし FAQ などをみると、

職場アカウントで Microsoft Clipchamp にアクセスする方法 - Microsoft サポート

個人アカウント用に Clipchamp で作成されたプロジェクトを作業バージョンに移動できますか?

いいえ。

無慈悲。

仕事向けの Clipchamp - clipchamp.com

個人用アカウントの Clipchamp で作成したプロジェクトを職場アカウントに移行できますか?

現時点では、個人用アカウントで作成したプロジェクトを職場アカウントに移行することはできません。

こちらは、もうちょいマイルドだ。

将来的にやる気があるのかはわからんが、少なくとも現時点では、個人アカウントのデータの組織アカウントへの移行は、公式的にはできないらしい。

ところで、実際に組織アカウントで Clipchamp を使ってみると、プロジェクトファイルが OneDrive for Bussiness の <ルート>\動画\Clipchamp\<プロジェクト名>\ あたりの、 *.clipchamp という、 JSON が実体のファイルとして保存されていることに気づく。

個人用 Clipchamp の動作を思い出してみると、画像や音声などのアセットはローカルにキャッシュや保存されているものが参照されているだけで、別 PC でプロジェクトを開こうとすると、改めてアセットファイルを紐づける必要があった。

このため、 個人用 Clipchamp のプロジェクトも、この JSON ファイル程度の情報しかサーバーで管理されていないのではと推測できる。

つまり、何らかの方法でこの JSON ファイル相当の情報を個人用 Clipchamp から抜き出せれば、組織アカウントに移行できるかもしれない。

試行錯誤してみたところ、どうやら上手くいったようなので、その方法を紹介しよう。

続きを読む

Keepass2Android は Offline 版がオススメ

パスワード管理ソフトの中でも非常に有名なものの一つが KeePass シリーズだ。

複数の端末での同期や、多要素認証などのセキュリティ向上設定には少し知識が必要なものの、 LastPass や 1Password などのクラウド型のソリューションとは異なり、有料プランの課金やサービス提供企業側のヘマによるセキュリティ侵害などのリスクが低いのが特徴だ。

Andoroid 向けの古参 KeePass 互換のパスワード管理ソフトとして、 Keepass2Android が存在する。

この Keepass2Android には、同じ作者によって提供される以下の2つのバージョンがある。

一見すると、インストール数の多い Keepass2Android Password Safe (以下、 非オフライン版) の方が良さそうに見えるかもしれないが、実際には Keepass2Android Offline をオススメする。

Offline版 と 非オフライン版 の違い

続きを読む

Ubuntu で Main リポジトリ以外のインストール済みパッケージを一覧にする

以下のコマンドを使用すると、 Ubuntu にインストールされているパッケージのうち、Main リポジトリ以外(Restricted, Universe, Multiverse)に属するものを一覧で表示できる。

dpkg-query --show --showformat='${binary:Package}\n' | xargs -IX bash -c "apt-cache policy X | sed -n --regexp-extended '1h;/.*(\/restricted|\/universe|\/multiverse) .*/{x;p;x;p;Q}'"

以上!

…とすると、この記事だけでは少し物足りない気がするので、使い方についても少し説明しておく。

なぜ Main リポジトリ以外のものを把握したいのか?

パッケージの取得元リポジトリのカテゴリを把握する理由は、Canonical による Ubuntu Pro のサポート範囲が関係しているからだ。

apt コマンドを使用して、Ubuntu の標準リポジトリから取得される各パッケージは、以下の4つのカテゴリに分類される。 1

  • Main
    • Ubuntu チームによってサポートされる、フリーソフトウェアを収容するコンポーネントで、 2,300 以上のパッケージを含む。
    • Ubuntu インストール時にデフォルトでインストールされるパッケージの大半はこれ。
  • Restricted
    • ドライバーなど、利便性の面でデフォルトでインストールされたほうが望ましいものの、プロプライエタリであるソフトウェアを含むコンポーネント。
  • Universe
    • Ubuntu コミュニティによって管理されている、 Linux 界の多くのオープンソースソフトウェアを収容するコンポーネントで、 23,000 以上のパッケージを含む。
  • Multiverse
    • フリーソフトの要件を満たさないような、特殊なライセンス要件をもつソフトウェアを収容するコンポーネント。
    • GPU 関連 (CUDA 等) や, VirtualBox などが含まれている。

これらのうち、Restricted と Multiverse リポジトリのパッケージについては、それぞれのソフトの提供元によってのみメンテナンスされ、Canonical によるサポートは行われない。

一方で、Main と Universe リポジトリのパッケージについては、セキュリティ修正の提供期間や、電話/オンラインチケットサポート範囲が、 Ubuntu Pro の有無やライセンスの種類ごとに以下のような内訳となっている。 2

Security patching Ubuntu LTS Ubuntu Pro (Infra-only) Ubuntu Pro
Over 2,300 packages in Ubuntu Main repository 5 years 10 years 10 years
Over 23,000 packages in Ubuntu Universe repository Best effort Best effort 10 years
Optional phone/ticket support No Yes Yes

5年のLTSの期間中、Main リポジトリのパッケージを主に使用する場合、(ライブパッチ等の他のUbuntu Proのサービスが不要であれば)無料の範囲内で十分だ。

Main リポジトリのパッケージを主に使用しながら、10年の延長サポートを望む場合は、"Ubuntu Pro (Infra-only)" を契約することをおすすめする。

また、Universe リポジトリのパッケージを積極的に活用したい場合は、"Ubuntu Pro" を契約しておくと、より安心だろう。

Ubuntu の Universe リポジトリのパッケージの更新基準

続きを読む

超コスパ左手デバイス SIKAI CASE を安全に設定する

世の中には、「片手キーボード」とか「左手デバイス」と呼ばれるデバイスが存在する。

ペンを使ったお絵かきや、マウス中心の作業を行う際に使われるデバイスで、必要なショートカットキーなどを登録しておくことで、複雑な操作を簡略化して入力を行えるものだ。

こういった商品は、世の中にいろいろあるのだが、有名な商品はまぁ高い。

自分で好きなようにショートカットキーを登録できる汎用的なものだと、2万3万は余裕で飛ぶようなものばかりだ。

こういったジャンルには、いわゆる中華デバイスなどとも呼ばれる、機能を割り切った安価なデバイスが売られていることが多く、この「左手デバイス」も例外ではない。

そんな、中華左手デバイスの中で、デバイスとしては比較的評判が悪くない SIKAI CASE 片手キーボード を、少し安全に使う方法について、少し考えてみようと思う。

なお、この製品自体がどんなものなのかは、ここらへんの解説動画あたりが参考になるので、そちらをどうぞ。
(私自身も、この動画を見て買った)

「安全に使う」とは?

続きを読む

ミドルGPUで35億の女(RINNA AI)のローカル実行 ことはじめ

RINNA社が 5月17日 に、 rinna/japanese-gpt-neox-3.6b-instruction-sft という、対話言語 AI モデルを公開したと、プレスリリースを出した。
その後さらに 5月31日、人間の評価による強化学習したモデル rinna/japanese-gpt-neox-3.6b-instruction-ppo を追加リリースしている。

この AI モデルは、ご家庭にあるミドルレンジ GPU でもサクサク動く性能だったので、 AI 系に明るくない人にも導入できるように、詳しい導入手順を紹介しようと思う。

こう言うのって、登場して直ぐ情報がホットなうちに記事にすることに価値があって、こんな 1~2週間経ってから記事を書いたって誰にも届かないんだろうけど、とりあえず書いてみる。

この界隈の情報はコンテクストが高いというか、あんまりイチから導入方法を説明している記事って目にしないので、多少は需要があるかなと。

はじめに断っておくが、 Chat-GPT や 新しいBing 等と比べると数段落ちる回答精度となる。
ただ、個人がお手軽に購入できる程度の GPU を使って、完全にローカルで動かす事ができるという点が、一種の浪漫だ。

前提条件

以下のスペックを持った PC。

  • OS は Windows 10 または Windows 11
  • GeForce RTX 3060 以上、 VRAM 12GB 以上が載った NVIDIA の GPU
    • GPU ドライバはインストール済み
    • 具体的には 2023年5月現在 以下のいずれかモデル
      • GeForce RTX 3060 (12 GB)
      • GeForce RTX 3080 (12 GB)
      • GeForce RTX 3090
      • GeForce RTX 3090 Ti
      • GeForce RTX 4060 Ti (16 GB)
      • GeForce RTX 4070
      • GeForce RTX 4070 Ti
      • GeForce RTX 4080
      • GeForce RTX 4090
    • 3070 Ti, 3060 Ti, 3060 (8GB) だと VRAM が足りないので、多分動かすとエラーになる

導入手順

続きを読む

[Windows] MBR パーティションの SSD を GPT へコピーする

突然だが、超久々に自作 PC を組んだ。
前回は Windows 7 登場の 2009年に、 第1世代 Core i5 750 で組んだ時なので、約14年ぶりとなる。

ハードは一度、中古でもらった 第3世代 Core i7 3770 に置換えているのだが、その際もストレージや Windows 7 Pro のライセンスはそのまま流用していてる。
その後も、ストレージをクローンしたり「初期状態に戻す」で再インストールしながら、脈々と使い続けているものとなる。

このため今回も、 旧PCに入っている SATA SSD に入っている Windows 10 を、新PC の NVMe SSD にコピーして、その状態で起動させてから(ライセンスにハード構成覚えさせてから)、 Windows 11 に上げようと考えた。

ところが、 NVMe SSD で起動するのに結構苦戦したので、その解決策のメモ。

とりあえず最初に試したこと

Ventoy をインストールしたブータブル USB メモリに GParted live を入れ、 GParted を使い、

  • 新NVMe SSD をパーティションテーブル GPT で初期化
  • 旧SATA SSD から 新NVMe SSD へ雑にパーティションをコピー

を行った。

この状態で試したところ、 ブルースクリーンすら表示されず、 UEFI から何もブートできない。
USB メモリ内の Windows ISO からブートして、回復コンソールからスタートアップ修復などを試しても駄目だった。

根本的な原因

続きを読む