2017年12月 8日 (金)

PP Interrupter: 健全なサイトをブロック!?

This is a support page of the PP Interrupter. You can write comments on this page, even if you can't understand Japanese blow. If you need explanation of the extension in English, show the English main page of the PP Interrupter.

ブラウザ拡張 PP Interrupter を作った。Web Extension 規格に順って作ったので今後、様々なブラウザで利用できるようになるかもしれないが、今のところ Mozilla Firefox でしか動かないようだ。

PP Interrupter の説明は、専用ページで行った。まずそちらを読んで欲しい。このページは「サポート」を行うのがメインである。

一応、ここでも軽く説明しておくと、PP Interrupter は特定の URL へのアクセスを一旦ブロックし、アドレスバーに表示されるアイコンのクリックによってそのブロックを解除するという汎用のアドオンである。このアドオンにより、自動的なリダイレクトの前に一旦ストップする習慣を作ることができる。このアドオンは、他のブロッカーと違い、悪意のあるサイトではなく、健全なサイトをブロックすることを目的とする。

PP Interrupter は PP Authorizer の姉妹品で、現在の PP Authorizer が一般に使えない状況で、認証の前でアドレスバーのアイコンをクリックしなければならないという点で、PP Authorizer と似た操作を PP Interrupter は実現する。もし、将来、健全なサイトが自動的なリダイレクトを禁じるようになったときには PP Authorizer の出番が来る。

PP Interrupter は現実への対応だが、PP Authorizer は未来への投資である。しかし、PP Interupter は汎用のため、PP Authorizer がなくても、PP Interrupter は動く。

このアドオンを作るキッカケとなったアイデアは [cocolog:88492515] に書いてある。そこでは、webRequest に関する拡張を調べていて難しそうだ…と書いていたが、よく読んでいるうちにどうもできそうなので作ってみた。当初は、ストップしたときにページが表示されるようにしたかったのだが難しく、 notifications の表示に留めた。

なお、このアドオンを作ったときの感想が [cocolog:88550595] に書いてある。

配布物


アドオンは、AMO (Mozilla Add-ons)の PP Interrupter のページから手に入る。このページでは、一応、提出した際のソースのアーカイブを公開しておく。次のリンクが最新のもののはずだが、より以前のものはコメント欄をご参照いただきたい。

更新: 2017-12-08
初公開: 2017年12月08日 16:17:00
最新版: 2017年12月08日 17:16:41

2017-12-08 16:17:00 (JST) in Firefox, JavaScript, JRF 作成ソフトウェア | | コメント (4) | トラックバック (0)

2017年11月27日 (月)

PP Authorizer: 匿名的ログイン・匿名的支払いをサポートするアドオン

This is a support page of the PP Authorizer. You can write comments on this page, even if you can't understand Japanese blow. If you need explanation of the extension in English, show the English main page of the PP Authorizer.

ブラウザ拡張 PP Authorizer を作った。Web Extension 規格に順って作ったので今後、様々なブラウザで利用できるようになるかもしれないが、今のところ Mozilla Firefox でしか動かないようだ。

PP Authorizer の説明は、専用ページで行った。まずそちらを読んで欲しい。このページは「サポート」を行うのがメインである。

一応、ここでも軽く説明しておくと、PP Authorizer は、「Privacy-Protected なログインまたは支払いを実現するための構成要素の一つ」ということになっている。

「PPログイン(pplogin, Privacy-Protected login)」や「PP支払い(pppayment, Privacy-Protected payment)」という概念自体はずっと以前に私は《保証付き匿名ログインと即時銀行振込を可能にして! - プライバシープロバイダ API(仮称)》という記事で紹介し、また、《Statuses_Editor_Proxy.CGI - XMLRPC と OAuth を組み合わせた「ひとことサイト」ソリューション》で、その概念を使うためのブックマークレットを作ったりしていた。

なお、このアドオンを作ったときの感想が [cocolog:88492515] に書いてある。

配布物


