IMEにこそAIを活用して欲しい 2023-12-27 (水) 22:45:13+09:00

日記

巷では、AIが大流行り。

その利用方法は、ユーザーの求める情報を文章として生成したり、画像や音楽を生成したり・・・が専らである。

だが、私はAIの成果を大いに活かせるものとしてIMEの変換機能があると思う。

日本語返還のアホさ加減には、普段閉口している人が多いのではないか。

AIを活用すれば、文脈上おかしな変換はほぼしなくなるだろう。

ぜひ、日本語変換機能にAI技術を導入していただきたい。


先に apache の話から。

apache を 2.4.5.7 から 2.4.5.8 にしたら、 module を読み込む extension を読み込まなくなった。

extension_dir = "ext"

と表記していたのを、

extension_dir = "c:/***/php8.3.1/ext"

のように絶対パスに変更したら読み込むようになった。何らかの内部的な動作の変更があったのだろうが、相対パス表記では動作しなくなった。


次に php の話。

php を、 8.2.11 から 8.3.1 にしたら、 rnote.php の2098行目付近の、

function Plugin($name,$func,$opt){
if (phpversion() < "6.0.0"){
      static $g_plugin = '';
} else {
      static $g_plugin = array();
}

が、エラーになった。

php.net の PHP RFC: Arbitrary static variable initializers によると、

‘Backwards incompatible changes’ として、

Currently, redeclaring static variables is allowed, although the semantics are very questionable.

(現在、static 変数の再宣言は許可されているが、この論理的な意味は非常に疑問)

ということで、 static 変数の再定義を認めないように変更されたからだ。

しかし、上の例のように php のバージョンにより異なる動作をする部分を条件文で切り分けることができなくなってしまった。有用な機能だと私は思うのだが、不許可にされたらどうしようもない。

function Plugin($name,$func,$opt){
      static $g_plugin = (phpversion() < "6.0.0") ? '' : array();

という書き方に変更した。

今後もこういう変更が増えると思うと、 rnote-re のコードも、そろそろ php6 以前のバージョンへの対応をやめてもいいのかも知れない気がした。

キーワード: rnote-re


edge の右上に、毎日、

「検索の改善にご協力ください OK 設定の管理」

と表示され、非常に鬱陶しい。

しかも、うっかり「OK」を押してしまうと最後、個人情報が送信されるように設定が変更されてしまう。

たまったものではないこのスパムを消す方法は、下の通り。


1)edge://flags で、フラグの一覧を表示する。

2)’Show feature and workflow recommendations’ を、 ‘Disabled’ にする。

キーワード: edge spam flag


結論から言う。我が国では、リバースエンジニアリング禁止条項が設定されているソフトウェアのリバースエンジニアリングは基本的に違法であるが、個々の案件ごとに著作権法や独占禁止法との兼ね合いでの判断が必要になると思われる。


以下は資料より列挙。(資料:企業法学研究 2020 第 9 巻第 2 号の論文「プログラムのリバースエンジニアリングの法的課題」。)

1)米国では違法とされている。リバースエンジニアリングの禁止条項が、著作権法に優越するという司法の結論が出たためである。

2)EUでは、合法とされている。契約書の中のリバースエンジニアリング禁止条項を無効としている。

3)我が国(日本)では、著作権法が改正され、30条の4によりリバースエンジニアリングが適法となり、かつ、公正取引委員会は、独占禁止法の観点から検討し、禁止条項を不公正な取引方法と判断しているが、それにも関わらず、経済産業省は禁止条項を有効と判断し、多数説としても禁止条項が有効とされているため、全体としては、米国に追従し、リバースエンジニアリングを違法としていると言える。


このことを考えていて思い出したのが、 Ultra-HD Blu-ray のPCでの再生である。

御存知の通り、Ultra-HD Blu-ray は、著作権の保護の観点から、DRM(デジタル著作権管理)の技術のうちの AACS(Advanced Access Content System)により暗号化処理が施されており、メモリ上に読み込んだ状態で他のプロセスからアクセスできないようにするためにハードウェア機能である Intel SGX(Software Guard Extensions) を使用している。

そのため、ハードウェアの構成に条件が加わる。詳しく書くと、 SGX 対応の CPU (第7~10世代で、かつ、SGX対応のもの)、対応マザーボード、対応 BIOS、 windows 用の対応ドライバ(新しいバージョンに上げると非対応になってしまうので古いままにする必要がある)、そして、CPU内蔵の HDMI/DisplayPort出力がHDCP2.2をサポートしているグラフィックを使用する必要がある。

大変な困難さだ。ここまでの負担を動画視聴者に強いては、PCで視聴しようと考える者もほとんどいなくなるだろう。この問題の根本的な原因は著作権保護である。SGX を使用せず DRM に従った暗号化データの再生が可能なプレイヤーが開発できれば、 Intel SGX は必ずしも必要ではなくなる。だが、 SGX を用いずに著作権の違反にならないようDRM(デジタル著作権管理)の技術として暗号化することができるかどうか。できなければ、リバースエンジニアリングの例のように、「違法な行為(を行うプレイヤー)」とされる恐れがあるだろう。


apache と PHP 8.2.11 の ini ファイルの設定、特に PHP を動作させるための設定は下の通り。


1)apache

Define SRVROOT "c:/…/Apache24"

DocumentRoot "${SRVROOT}/htdocs"

LoadModule php_module "C:/…/php8apache2_4.dll"

<FilesMatch "\.php$">

  AddHandler php-script .php

  AddType application/x-httpd-php .php

</FilesMatch>

PHPIniDir "c:/…/php8.2.11"


2)PHP

extension_dir = "ext" ( extension_dir = "c:/…/ext" のように、フルパス記述でも可。)

extension=mbstring

extension=openssl

date.timezone = Asia/Tokyo

[mbstring]

mbstring.language = Japanese

mbstring.encoding_translation = On

mbstring.detect_order = ASCII,UTF-8,ISO-2022-JP,eucJP-win,SJIS-win

mbstring.substitute_character = none

下の3つは確実にコメントアウトしておく。(あるだけで起動しなくなる。)

;mbstring.internal_encoding = UTF-8

;mbstring.http_input = auto

;mbstring.http_output = UTF-8

キーワード: apache php8