魔術師をめざして

魔術師を目指して、相場・数学・プログラム言語を研究しています。

無変換キーを使おう!(3)

久しぶりの AutoHotKey

実はこのブログの過去の AutoHotKey の記事についてコメントと要望をいただいた。今までの記事では画像を貼り付けてそれを基に説明をしていたという次第。しかし、コピペができないという指摘があったので、今回は今までと同様ではあるが、画像とは別にその内容と同じテキストファイルを提供することにした。画像は 3つに分かれているが、テキストファイルは 1つになっている。
http://files.yagoo.org/autohotkey/AutoHotkey_test.ahk

f:id:fxrobot:20140218170100j:plain

1-2 行は、Mh+Enter でぼくの愛用エディタである Mery を起動している。なお、Mh はこのブログでは一貫して「無変換キー」を意味する。

4-13 行は、AutoHotKey.ahk メンテナンス用のコマンドで、Mh+@ で呼び出して自由に編集保存した後、Mh+Alt+@ によってリロードしている。リロードによって変更保存したプログラムが有効になる。

15-24 行は、Mh+b で Bigloo(Scheme コンパイラ)を呼び出している。ここでは、
Run C:\bloo36a\bin\bigloo.exe, C:\bloo36a\bin としているが、C:\bloo36a\bin によって動作時の作業ディレクトリを指定している。

f:id:fxrobot:20140218170113j:plain

24 行までは、Mh+b と Mh+Alt+b など 2種類のキー組み合わせで起動していたが、26-41 行では Alt に加え更に Ctrl と Shift キーを組み合わせて使用している。

27-31 行で、Mh+p が押されていてかつ Alt も Ctrl も Shift も押されていない場合に SWI-Prolog を起動するとしている。

33-41 行は、Mh キーに加えて Alt か Ctrl か Shift のどれかが同時に押された場合である。それを Alt、Ctrl、Shift の順に調べている。1-41 行までをテンプレートにすれば、かなり多くの処理を Mh キーに割り当てることができるはずだ。

43-44 行では、F4(ファンクションキー4)を押す代わりに Mh+q で済まそうとするプログラムだ。F4 を押すのとそれほど変わらないかも知れないが、ぼくには便利な割り当てなのだ。

f:id:fxrobot:20140218170129j:plain

46-58 行の処理は、SWI-Prolog と YAP(Prolog)がアクティブな場合のみに有効ないわばコマンドを指定している。例えば、SWI-Prolog 操作中に listing. と打ち込む代わりに Ctrl+l で済ませることができる。しかし、Ctrl+l が有効なのは、SWI-Prolog(と YAP)でのみ有効であり、例えば Excel の操作においては無効であり影響を受けない。

60-71 行は、ぼくが愛用している Firefox のための指定で、Mh+f で Firefox が起動するのは今までどおりだ。

66-71 行で何をしているかといえば、Firefox が起動している状態で、Mh+Alt+f によって、プライベートモードの Firefox を立ち上げたうえで、通常モードで立ち上がっている Firefox を終了させている。まぁ、ぼくはこういうことをよくしているので無変換キーに割り当てたということ。

プライベートモードの Firefox は元々 Ctrl+Shift+p で立ち上げられるようにはなっているが、ぼくの場合はそれを使えないという事情もあったのでこのような方法をとったのである。

今回は、コピペをしたいという要望があったので、プログラムコードの説明は簡単に済ませてしまったが、冒頭に提供したテキストファイルをテンプレート(基)にすれば使えると思う。

お役に立てば幸いです。

【追伸】なお、今回、過去の記事を参照しやすいように記事の「カテゴリー」分けをおこなった。そして AutoHotKey の記事は「プログラム言語」のカテゴリーに格納していたが、更に参照しやすいように「AutoHotKey」のカテゴリーを作った。この後も人気のある言語記事は別カテゴリーにする予定です。

 

 

NISSAN GT-R

ぼくは車にあまり興味がないので知らなかったが、NISSAN GT-R という車が凄いんだね。えっ、今ごろ何いってるだって? まっ、いいじゃないか、とにかくフェラーリ 458 を押さえて1位なのだ! ポルシェ 911 よりもずっと速いのだ! ぼくは自分のためにここにブックマークしておこうと思った次第だ。

GT-Rフェラーリコルベットなどを抑えて1位 】

まぁ、もうみんな知ってることだろうけど、GT-R を初めて知った人(いないか)で、興味がわいた人は「GT-R」などで YouTube を検索すればいっぱい出てくるよ。

というわけで、金持ち諸君は、ポルシェやフェラーリなどではなく、これからは NISSAN GT-R に乗ってくだされ。 2014年版の GT-R の動画も楽しんだが、乗り心地が向上したらしいぞ。GT-R を日本の誇りと思うべし..かな。:P

門外漢のぼくは他に GT-R について書くこともないので、韓国ヒュンダイ社ナンバーワン?の車と GT-R の加速対決の動画を紹介しよう。

ヒュンダイ ジェネシス クーペ VS 日産 GTR 加速対決!! 】

他に BMW との加速対決動画などもあったが、ここではヒュンダイを選んだ。

これ、なんか種類が違う車なのか? いや、GT-R が凄すぎなだけなんだね。どこの国の女性なのか、あまりの差に思わず笑っちゃってるね。

 

Bollinger Bands Divergence Indicator のその後

【 Bollinger Bands Divergence Indicator 】f:id:fxrobot:20140214102808j:plain

【愚痴】ぼくの MT4 には複雑で多くのインジケーターやら EAやら何やらが設定されていた。それが理由で、立ち上げても動き出すまでに異様な時間がかかっていた。しかし、インジケーターの一つずつを評価して設定を簡素化する予定だったので気にはしていなかった。

そしてそのまま、MT4 に触れることがなくなっていた。そして久しぶりに立ち上げてみたらビルト600へのマイグレーション自動的に始めてしまった。しまったと思ったが後の祭り。壊れてしまった。問題が起きたのは超複雑設定をしていたアルパリ。もう一つの普通設定の FXCM のほうは当然のことだがマイグレーションに問題なし。

ただね、また一から設定すればよいこと。かなりダルイけどね。