アドオンは、AMO (Mozilla Add-ons)の PP Authorizer のページから手に入る。このページでは、一応、提出した際のソースのアーカイブを公開しておく。次のリンクが最新のもののはずだが、より以前のものはコメント欄をご参照いただきたい。

更新: 2017-11-27
初公開: 2017年11月27日 11:54:57
最新版: 2017年11月27日 13:44:41

2017-11-27 11:55:00 (JST) in Firefox, JavaScript, JRF 作成ソフトウェア | | コメント (8) | トラックバック (0)

2017年4月20日 (木)

過剰診断論に関するシミュレーション 中間報告

「過剰診断論」にいくつか疑問を持ち、シミュレーションを書いてその疑問を明らかにしたいと考えた。その過程で、がん患者には、基礎寿命とがん寿命があって、どちらかが尽きたとき死ぬというモデルを考えることになった。

まだシミュレーション開発の途中だが、「基礎寿命論」についてある程度開発したところで、行き詰まりを感じたため、とりあえず現在の進捗を報告することにした。

続きを読む "過剰診断論に関するシミュレーション 中間報告"

2017-04-20 16:22:40 (JST) in Perl, シミュレーション | | コメント (2) | トラックバック (0)

2017年2月11日 (土)

眠り姫問題のプログラム

「眠り姫問題」は意志決定問題と人間原理という二つの分野で共通のテーマセッターとなっている有名な難問なのだそうだ。三浦俊彦『多宇宙と輪廻転生』によると、次のような問題である。

>
日曜日に、ある実験が始められる。まず、あなたは眠らされる。そのあとフェアなコインが投げられ、表か裏かによって、次の二つの措置が選ばれる。

場合A■表が出た場合 - あなたは月曜日に一度起こされ、インタビューされ、また眠らされ、ずっと眠り続ける。

場合B■裏が出た場合 - あなたは月曜日に一度起こされ、インタビューされ、また眠らされ、火曜日に一度起こされ、インタビューされ、また眠らされ、ずっと眠り続ける。眠りは記憶を消すほど深いので、目覚めたとき月曜か火曜かはわからない。

いずれの場合もあなたは、実験の手続きについてはすべてわかっているものとする。目覚めたときに自分が月曜にいるか火曜にいるか、そしてコインは表だったのか裏だったのかがわからないだけである。

ちなみにコイン投げがなされるタイミングについては融通が利く。コイン投げは、あなたが最初に起こされる前でも、月曜にあなたが目覚めた後でも、問題の論理構造は変化しない。

さて、あなたへのインタビューは次のようなものである。

問1■「いまは日曜日、実験開始直前である。場合 A である確率は?」

問2■「さあ、あなたは目覚めた。場合 A である確率は?」

問3■「さあ、あなたは目覚めた。今は月曜日である。場合 A である確率は?」

(p.235-236)


このうち問2と問3が「眠り姫問題」であるという。この答えには、二つの流派がある。問2 の答えに 1/2 と答える派と、1/3 と答える派である。

問2に 1/2 と答える派はたいてい、問3に 2/3 と答える。問2 に 1/3 と答える派はたいてい、問3 に 1/2 と答える。

それぞれの派について、その考えに基づくシミュレーションをして数え上げるプログラムを Perl で記述してみよう……というのが本稿である。

続きを読む "眠り姫問題のプログラム"

2017-02-11 19:24:07 (JST) in Perl, シミュレーション | | コメント (1) | トラックバック (0)

2017年2月 5日 (日)

コーシー分布でブラック・ショールズ・モデル?

最初に断わるが、これは失敗した実験の記録である。

実験のアイデアは単純なもの。株価等のコール・オプションを求める 2項モデルの近似式としてブラック=ショールズ式が使えるが、2項モデルの話は当然、モンテカルロ法でやってもよいはず。そのとき、2項モデルでは、上か下かのランダム二択を使うが、その替わりに正規分布の乱数を使ったり、コーシー分布 (Cauchy distribution)の乱数を使ってみたら、どうなるかやってみよう……というのが今回のアイデアである。

