Mathematicaプログラムの難読化・隠しメッセージ埋め込み手法の検討
Mathematicaのプログラムを難読化し、またそこに隠しメッセージを埋め込む手法をいくつか検討してみた。
円周率をモンテカルロ法で求めるプログラムを難読化し、隠しメッセージを埋め込む例をいくつか考えた。
Mathematicaのプログラムを難読化し、またそこに隠しメッセージを埋め込む手法をいくつか検討してみた。
円周率をモンテカルロ法で求めるプログラムを難読化し、隠しメッセージを埋め込む例をいくつか考えた。
メルカトル図法の投影座標の計算に逆グーデルマン関数を用いる(メルカトル図法 - Wikipedia)が、等価な計算式が複数ある。
JavaScriptで計算する際に、どの計算式を用いるのが誤差が少なくなるのか調査した。
VBAでのランダムパスワード生成なんて出尽くされていると思ったけれど、意外とスマートな実装がなかったので自分で書いてみた。
単純に使用可能な文字種全体からランダムに1文字ずつ選択して連結するだけでは、「英小文字、英大文字、数字を必ず1文字以上含む」などのポリシーに沿っていない文字列が生成されてしまう可能性があるが、 1回の処理で必ずポリシーに沿った文字列を生成する関数を作成した。
OpenVPNのLinuxクライアントを使ってスプリットトンネルのVPN接続をしようとした所、route-nopull
が効かなかったので、別の対処を行った。→redirect-gateway def1
を削除。
LXD(lxc)でネットワークアクセスを有効にしていて、特定のIPアドレスに限っている場合、ホストのIPアドレスを変更した際にlxcコマンドがエラーとなる。
設定を行うlxc config edit
自体が動作しないので対処法に困ったが、何とか見つけることが出来た。
PowerShellでdiff
相当のCompare-Object
を使って、差分だけ処理するスクリプトを書こうとしたら、PowerShellの仕様による罠にハマった。
会社のノートPCをHDMIで外部モニタに映像と音声を出力していると、動画を再生開始しても最初の数秒が無音になってしまった。
動画ファイルや動画プレイヤー、モニタ、PCを変えて試したが、いずれも同じ現象が発生したため、Windowsに原因があると推定し、調べてみるとビンゴ。
しかし見つかった対処法では解決せず、ステレオミキサーを使う方法で解決した。
Ubuntuのアップデート時にMathematicaノートブックをNautilusから起動できなくなってしまって少し面倒だったので、再度設定を行った。
ついでに、すでにMathematicaが起動している時に2つ目のノートブックをNautilusから開いた時、デフォルトでは別プロセスのMathematicaが起動してしまってライセンスが要求されてしまう点にも対処した。
Google Maps JavaScript APIの初期化完了をPromiseで待機したかったので、方法を考えてみた。
グローバル環境が少し汚れるが、一般にJSONPのコールバックをPromise化できる。
CloudflareのArgo Tunnelはサービスとして起動することができるが、現時点では設定ファイルが決め打ちになっているため、そのままでは1本のトンネルしか起動できない。
そこで、ユニットファイルを少し変更して1台のマシン上で複数のトンネルを起動できるようにした。