最近、岡三オンライン証券の口座でデイトレードをして日銭を取ったり取られたりしているのだけれども、岡三のツールはなかなか使い勝手が良くて、手数料もわりと安いので重宝している。
けれど残念なのが、当日の損益を一覧する手段がない点で、さらに定額手数料プランを選択していると、深夜のバッチが走るまで正確な手数料が分からない。
翌日まで待てば前日の損益は分かるのだけれど、僕なんかはその日の収支をその日のうちに記録しておきたかったりするので、翌日まで待つことなんか出来ない。

ということで、岡三RSSというサービスを使って、当日の損益を計算するマクロを組んでみた。
ちなみに岡三RSSとは、エクセル上で動作するアドインツールで、株価を参照したり板情報を参照したり、注文を発注したりできる代物で、システムトレードへの応用も可能だとか。
中には、これを使って自動損切りツールをつくったりしている人もいるみたい。

自分が組んだものは、そんな凄いものではなく1日で適当につくったもので、ワンショット手数料プランなどに対応していなかったり、持ち越しがあったりすると没するような代物だけど、せっかく作ったのでgithubに置いときたいと思う
* 2012.01.01 公開停止しました。


エクセル2010でしか動作確認していない。動かなかったらごめん。

1月 102010
 

下書きで放置していたSNMPに関するメモ。

インストール

Net-SNMPからソースをダウンロード。

$ tar zxvf net-snmp-5.4.2.1.tar.gz
$ cd net-snmp-5.4.2.1
$ ./configure --prefix=/usr/local/net-snmp-5.4.2.1 --disable-embedded-perl --without-perl-modules
 ************** Configuration Section **************
-Press return to continue-
Default version of SNMP to use (3):
System Contact Information (@):
System Location (Unknown):
Location to write logfile (/var/log/snmpd.log):
Location to write persistent information (/var/net-snmp):
$ make
# make install

必要であれば、エイリアスを設定。

$ cd /usr/local
# ln -s net-snmp-5.4.2.1 net-snmp

SNMP設定

# vi /usr/local/net-snmp/snmpd.conf
... 以下、設定内容。
com2sec hogetest 192.168.11.0/24 hogetest_com
com2sec hogetest localhost hogetest_com
 
group hogetest_grp v1 hogetest
 
view hogetest_view included .1.3.6.1.4.1.2021
 
access hogetest_grp "" any noauth exact hogetest_view none none
 
exec writetest /usr/local/net-snmp/a.sh
...

アクセスサンプル用のテキスト

# vi /usr/local/net-snmp/a.sh
/bin/echo aaa

起動

# snmpd -Lsd -Lf /var/log/snmpd.log -p /var/run/snmpd -a

-Lsd : syslogを有効にする
-Lf : snmpdの出力を送るファイル名の指定
-p : ファイル名 プロセスIDを保存するファイル名
-a : 送信元IPアドレス(NMS)をログに記録する

OIDを取得

英文字の形(OID = name)

$ ./snmpwalk -OQS -c hogetest_com -v 1 localhost .1.3.6.1.4.1.2021.8.1.extNames | grep writetest

数値の形(OID = name)

$ ./snmpwalk -OQSn -c hogetest_com -v 1 localhost .1.3.6.1.4.1.2021.8.1.extNames | grep writetest

値(exec)を取得

$ ./snmpget -c hogetest_com -v 1 localhost UCD-SNMP-MIB::extOutput.1
UCD-SNMP-MIB::extOutput.1 = STRING: aaa
$ ./snmpget -OQv -c hogetest_com -v 1 localhost UCD-SNMP-MIB::extOutput.1
aaa

参考

NET-SNMPのインストール
SNMPによるネットワークシステムの監視
SNMPによるネットワークモニタリング

1月 102010
 

下書きで放置していた cacti に関するメモ。

インストール

$ tar zxvf cacti-0.8.7a.tar.gz
$ cp cacti-0.8.7a /path/to/
$ cd /path/to
$ ln -s cacti-0.8.7a cacti
$ cd cacti/include
$ vi config.php

apache のエイリアスをきってからアクセス。
アクセス先は、http://path/to/cacti/ とか。