ブラック=ショールズ式が正規分布のブラウン運動なのだから、正規分布の乱数を使ってみるのは、元の2項モデルと同じ値になりそうだ……とまず考えた。次に、それができるなら、株価の変動は、べき分布(冪分布)だとよく言われるが、べき分布の一つであるコーシー分布の乱数を使ってみたら、ブラック=ショールズ・モデルにコーシー分布を適用したものになるのではないか……と考えた。

結論を述べれば、正規分布の乱数を使うのは確かに2項モデルと変わらないように見える。モンテカルロ法はかなり粗い結果しか出ないので、そう見えるだけかもしれないが、そう言えそうに見える。一方、コーシー分布を使うのは、分割したときの「ボラティリティ」にあたる値をどうすれば良いかがわからず、うまく適用できなかった。その点から、この実験は失敗だと言える。ただ、コーシー分布を使うと、外れ値が多くなるため、元のブラック=ショールズ式で求めるオプション価格よりかなり高い価格が必要になることは、なんとなくわかった。

続きを読む "コーシー分布でブラック・ショールズ・モデル?"

2017-02-05 23:27:08 (JST) in Perl, シミュレーション | | コメント (1) | トラックバック (0)

2016年8月27日 (土)

モンティ・ホール問題または三囚人問題の拡張とその確率操作シミュレーション

はじめに


近年、J. ローゼンハウスの『モンティ・ホール問題テレビ番組から生まれた史上最も議論を呼んだ確率問題の紹介と解説』という本が出た。この本は、モンティ・ホール問題について詳しく、この本が出る前に私が考えていた問題の拡張についても書かれてしまっていた。この本を読んで、一端は、私がこれ以上、この問題について何か書く必要はないかと思った。が、それからしばらくして、私がやったことも少しは意味があるかと思い直し、私の思考の跡を備忘的に記録するため、ちょっとした確率モデルのシミュレーションに関する論考を足して、レポートにしておくことにした。

続きを読む "モンティ・ホール問題または三囚人問題の拡張とその確率操作シミュレーション"

2016-08-27 21:17:40 (JST) in Perl, シミュレーション | | コメント (1) | トラックバック (1)

2016年1月 7日 (木)

The Proofs about Alpha-equivalences in Isabelle

Abstract


The word of "occurrence" in terms is useful to explain notions intuitively, which frequently leads proofs into ambiguous and inaccurate ones. With theorem provers on the computer like Isabelle, however, we can handle the proofs strictly and maybe complicatedly. In the archive I show, I proved notions of the lambda calculus on the computer especially about alpha-equivalence(s) handling with occurrences.

The second merit was that though I was lacking confidence about mathematics, I could affirm my proofs were correct because of theorem provers. However, I originally proved the proofs in Isabelle before 1998. When I have proved originally, I certainly have comprehended what I did. Now, I almost don't recognize what I do, but I rewrite the legacy proofs into the present style of the Isabelle2015. Though, I often consider proofs partly when rewriting leads to failure. I can't prove in the recommended style of Isar structured proof, but prove in the style of "apply ... done" proofs with tactics and tacticals.

The proofs about alpha-equivalence(s) of the lambda calculus include the proof of correspondence between the definition of alpha-equivalence using occurrences and that using inductive set, and proofs about connection of the usual notation and de Bruijn notation.

続きを読む "The Proofs about Alpha-equivalences in Isabelle"

2016-01-07 14:20:18 (JST) in JRF 作成ソフトウェア, 関数型言語・定理証明器 | | コメント (2) | トラックバック (0)

2015年10月16日 (金)

quail-naggy.el: 単漢字変換 Input Method for Emacs.

About the "quail-naggy.el"


Windows 用単漢字変換日本語 IME 『風』の実用性とアイデアを受け、将来的に非 Windows 環境や IME 非対応の Windows 用 Emacs でも『風』のようなインプット・メソッドが使えるようにしておこうとして開発されたのが本ソフトである。

