Perlの開発環境

Perlの開発環境を考える。

AppleのXcodeでは、Perlを扱えない(と思う)ので、別の環境でつくらなくてはならない。
前から一度使ってみたかった、Eclipseをつかってみよう。

Eclipseには、EPICというアドインがあって、Perlを快適に使えるようだ。
早速HPで調べてインストールしてみる。(私はあまり本を買わない(^^;)
(実際は結構右往左往してます(^^;)

無料でこの開発環境!!すごいです。
今までシェル上のviでPerlを書いていたのとは、だいぶ違いますね。
まー私が素人なんで、環境が変わったからと言って、開発速度が大幅に上がることはないですけど。

Macの環境を整える

現在のMacの環境を整えることにする。
今の環境はスペック的にはチープな感じであるが、
OSはMacOSX Tigerで、安定性は十分。
環境がチープであれば、それに合わせた環境を構築すれば良いだけである。
ちなみに、このマシンは私のメイン機でもあるので、昼間はフルで作業してもらってもいいが、
夜は私の作業の邪魔になってもらっては困る。(^^;
とりあえず、最低限必要な
MySQLをインストールする。
新しいことはいいことだと思うので、5.0.18をインストしてみる。
起動などの管理に、純正(?)の、
MySQL Administrator と MySQL Query Browser
を、使ってみるが、なんでか、落ちる・・(–;
Windowsで使ったときは快適だったんですけどね。
UNIX的な使い方をするので、MySQL管理用に、
Webminをインストールする。
やはり定番ツールだけあって、使いやすい。
今後、自動起動などのプログラムも増えるので、これで登録すればよいので助かる。
UNIXのシェルでは、viを使っているが、やはり、最近はなまぐさGUIになれてしまい、
コマンドを忘れてしまうので助かる。

開発方針変更(cocoa 2 unix)

ここ数日、HPをみたり、自分で考えをまとめてみる。
結果、
「 MacはMacでもUNIXよりのシステムを構築する。」
と、いうことに落ち着いた。
(cocoaなシステムのみでの構築は時間がかかりすぎて飽きそうが本音(^^;)
大まかなシステムは、
1 ユーザインターフェイス(Cocoa or Java)
2 情報の取得(Perl)
3 情報の保管、管理(MySQL)
4 注文処理(Perl)
を、分離してそれぞれを独立したシステムとして運用することにする。
母国語(?)である、CやC++でコーディングしたいのは、やまやまなんですが、
Macな場合、Cで組んでしまうと、他のプラットフォームに移植するのが、
結構、大変そうな感じがするので、どこにでもある言語を使うことにする。

webkitでのやり方不明

いろいろと調べるけど、Macのcocoaなプログラムで、webへsubmitする方法が、
わからないです。
どう考えても、できないはずはないんですが、2日探して、見つからないので、
このまま、時間が過ぎていくのはもったいないので、別の方法を考えないといけないのか・・・
Automatorや、AppleScriptなんかを、使えば、
自動運転ができることは、間違いないんですけど、
これをつかってしまうと、他の環境への移行がめんどそうですからね。
もうすこし、UNIXよりにしようか・・・。

自動運転にはsubmit

日足データの取得ができれば、
その応用で、銘柄の個別情報、会社名、上場市場、売買単位、純資産、配当なんかの情報を
取得することは、難しくない見込み。
見栄えの問題や、チャートの表示(ローソク足、出来高、移動平均線とか)も、力業と微調整で
時間さえかければ、なんとかなる。
あと、買いタイミングや売りタイミングで、注文を発注するシステムで必要な、submitを考える。
証券会社のHPにアクセス、IDとパスワードを入力し、submit(ボタンを押す)。
注文条件などを設定して、submitする。
よく考えると、webkitって、表示関係や解析関係は充実しているけど、
プログラムからのアクションってできるんだろうか・・・。
サーーーーー(血の気が引く)

漢字コード問題解決!

先日から悩んでいる、漢字コード問題。
HPを見ていると、Xcodeでソースの中に漢字を直書きするのは、御法度だとか・・・
妙に動いたりするので、お気軽に書いてたけど、やっぱりだめだったんですね。
Windowsな環境やUNIXな環境でコーディングするときは、ちゃんと外部定義するんですけどね。
ついつい、Xcodeに甘えてしまいました。
いろいろと試行錯誤した結果、
Localizable.strings
というテキストファイルをプロジェクトに追加して、
そのファイルには、
“tyouseigo” = “調整後終値*”;
みたいに、ソース内で使う内容を定義していきます。
あとは、普通にif文などで、
if( [[aValue objectAtIndex:iCnt] isEqualToString:NSLocalizedString(@”tyouseigo”,@””)] )
みたいに判定すれば、無事判定してくれます。
ほんとに、これにははまったなぁ・・・(–;
そんでもって、実行・・・
Xcodeok
うっし、無事取得できたぞ。(ほんとはこんなに簡単には取得できてなくて試行錯誤してます(^^;)
これで、なんとか日足は取得できるぞ。

webkitなんとなくわかってきた

引き続きwebkitの使い方を研究。
流れとしては、ボタンを押した時のイベントを取得。
– (IBAction)syutoku:(id)sender
と、いう名前にしとく、その中で、
NSMutableStringで宣言したString型の変数に、URLを生成、
ここは、ヤフーファイナンスから、過去の日足データを取得できるURLがあるので、
そこから取得することにする。
WebFrame* frame = [vWebview mainFrame];
NSURLRequest* request = [NSURLRequest requestWithURL:[NSURL URLWithString:str]];
[frame loadRequest:request];
みたいな感じで、webviewにとりあえず取得したページを表示させてみる。
表示(ページの取得)が完了したら、
– (void)webView:(WebView *)sender didFinishLoadForFrame:(WebFrame *)frame
に通知があるので、
DOMNode
を、使ってhtmlをDOMで、解析する。
必要な項目、日付、始値、高値、安値、終値、出来高を、取得する。
次のページがあれば、リクエストしなおし・・
と、こんな感じでいけそう。
Photo
では、実行・・・・
うごかん・・・。
なんでか、DOMでうまく拾えないみたい。
漢字コードはUnicodeで統一されているはずだし・・・。
文字によってはうまくひっかかるようだけど、肝心の「調整後終値*」などのキーワードははじかれる。
これはもしかしてはまってしまったか・・・。(–;
HPをさがしてもうまくみつからない、前に買った本にヒントは書かれているけど、
なかなかうまくはまらない。
まーー時間が解決してくれるでしょう。(^^;

webkitを使ってみる

webkitを使ってみる。
webkitは、Mac OS Xの標準ブラウザのSafariのレンダリングエンジンで、
これを、自分のプログラムで使うと、Safariでみれるページは、基本的にはそのまま取り込むことができます。
めんどくさがり屋の私はこれをつかうことにします。
これも高機能すぎて、使う機能を絞るのが大変です。
とりあえず、やりたいことは、
・ URLを生成する。
・ URLをリクエストする。
・ 取得したhtmlを解析する。
・ 必要な情報を配列に取り込む。
・ 数ページに情報がわたるときは、URL生成から繰り返す。
  (ページ内に、次のページへのリンクがあればそのリンクを使う)
・ 銘柄数だけ繰り返す。
基本は、こんな流れですね。
webkitには、この辺の作業に便利な関数が用意されれいるので、
比較的、スムーズに開発できそう。

Xcodeを使ってみる

先日、Interface Builderで、テスト用の画面を作りました。
そこで、いろんなイベント関係の設定をすると、Xcodeにひな形を作ってくれます。
そこに、適切なコードを書いていけばいいんですけど・・・
Objective-C が、わかりにくい(–;
いや、きっとわかりやすいはずだけど、今までPureC(要は普通のC)しか使ってこなかった私には難解すぎる・・。
抽象的すぎて、なんとも・・・。
Appleのデベロッパーページで、サンプルソースがあるので、
手当たり次第にダウンロードして、ソースに慣れる。
とりあえず、webkitの用法を調べよう・・・

まずは、Interface Builderでデザイン

まずは、株価情報をHP上から取得するのが先決。
取得にはいろいろと方法があるようですが、たいそうなシステムを作るつもりもないので、
とりあえず、日足データを、「ヤフーファイナンス」から、
取得することにする。
今日のところは、とりあえず、これを表示する部分を、Interface Builderで作ることにする。
Ib1_1
こんな、感じでいいかな。
疲れたので、続きはまた・・・