今日は年度最終日…でも仕事の切れ目が全然無い。今週一杯は修羅場 orz
それより、今日はボスの最終出社日。
この会社に来て9年。大学で知り合ってから約20年におよぶお付き合いでした。その先輩がとうとうこの会社を離れられて行かれます。
一言では言い表せない位いろいろありましたが、今まで本当にお世話になりました。
今後もどうかよろしくお願い致します…たぶんここ読んでらっしゃらないと思うけど。
ねこさんのぐうたらなにちじょう
…これはヒドイw
πP師匠の曲には仕事中はここんとこずっとお世話になりっぱなしなのですよ
多分以前も目に留めたことがあったかもしれない…けどちゃんと認識できてなかったかもしれない。
今日改めて気が付いてみて、これは素晴らしいアイデアな気がする!もっと高速な処理系だとねこさんにとってはもっといいのだけど。
試しに書いてみた:
Shoes.app :width => 172, :height => 26,
:title => "show version", :resizable => false do
stack do
background black
para 'ruby version: ' + RUBY_VERSION, :stroke => white, :margin => 4
end
end
今の職場5年間の落とし前を付ける為の不毛な仕事が目の前に一杯あって、未だ仕事の総量が見積もれずに悶々と過ごしている今日この頃ですが、皆様如何がお過ごしでしょうか。
…こういう時ほどやたらと本来の仕事と関係の無いことが気になって仕方がなかったりします。んで、以前からちょっと気になっていたプログラムを見て…いやねこさんの能力では見てもすんなり理解できる気は全然しないのですが、いつかはちゃんと理解してみようかと思うのです。
んで試しに動かして…うーコンパイルが通りません orz
ざっと眺めて、
module AsmX86(
mem, ...と関数memをexportしてあげたらコンパイル通りました。
そのうちちゃんと遊ぶ!
著者の本はブルーバックスの「高校数学でわかる」シリーズを読んで衝撃を受けて以来、著者名買いをすることにしたのですが、新刊が出ているにも関わらず未読があるのはイカン!…とか思ったので。
いやホントは読むの面倒だったから放置してただけです。どうも4月から電波関係のところで仕事する可能性が濃厚になってきたのだけど、一応理系の癖に電波どころか電磁気自体が微妙(いま光関係の仕事していてそれはアカンだろ…)なもんで、配属されて怒られる前にちょっとだけ復習しておくのに丁度いいや、ということで読んでみました。
電磁気の基礎がとてもコンパクトでイメージし易くまとめられているところは例の「高校数学でわかる」シリーズを書かれた著者ならではだと思いました。Maxwell方程式を積分方程式としてだけでなく、ベクトル解析の基礎を交えて微分方程式として扱ってみただけの本という、意地の悪い言い方もできたりしますが、本当の基礎の要点をまとめて、簡単な応用へ結びつけて見せることによって、読み手に電磁気の明確なイメージを提示させることは今回も成功していると思います。
ただ、読んでいると例のシリーズでは見られなかった記載上のミスが多々散見されていて、例のシリーズで強く感じられていた「読み手へのもてなしの心」みたいな物がだいぶ弱く感じられてしまったのは残念でなりません。多分想定している読者の違いから来るものなのか、十分なチェックをする余裕が無かったのかもしれません。
ねこさんにとっては今回もとてもいい刺激になったのは間違いありません。この本をベースにして必要に応じてより専門的な本を読み進めようという、最初の取っ掛かりには例のシリーズとこの本を読むのはとてもいいと思います。
ここ最近ずっと、ここには書けない事が多々あったわけでして、今日それに関する一区切りが一方的にやって参りましたのです。
当然やっぱり書けないのですが、個人的には気持ちの上では一区切りがついたし、ある意味すっきりもしているのですが、でも話だけ聞いてると「世の中ホントにこれでいいのか?」と客観的な怒りにも似た感情が湧き上がってもくるのです。
「正直酷い話もあるもんだなー」と本来の当事者の一人でもあるにも係わらず妙に客観的な感想が浮かんでもくるのですが、それはやっぱり心の奥底で心底乗り気になれなかった事の証なのであろうと思うのです。
まぁこれを世の中では不景気と呼ぶのだと思うのですが、さてこれからどうやって過していきましょうか。
※ 別に悪いこととか後ろ暗い事をやってたというお話ではないので、念の為。
以前に仕事で「確率過程を勉強する必要があるかなー」と思った時に会社の図書室で見つけて借りたにも関わらず、直接仕事に関係なかったので読まなかったのですが、返す前に読んでおこうかと一気読み。数学の基本から要点のみを抑えつつ簡潔に説明している本…って感じだったので、確率過程の基礎を手っ取り早く知るのにいいかな…という目論見だったのですね。
残念ながら、この本を読んでも確率過程の理解が深まる…という訳には行かなかったのですね。確かにウィーナー過程とか伊藤過程・伊藤の補題の簡単な説明が出ては来るのですが、そもそものこの本の目的は「ブラック・ショールズ方程式の導出と解析解を求めること」に完全に絞られていて、それに必要な最低限の説明のみに限られた内容になっています。但し、方程式と解の導出に必要な計算はまったく省略なしに懇切丁寧に書かれていますので、計算が苦手なねこさんにもすらすらと読み通せます!そういう意味で納得したい人には良い本だと思いますが、最終的にできるようになることといえば「単純なユーロピアン・コールオプションの価格計算ができる(?)」ようになるだけですので、それ以上の応用を見につけるにはもっと勉強をする必要があるのでしょう。それに、初歩的な数学の説明はこれでもかと言う位丁寧に説明されていますが、金融用語は容赦なく説明がありませんので、そういうことに疎いねこさんはひたすら検索しまくりで読むことになります。最後の元論文の部分訳は殆どよくわかりませんでしたが、それ以外の金融用語はなんとなく判る様になりました。そういった意味でもねこさんの為にはなったようです。それにしても「保有する株からの損益と販売するオプションからの損益それぞれのリスクは、上手くポートフォリオを組むとキャンセルすることができる」というロジックは何度読んでも狐に摘まれたような気分が拭えません orz
この本に書かれた内容を手がかりに、不足してるな…と思う事を少しずつ広げて勉強していければいいなーと思わせてくれたという意味で、ねこさんにとってはいい本だと思いました。これは会社の本ですけど、自分の手元にも買っておこうかと思います。なんか増補版が出ているようですし。
年末年始に実家に帰省した時に、本棚の中の昔買ったけど読んでない本を一杯目に留めてしまって、その中の気になった本を何冊か持って帰ったのですが、一冊をやっと読み終えました。
昔からブルーバックスは結構買ってるのですが、結構あんまり読めてません orz 今回その理由を再認識したのですが、古い科学読み物って「難しい事を平易な言葉で解説します」見たいなポリシーで書かれてるのだと思うのですが、もともと難しい事を言葉だけ平易にしても別に簡単にならないし、本筋にあんまり関係のない話を織り交ぜても、読みやすくはなるかもしれないけど別に内容が簡単になるわけではないし。で言葉を平易にした結果、説明なしに結論だけを述べられたり細かいところで論理に齟齬が出てそこいら辺に引っかかると全然理解できないような気分に陥ったりで、結局読み進められないという orz
最近はとっても良い本がありますよね。たとえば竹内淳先生の「高校生でわかる~」シリーズなんかは、読者に本当に理解して欲しい部分を十分に絞って、エッセンスだけを説明できるようにモデルをギリギリまで単純化して、計算が必要な部分も間が全然開かないように丁寧に説明することによって、論理に飛躍や齟齬のない、びっくりする位に読みやすい本に仕上げていらっしゃる。もしこんな本ばかりだったらどれだけ素敵だろうと本当に思うのです。
表題の本はやっぱり古い本です(昭和49年発行)。「四次元の世界」みたいな今の若い人にはまったく理解不能な話題が出てきたりする。で、上に挙げた様な読み辛さは一通り出てきます。通りで昔のねこさんが読めてなかったわけです。でも、「なんか変だな?」と思えば手軽にウィキペディアで調べながらでも適当に頭の中で補正して丁寧に読み進めれば、説明されていることは判る様になります。説明されてないことは仕方ないので諦めるか、他の本を読めばいいのです。ねこさんはこの本を読んで、トポロジーという学問の大凡の構造(位相空間+基本群→ホモロジー・ホモトピー)をイメージすることが初めてできました。ポアンカレ予想の意味位ならなんとか人に説明できそうです。そういった意味で、この本を読んで良かったのだと思うのです。他の人には多分お勧めしませんが orz
あと、当然ですがこの頃はまだポアンカレ予想が解決されてはおらず、トポロジーへの期待もとっても大きかったのが巻末辺りで読み取れますが、この辺りも時代を感じられます。
昨日放電してパッテリがだいたい空になってるので、充電しつつ作業。一昨日買ってきたWorld Travel Adapter Kitの日本仕様のプラグアダプタを使ってみる…当然、正常に通電している。よかった。
改めてよく見たら、キーボードが微妙に英国仕様。ま、これは想定内なのでOK。唯一、左側のShiftキーの横幅が想定外に短くて打ちにくいのが難点かな。
とりあえず新たに管理アカウントと利用者アカウントを作成して、前ユーザが勝手に作成したアカウントを完全削除。前ユーザが勝手に付けたホスト名を変更し無線LANを設定してから膨大な量のソフトウェア・アップデート。
ホスト名の変更の仕方は判りにくかった。[システム環境設定]→[共有]から設定…こんなの判りません orz
寝る迄にBoot Campの設定をしたかったけど、多分無理 orz
以前にこんなコードを書いて喜んでいたのですけど、
printList [] = putStr ""
printList (x:xs) = print x >> printList xs
空リストの場合は何もしなくていいはずで putStr "" っていうのはとても気持ち悪かったのですが、
printList [] = return ()
printList (x:xs) = print x >> printList xs
これでいいのか。やっぱりそのうちちゃんとモナドの勉強をしないと orz
久しぶりにHaskellで仕事のコードを書いてみる。本来ならとても簡単な仕事なので使い慣れた言語でちょちょっとやるところだけど、正月明けの仕事始め1日目なのでちょっと遊んでみた。
簡単な計算をするだけなんだけど、Haskellは数値型の種類が一杯ある上に型厳密なので、一見良さげなコードが型マッチしないよとやたらに怒られまくる。いろいろ悩んでどうにか動くようにはなったけど、自分の中でまだあんまり明瞭になってない。
後でちゃんと調べてまとめておかないと!
やっと普通にlet式とかwhere節が出てくるようになってきたです。それから、コードを書きながら「ここいら辺はプログラムの実行順序を考えなくてもいいんだなー」みたいな感慨が浮かんできて、「正規順序の言語っていいかもー」と思えてきた!
実家から会社の計算機にログインしてemacs -nwで作業しているのですが、BSキーを押すとhelp-commandに入ってしまうのがちょっと面倒です。たしかbobcat.elとか使えば解決…ってそうだったのかー orz
普段は自宅ではrep2exを使っていますが、サーバは自宅内のprivate segmentで運用しているので、外ではちょっと使いにくいです。いつもならJane Doe Viewを使うのですが、昨年まで使っていたノートPCを飛ばしてしまって以降まったく使っていません。
ひょっとしたらFirefox用Addonで2ch Viewerがあったりするのではないか?と思ったら…あった。ので、インストールして使ってみることにします。
世の中がものすごい勢いでうしろむきに変化している昨今、うしろむき加減では誰にも負けないねこさんにとっても今年はいろいろある年となりそうで、いろいろと考え直さなければなとか思ったりしています。本当にただのチラシの裏なここもそれに合わせていろいろと変えていけたらな、と思います。
何故かこんなところをご覧の若干の皆さま、今年もどうかよろしくお願いいたします。
現在、新幹線の中で時間を見つけていろいろ触ってみてました。
ちょっとだけいろいろつまみ食いをしてみた結果、GTDStyleWikiをノートPCに入れて使ってみることにしました。
本来ならそれぞれの特徴や使ってみた印象について記録することで他の人の参考になるよう心がけるべきなんでしょうけど、実はそんなにいろいろ使い比べてはいないし(それぞれコメントできる程使ってはいない)、それに使えるだけの時間を有してはいない(単にねこさんがグズで時間の使い方がヘタなだけだとも思う)、ということでご勘弁下さいませ orz
直感的にGTDTiddlyWiki Plusにしようとだいぶ傾きかけていました。でも選択要因が「チェックボックスでToDo管理できるから」というのは我ながらレベルが低すぎるかもしれません。
でも使っていて他のTiddly系Wikiとはそれほど差異はないし、結構練りこまれた良いシステムだと思います。逆にいえば、使い方が結構お仕着せに感じる人もいると思うので、ちょっと使ってみてよさげだと思えば使い続ければいいし、ダメだと思えば他を使えばいいや、位の距離感で使えばいいのだと思うのです。
ねこさん的には至近の情報だけをここに管理して、既に終わった情報やもっと込み入った情報、量の重たい情報はEvernoteに頼ろうと思ってます。
できれば午前中、少なくともお昼くらいには出発しようと思っていたのに、直前になっていろいろ思いだして、ごちゃごちゃやっているとどんどん時間が経過して、気が付いたら午後5時…とかさすがに信じられません、いやいつもこんな感じな気もします orz
でもまぁこれ位ならかえってスムースに帰れるし…とか考えながら京都駅でお土産とお弁当を調達して駅へ…なんかいつもと雰囲気が違うなと…「小田原で人身事故、ダイヤが大幅に乱れています」。昨日はJR東日本の東北・上越・山形、秋田の全新幹線でトラブルがあったらしいけど、またこんなことがあるなんて…orz
どうやら調度復旧したばかりだけどダイヤはまだ大きく乱れている、というところでした。「新大阪発ならば遅れ最短に違いない」と思って指定を取ると案の定15分遅れで電車が到着しました。電車は比較的空いていたのですが(たぶんシステムが混乱していて適切に乗客を割り振れていないせい)、何故か妙齢の女性がねこさんの隣に座ってきます。普通は混雑していない限りは、席を隣接して予約を入れることはないはずです。どうやらこの女性は違う列車に乗ってしまったみたいですね。普段ならそれはそれで楽しむ(?)ねこさんですが、残念ながらそういう気持ちの余裕はありません。といいますか、先ほど買ったお弁当が激しく汁漏れしていて、それがいろいろ汚していたのが発覚してかなりいらいらしていたのでした。
いろいろ残念。
一見おちゃらけた記事に見えながら、最後にかなり重いテーマを提示して一年を総括してくれた。既存のメディアは広い意味での表現の自由を守護してはくれないかもしれない、と。でもそれは今までの歴史がそれを強く裏付けてくれている、ということからそれは恐らくは事実なのだろう。皆で問題意識を持って皆で護っていくしかないんだろうね。
話は微妙に違うけど、今問題になっている派遣切りの労働者としての権利は誰が守ってくれるのか?という問題があるよね。単純に想像すると労働組合がそれを担いそうに思うけど、大きな会社の既存の労働組合は既存の正社員の地位を守るのに精一杯だし、そもそも既存の労働組合がこのような事態で機能する存在であるのか、ということについて大きな疑念があるように思う。じゃあどうすればいいのかについては全然ノーアイデアなんだけど、憲法に保障されている最低限の権利については、皆で何らかの形でどうにかしていくしかないのかなーとか思う、暮れの夜。
ちなみにねこさんの会社は小さくて労働組合があるのかどうかも定かでない。多分来年3月にはクビだけど、今のこの会社にしがみ付いても将来が見出せないので、仮に労働組合があってもあまり意味はなさそう orz
以前から興味はあったのだけど、「Javascript+HTMLだけで動くシステムがそんなに快適なのかー?」という偏見だけで今まで触ってみることもなかったのです。
んで思い立って、試しに有名なTiddlyWikiを動かしてみたところ…まさに目から鱗が落ちました!これは素晴らしい!特に画面表示を動的に変えられるところが良い!!しかもそれぞれの方向性で拡張した派生システムがいっぱいある!!それに、どーせWebブラウザはいつでも動かしっぱなしだし。
ってことで以前からこういうシステムを欲していたねこさんは世間から3周回遅れ位に急遽個人で実運用するためのシステムを物色してみることにしました。 調査対象は適当に検索して見つけた以下のものです:
出遅れしたせいか随分とラインナップが充実しています。基本的には、
しばらく前からYouTubeやニコニコ動画をFirefoxで見ようとすると音が鳴らないのが気にはなっていました。気にはなっていたがIEを使うと普通に音が鳴るので、その時だけIEを使うことで過ごしていました。
検索してみると結構同士がいることがわかりました。同様な症状に「2~3秒で再生が止まる」というのがあると。そういえばそういうことも多々あったかも。
でどう解決すればいいのかについても一杯出てくるのですが、試してみても解決しません orz もうダメかと思っていたところ、驚愕の事実が!
音量を調整しようとしてたまたまミキサーを開いてみたところ、Firefoxの音量がミュートになってる!…こんなことにどれだけ時間をかけたんだ orz
をやっている人がいたようなことを思い出したので、探して試してみた。
そもそもまともにVC使うの初めてで、起動した時点で既に問題 orz
できたー。
コンソールプログラムでなしに、計算結果をログテキストウィンドウに表示できるといいなー…と思って探したら、このようなソースコードを見つけた。Windowsプログラミング不慣れなねこさんにはコンパクトで参考になりそう。
書きかけのプログラムを書き進めるために調べ物をしたり動作を確認したり本を読んだり考え事をしたりしてたら1日が終わった。
Moore-Penrose行列(擬似逆行列・一般化逆行列)って便利だなーとか。もうちょっとまとまった説明のある本ってないのかなー?
もうちょっとだけ触ってみた。
print_stringの代わりにSystem.Console.Writeをread_lineの代わりにconsole.ReadLineを使うといいらしい。
Windowsでプログラミングしてる気分だけでも味わおうと思ってMessageBoxでも表示してみようかと思い、System.Windows.Forms.MessageBox.Showとか使ってみるもビルドできない orz [プロジェクト](もしくはReferencesで右クリック) → [参照の追加] で適当に該当しているコンポーネントを追加してあげると動いた。ちなみにfsi.exe(Console)からだと問題なく動く。
眠いのでもう寝る。
母親が送ってくれたりんごの中に1個だけどう見てもりんごに見えない謎の物体が。
どう見ても梨にしか見えないけど、どう考えても季節外れだし何でそんなものがりんごに紛れて来るのか全然判らないし。
意を決して昨夜母親にTELしてみたところ…梨だった。近所の知り合いから貰ったらしいけど、季節外れ過ぎで気持ち悪いから一緒に送った…ってオイ!
結構大きい梨だし一人で気持ち悪くなるのもアレなので、会社に持ってきて皆を巻添いにして食す…何の事はない、意外に結構普通の梨だった。
HaskellもSchemeも満足に使えないのにF#に手を出す節操のないねこさん orz
Visual Studioを起動して、メニュー: [表示] → [その他のウィンドウ] → [F# Interactive]を選択するとinteractive modeが使えて、プロンプトからF#が使えるみたい。ショートカットキー(Ctrl + Alt + F)も用意されているので楽チン。
微妙にOcaml Pervasivesと用意されている関数がちがうっぽいので、やっぱり良く判らない orz
今日もここまで orz
一時期だけちょっと触っただけだもんだから、その時に書いたHaskellコードの再コンパイルの仕方を忘れてしまった orz
て事でメモ
\$ ghc -O2 -o hoge hoge.hs -package cairo -package parsec
ねこさんがかつてお世話になっていましたStatabowareの作者であられ、『生きる伝説』でいらっしゃる後藤和茂さん(何故か現在リンク先のデータが空白になっています)の作成されているgotoBLASを使ってみようかと…思っていたのですが、別の用件が orz
まだコード作成中だし最適化を考えるのはもうちょっと先なので、使おうと思っていたことだけをメモして、ちょっと下調べして今日はおしまい orz
Visual Studioをインストールしたので、今度はF#をインストール。
と言ってもここからダウンロードしてインストールするだけ…だけなんだけどね。
F#をVisual Studioで使ってみたくてVisual Studio 2008を導入してみたんだけど、それだけならVisual Studio 2008 Shellでいいらしい。改めて調べてがっくり orz
やっぱりIDEアレルギーな所為か起動してもどうして言いか良く判らない…眠くて疲れてるので今日はここまで orz
まだ続くとは思わなんだ。
昨日インストールが済んでめでたしめでたし…と思っていたら今日になって何故か音が鳴らなくなった、と。いろいろ調べていると、スピーカからは音はなっていないけどイヤホン端子からなら音が鳴っていることが判明。
スピーカとイヤホン端子がシステムから別インターフェースになっている…なんて聞いた事がないので恐らく故障だと思うのだけど、買ったばっかりみたいだし昨日は動いていたし。
取りあえずBIOSの初期化、ドライバの再インストール、システムの復元…と思いつく限りをやってみたけどまぁ全部ダメ、メーカに問い合わせるしかないよなぁ orz
Thinkpad内蔵のDVDドライブにインストールディスクを挿入すると何故かディスクにアクセスできなくなるばかりかシステムが不安定になって激しく困る件ですが、別のドライブならどうだろう…と会社の外付けドライブで試してみると…同じ結果でした orz
良く見ると、症状が出るときにDLACTRLW.EXEが固まっているようです…DVD-ROM相手に何故か誤動作している?ねこさんは別にDLACTRLW.EXEが使えなくなっても特に困ることはないので、システム構成ユーティリティ(msconfig.exe)のスタートアップ設定でシステム起動時の自動起動を外してあげた上で再起動、再度インストールディスクを挿入してあげると…無事インストーラが起動できました。
とりあえずここまで。
使うつもりで入手してせっかく持ってるのに殆ど触ったことがないというのは明らかにお金を溝に捨てる行為であろうと流石に思うのです。で今頃インストールしようと思ったのですが、インストール先のNote PCの内蔵DVDドライブに入れると何故かシステムが不安定になる…いきなり出鼻を挫かれた orz
XPのインストールは何とかできました。その後のドライバ類のインストールはやっぱり結構手間がかかります。特に、考えれば当たり前なのですが、MS修正モジュール(Q888111)はメーカ提供バイナリでは英語版XPにインストールできませんでした。これがインストールできないと、サウンドドライバとモデムドライバをインストールすることができません。そこでTOUGHBOOK用のバイナリを試してみると…当然のようにインストールできます。おかげでサウンドドライバとモデムドライバをインストールできました。
昨日までの作業にちょっと書き足して、複数のgnuplotとpipeで接続して同時に複数のグラフを書けるように修正したり、モジュール化してあげたりコードを整理したり。
とりあえず仕事で使うにはこんなもんかな。
とにかく情報を集めます。
大体ここに情報が集まっているみたいなので、参照させてもらいます。今回はまたこのケースに該当してますのでこれだけでも十分そうです。
XP SP2インストールディスクでインストーラが起動できることを確認できましたが、案の定内蔵ディスクがインストーラから見えませんので、こちらに従ってドライバーフロッピーディスクの作成を致します。実際にインストーラからドライバを読むのにはフロッピーディスクドライブ(CF-VFDU03U)が必要なようですが、幸い手元にありますIBM 05K9282が同じドライブである様なのでこれを使います。これで無事インストーラを動かすことができました…が何故かProduct keyが判らず、ここでいったん作業中止です orz
一番苦労したのは…ステートメントの最後に";(セミコロン)"を付け忘れることかな orz
昔はPASCAL好きだったねこさんは、結構最近まで";(セミコロン)"を付けない方が気持ち悪くて仕方なかったのに…。
昨日調べたことを元にgnuplotをfortranから操作するコードを書いていたのです。
インストールしましたgnuplot for windowsのバイナリファイルを見ますといくつかあることに気が付きます。調べますとgnuplot for windowsでpipeを使うにはpgnuplot.exeというのを使うのが流儀みたいです。pgnuplotはgnuplot for windowsとは別に入手して自分でコンパイルする必要があったのだそうですが、現在配布されているバージョンでは同梱しているようです。
でこれとpipeで繋いでコマンドとデータを送ってグラフを書かせてみるのですが…酷く動作が不安定です orz どうもデータ落ちが激しく発生している様子です。いろいろ試行錯誤してみましたが改善する様子がありません。やけくそになって、データを送る毎に2msecのウェイトを入れるととりあえず目に見えたデータ落ちは発生しません。1msecではダメです…が負荷をかけた時も2msecで大丈夫という保証なんてありません orz
「これでお茶を濁しておくか…」と思ったその時に、ふとgnuplot for windowsのバイナリファイルでgnuplot.exeというファイルが目に留まりました。「…これは何?」と思って動かしてみると、なんとコマンド入力画面が独自GUIではなく、コマンドプロンプトを使用したものです。「これはひょっとして」と思い、pgnuplot.exeでなくgnuplot.exeとpipeを繋いでみると…データ落ちがまったくなくなり、動作も軽くなりました!すばらしい!
これからはpipe以外でもwgnuplot.exeを使わずにgnuplot.exeを使うことにしようと思いましたなのです。
良く考えるとMinGWで書いたプログラムをgnuplot for Windowsでやったことはないのですよ。
さらに考えると、Fortran90以降を使って外部プログラムとpipeで通信する…のもやったことがないし、Cで書いたプログラムをFortran90以降から呼び出す…とかもやったことがないのです。うー、大分面倒になってきました orz
少々探しますと、gfortranやg95からpipe通信するライブラリやgnuplotを操作するライブラリもあるようですが、ここはぐうたらせずに自前でどうにかすることを考えました。たぶんそんなに手間はかかんないと思う…だといいなぁ。
Fortranにはさすがにpipe操作手続きはない…ので自前で用意するのです。当然Cで書くのですが、FortranからCの関数の呼び方が判りません…ここに書かれている程度の事は当然今までも使ってきていたのですが、考えるとFortran90以降の仕様に関する事は全然判りません。でここを参考にさせて頂きますと、どうも少なくともgfortranとg95ではftoc(f2c?)の規則に習っているそうで…いやftocの規則が判りませんが。仕方がありませんのでひたすらこちらを参考にコードを書くことにします。POSIX pipeへの出力をする為のpopen, pclose関数を使って、gnuplotを呼び出してコマンドを送ります。
多分、MinGWでPOSIX pipeを使ったコードは使えそうかな、POSIX pipe自体はこれを読めばいい、POSIX pipeを使ってgnuplotを操作する方法も基本的にgnuplotのコマンドを送ればいいのですが、プログラムから一時ファイル等の作成をせずにどうやってgnuplotへデータを送るかが問題です。これも調べれば直ぐにわかる訳でして、'plot "-"'みたいに"-"をファイル名としてplotコマンドに与えてあげれば、データをファイルからではなく標準入力から読むようになります。で"e"で始まる行入力をすればデータの終端として認識し、データの読み込みを終了します。
これだけ情報があれば、ねこさんでも書けるかな?…一番問題になりそうなのは最近ねこさんはCで全然コードを書いてないことかも orz
会社に来ている学生さんに数値計算を教えているのですが、データをいちいちファイルに保存してグラフを書くのは面倒です。gnuplotをうまく使えばいろいろどうにかなるかなと思うのですが、Windows環境でもそうなのかいまいち判りません。なので試してみることにしました。
ねこさんは以前にWindows版のOctaveをインストールしていて、これにgnuplotが同梱されているので、これがgnuplot-modeで使えるかを確認してみます。gnuplot-modeはここから入手します。このパッケージにはWindowsで使うためのpgnuplotのソースコードが添付されていますが、pgnuplot.exeはOctaveにもバイナリが同梱されているようなのでこれを使ってみます。設定はここを参考にしました。で、結論を言えば…動きません。
でもここでは正規パッケージのgnuplotでもpgnuplot.exeは同梱していてしかもMeadowからgnuplot-modeが使えているようですので、おとなしくこれに従うことにしました。
新たにインストールしたgnuplotは現在のDevelopment versionの4.3です。これでgnuplot-modeは…問題なくちゃんと動きました。
これでWindowsでもPOSIX pipe(?)を使って操作できそうであることがなんとなく判りましたので、次はFortranプログラムからgnuplotを操作する方法を考えることにします。