quail-naggy.el 本体は、仮想鍵盤の表示がメインで、変換時の辞書引きなどには、同梱の naggy-backend.pl という Perl プログラムをバックエンドとして使っている。

quail-naggy.el 自体は、Emacs に付属している quail/japanese.el と kkc.el を大いに参考にして作った。また、随分前に私自身が作ってほぼ身内でのみ配布した vkegg.el も参考にしている。

バックエンドを使うこともあり、インストールが複雑なのが本ソフトの弱点である。また、Emacs のバージョンの違いによる表示の差も設定を難しくする要因となる。

本ドキュメントでは、その難しいインストール作業をまず説明し、次いで操作方法を説明する。

続きを読む "quail-naggy.el: 単漢字変換 Input Method for Emacs."

2015-10-16 20:05:48 (JST) in Emacs/Meadow, JRF 作成ソフトウェア, Perl | | コメント (11) | トラックバック (0)

2014年3月20日 (木)

Cocolog_Pro_Analyzer:ココログプロ用アクセス解析補助 Greasemonkey

ココログの新しいアクセス解析が 2013年12月に導入され、2014年2月に完全に切り換わった。基本的には便利になって、要望の多いらしい生ログなども将来的に対応していくそうだから、私は大きな不満はない。

ただ、ココログプロを使っていて複数のブログを扱っていると、ブログを横断したデータの閲覧性が低下した点は気になる。そういうのは、前は Perl などで robot を書けば、なんとかなったんだが、今回のアクセス解析は JavaScript がメインの動的なページのため、それが難しい。そのあたりを補うための Greasemonkey スクリプトを書いてみた。

配布物

Cocolog_Pro_Analyzer.user.js。メイン配布物。

count_access.pl。上記をページビューに関して使って生成した JSON の後処理として計数する Perl スクリプトの例。というか私のアクセス解析報告で使う(予定の)スクリプト。

count_access_2.pl。JSON の取得がうまくいかないことがある。そういうときは、手作業でコピペしたテキストを用意するしかない。タイトルのところで改行が入るので、二行ずつで一データのテキストを得てそれを処理する。

続きを読む "Cocolog_Pro_Analyzer:ココログプロ用アクセス解析補助 Greasemonkey"

2014-03-20 03:46:54 (JST) in JavaScript, ウェブログ・ココログ関連 | | コメント (8) | トラックバック (0)

2014年3月17日 (月)

Perl でオブジェクト指向 C++風 その4 HashFreezer

このシリーズの最初の記事からもう3年は経過した。先日、 jrf_semaphore.pl (紹介記事へのリンク)を公開し、そこで、デバッグに便利なテクニックを構築したので、今回はその紹介をする。

このシリーズの方法では、メンバ変数へのアクセスは直接、オブジェクト本体であるハッシュ(のリファレンス)をいじって行う。そのため、メンバ名のミススペルがあると、参照時は undefined なので警告があることもあるが、代入時には何の警告も起きない。しかも、こういうときのミススペルに限ってとても見つけにくい。代入したはずのものが、undefined で参照されて警告があっても、そこから、どの代入にミスがあったか、その推理が簡単にできるとは限らない。

これを避けるには、メンバ変数へのアクセスに、setter や getter の関数をいちいち定義していくという方法もありえるのだが、setter が関数になるのはカッコ悪く、かといって lvalue を取るようにするのは、Perl 5.18.1 の perlsub ですら未だに「実験的」という記述が抜けてなくて怖い。caller でメンバ変数名を判断する実装だと、関数渡しにミスが出る可能性も出てくる。

そこで、思い付いたのが Perl の tie の仕組みを使う今回の方法。ハッシュの代入や参照をいちいちチェックするから速度面で不利になる(はずではある)のだが、$DEBUG 変数で、new のときに使わないよう設定できるようにすることで軽くした(つもり)。

続きを読む "Perl でオブジェクト指向 C++風 その4 HashFreezer"

2014-03-17 18:20:35 (JST) in Perl | | コメント (0) | トラックバック (0)