【本題】Bollinger Bands Divergence Indicator(以下、BBD)について書いた記事への問い合わせがあった。90ドルで売っていたのだけど、そのウェブサイトが見つからない。Google.com で 20分ほど掛けてあれこれ探してみたが見つからない。この問い合わせが切っ掛けでぼくももう一度、このインジケーターのサイトを見たい欲求が起きたのだが見つからない。しばらく遠ざかっていたので検索にしても勘が鈍っているのかもね。また機会を見て探したいと思う。

一度、FX に関する感覚ができあがってきたのに、そこに間を置くのは、多くの努力を無にすることになるのですべきことではない。それはわかっていたこと。しかし得る点もあるのだ。間を置くことで一皮むける。自分勝手な解釈による盛り上がりを冷静に見つめ直すことができる。チャートを見ていてそれを感じることができた。

今年は可能な限りシンプルな戦略で取り組もうと考えている。知識が増えて、できることが膨大になってしまった。これが典型的に悪い例だと言うことは知っている。しかし、ぼくは学究肌なのである程度は仕方がないことなのだ。で、取り組むのは裁量トレードだね。ロボットにはまだ取り組まないつもりだ。

実はここまで「愚痴」というタイトルでそれほど意味のないことを書き綴ったところで、腰を入れて BBD の検索をしたところ見つかったのだ。

【結論】 http://iticsoftware.com/MT4-indicator-bollingerbands-div  ←ここだ。129ドルになっている。値上がりしたんだね多分。前の記事から半年ほど経っているので 39ドルの値上げも仕方なしか。なお、この BBD は複数箇所で目に付いた。けっこうこれ有名な、有料BBDインジケーターなのだろう。例えば、http://scriptsdating.com/metatrader-indicator-bollingerbands-div  ←ここにも出現。また、Forex フォーラムなどでも話題に上がっていた。

ひょっとしたら、129ドルのこれは見つかっていたけど、90ドルで売っているところがあるのなら教えてほしいということだったかも知れない。その場合はお役に立てず申し訳ない。

この BBD、画像の例を見る限りかなり有用に思えるが、もっと多くの局面を見ると使えないんじゃないかと思えてくるはずだ。きっとね。でも、それは当然のことで、一つのインジケーターだけで、必ず成功すると思えるほどのエントリーばかりが得られることはまずないよね。

しかし、そんなひねくれたぼくから見てもこの BBD は評価してみたいインジケーターに思えるよ。
皆さんはどう思われるだろう。

 

 

一粒ダイアモンドに騙されるな

一粒ダイアモンドネックレスのテレビショッピングを久々に観た。

法律的には問題ないんだろうかねぇ。ギリギリであろうと法律にさえ抵触しなければOKってことなんだね。ホリエモンを思い出す。しかし売る側は確信犯に違いない。ダイアモンドの価値は 4C(4種類の評価)で決まるが、そのうちの一つの C つまりカラット数にしか絶対触れないのだ。どこかで気づかれないように引きでチラッとクズダイヤであることをお知らせしましたよって言い訳行為をおこなうかと思っていたがそれさえも一切なかった。

どこまで行っても大きさしか触れない、そしてこのダイアモンドが凄いのはそのブリリアンカットによると言うのだ。この大きさでブリリアンカット、これだけ(どれだけ?)の品質でこのお値段!と大袈裟な演出。人生で一粒ダイヤモンド・ジュエリーを購入することは何度もあることじゃない。是非騙されないでいただきたい。カラット以外の残りの 3つの品質についてもよく理解して購入されるならばもちろん何も問題はない。それを意図的に知らせないのは詐欺まがいな行為ではないだろうか。