0.8.7b バグ

Invalid PHP_SELF Path とか表示されたら、下記のように修正すればよいらしい。
(- が修正前、+ が修正後。-, + は実際はいらない)

include/global.php 113行目

- if (!((is_file($_SERVER["SCRIPT_FILENAME"])) && (substr_count($_SERVER["SCRIPT_FILENAME"], $_SERVER["PHP_SELF"])))) { 
+ if (!((is_file($_SERVER["SCRIPT_FILENAME"])))) {

新しい定義

  1. スクリプトを書く
  2. DataInputMethod を cacti で定義。
  3. Data Templates を cacti で定義。
  4. Data Sources を cacti で定義。
  5. Graph Templates を cacti で定義。
 

valgrind とは?

linux 環境で動く超強力なメモリデバッガー。
メモリリークや、セグメンテーション違反を起こしている正確な位置を教えてくれる。

以下、使い方メモ。
使用バージョンは、valgrind-3.2.1

メモリリーク検出など

$ valgrind --leak-check=full ./program arg1 arg2

ヒーププロファイラ

$ valgrind --tool=massif ./program arg1 arg2

メモリをデバッグしてみる

1. バッファオーバーランとメモリリークを行うソースコードを記述

$ vi main.cpp
#include <stdio.h>
 
int main()
{
    int *a = new int[2];
 
    a[2] = 0; // バッファオーバーラン
 
    return 0; // メモリリーク
}

2. コンパイルする

$ g++ main.cpp -g

3. 検証する

$ valgrind --leak-check=full ./a.out
 
... 省略 ...
 
・バッファオーバーラン検出
==10945== Invalid write of size 4
==10945==    at 0x80484AA: main (main.cpp:7)
==10945==  Address 0x410E030 is 0 bytes after a block of size 8 alloc'd
==10945==    at 0x40057F5: operator new[](unsigned) (vg_replace_malloc.c:195)
==10945==    by 0x80484A0: main (main.cpp:5)
==10945==
==10945== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 17 from 1)
==10945== malloc/free: in use at exit: 8 bytes in 1 blocks.
==10945== malloc/free: 1 allocs, 0 frees, 8 bytes allocated.
==10945== For counts of detected errors, rerun with: -v
==10945== searching for pointers to 1 not-freed blocks.
==10945== checked 87,724 bytes.
 
・メモリリーク検出
==10945== 8 bytes in 1 blocks are definitely lost in loss record 1 of 1
==10945==    at 0x40057F5: operator new[](unsigned) (vg_replace_malloc.c:195)
==10945==    by 0x80484A0: main (main.cpp:5)
==10945==
==10945== LEAK SUMMARY:
==10945==    definitely lost: 8 bytes in 1 blocks.
==10945==      possibly lost: 0 bytes in 0 blocks.
==10945==    still reachable: 0 bytes in 0 blocks.
==10945==         suppressed: 0 bytes in 0 blocks.
==10945== Reachable blocks (those to which a pointer was found) are not shown.
==10945== To see them, rerun with: --show-reachable=yes

ヒーププロファイラを試してみる

1. massifモードで起動する

$ valgrind --tool=massif ./a.out

2. massif.pid.ps ファイルが作成されている。Postscriptでは見づらいので、PDFへ変換すると良さげ。

雑感

頭良すぎだろ。惚れた。

 

Windows のターミナルソフト TeraTerm

vi とかで Delete キーが効かない問題。

結果として、キーマップ設定ファイルがおかしかったっぽい。

デフォルトで読み込まれるファイルが KEYBOARD.CNF。

そのファイルは、 IBMKEYB.CNF を元に作成されていて、

IBMKEYB.CNF のキーマップがずれていることが原因らしい。

前のバージョンを引き継いでるかららしいけど、過去のキーマップだから古いのかなー。

簡単な対策として。

1.とりあえずインストール先ディレクトリに移動(C\:Program Files\teraterm)

2.まず KEYBOARD.CNF をバックアップ用に __KEYBOARD.CNF にリネームして保存。

3.続いて FUNCTION.CNF をコピーして KEYBOARD.CNF という名前で保存。

4.TeraTerm起動後、設定 → キーマップ読み込み → KEYBOARD.CNF を読み込む。

5.設定 → キーボード の Delete にチェックが入っていたらはずす。

たぶん、これでおk。

 

WordPress2.5.1MovableType4.1 を比較した感想めも。

・導入
○ WordPress
× MovableType
WordPressの勝ち。ページ表示まで、アップロード込みで数分かからず終了。
MovableTypeもさほど難しくないが、CGIのパーミッション設定が面倒。

・デザインテンプレート
○ WordPress
× MovableType
WordPress の圧勝。配布されているデザインをフォルダごと指定位置にアップロードしたら管理画面から一瞬で変更できた。
MovableTypeはとにかく面倒。あるサイトで配布されていたデザインに変えるためには、プラグインが必要と知ったときはがっくりした。

・記事投稿
△ WordPress
△ MovableType
どちらもさほど差はなし。
個人的には、MovableTypeの方が、若干使いやすかったかも。

・ウィジェット
× WordPress
○ MovableType
MovableTyepの圧勝。管理ページ上から作成する事が可能。
WordPressは、どう作成していいのかすら良く分からない。プラグインがどうも要りそうな気がする。

・プラグイン
特に差は感じず。というか特に使用していないので分からない。

どうもWordPressの方が、全体的にお手軽簡単な様子。
ここはひとつWordPressにしますかねー。

5月 052008
 

Eclipse 3.2 から 3.3 に入れ直したらエラーが発生したので対処メモ。
WindowsXP, JRE 1.6

以下が発生したエラー。

JVM terminated exit code=-1
…略

最初にした対処は、eclipse.ini を編集して

-Xms40m
-Xmx256m

を削ることでした。
しかし、こやつらを削るとCDTのインデクサー作成などでメモリ不足とか言われてしまう。
どうにかならないものかなーと思ってとりあえず上記の削除したのを戻して、

-showsplash

だけを消してみたところ、なんかうまく行った。

なぜ!?

インストールしたのは、PDTのall-in-oneの Eclipse 3.3
詳しい事は、また再発したら調べる事にする。

今は快適に動作中。

 

ふと気づいたら10件以降の記事が見れなくなっとるーー!!

もしかして昔からそうだったのかな・・・。

ということで、ちょこっとカスタマイズ。

<div class="entry_navi_page">{prev_page_link} | {page_now}/{page_num} | {next_page_link}</div>

とりあえずこれで10件以降も見ることができるようになった。

相変わらず謎の定義がありますが、まぁとりあえずできたから良しとしよう。

誰がこの謎の定義をしているのだろう。・・・ロリポおじさん?

 

ロリポブログを少しカスタマイズしてみました。

タイトルをクリックしてその記事を選択できないのが常々なんだか不便だなぁと思っていたので、変更してみた。

{entry_title}

<a href=’{entry_permalink}’>{entry_title}</a>

に書き換え。

後はCSSをちょろっといじくり見た目を整えて終了。

これでエントリータイトルをクリックすれば、その記事に飛ぶようになった。

しかし{entry_title}とか定義はどこに書いてあるんだろう。
若干そこらへんが気になった。

3月 202008
 

そういえば、eclipseを入れるの忘れてたなーと思ってインストール。

今回は、PDTを入れてみようとやってみました。

とりあえず、all-in-oneではなく、普通のプラグインから入れようと思って、やってみたのだけども、これがなかなか面倒。

まずPDTを検索&インストールから入れてみようとしたら、WTPあたりがないと駄目と言われた。

Web Tools Platform (WTP) Project

これをプラグインから入れるときは、Required Prerequisites(必要な前提条件)も入れておく必要があります。

ここまで入れてPDTをやり直したら、構成エラー。

これは、あれか。eclipse3.2じゃダメってことなのか。

面倒くさくなったので、pdt-all-in-oneからインストール。

eclipse3.3になって、正式な言語パックが使えなくなってしまったので、Pleiades を入れて日本語化。

ついでにAptanaもプラグインとしてインストール。
http://update.aptana.com/install/3.2/ で大丈夫かな?と思ってやってみたけど、大丈夫っぽい。

これでばっちり!