ダイアモンドの品質(4C)については、別の記事「パライバトルマリン」で詳しく書いたので(http://fxrobot.hatenablog.com/entry/2014/02/08/074643)参考にしていただきたい。

番組を観ていると「安いお値段の秘密」などというテロップが出たので、ちゃんと、値段の理由を品質が悪いからと言うのだろうかと注目していたが、結果はただの誤魔化しだった(省略する)。テレビを観ていてね、肉眼でもハッキリ分かるほどの汚く、見苦しいクズダイアモンドを「この品質でこのお値段」という厚顔にはあきれるばかりだ。

「品質は悪いけど、このくらいの大きさがあれば素敵ですよね!品質が悪いという訳あり商品だからこそこのお値段!」と言う具合に正直な商売なら応援するんだけどなぁ。なぜそれができないんだろう。売ってしまいさえすればあとは関係ない。知らないやつがバカなのだと言うことか。

皆さんもテレビで「クズダイアモンドショー」を見かけたらカラット以外についていかに触れないか誤魔化すかに注目して観てみると、その茶番がけっこうおもしろいかも知れない。

お楽しみあれ!
しかし決して騙されないように願いたい!

 

猿岩石ユーラシア大陸横断ヒッチハイク

ぼくは有吉弘行に興味がある。好きかと訊かれればちょっと違うが興味深い男であるとはいえる。このところ YouTube で有吉関連の動画を数多く観たが、おもしろいね、それに共感できる部分がけっこうある。そのうちまだ観ていない有吉動画も底をつきかけてきた。

f:id:fxrobot:20140208161602j:plain

そこで、昔リアルタイムで観た猿岩石時代のヒッチハイクが観たくなり全編を観た。うーん、やっぱりこの経験というのは精神的鋼となるであろう。若い頃のこんな経験は買ってでもする価値があるね。

ただ、とはいってもテレビに守られていたわけで、もし、二人の完全独力だったら生きて帰れなかっただろう。二人は多くのバイトをこなしたが、同行ディレクターがある程度通訳をした(話をつけた)のだと思うよ。まぁ、そんな意地悪なことをいうつもりはなかった。

有吉弘行の現在の生活は、このときの経験がそうさせているんじゃないかね。おそらくは毎月が年収のような月収を得ていることだろう。それにおごることなく松屋の定食が当たり前。

ぼくなんか今貧乏だけど、ぼくの景気がよくなったとしても今の生活に変わりはないと思うよ。確かに一時期、ぼくには数億の資産を持っていた頃もあり、どんな贅沢もできた時代があった。これを口にすると、かつての栄光にすがりついているという人がいる。なにも分かっちゃいないゲスなやつだね。

ぼくがそんな見栄張りなら、現在を貧乏などと公言しないだろう。ぼくは金があるかないかなどまったく気にしない。むしろ貧乏は、金持ちと同等以上に楽しいよ。両方の経験者であるぼくがいうのだから間違いない。:P   ただね、自分はいいけど周りがね。その点は情けない。

ぼくには今だって金持ちへのチャンスはあると認識しているが、それを追いかけたいとは思わない。金を得るという点においてはそれは致命的な欠陥であろう。よく分かっているのだ。

ぼくはそもそもギャンブルが嫌いだからね。ギャンブル好きを非難するつもりはないよ。ただ、ぼくは楽しくないというだけだ。パチンコもしない。付き合いで何度かしたことはあるけど、玉が出てきても楽しくない。いつまでこれやってなきゃなんないの?っていう気分なのだ。これ、自慢しているわけじゃないよ。ぼくの自分自身情けないと感じる部分だ。

話は戻って、有吉弘行。こんなぼくのような共通した屈折部分を感じる。ただ、それは半端なもんじゃない。有吉弘行とぼくを比べると、ぼくは彼ほどお金にシビアじゃない。お金で楽も苦労もしたぼくだけど、またお金を得たなら自分の食生活などは変わらないだろうけど、やっぱり前のように他人に対して気前がよくなっちゃうだろうね。

テレビ番組の「怒り新党」で、マツコデラックス有吉弘行がプレゼントを買おうっていう企画があって、有吉が日頃お世話になっている先輩芸人 上島竜平のために帽子を買うんだけど、数万円の帽子を見て「高っけぇー!」。結局、1万台の帽子を購入。まぁ、お金を使わない人なのだろうと納得したが、その後、ついでに自分のためのスーツを購入。その値段が数十万円。

そんなの買わなきゃ納得だったんだけどなぁ。有吉のそのゲスさにちょっとがっかりしたぼくだった。:P  だけど、これからもファンとして楽しませてもらうよ!

ありがと。

 

パライバトルマリン

パライバトルマリン(Paraiba Tourmaline)はぼくのもう一つの好きなジェムなんだ。

f:id:fxrobot:20140207220823j:plain

このリングは女性用だけどサイズが大きいのでぼくのものとして持ち続けている。部屋にいるときにたまにつけている。そのときは志茂田景樹になった気分だ。:P

ぼくは好きで持っていたジェムやジュエリーのかなりをプレゼントしてしまったが、このリングはぼく愛用のものとして人にあげることはなかった。1.35 カラットのパライバトルマリン・リングだ。

 実 物を肉眼で見るとネオンカラーが美しく。気持ちが癒やされる。パライバはこのリングの他に 0.82 カラットのルース(石だけ)を持っている。将来、自分用か誰かさん用のジュエリーになるのだろう。今は貧乏なので直ぐにどうこうする予定はまったくない が、状況が好転した際のぼくの楽しみの一つなのだ。

ところで、女性ならば誰しもダイアモンドジュエリーを一つはほしいと思うよう で、ついつい騙されておかしなものを買ってしまうということが多いのだ。ぼくの知り合いの女性も一つはほしかったと 1 カラットのダイアモンドネックレスを購入したのだが、その購入にあたり持っていた予備知識はカラット数だけだったのだ。

テレビショッピング などでも「このカラット数でこのお値段!」と肝腎なダイヤモンドの品質については極力触れないようにしていることも多い。想像するに品質を伝えたくないの は確実でその精神は詐欺といっていいだろうが、法律的には抜け目なくチラッと鑑別書の表記を見せたり、サラッと一度だけ口にする。こういうケースは確信犯 だね。

このついでに知らない人のために書いておくが、ダイアモンドというのは「4C」といって 4つの C で評価されるのだ。それらは、カラット(Carat)、クラリティ(Clarity)、カラー(Color)、カット(Cut)の 4つだ。カラットはその一つに過ぎない。

カラット数だけあるクズ・ダイアを買わせようという状況というのはけっこう多いものだ。テレビでもよく見るよ。テレビだからといって信用しちゃダメ。

パライバの話を書くつもりだったけど、話題がダイアモンドになってしまった。でもついでだから、これを見てもらおう。

f:id:fxrobot:20060714113803j:plain

上は、クラリティで FI(Flawless)、IF(Internally Flowless)、VVS1、VVS2、VS1、VS2、SI1、SI2、I1、I2、I3、という順位となっている。

Flawless や Internally Flowless などというグレードの例えばダイアリングでは、街の宝石店ではまず置いてないのではないか(最近のことはちょっと分からないけど)。婚約リングなどとして勧められるのは VS1 - VS2 辺りだろう。

テレビショッピングなどで販売されるのは、SI2 - I2 辺りのグレードが多いように思う。ダイアモンドジュエリーとしては悲しいグレードだね。

f:id:fxrobot:20140208072048j:plain

上はカットのグレードだが、エクセレント(Excellent)の上に EX(H&C)更にその上に 3EX(H&C)がある。H&C はハートアンドキュービッド(Heart & Cupid)の略で専用ルーペで見るとその姿が現れる。

f:id:fxrobot:20140208072526j:plain

上は、カラーのグレードで、素人が見た目でカラーを判断できるということはないだろう。カラットは誰にでも直ぐに分かるので、それ以外の 3C を理解することが大切だね。

ぼくの持っていたのは、VVS1、3EX、D Color の 3.5 カラットほどのダイアモンドルースを 2つだった。そのどちらも、そのルースからプラチナリングを作ってプレゼントにしたのだった。ぼくにとってもよい思い出になっている。ぼくがその品質をプレゼント相手に恩着せがましく語ったということはいうまでもないね。:P

というわけで、たまたまこのブログ記事をご覧になった女性は決して騙されないでいただきたい。カラット数だけで売りつけようとする悪人に騙されてはいけません。

さて、話をパライバに戻すが、パライバと名の付くトルマリンは特別であり、その希少性は高くなるばかりだ。もし今、金持ちの彼がいる女性は、アメシストやアクアマリンのリングなどにごまかされることなく「わたしパライバトルマリンが好きなの」とでもいってみよう(これじゃただ嫌な女だけどね)。

もし、そのパライバが 1カラットオーバーならば一生の財産になると思うよ。

 

巨大アクアマリン

個人で持っているアクアマリン(Aquamarine)としては巨大なものだと思う。

f:id:fxrobot:20140206101330j:plain

141.414 カラットだ。この数字の不思議にも驚く。
なお、写真では色むらがあるように見えるかもしれないが色むらや傷などは一切ない。

初めから話が脱線するが、そういえばぼくには数字の不思議がついて回る。最初に入った会社では寮に入ったのだが、靴箱が 123番で、部屋が 234番だった。次に入った外資系の会社では社員番号が 100番だった。アパートには 3回お世話になったが、202号室、404号室、303号室だった。選んだわけじゃない。あとで気づいてちょっと驚いたという次第。

まぁ、そんなことはともかく、これはとある高級オークション業者より落札した品だ。品物が届いて直ぐその日に近所の鑑定士をネットで探して鑑定してもらうために訪ねたのだ。鑑定士は個人でやっており、あれこれ眺めてから、分析する機械がないから断定はできないが偽物だと思うというのだ。

どうしてですかと尋ねると「あんたこれが本物ならいくらすると思うんだ」ときたもんだ。結局分からないということで、鑑定代金も取られなかったという記憶だ。ぼくは翌日、電車に揺られ「中央宝石研究所」を訪ねた。鑑定に何日かかかったと思うが、結局、このアクアマリンは本物であった。立派な鑑別書を作ってもらったのだ。そのときに鑑別書を見て初めて 141.414 という1 と 4 ばかりのカラット数が分かったのだ。

ネットで調べたら 355 カラットのアクアマリンがあるという。(http://blog.livedoor.jp/abu2blog/archives/50921775.html)「世界のジェムショーで、お目見えしている非売品です。」とのことだ。ぼくのアクアマリンの 2.5倍ほどだ。凄いね。

次にヤフオクで検索してみたが、一番大きなものが 88.34 カラットだった。値段は 330万円成り。

ぼくが最初に勤めた会社は大企業だったが給料は安かった。それで当時の恋人になんとか贈れたのがアクアマリンのリングだったのだった。アクアマリンはものにもよるがルビーなどと比べると安価なので安月給のぼくにもなんとか買えたのだが、値段とは無関係にぼくはアクアマリンが好きだったのだ。

ぼくはぼくがアクアマリンを好きな証としてこれを持とうと思ったようだ。それにこれを手に入れた頃はお金をかなり持っていた。しかし、今ではかなりの貧乏状態にある。その上、年金をもらえるとしてもぼくの年金は雀の涙ほどであろう。何の話になった?..そう、そのためにもぼくは「年金ロボット」を開発しないといけなかったのだ。

このブログのタイトルを見よ!
ぼくも忘れていたぞ。:P

 

Prolog 電卓

プログラミング言語を電卓替わりに使うというのはよくあることで、ぼくは時代ごとに様々なプログラミング言語を電卓として使ってきた。とくに多倍数整数が可能な言語はいいね。パワーを感じることができる。

古くは Python を使っていた。呼び出してから立ち上がるまでが遅いと使う気にならないが、ぼくが使う言語は大抵立ち上がりが速い。Haskell の時代もあったが一番長かったのは Erlang だ。昨年末は Scheme を使っていたが、今年は Prolog を使っている。
SWI-Prologhttp://www.swi-prolog.org/)だ。

f:id:fxrobot:20140206052813j:plain

Mh+p(無変換キー+ p)で立ち上がるようにしていることもあり、立ち上がりは瞬時だ。Rocket(Scheme 処理系)もたまに使うが、その名前に反し立ち上がりが超遅い。

まぁ、ぼくの場合は、こんな具合にその時代の興味に応じて電卓として使うプログラミング言語も変わってきたが、Prolog が終着点になるかも知れないとこの頃では思っている。あてにはならないけどね。

f:id:fxrobot:20140206060246j:plain

Prolog の場合は上のようなよくある日常的な計算が比較的簡単にできる点がありがたい。上では計算の入力を3行に分けているが、すべて1行でもまったく問題はない。また、大量の計算をおこなう場合、途中経過を X や Y じゃなく _肉、_魚、_酒、_その他、などと変数に日本語を使うこともできる。

大事な計算で経過と結果を残しておきたいならプログラムとして書いておけばよい。

f:id:fxrobot:20140206061727j:plain

上の例では簡単すぎるだろうがこんな要領だ。もちろん、数十行の計算をエディタで書いて Prolog シェルに読み込んでもよい。また、計算の元となる値段表や、係数表などを Prolog データベースとしてあらかじめ持っておいて計算に利用することも有用な方法だろう。

Prolog は使い方によっては、Excel などと同程度以上に日常業務に役立つツールとして使えると思う。これを書いていて気づいたが(今かよっ)、サラリーマン時代に必要だった交通費精算やらスケジュール管理やらなんやら Prolog を使えばかなりおもしろいソリューションが得られるんじゃないだろうか。

Prolog は電卓としてのひやかし的利用からの連続した延長線上にもっと素晴らしい応用世界があるように思えるのだ。かなりおもしろいテーマだと思うが、まぁ、その辺りのことには今後少しずつ取り組んで解明していきたいと思う。

 

なぜ Prolog は死んだのか

1992年の第五世代コンピュータプロジェクトの終結により Prolog への注目も終焉した。わが国はコンピューター産業にとって最も重要といえる基本ソフトウェアの開発に遅れ、苦しい立場に追いやられていた。そこで一発逆転の策として、IBM に支配されていた第四世代を飛び越えた次の世界へ逃れようとしたのだ。そして人々は第五世代では人工知能が実現され主役となるに違いないと考えた。

その第五世代コンピュータプロジェクトの基盤言語として Prolog の採用を掲げたため Prolog は大きな注目を浴び、プログラミング言語のスター街道まっしぐらとなった。 そして入門書が数多く出版され、誰もが Prolog の学習に向かった。このプロジェクトは国策として数百億円が投入されたが、10年ほどで頓挫することとなった。

Prolog といえば「人工知能」のための言語というレッテルが貼られたままこの言語は休眠してしまったのだ。2014年の現在になっても Prolog といえば人工知能開発用の言語であり、人工知能を開発するなら Prolog が役に立つかも知れないが Lisp があるじゃないか、Lisp のほうが実用的なのであるという認識なのではないか。

どちらにせよ、人工知能を開発でもしない限り Prolog をもちだす必要などないだろうというのが一般的認識なのではないだろうか。すると、そもそも人工知能を作らなければならないニーズなど実務世界にはそんなにあるもんじゃない。もちろん、ごく一部には Prolog を本格的に利用している人たちはいるだろう。しかし、大衆にとっての Prolog は死んだといってもよいほど注目の外にあるのではないだろうか。

 Lisp だって人工知能開発専用言語だと定義してしまったら、そんなに人気者などにならなかっただろう。実際は Lisp は汎用言語であり、ポールグレアムなどによる仕事によって EC 向けウェブアプリケーション開発言語としてのアドバンテージに注目が集まったのは記憶に新しい。そこでは Lisp という言語の選択ということだけで競争力が得られることが証明されたのだった。

 では Prolog はどうなのであろう。人工知能に拘らない実務的応用分野に Prolog を使用することのアドバンテージは何かあるだろうか。ポールグレアムLisp 採用以前には Lisp を業務アプリケーション開発向けに使うことの優位性について気づいていた人たちはいなかったのと同じように、ひょっとしたら Prolog を使うことが成功に繋がると気づいている人たちがいないだけなのではないだろうか。その可能性はあるだろう。

Prolog の処理系開発者の意識にも問題があるかもしれない。処理系開発者が Prolog人工知能研究ための言語であり、そのための処理系を提供するのだという使命感一色であるとしたら商用的な業務アプリケーション向けに適した機能が実装されにくいという環境にあるのかもしれない。

Prolog が生き返るためには Prolog 版のポールグレアムが求められるのかも知れない。きっとそうだろう。ぼくは Prolog には業務アプリケーションへの可能性が隠れているのではないかと思っている。もちろん、ただ Prolog でも可能だというのでは意味がない。Lisp のときと同じように明確なアドバンテージがなければ、わざわざ Prolog を業務アプリのために使おうとする人は現れることはないだろう。

ぼくは、小さなアプリケーションだけど、文字列処理(記号処理)に使う予定だ。また、FX 向けのロボット開発にも使えないかと検討している。Alice(Artificial Lovely Intelligence)が Prolog でできるのなら最高に楽しいことだが今のところぼくにはその自信がない。

 

Prolog 学習倶楽部(3)

かつて RUN/PROLOGProlog-KABA という Prolog 処理系があった。とくに Prolog-KABA はアセンブラで書かれた高速な国産 Prolog ということで当時注目を集めたようだ。

ぼくはといえば RUN/PROLOG と TURBO PROLOG を持っていたが Prolog 自体への理解はあまりなかったような記憶だ。当時は仕事がいそがしく本格的に勉強するような時間が取れなかったという言い訳で完結している。:P

f:id:fxrobot:20140130004431j:plain

当時は上にあるような RUN/PROLOG 向けの入門書があることすら知らなかった。どれも古書として最近手に入れたものだ。

 「Prolog 学習倶楽部(2)」でも書いたが「RUN/Prolog を用いた Prolog プログラミング入門(鑰山徹 著)」(上の画像左端)は、なかなかの良書だと思う。ぼくの一番気にいった Prolog 入門書だ。

右端の「RUN/Arity Prolog プログラミング入門(大原茂之 著)」は、図表をあまり使わず一行一行丁寧に説明しているスタイルだ。中央の2冊は比較的楽に読める本。

上の4冊はすべて RUN/PROLOG 処理系の名前を使っているが、Prolog そのものの入門にも問題はない。

f:id:fxrobot:20140129231658j:plain

今度の2冊は、どちらも Prolog-KABA を前提とした本だが、こちらも入門書として読んでも問題はないだろう。「はじめての Prolog(舟木奨 著)」は安価には手に入りにくいかも知れない。薄く広く書かれているので読むのは楽だろう。

Prolog-KABA 入門」のほうは出版数が多かったのだろうか今でも手に入れやすい。内容はしっかりしている。この本をしっかり読み込めば入門は完了だ。AZ-PrologProlog-KABA の後継として開発されていると聞いたが、Prolog-KABA の組みこむ述語のいくつかが AZ-Prolog で使えたのでなるほど本当なんだと感じた。

具体的には s_new. や copy0. などが使えた。これらは一部に過ぎないだろう。どこまで継承しているのか、ぼくはまだ正確には把握できていない。しかし「Prolog-KABA 入門」を読んで、AZ-Prolog に取り組むのは良いアイデアのように思える。

ぼくの場合は LGPL/GPL で提供される SWI-Prolog がターゲット処理系なので AZ-Prolog に落ち着いてしまうことは考えられないのだが、AZ-Prolog は少なくともよい学習ツールであるとは思っている。

 

Glock 17

ぼくは Glock 17 の実銃を撃ったことがある。

f:id:fxrobot:20140129180712j:plain

グアム旅行でのことだ。実銃を撃てるレンジがあったので、そのレンジにある多分ほぼ全ての銃を撃つことができた。(いくらだったか忘れたがセット料金だった)

ハンドガンだけではなくライフル(M16 のような外観だった)とショットガンも撃った。ライフルの反動はソフトなものだった。これなら連射であっても正確に狙って撃てるだろうと思った。ショットガンは反動が強く不快だった。反動が強いので腰撓めで撃ったが腰に当たった箇所が痛くなるほどだった。ショットガンだけは、もう二度と撃ちたくないと思った。:P

記憶に自信はないが、撃ったハンドガンは Glock 17、Colt Government、Beretta M92F、S&W M19 などだったと思う。Glock はそのモデルまで確認しなかったが 9mm 弾だったと思う。つまり Glock 17 だ。ただし、総弾数は米国の新しい法律により 10 ほどであったはずだ。(本来は 17)

Glock が一番気分良く撃てたという記憶がある。全弾を連射であっという間にうち尽くした。ぼくの連射に対しレンジの受付の男性(米国人)の驚いた顔が今でも思い出される。

S&W は .357マグナム弾だったと思うが、こちらは一発ずつゆっくり撃った。一発ごとにドコーンという感じで、小さな大砲を手に持って撃っているようだ。ゆっくりした反動を楽しんだ。しかし不快な感じはまったくなかった。

ハンドガンは右手を伸ばし脇を締めて曲げた左手で補助して撃つのだ。そのとき右顎を右肩に付けサイトに目を合わせマトを狙う。

テレビドラマなどで見る日本人役者による銃弾戦は銃を撃ったことなど一度もないのではないかと思うようなものが多い。特に女優のそれは見るに堪えない。銃器への知識もほとんどないのであろう。

グアムは手頃だ。もしグアム旅行をすることがあったら一度でいいから銃を撃ってみる経験をされてはいかがだろう。

【追伸】Glock はおもしろい銃だ。オーストラリア製で普通のハンドガンにあるようなセーフティ(安全装置)が付いていない(実はとても小さなセーフティは付いている)。Glock のセーフティは、なんと引き金に付いているのだ!

これは驚くほど合理的な思想ではないか。 つまり、しっかり撃つ意思がないかぎり間違っては玉が出にくいということだ。そして、Glock のボディは金属ではなくポリマーでできている。そのぶん銃が軽い。ただしスライド(上部に乗っている直線的な部分)は金属製だ。

 

Prolog 学習倶楽部(2)

まぁ、ちょっと普通じゃないけど、頭がね。
画像のような Prolog の入門書などを短期間に集めたぼくだ。

f:id:fxrobot:20140127020356j:plain

で、まぁ、Prolog への入門は、ほぼできたのではないかというぼくなんだけど、入門書そのものへの関心と、よい入門書を紹介するとの約束を果たすために集めたという次第だ。(本の画像のファイル名は実に適当に付けたものなので気にしないでほしい)

Prolog の人気薄のおかげか、これらの本のなかには 1円(+ 送料 250円)というものもあった。また、申し訳ないが、ぼくが買ったためにアマゾンの古書在庫がなくなってしまった本もある。ぼくは基本的には高価な本には手を出さなかった。ただ唯一の例外が「Prolog の技芸」だ。

機会があれば、これらの本の内容とそれに対するぼくの評価を紹介したらどうだろうと思うのだが、もう少しちゃんと読み込んでからがいいだろうね。

【 RUN/Prolog を用いた Prolog プログラミング入門(鑰山徹 著)】
f:id:fxrobot:20140127020533j:plain

それで、初心者向けの Prolog 入門書として優れた本があったのだ。もっと早く紹介しそうになったが、やはりちゃんとすべて読んでからと思い、読み終わった今日、紹介となったのだ。
------------------------------
目次

1. Prolog とは
  1.1 Prolog とその周辺
  1.2 Prolog の実行例

2. プログラミング入門(Ⅰ)
  2.1 簡単なデータ検索(1)
  2.2 簡単なデータ検索(2)
  2.3 繰り返し処理
  2.4 リスト処理(1)
  2.5 リスト処理(2)
  2.6 文法の補足
  2.7 入出力処理

3. システムの動作と制御
  3.1 単一化(ユニフィケーション)
  3.2 プログラムの実行
  3.3 バックトラック
  3.4 カットオペレータ
  3.5 その他の制御用組込み述語
                                                                    【 はじめての人工知能言語 RUN/PROLOGf:id:fxrobot:20140127032847j:plain

4. プログラミング入門(Ⅱ)

  4.1 リスト処理(3)
  4.2 ハノイの塔
  4.3 暗号解読
  4.4 ネットワーク検索
  4.5 構文解析

5. プログラムのデバック
  5.1 トレースの開始と解除
  5.2 節の挿入と削除
  5.3 プログラムの入力

付録
  A. 文法
  B. 組み込み述語一覧表
  C. 算術演算子と算術関数
------------------------------

(以上の目次は全て「RUN/Prolog を用いた Prolog プログラミング入門(鑰山徹 著)」のもの)

..という内容で、ページの紙が厚くページ数が 145ページほどと少なめで、説明が簡潔で、図が分かりやすい。したがって短期間に読み切ることが可能だ。

入門書によくある図は、著者の独りよがり(の分かりにくさ)が苦痛だが、この本の図面は理解しやすく納得できる品質だと思う。まずはこの本を読んでから、必要なら更に高度な本に進むのがよいだろう。

この本は比較的今でも手に入れやすい良書だと思う。アマゾンで古書として購入が可能だ。現在 5冊あって、うち 3冊がリーズナブルな値段だ。2冊がちょっと高い。新品(1,785円)の注文も可能だが、多分待たせるだけ待たせてなかったということだと思う。

ちなみにぼくは、基本的に状態「良」の古書を選ぶが、この本に限っては、状態「可」の古書を 165円(+ 送料 250円)で購入した。それでも、古書業者が「もったいない本舗」だったために「可」とは思えない状態だった。

さて、 この本のレベルが理解できたら、唯一とも思える無償で使える国産 Prolog である AZ-Prolog のマニュアルを読み、実際に動かしてみれば Prolog への入門は誰でもできると思う。ここまでは決して難しいレベルではない。C++ どころか C を学ぶより優しいことではないだろうか。論理プログラミングとか Prolog らしいプログラミングなどということは、その後で考えればよいことだと思う。

その他、手に入れやすくて分かりやすい Prolog 入門書としては「はじめての人工知能言語 RUN/PROLOG斎藤孝 著)」(画像上)や「PROLOG入門(後藤滋樹 著)」などがよいと思う。

「はじめての Prolog(舟木奨 著)」は内容の厳密性がどうかとは思うが、薄く広く楽に読める本としてはよいかもしれない。ただし、適価にて手に入れにくいと思う。

健闘を祈る!

 

Prolog 学習倶楽部(1)

Prolog をここ数日学習したことで感じたのは、Prolog とは易しい言語だということだ。Prolog を学ぶことは C++ などを学ぶことより数段易しいだろう。ぼくは今年になって Prolog を本気で学び始める以前においては、Prolog は難しいし、取っつきにくいものであるという先入観を持っていたのだ。f:id:fxrobot:20140124110150j:plain

Prolog は一時期の大流行によって、その入門書が数多く発刊された。しかし、今では完全に廃れた言語のごとくのイメージではないか。

残念なことに Prolog の入門書の多くは入門書として洗練されていない。市場における競争によっていかに易しく伝えるかという競争にさらされるというようなことはなく、それぞれが独立して一気に発刊され、一気にしぼんでいったのだろうという印象だが、どうだろうか。

Prolog を入門書で学んである程度使えるようになることは、本来そんなに難しいことではないはずだが、Prolog に限っては多くの障害があるように感じるのだ。

ところで、Prolog の入門書の前書きのほとんどに「Prolog は現在もっとも注目を集めている言語です」などということばが添えられている。これは、かつての第五世代コンピュータプロジェクトの盛り上がりに合わせて、多くの入門書が学者によってか書かれたからであろう。

経験を積んだ実務者や入門書の販売実績の優れた人気ライターによる入門書ではないのである。普及する前の入門書であり、また、Prolog のその生い立ちからしても学術的な内容になりがちなのも仕方がないことであったろう。

大衆的技術者向けの実践的な本があって、その奥に理論的な完成度の高い本が待っているのならよいのだろうが、あっちもこっちも学者による、それぞれの著者の恣意的なアイデアによる中途半端な理論風味の本で溢れたということではないのか。

高橋麻奈さんあたりが、Prolog 入門を書いたらどんなものになるのか。しかし、現在の Prolog にはそういう企画が成り立つほどの市場はないだろう。まぁ、そういうことなんだろうと思うよ。という具合に散々悪口を書いているぼくだけど、実は Prolog の入門書を楽しんでいるのだ。

ただし、それはぼくに限ってのことだろうと思うよ。Prolog の入門書がそんな状態で、更に状況が悪いのは、日本語のドキュメントが揃った無償あるいは安価な Prolog の処理系が皆無なのだ。かつての国内大衆向けの RUN (Arity) / PROLOGProlog-KABA が存在しない今、どうやってどの処理系を使って Prolog を覚えればよいのか。

 ぼくは、Prolog はインテリやアカデミックな人たちだけのものではなく、大衆的な技術者やぼくのような大衆的言語好きにも十分使えて役に立つものだと思うし、もっと使うべき言語ではないのかと、つまりそれに気づいたのだ。

 f:id:fxrobot:20140124193222j:plain

まじんはまだまだ Prolog 学習中。:P

【追伸】
ありがたいことにこの記事に対し建設的なコメントをいただけたので、追伸させていただくことにした。まずは以前の記事で書いたことを再掲載したい。以下のとおりだ。
----------
AZ-Prolog は個人使用は無料だ。マニュアルも日本語で入門的なことも書いている。そして、日本語も問題なく通るので日本語のアプリケーションを開発することも可能だ。ただし、開発したアプリケーションを配布するとなるとランタイムライセンスが有料なので気をつけなければならない。
-------------------------------------------------------------------------------------------------------------
① 日本語の通る無料の処理系
   1.  AZ-Prolog    http://www.az-prolog.com/
   2.  SWI-Prolog  http://www.swi-prolog.org/

② 初心者向けチュートリアル
   1.  AZ-Prolog マニュアル http://www.az-prolog.com/manual/
   2.  お気楽 Prolog プログラミング入門 http://www.geocities.jp/m_hiroi/prolog/
   3.  Prolog オンラインテキスト http://light21.s26.xrea.com/prologV2/contents.html
   4.  初級 Prolog 講座 http://tutorial.jp/prog/prolog/prolog.pdf
   5.  Prolog ウィキペディア http://ja.wikipedia.org/wiki/Prolog

③ 初心者向けおすすめ書籍(いまでも容易に手に入るもの)
   1.  Prolog プログラミング C.S.Mellish (著), 中村 克彦 (翻訳)
   2.  その他の入門書については今後調査してお知らせしたい
-------------------------------------------------------------------------------------------------------------
Prolog を習得するという目的のための、現時点の結論としては、C.S.Mellish の翻訳本を読み、AZ-Prolog マニュアルを読みながら、実際に AZ-Prolog を使って実戦するという方法が一番よいように思う。
----------

以上のように紹介していた。もう一度書くが、AZ-Prolog は「個人使用ライセンス」は無償だ。もし商用利用しようとすると、その使用に 8万円とその他「ランタイムロイヤリティ」が別途必要になる。

個人的には 8万円は構わないがランタイムロイヤリティが気にくわない。とはいっても仕事として取り組まれているのだから当然のことといえるだろう。ぼくの気分はどうでもいいことだよね。:P

まじめにいうならば、個人使用が無償というのは実にありがたいことで、AZ-Prolog によって日本語が扱える実際の処理系のもと、Prolog を学ぶことができる。AZ-Prolog については、もっと大きな声で推奨すべきだったかもしれないと思う。

また、上で書いた処理系について更新したい。

① 日本語の通る無料の処理系
   1.  AZ-Prolog    http://www.az-prolog.com/
   2.  SWI-Prolog  http://www.swi-prolog.org/
   3.  YAP             http://www.dcc.fc.up.pt/~vsc/Yap/
   4.  P#               http://homepages.inf.ed.ac.uk/stg/research/Psharp/
   5.  JIProlog       http://www.jiprolog.com/

ということだが、P# は Prolog Cafe をもとにした処理系だが Prolog Cafe をリストに載せていないのは大衆に対する配慮を感じないためだ。また、P# はながらく更新されていないという点に注意が必要。JIProlog も他の記事で取りあげたが、日本語という面で問題がないわけではない。

このリストにおいて AZ-Prolog を一番に挙げたのは、日本人が Prolog を学ぶという点において、一番相応しい処理系ではないかとの視点からだ。

ぼくにとっての一番は SWI-Prolog だ。まぁ、約束はできないけど、ぼくは SWI-Prolog を前提とした Prolog 入門をいつか書きたいという考えを持っている。もちろん、そんなの待っちゃいられないから今日から AZ-Prolog に取り組むことをお勧めしたい。

ああ、そう、あともう一つ。

③ 初心者向けおすすめ書籍(いまでも容易に手に入るもの)
   1.  Prolog プログラミング C.S.Mellish (著), 中村 克彦 (翻訳)
   2.  その他の入門書については今後調査してお知らせしたい

の部分だけど、アマゾンに 1,400円で出ていた「Prolog プログラミング C.S.Mellish (著), 中村 克彦 (翻訳)」が売れてしまったようだ。探したが他でも手に入らないようだ。2. で約束したということもあるので、Prolog の入門書として手に入る良書を紹介したいと思うがもう少し待ってほしい。

では、ごきげんよう。

 

MQL4 デコンパイラ

MQL4 デコンパイラを紹介する記事を削除した。

ぐるぐる(google.com)で検索すれば簡単に見つかるので、記事に価値があるとは思わなかったが、興味のある人のためにデコンパイラサイトへのリンクを紹介していたのだが、MetaQuotes Software社が本気で対策をしだしたようで、ぼくとしては大いにけっこうなことだと思い、対応させていただいた。

f:id:fxrobot:20140114230233j:plain

で、デコンパイラサイトがどうなったかといえば、少し隠れたという印象になっているようだが、よく見ればまだわかるようになっている。MetaQuotes Software社は、デコンパイラを違法と位置づけているようだが、サイトを閉鎖に追い込むことはできないのだろうか。

当ブログへの検索で、デコンパイラは人気のようだったが、しかしね、デコンパイラなど求めず、効果的なインジケーターやロボットはやはり正規に購入すべきだと思う。

ぼくがデコンパイラを手に入れられるか手に入れられないかといえば、手に入れられるよ。しかし、現在までデコンパイラを自分で使用したことは一度もないしこれからもないだろう。

さて、話題を変えよう。FX をずいぶん休んだぼくだが、今年はリハビリをしながら徐々に FX に向かうつもりだ。昨年ぼくの頭の中で盛り上がった成功するためのアイデアが今はすっかりしぼんでしまっている。アホだねぇ。

もっともアホを承知の機会損失。これでいいのだ。バカボンなのだ。:P
昨年は FX に関して複雑なアイデアを持っていたぼくだが、今は 2つくらいのシンプルな方法を組み合わせることを考えている。

いずれにせよ、大きめの資金が成功に繋がるだろうという考えは変わらない。ぼくにとっての FX 資金である米国株の上昇を待っているところ。それを待ちながら Prolog に取り組んでいるというのがぼくの現在だ。

その Prolog だが、おもしろいことに、現在「Prolog の技芸」と「はじめての Prolog」を並行して読んでいる。ぼくは既に Prolog への入門は済ますことができたといっていいであろう。いくつもの Prolog 入門本に目を通したが、そのなかでぼくには、後藤滋樹 著の Prolog 入門が読みやすかった。ただし、リスト処理に関しては不十分だったので、その部分については他の本で間に合わせた。

f:id:fxrobot:20140121223149j:plain

数多くある Prolog 入門書のどれがよいかは、ある程度人それぞれであるような気がするのだ。大雑把な見方をすれば、どの本も結局同じような内容ともいえる。ただし、わかった上で読むと、それじゃわからないよというツッコミを入れたくなる場面も少なくはない。

入門書を読んでわからないという人は、その入門書に問題があるかもしれないと疑うのは間違いとは一概にいい切れないはずだと思う。複数の入門書に目を通したほうがよいと思うよ。

20 冊以上の入門書を手元に集めたので、いずれ、それらを比べて紹介できればと思っている。そんなに集めてバカげているようでも、それぞれに特徴があっておもしろい。

もし、プログラミングについても超初心者で Prolog をこれから覚えようというのなら「はじめての Prolog」は、最初の一冊としてよい本になるかも知れない。

 

Prolog の拡張子

ぼくはとうとう Prolog拡張子を .pl にした。
これは一つの事件なのだ。:P

途中、.pro にしていたこともある。その後、昨日までの間は .swi として落ち着いていたのだが、今日の朝、.pl にしたのだ。

f:id:fxrobot:20140119061105j:plain

ぼくの PC には、ながらく Perl 5.8.8 をインストールしていたが、今日の朝、アンインストールしたのだ。もちろん、Perl はぼくにとって大切であり再インストールすることは間違いない。そのときの Perl のバージョンは 5.8.10 で拡張子は .prl にするつもりだ。

Prolog拡張子を .prl にする人もいるようだが、.prl はぼくには Prolog のイメージがない。SWI-Prolog拡張子としてもっとも常識的な選択は、おそらく .swi だと思う。sw というと、Flash のイメージがあるものの、これからの将来を考えても心配は不要だろう。とにかく、ぼくは SWI-Prolog拡張子を今回あえて .pl にしたという次第なのだ。

今回の件は、結局ぼくにとって Prolog の存在が Perl を越えたということなのだ。もとはといえば Prolog拡張子が先に存在していたわけだから Perl には .prl を使ってもらおう。

ぼくの LL(Lightweight Language)は、PerlPython なのだが、最近ではどちらも使う機会が少ない。使う必要が生じたら Python でいいだろうと、この頃ではそう思うようになった。それに、ちょっとしたテキスト処理を Perl で書いていたが直近では AutoHotKey で書くようになったのだ。

・ プログラミング ①   →   PrologLisp / Scheme
・ プログラミング ②   →   PythonPHP
・ プログラミング ③   →   AutoHotKey

上のような体制だね。①でやりにくいことがあれば ②で、PHP はウェブ専用。サーバーに Lisp でもあれば Lisp で書いてもよいが、レンタルサーバーなのでね。Ruby があるのに Python がない。どういうこと? しかし、今の時代はどこのレンタルサーバーでも PHP なら対応している。

③は、簡単なテキスト処理から、GUI まで簡単だ。AutoHotKey はお勧めだよ。

 
【ちっさなニュース】SWI-Prolog が 7.1.5 になった。

    FIXED: suboptimal deletion procedure in heaps Made heap operations run orders of magnitude slower than they should.
    FIXED: Possible crash in put_dict/4 and get_dict/5.
    FIXED: portray_clause/1 (listing/1): support name() and dicts.
    MODIFIED: Changed the default value for the allow_dot_in_atom flag
    ADDED: library(prolog_xref): process conditional compilation directives while searching for declarations for used modules.
    ADDED: Allow for a key-path expression in the put/2 function dicts.
    FIXED: Re-sorting the empty dict (_{}) when restoring state.
    DOC: Fixed summary documentation: added get_dict/5, renamed map to dict
    ADDED: get_dict/5
    FIXED: put_dict/4 if the new value is an environment variable.
    FIXED: csv_read_file_row/3 when the record separator is embedded in a quoted field. Matevž Kovačič.
    DOC: Updated syntax notes section
    DOC: Some small fixes to PceEmacs bluffers section
    FIXED: library(prolog_codewalk): raise an error for meta-extended arguments that are not callable.
    ADDED: must_be(dict, Term). Michael Hendricks.
    FIXED: Two functor/compound issues introduced by previous patch
    FIXED: predicate_property(name(), P).
    FIXED: Handling of name() in colour generation
    FIXED: Handling of name() in the cross-referencer
    DOC: Fixed LaTeX typos
    ENHANCED: Add comment to clarify type errors. Suggested by Michael Hendriks
    FIXED: Error term for evaluating blobs
    FIXED: Bug#149: Incorrectly allowed for plain head in module export list. Raivo Laanemets.
    DOC: Enhanced docs for split_string/4 (Richard O'Keefe)
    FIXED: No longer consider dicts as callable

その他は以下を参照のこと。
http://www.swi-prolog.org/ChangeLog?branch=development

以上。