2008年07月20日

[雑記] ダイエット成功?5ヶ月で 約9kg減

ダイエット

ダイエット開始してから 5ヵ月経過しました。
途中経過報告です。

左の元の数値は、去年の5月に偶々残っていた
(かなり太っていたころの)記録です。

体重:76.5kg → 67.3kg(-9.2kg)
体脂肪率:30.7% → 20.8%(-9.9%)
BMI: 28.8 → 25.3(-3.5)
体年齢:48歳 → 37歳(-11歳)
ウエスト:104cm → 89.7cm (-14.3cm)

ゆっくり無理なく痩せた結果がこれだよ!

目標は1年で 10kg 減というスローダイエットでしたが、
余裕で達成できそうです。

それにしても、
さまざまなダイエット法をチャレンジし続け、
今まで何一つとしてまともに続けなかったのに、
今回は続いて結果が出ていてびっくり!

それはそうと、
はけなくなって新調したばかりのズボンが、
ブカブカ になってそれもびっくり!だよ。

とはいえ、まだまだ体年齢が実年齢より 10歳近く高い w
ウエストや体重も、
運動をしていたころと比べると
まだデブデブなのでこれからといった感じです。

現在は基礎代謝がかなり減ってきていて、
燃焼効率が悪く、痩せにくくなってきたので、
基礎代謝を上げるようなトレーニング
(というか体操)
を1日15分程度少し取り入れてみています。

こちらは、3ヶ月くらいしてから結果が出てくる(気が長いw)、
ということなので、ゆっくりやっていきます。

まああせらないのがコツですね。

また、しばらくしたら報告します。

※あれ?前のダイエット開始時の記事消しちゃったかな……?

[2008/07/20]
※上の元の値は去年の記録なので、厳密には「5ヶ月で9.2kg減」ではないですね。タイトル変更しました。
※ダイエット開始時、今年の2月中ごろは 76kgなので厳密には「5ヶ月で8.7kg減」ですな。

[ 雑記 ]

2008年07月15日

[開発] <警告!>まだあなたのゲームにリプレイ機能を実装してはいけません!なぜなら……(後編)

この記事を読まずに、あなたのゲームにリプレイ機能を実装するのはあまりに危険です……。

なぜなら……。

gamedev02.jpg

前回のゲームにおけるリプレイの実装方法の続き、後編です。

お読みでない方はまずは前回からどうぞ。

乱数の処理

乱数は再現可能なものを使います。
最初に使っていたのは線形合同法でした。

GuNMeNのときは何を思ったか、
あらかじめ線形合同法で生成しておいた65536個の乱数テーブルを使ってました。
まあ、これはあまり意味ないです。
(たぶん、家庭用ゲームみたいなことがやりたかったのかと)

今は、乱数生成ルーチンには Mersenne Twister を使っています。
Mersenne Twisterも再現性があります

ちなみに乱数種(シード)の自分で初期化をする場合は、
そのシード値も記録する必要があります。

さらっと書きましたが、最初にまずハマるところですので注意を。

面倒くさいので最近は、乱数種の変更すらしてませんw
つまり、乱数種固定で初期化wwww

また、これは重要な点なのですが、
自分の場合は乱数オブジェクトを複数持っています。
今のプロジェクトだと主にメインの更新処理で使うもの用と、エフェクト用と、描画用を持っています。

乱数オブジェクトを複数持つ利点は、
ちょっとした変更に強いことです。
つまり、ちょっとした変更をしてもリプレイをずらさないようにすることができるのです。

エフェクト弄りたいなーってときは、
エフェクト用の乱数オブジェクトのインスタンスを別に持っていて、
ゲーム進行に影響を与えないようにしておけば、
エフェクトを弄っても、リプレイに影響がでません!!
(逆に、あくまでエフェクトがメインのゲーム進行に影響を与えない前提です。エフェクトの上にキャラクターが乗れる、とかいう仕様では無理です。まあ、そうなったとしても、それをエフェクト以外に割り当てるだけですが)

描画を飛ばす場合は、飛ばしていいものだけを書いておく

更新処理が固定フレームレートベースで、
描画をスキップするような実装をする場合、
前提として、描画処理と更新処理をわけます

そうなると、絶対に実行される更新処理の方(キャラクターの移動とか)は、描画の方に入れないようにする必要があります。

逆に言うと、描画の方には飛ばしちゃいけないものを入れないようにしないといけません。

例えば、こんな感じ。

自分の場合、描画処理でも乱数を使いたくなるので、
描画処理用にも乱数オブジェクトを 1つもってます。
そうすると描画が飛ばされたりしても、
更新処理用の乱数には影響がでません。

ハードウェアは変えないこと

ハードウェアが再生環境と同じアーキテクチャでないとダメだと思われます。
ようするに、リプレイを記録した環境と同じような計算をするハードウェア環境で再生しないとダメです。

これに関しては今は大丈夫ですが、将来どうなるかわかりません。
10年後は再生できる環境が残っているものでしょうか?

極端な例ですが、Intel社のCPUとモトローラー社(以前のMacの)のCPUとでは、
エンディアンが異なりますよね?
考慮していない場合は、同じように再生できません。
(もちろん、浮動小数などそれ以外にも考慮しないといけないものがありますが……。)

リプレイ時にキー操作

リプレイを再生中に、早送りとか、ポーズとか、終了したりとか。
あれ?キー判定どうすんの?

簡単ですよ!
メインで使っている(再生で使っている)キー入力オブジェクトとは別にリプレイ中のキー操作オブジェクトを生成して使うだけです。

だけです、さらっと書きましたが、キー入力周りをそういう風に組んどけってことですw

↓こんな感じ。

記録中は以下のような感じだとすると、

  • Player Aのキー入力オブジェクト(記録中)
  • Player Bのキー入力オブジェクト(記録中)

再生中は以下のような感じ。

  • Player Aのキー入力オブジェクト(記録から再生してるだけ)
  • Player Bのキー入力オブジェクト(記録から再生してるだけ)
  • リプレイ画面のキー入力オブジェクト(記録はもちろんしてない)

再生中のフラグが立ってるときだけ、「リプレイ画面のキー入力オブジェクト」を処理する。
(記録中は生成すらしない)

リプレイ画面のキー入力オブジェクトは、Player A(B)のキー入力オブジェクトのクラスを使いまわしてます(インスタンスでなくてあくまでクラス)。

あらかじめキー入力をクラス化しておけば、こんなのはサックリできますよ。

バージョンアップしても大丈夫なように場合わけする

バグ報告をもらってバグ修正したり、
バージョンアップしたりして、
前のリプレイが再生できなくなったりすると、
かなり萎えますよね?

そこでこの方法をとります。

ひそかに、前述の WireBattler や GuNMeN は、
(リリースした範囲の)昔のバージョンのリプレイも再生できます。

これは、リプレイのデータファイルにバージョン番号を埋め込んでおいて、再生時に古いバージョン番号の場合には、古いルーチンを動かしているのです。
ですので、昔のリプレイも同じように再生できます。

例えば、GuNMeNは最初にコミケでリリースしたバージョンより、
現在のリリースバージョンの方がバランス調整がしてあり、
キーボードでもプレイしやすくなっています。
なんと、その新しいバージョンでも、
昔のコミケの時のリプレイデータが普通に再生できるのです!
(現に、タイトル画面を放っておく事で見られるデモプレイは、昔のバージョンのリプレイをそのままつかっているのです)

その代わり、バグって落ちるリプレイとかは、
バグ報告をもらって直しても、依然、落ちるままですwww
(今はそうそうないですが、未熟な時代に(WireBattlerを作っていたくらいの時)頻発しました)

ただ、パラメータなどを外部に出している時はちょっと処理が増えるので面倒ですが、やる価値はありますよ。

ていうか、このこと初めてかいたよ!
ユーザーの視点から立つとリプレイデータが使えなくなる、ということは避けるべきは当たり前なのですが、やっている人どれだけいるのかなあ。

大体、リプレイ実装の際の注意点はこんな感じですね。

コラム:洋ゲー関係のリプレイについて

個人的には、市販のFPS、RTS類のリプレイが気になっているところです。

昔から FPS、RTSなどは大概可変フレームレートですし、
どう同期をとっているものやら、と。

自分が一時期プレイしてた Tribes 2 なんかは途中から記録して、そこから再生も可能でした。
ネットワークゲームですが、記録するマシンのネットワークが遅くてもばっちり対応できてました。
(Tribes2のネットコードの優秀さは定評があったのをさしおいても)

もちろん、可変フレームレートでも、他機種でも再生可能でした。

あとは、RTSもきちんとできますよね。
自分がよくリプレイを見ていた Rise of Nations や Command & Conquer Generals あたりもかなりリプレイはきちんと動いていました。

ただ、ほとんどのRTSはバージョンアップしたら、
前のバージョンのものが再生できなかったり、
再生できても途中からずれるという、けっこう適当なんだけれども……。
(パラメータやプログラムなどのバージョンわけの仕組みはずさんな模様)

まあ、この辺の洋ゲーマジックは一度暴いておきたいところです。

参考になるのは Quake3 のソースとか、
Torque Engine(Tribes2用ゲームエンジン)とかかな?

まとめ

以上のような形でリプレイ実装の記事を書いてみましたが、参考になったでしょうか?

ちなみに、今回の記事で紹介した実際にリプレイが動いている自作ゲーム「WireBattler」、「GuNMeN」、「GanGanGan 体験版」の全てのソースファイル(Delphi用)は「GuNMeNパッケージ版」に収録されています。

実際にリプレイが実装されて動いているゲームとそのソースファイルが見てみたい方は、お手に取ってみて下さい。参考になるのではないかと思います。
(各ゲームのソースコードは CDの /omake/source ディレクトリに .zipファイルで入っています )

ぜひ、あたなも自作ゲームにリプレイを実装してみてください。
ゲームの提供の幅が広がるはずです。

では、今回はこの辺で終わりにします。
ありがとうございました。

[2008/07/20] 誤字脱字修正。

参考リンク

[ 開発 ]

2008年07月13日

[開発] <警告!>まだあなたのゲームにリプレイ機能を実装してはいけません!なぜなら……(前編)

この記事を読まずに、あなたのゲームにリプレイ機能を実装するのはあまりに危険です……。

なぜなら……。

gamedev01.jpg

さて、ちょっと前の話題ですが、
リプレイに関する話題が流行っていました。

そのことについてうちでの実装方法を書いてみようと思います。

うちの場合は、基本的に入力情報を全部記録して、
再生時に与えてやるという感じです。
いわゆるキー入力記録タイプ

面倒くさい気がしますが、入力情報を取得するAPIやライブラリにラッパーをかませてやれば簡単です。

大概、WireBattlerとか GuNMeNのときに悩みまくったので、
それ以降、このタイプの記録方式ではそんなに苦労していないですね。

自分のリプレイ実装の実績

  • WireBattler:2D格闘ゲーム
    リプレイの他に、もっとも連続技をつなげたところから再生する機能もあり
    固定フレームレート
  • GuNMeN:2D固定画面アクション
    インターネットランキング対応で、他人のリプレイをダウンロードして再生することもできる。
    固定フレームレート。
  • Gan Gan Gan:2Dシューティングゲーム
    今のところ体験版のみのリリース。
    ステージごとに再生が可能。
    可変フレームレート(但しベースは60FPS)

入力情報記録タイプで気をつけることをいくつか

実績を見てわかるように、この記事では、基本ベースフレームレートが固定のものに使えるリプレイのテクニック及び注意点を解説しています。

ぜひゲーム作りにお役立てください。

途中でずれたらオワリ\(^o^)/

この入力情報を記録するタイプでは、
最初から再生して、途中でずれたらそこで失敗になります。
一度ずれたら、その後ずーっとずれっぱなしになるためです。

なので、かなり厳密に作る必要があります。

キー入力の記録

まず、この方法の基本はAPIから取得したキー入力を全部記録しておくことです。

かなりメモリーを食うのでは?とか思った人います?
大丈夫です、安心してください。
まあ計算すればすぐにわかりますがたいした容量ではありません。

カーソル4方向 + 4ボタンなら 8bits=1byteです。
60FPSとしたら、30分記録するのに、

1 * 60 * 60 * 30 = 105 kbytes

2人プレイなら2倍、ボタンが2倍ならさらに2倍になるだけです。

全然大丈夫ですよね?

というか、10年以上前から オンメモリーで全部記録していましたが問題はなかったです。
もし精神的に嫌なら、zlibのストリームにでも突っ込んでいけばよいのではないでしょうか?
(WireBattlerのころは一応、自前でリアルタイムにランレングス圧縮をかけてました。今は素でオンメモリーストリームに突っ込んでいるだけです)

記録と再現の仕方ですが、ラッパーを作ってやるとよいです。
つまり、記録時に実際に入力したキー情報をラッパーを通した段階で記録し、再現時には実際のキーは無視してそのラッパーから記録したものを出力してやるだけです。

そうすれば、キー入力を処理する外側からは、
まったく同じように見える(=同じようにプログラムを組める)よね?

全部初期化すること

基本的にプレイ開始時に全部初期化することです。
初期化を忘れて、前のプレイの状態変数なんかが残っているとずれます。

一番簡単なのは、オブジェクトのインスタンス確保で、データがすべて初期化されるように最初から組んでしまうこと。

そうすれば、プレイが始まったらインスタンス確保、
プレイが終わったらインスタンス開放。

つまり、メモリも一旦全部開放してすっきりさわやかにしてしまうのです。

浮動小数点がらみ

これが実はあまり再現ができてなくてよくわかってないのですが、
浮動小数点の丸めモードの違いがあると、計算結果がずれるんです。

それがどうも他のアプリケーションの影響などで、突然変わることがあるらしいとか。
(不確定すぎてすいません)

で、かなーり昔から(10年くらい前から)なんですが、
浮動小数の算術関数に FINIT でコントロールワードのリセットを入れまくるっていう方法を使ってました。

例えばこんな感じです。

で、Sinは直接呼ばずにこれを通すと。

ただ、この現象については不確実なので責任が持てませんw

CPUにより演算結果が変わるライブラリがある

Direct3DのサポートライブラリのD3DXとか使うと、場合わけして勝手に最適化したルーチンが呼ばれるためにCPUによって演算結果が変わるようです。
(主に浮動小数点。またか)

けっこういろいろなゲームの作者さんが「リプレイがずれる」という報告を受けているようなのですが、ほとんどが、これか、前述の浮動小数の誤差だと思います

いろいろ解決策はあるようですが、
自分の場合は、自前実装で回避でした。

というか、Direct3Dまともに使ったことねえwww
(DirectDraw派→CPU描画派→OpenGL派(いまここ))

コラム:WireBattler の途中再生機能

ちなみに、対戦格闘ゲーム「WireBattler」の最も多くつなげた連続技を見られる機能、つまり、途中から再生する機能は、記録時にある地点(地面にダウンしたとき)にフラグを立てておいて、リプレイ時にそこまで描画を全部すっとばして早送りしているだけなのです。

なのでCPUが遅いとけっこう時間がかかってしまいます。

次回に続く

長くなりすぎたので続きは次回に!

後編書きました。

参考リンク

[ 開発 ]

2008年07月03日

[投機] 去年のenSPA読んでた(FX関連)

trading02.jpg

最近、投機対象を Forex(FX、為替)に移しています。

それで 情報集めに Forex の雑誌ってないのかなーと
本屋をうろついていると、
enSPA(エンスパ) という季刊誌が目に留まり
予想以上におもしろかった(ネタ的に)ので、
去年からのバックナンバーを取ってみてました。

この雑誌のファーストインプレッションは……

 ネットで叩かれている人、出すぎwwww

名前を出すと失礼なので出せないのですが、
(というか、わかる人は一発でわかる)
2chとか掲示板でやたら叩かれている人が、
成功者として出ていたり、アドバイザーとして
コメントを出していたりして、
笑ってしまった。

それ以外の有名ブロガーなんかも出ていて、
興味深い雑誌になっている。

内容としては、
FX関連は、毎回、主に初心者向けの講座と
成功者、失敗者の特集。
毎回ですw

システムトレードに関する話題も載っていた号も
あったけれど、これもさわりだけ。

あと、サププライムローン前と後で
ガラリと内容が変わっていて、これは笑……えない。

円高前:キャピタルゲイン派とスワップ派が同じ割合で紹介
円高後:スワップ派死亡の体験談半数以上

体験談よむだけで、歴史が追体験できる。
この雑誌のいいところは、失敗談も同じか成功の話以上に載っていることかもしれないなあ。

いまから為替に参戦するとしても、
歴史的イベントを体験できていないというのは不利だろうから、
こういう雑誌で少しでも知っておくのはよいかもしれない。

[ 投機 ]

2008年06月20日

[webサービス] 「ねむログ」でどれだけ生活が改善したか

先日のエントリーにて、

おかげ様で、不規則な生活は少なくなり、睡眠の傾向はかなり改善されてきました。
当初はかなりガタガタの生活スタイルでしたから。

なんて書いたのですが、
睡眠時間の記録サイト「ねむログ」でどれだけ生活が変わったか?
実際に見比べてびっくり!!

早速、ごらんに入れましょう。

まずは、睡眠時間だけのグラフ。

画像:「ねむログ」付け初めのころの記録(2007年1月、ちょうど1年半前)

「ねむログ」昨年の睡眠時間グラフ

画像:今月の記録(2008年6月)

「ねむログ」今月の睡眠時間グラフ

まあ、睡眠時間はそんなに変わらないですよね?(どちらも寝すぎだけど)

さて、では、先日実装された新機能「期間タイプ」のグラフで就寝、起床時間を24時間のタイムスケールで表示してみると……。

画像:「ねむログ」付け初めのころの記録(2007年1月、ちょうど1年半前)

「ねむログ」昨年の期間タイプグラフ

リズムガタガタでしたな(´д`)

画像:今月の記録(2008年6月)

「ねむログ」今月の期間タイプグラフ

リズムがしっかりしてきている!!(`・ω・´)

  こ、これはすごい!

正直な話、すごいと言わざるをえないwwww
こりゃ「ねむログ」の開発者様に足を向けて寝られませんなw
(しかも、さっそく新機能が役にたちましたなあ)

ここ一年で、持病のうつ病傾向の改善がかなりあるし、睡眠時間とも相互的な関係もあるだろうし。
これはよいことだなあ。

この調子で続けていきたいと思う。

参考リンク

[ webサービス ]

2008年06月17日

[webサービス] 睡眠時間の記録サイト「ねむログ」がパワーアップ!

新しい「ねむログ」

以前に紹介した生活習慣改善のため、睡眠時間の記録に使わせていただいているサイト「ねむログ」が新機能を搭載し、パワーアップしていました
パワーアップ箇所は以下。

  • 睡眠時間グラフの改良
    • 夜寝と昼寝が区別して分かるように
    • 祝日、祭日がわかりやすくなった
    • 目標睡眠時間、目標就寝、起床時間に線が入れられるようになった
    • 縦グラフの他に、横グラフも選べるように
    • パッと1日いつ寝て起きたかがわかる「期間タイプ」グラフの追加
  • 就寝・起床グラフの追加
  • 「眠りの状態」「今日の気分」など記入できる項目が増えた

画像:縦グラフ

「ねむログ」新機能 縦グラフ

画像:横グラフ

「ねむログ」新機能 横グラフ

画像:「期間タイプ」グラフ

「ねむログ」新機能 期間タイプグラフ

画像:就寝起床グラフ

折れ線

「ねむログ」新機能 就寝起床グラフ(折れ線)

横タイプ(分布図?)

「ねむログ」新機能 就寝起床グラフ(横タイプ)

省略しましたが、就寝・起床グラフは就寝のみ起床のみもそれぞれ見られます。

前より良くなったと感じたところ

  • 昼寝した分もすぐにわかる
    以前は昼寝と夜寝と一本のグラフになっていたのですが、今はしっかりわかるようになりました。
  • 「期間タイプ」グラフでいつ寝たか、起きたかが一目でわかる!
    ただ「15時間、多めに寝た」というのだけでなく、「こんな真昼間から寝てる!」というのがすぐにわかるようにw

自分の場合、主治医の健康管理の一貫として、
グラフを提出しているので、違った角度からの分析がしやすく
本当に助かります。

微妙なところ

微妙になったところもいくつか。

  • 記入が項目が増えた。
    記録がおっくうになるかも?と、思いましたけど記録必須ではないみたいなので問題なし?かな。
    (たくさんの記入項目を見て、初めて来た人が抵抗感あるかも?余計なお世話かww 今までどおりなシンプルなモードがあるとよいのかなあ)
     
    自分としては「簡単で単機能」というのがよかったと思っているので、追加要素は記録しないだろうなあ、という気はします。
  • 日付を選んだ時に、自動でページ遷移しなくなった。
    便利だったのに何故か「移動」ボタンを押さなくてはいけなくなった(´д`)
  • グラフが JavaScript 描画になった?ので、「コピペ」できなくなった。
    グラフをコピーして、画像編集ソフトで編集したりしてたので、ちょっとだけ面倒に。
    ただ、今のすばらしいグラフ描画には代えれない!
    (しかし、JavaScriptであんなきれいなグラフを作ることができるのに驚いた。サーバーに負担かけないし、よい技術だなあ)
     
    グラフの「コピペ」は、SleipnirのSnapCabプラグイン(スクリーンショットを便利に取るプラグイン)を使うと楽なことに気づいた。あまり問題ないかも。

改善してほしいなあと思うようなところ

ついでなので、思いつく要望も書いてみますヽ(`Д´)ノ

  • 睡眠時間を1日に1度記録していたら、自動で「追加」モードになってほしい。
    昼寝を記録しようとして、いつも「変更」モードになっていることに気づかず、間違って既存の睡眠時間を上書き変更してしまうことが多い orz
  • 就寝時間の記録がもっとすぐに(簡単に)できないか?
    グラフが大きくなったり、グラフ選択ボタンがついたり、説明が増えたり、記録要素が増えたために、就寝時間の記録がしにくくなった。
    具体的には、
    • 記録画面までのスクロール量が増えた
    • 「記録する」ボタンがずーーと下の方にいっちゃた orz
      など。
      (基本的にグラフのない「睡眠時間記録・編集」専用のページをつかえということなのかも?)
  • 日付を選んだ時に自動でページ遷移してほしい
    改悪されちゃった気がするw

勝手なこと言ってすいませんw

みんなが、みんなそう思っているわけではないと思うので、
ユーザースタイルシートか、スクリプト(Sleipnir使いだから Seahorse だけど)か何か、書いてみようかと思う。

謝辞

ダウンロードできるcsvのデータを見ていたら、
「ねむログ」は1年半もつかっていることに気付きました。
飽き性なのによく続いたもんです。

おかげ様で、不規則な生活は少なくなり、睡眠の傾向はかなり改善されてきました。
当初はかなりガタガタの生活スタイルでしたから。

今後も、使わせていただきたいと思います。
よろしくお願いします。

次回は、どの程度生活が改善されたか、を記事にしてみたいと思います。

参考リンク

[ webサービス ]

2008年05月19日

[投機] 物事を生涯続ける上で大事なこと

lifetime.jpg

今は、デモトレードや検証期間で、
実費は市場につっこんでないのですが、
それでも楽しいと感じている件。

そういえば、
以前の日記で「投資は仕方なしにやっている」
みたいに書きましたけど、
あれは訂正してもいいかもしれない。

投資は、自分にとって実は結構、楽しいことに気づきます。

自分の場合は主にシステムトレードなのですが、

  • フォーラムなどで情報収集
  • あたらしいテクニカル指標を発見する
  • アノマリーを発見する
  • 聖杯をみつけたと浮かれる
  • 実際に市場で試す

いずれも、楽しいわけですね。

手段が目的化するのはよくない、といいますが、
ビジネスもそうですけど、
楽しくないと続けられません。

逆にですよ、逆に……。

結果として失敗しても、思考として
手段に対して楽しいとか、腕が上がったと感じれば苦にはならない。

例えば、投資では

「損失を出したが、新たなトレードの知識が得られたからよしとする」

とか、ビジネスで言えば、

「上手く儲からなかったが、セールスの仕方がわかった」

というような、結果よりも経験や知識の向上に喜びを見出す考え方は、ものごとを生涯続けていく上で大事な考えです。

[ 投機 ]

2008年05月10日

[投機] 投資ツール「Tactico」がおもしろい

OmegaChart の作者が法人になってから先鋭開発中の投資ツール「Tactico」がおもしろいです。

OmegaChartに有ったシステムトレード用のスクリーニング(一定アルゴリズムでの銘柄検索)とバックテスト(過去データによる検証)の機能、
その他にも、デイトレード用の機能も付加されている投資ツールの模様です。

コンセプトである「相場を楽しむ」に関して、
9割が退場する株式相場で見銭切って楽しめるのか?
というのはおいておきましてですね、
ツールとして見てとても興味深いです。

Youtubeに動画がありました。

……ゲームみたい(´д`)

楽天のMarketSpeedも淡々とチャートが出て、
数値が変わるだけだしなあ。

Tacticoのスクリプト言語について

また、あらたなテクニカル分析用の指標の定義や、
スクリーニング(銘柄選び)に使うスクリプト言語も
作者の趣向が反映されていてとても興味深いです。

 その詳細はこちら

関数型言語+OOP(オブジェクト思考)っぽい。
つまり、関数型ベースのマルチパラダイム言語ってことですね。

最初は、OmegaChartのときも Excelの延長上?な感じで
「うーんイマイチ」という印象しか受けなかったのですが、
もともとこれがやりたかったのかもしれません。

ボリンジャーバンド(テクニカル指標の一つ)の定義とか見ましても……

prices.close(len).map の Rubyよろしくなメソッドチェーンとか
map,lamda みたいなリスト処理みたいなところとか、
その手の言語好きな自分はすごくワクワクする仕様。
(文が駄目で、式オンリーでもletで書けるんだね、とか)

これは、やってくれました!
「そこにしびれるあこがれる」感じだなあ。

まあ、関数型言語ベースということで、
初心者の突き放しっぷり感もまたよしですw

さてちなみに、Tactico以外のその他の投資ツールの搭載スクリプト言語はというと……

  • TradeStation の EasyLanguage(独自) とか
  • AmiBroker の AFL(C風) とか
  • Wealth-Lab Developer の Wealth Script(Pascal風)とか
  • MetaTraderのMQL4(C言語風)とか
  • RightEdge の C#,VB.net とか
  • OpenQuant の C# とか

みんな手続き型言語なのですが、
もしかすると

……もしかすると、
投資ツールのスクリプト言語も関数型にとって代わられたりする日はくるのかなあ、と。

P.S.

ふと、Tacticoのスクリプトは
prices.close(len).mapみたいにできて、
かつ関数型ってことで、
なんか、F# みたいだと思った。

F#触ってみようかな。

P.P.S.

『Expert F#』って本のPDF版を買ったので、
F#触ってみてます。
(てかamazon.co.jpクソタカス!!)

※Youtube動画貼り忘れたので貼りました
※※参考リンク貼り忘れたので追加

参考リンク

[ 投機 ]

2008年04月30日

[雑記] 深みにハマるクセをなんとかしたい件(多読したい編)

※むしろ、テキストでマインドマップ書いてみた編になりました

多読の習慣をつける
 ↓
本をたくさん読めるようになりたい
 ↓
フォトリーディングを導入!
 ↓
図解版の本は読んでだいたい理解
 ↓
実践あるのみ!
 ↓  ↓
 ↓ そういやマインドマップの書き方は?
 ↓  ↓   ↓
 ↓  ↓  マインドマップのソフトがほしい
 ↓  ↓   ↓
 ↓  ↓  何がいいんだろう?
 ↓  ↓   ↓
 ↓  ↓  よさげなツール
 ↓  ↓   ↓   ↓
 ↓  ↓   ↓  iMindMap
 ↓  ↓   ↓   ↓
 ↓  ↓   ↓  公式ツール(有料)
 ↓  ↓   ↓   ↓
 ↓  ↓   ↓  本来のマインドマップが描ける!
 ↓  ↓   ↓  
 ↓  ↓  FreeMind
 ↓  ↓   ↓  
 ↓  ↓  フリー(無料)
 ↓  ↓   ↓  
 ↓  ↓  微妙?なマインドマップが描ける
 ↓  ↓  
 ↓ 本を買おう
 ↓  ↓  ↓
 ↓  ↓ 「ザ・マインドマップ 」
 ↓  ↓ 
 ↓ 「図解・マインドマップノート術」
 ↓
「斎藤 孝」風に色分けしてマーキングしたい
 ↓
3色蛍光ペンがほしい
 ↓
3色蛍光ペンなんて売ってねええーー
 ↓  ↓
 ↓ 3色ボールペン(ハイテックCコレト)で我慢?
 ↓
2色蛍光ペン(SpotliterVW) x 2 で我慢?

どんどん派生していく件。

これ自体をマインドマップで書きたくなってくる。

むしろ、新ジャンル、テキスト・マインドマップということで。

まあテキストで書いても トニー・ザブン のマインドマップのルールと全然違ってきちゃうけど。

[ 雑記 ]

2008年04月25日

[雑記] 金持ちニートさん、貧乏ニートさん

ニート状態の何が問題かというと、
資産が減っていくことです。

元々、資産なんてないのですが、そのない資産がさらに減ります。
ニートが問題じゃなくて、ニートの状態が問題。

自分は「金持ちニートさん、貧乏ニートさん」という本を出版する
という目標を立てました。

具体的な LastAction に落とし込めるように言い換えますと、
「2年後までにニートで日収3万円になる」という状態に持っていき、
「そのノウハウを出版する」ということになります。

そのためには、お金は減らすのではなく、
日々、積み重ねなくてはならないのです。

新たな目標

実は、億万長者が目標でもあるので
「ニートで資産1億円」にしようと思っていたのですが、
「資産」というのはあまり重要ではなく、
「お金を生み出してくれる仕組み」を持つのが重要と考えるようになりました。

それは「資産」はただ使うとなくなりますが、
「仕組み」はその資産がなくなっても、
増やしてくれるものであるからです。

また、「2年後までにニートで日収3万円になる」は、
ピータードラッカーのプロジェクトマネジメント手法流で言うと、
「SMART objectives」に乗っ取って目標を具現化した形です。

SMART objectivesとは?

「SMART objectives」は、
実現できる目標を立てるための法則みたいなもので

  • Specific: 具体的である
  • Mesurable: 数値化できる(計測可能である)
  • Achievable: 到達可能である
  • Relevant: 適切である
  • Time-bound: 期限がある

の頭文字をとったもののことです。
(ちなみに神田昌典氏の「非常識な成功法則」では、
Agreed: 同意している、Realistic: 現実的である、でした。
どちらもよいですね。)

「SMART objectives」はようするに、
ただ「金持ちになりたい」とか「やせたい」とか
「もてたい」とかの目標はあかんよー、

目標は「もっと明確に!!!」という話です。

まとめ

うんちくで、長くなりましたが、
「貧乏ニート」はいやだ「金持ちニート」になろう、
そのためには明確な目標をもつことが重要、
ということです。

[ 雑記 ]

2008年04月14日

[旅] 伊勢半島一周旅行 4日目

日付が飛んだ。
旅行、4日目は京都がメインでした。

京都めぐり→金閣寺→銀閣寺→高台寺→帰宅

この日は『MIO C310』(トイナビ)が大活躍!
古い街だと、ばっちり使えますね。

金閣寺

金閣寺

金閣寺、綺麗だよ、金閣寺。
本物ははじめて見ました。
こう、池に写りこむのがいいですね。

銀閣寺

銀閣寺

工事中でした orz

しかし、屋根がない銀閣寺などそうそう見られない!
これは良い経験。
(ポジティプ・シンキング)

銀閣寺 謎の庭園

そして、謎の庭園。
銀閣寺は、金閣寺に比べて質素なイメージあるからか、
その代り周りが賑やか。
後付けだろうけど、こういう様式は好きだなあ。

高台寺

高台寺

高台寺は、豊臣秀吉とねねを祭った寺です。

高台寺 竹林

高台寺 庭園

多数の建物、広い敷地、立派な庭園、美術品の数々。
金閣寺、銀閣寺のようにメインにこれだ!というものはないのですが、
全体的に立派な寺です。

ここは穴場ですね。
行こうか迷っていたのですが、来て正解でした。

途中、展示物で年表を見たのですが、
ねねって13歳で結婚したのですね。
秀吉ロリコ(ry 今だと考えられない年齢です。

帰宅、まとめ

というわけで、あとはずいーと車で帰宅。

今回は、けっこう遠出でしたので、
微妙に疲れました^^

宿泊施設は値段そこそこで、
風呂がよいところ(1日目)、料理がおいしいところ(2,3日目)が当たりでした。

評判だった伊勢半島もいけたし、
京都もじっくり回れたし、かなり満足
(京都は昔きたことあるらしいけど記憶にないんだなー)

たまにする旅はよいね。

[ ]

2008年03月28日

[旅] 伊勢半島一周旅行 3日目

伊勢半島一周旅行もいよいよ後半。
3日目は、

 白浜→(3時間)→京都→東寺(五重塔)→苔寺×→鈴虫寺→ホテルサンクレイン(京都)

京都がメインですな。

東寺(五重塔)

五重塔

五重塔のある東寺です。

五重塔って期間外だと中に入れないのね。

桜?じゃなくてたぶん梅だと思うのですが、
ちょうどいい時期で、花が綺麗でした。

苔寺×

苔寺は行ったものの、
残念ながら自動車などの公害の関係で、
一般公開終了になってました。

……10年以上前に orz

事前予約が必要らしい。

えらく昔に行った人の記憶を元に
「苔寺いいよー」的な情報を当てに来てしまっていたようだ。

鈴虫寺

苔寺がダメだったので、
間近にあった鈴虫寺にGO。

たいへん小さな寺なのですが、
訪問者が多く、30分待ちでした。

実は中に入って、住職の話を聞くまで
どんな寺が知らなかったのですが、
なんでも「一つだけ願いがかなえに来てくれる地蔵さん」、
とその願いのためのお守りを販売しているのだとか……。
(住職がフガフガ何言っているかわからんかったんですけど、これだけはわかった)

そして、
住職の話が終わった後、驚愕。

半数以上の人が例のお守りを買っている

コンバージョン率(購入率)、高すぎ。
笑いました。

あとで気付きましたけど、TVや雑誌、
インターネットでもけっこう
宣伝しているみたいで、
やはり、お守り目当て来ている人が多いみたいです。

訪問料とか、収容人数を計算したら、
時給16万円ぐらい!儲けまくりだろw
2度笑いました。

京都の数百から千もある寺の中で、
小さな寺が生き残るために、
うまいことビジネスモデル作って運営しているものです。

ホテルサンクレイン

今回の旅の最後のお宿は、
ホテルサンクレインでした。

予約時どこも空いてなく偶然予約できたところ。

ここはなんと言っても、
夕食の京料理フルコースが ウマイ

ビ、ビジネスホテル風なのに!びくん!びくん!!

懐石はあまり食べたことがなかったので新鮮でした。
何より、若向けな感じの作りでした。

何がよいって、こってりしない薄味で、
ちょうどお腹が膨れる分量だったこと。
フルコースなので時間を掛けたせいもあるかもしれません。

写真撮り忘れて、イメージをお伝えできないのが残念なところです。

温泉が湧水じゃなかったハメ(人工温泉?)を
カバーしてあまりあるくらい、
ここは料理がおいしい!

うーん……
値段はそんなに高くないのになあ。

続く4日目最終日は、京都めぐりです。
(4日目最終日につづく)

[ ]

2008年03月27日

[旅] 伊勢半島一周旅行 2日目

和歌山、伊勢半島の旅です。

勝浦→瀞峡(どろきょう)→(3時間)→円月島→白良浜→三段壁→千畳敷→活魚・鍋料理「風車」

瀞峡は勝浦方面、
それ以外は、白浜方面です。

今回は写真多めでお伝えします。

瀞峡

瀞峡ジェットボート

瀞峡 風景

瀞峡は川をボートで上って行き、
上流の絶壁?を楽しむコース。

円月島

円月島

円月島。
ここから白浜方面です。

夕日がちょうど円月に重なる時間があるんだとか。
残念ながら時間が合わずに見られませんでした。

白良浜

白良浜

白浜の名物、白良浜(しららはま)
砂が白い!
南国のビーチを再現しているみたい。

千畳敷、三段壁

千畳敷

三段壁

千畳敷、三段壁は絶壁にある岩盤です。
ぎりぎりまで行けるので危ない。

活魚・鍋料理「風車」

風車

宿泊した所は、活魚・鍋料理「風車」
クエ料理の専門店で宿泊もできます。
予算の都合で今回はクエなしのコースです( ´д`)

 イセエビ!イセエビ!イセエビ!

写真には写ってないのですが、
とにかく伊勢エビづくしでした。

クエなくても旨いよ!?

北陸地方では食べられない料理が食べられ、
食事がかなりアタリでした。

料理店なのですが、上の階にあるマンションで
宿泊もできます。

また、実は宿泊がオマケのようで、
内風呂がなんと温泉!!
おかげで長旅の疲れを癒してゆっくりできます。

続く3日目は和歌山を脱出して京都へGO!
(3日目に続く)

[ ]

2008年03月26日

[旅] 伊勢半島一周の旅 1日目

出発!

先日、伊勢半島(大阪のずーっと南、和歌山の南端の方)に療養しに行ってきました。

富山出発→(この間11時間)→那智大社→勝浦のホテル浦島[泊]

今回は、諸事情により高速初体験で車を運転。
なげー。
和歌山はさすがに遠いよ!

那智大社

那智大社

途中で 『MIO C310』(トイナビ)
古いマップに騙されつつも、
那智大社に到着。

那智の滝

名物は那智の滝ですな。
非常に高い滝で、間近で見るとド迫力。
マイナスイオン(似非科学)をあびつつ
まったり一息つく。

さて、この後、那智大社の本堂まで
長い階段を上っていくのですが……
  ↓
足がくがく。
途中でダウン。
  ↓
本堂見れずに帰ってきました orz

オツカレチャーン!!

ホテル浦島

ホテル浦島

さて、宿泊は、ホテル浦島というところ。
実はこのホテル浦島はかなりありえない、
立地はまるで「軍艦島」です。

なんとホテルのある離れ小島に船で向かいます

小島が丸々施設になっているんですねえ。
3000人も収容できるとか……。
写真だとこんな感じ。

写真だとちょっとわかりにくいので、
公式のwebページ見てもらえるとよくわかります。

なんていうか、帰ってから知人と話していたのですが、
嵐で船や電話が不通になり、島に閉じ込められてもおかしくない
いつ「金田一少年の事件簿」が起きてもおかしくない
そんなところです。

冗談はさておき、
ここの「売り」は、ズバリ「お風呂」です。

安いコースだったので料理はまあおいておきまして、
お風呂が最高ですよ、ここは。

大洞窟温泉忘帰洞

6つの風呂(うち半数は露天風呂)があるのですが、
すごいのはその一つ「忘帰洞」
ここは、洞窟の中に温泉があるのですねえ。

残念ながら写真撮影不可だったので、
公式ページを見ていただくとよいのですが、
湯船の真横が、絶壁で海になっております。
まさに絶景です。

海を見ながら、海の音を聞きながら、
温泉につかることができます
温泉のお湯も心なしか海水?っぽくしょっぱい。

山上露天風呂 狼煙の湯

また、その他にも、
エスカレーターで、
島の山の頂上に行ける露天風呂があります。
街が一望できます。
夜行くと非常にきれい!

なのですが、冬の夜で風が強かったので、
あまりに寒くて死にましたw
体を洗うのは別の風呂にしましょうw
(女湯は仕切りがちゃんとあるらしい)

二日目は、南紀白浜方面です。

(二日目に続きます)

[ ]

2008年03月15日

[雑記] はてなの質問の反響があった(プログラミングのスピードを上げる方法はありませんか?)

いつも見ている 『オレンジニュース』 を見てたら、
前に自分が「はてな」にした質問が載っていて吹いた。

しかも、そこにとりあげられていた記事でさらにまとめて消化されている方が
おられてびびりました。

前に自分は、めちゃめちゃ気合い入れて考えて解答に返信した揚句、
一部、継続してやるしかない的な結論に転化してしまっていて、
けっこうゲンナリだったわけですが、
上記ページの teruyastar さんは、かなり興味深いまとめかたをされている。

しかし、Part 2のあたりから自分にはよくわからない方向へw

とりあえず、Part 1あたりを読んで思ったこと。

  • 「考えない!」
    考えなくて組めるように、あらかじめやることを決めておけばよいかな?
    その場、その場の行き当たりばったりプログラミングは避ける
  • 「楽しく!」
    うーん。難しい。
    やることがみな楽しいなら苦労しないw
  • 「いらないものは捨てる」
    完璧主義は時間の無駄

が大事だろう。

「楽しく」プログラミングはできるか?

この中で「楽しく」プログラミングが一番難しい。
昔と違って、そのときそのときで興味の向きが変わるし、
打ち込みたいと思うものが違う。

仕事でこれを生かせないか?(ワクワク)
 ↓
提案
 ↓
通る
 ↓
(一週間後)
 ↓
時間かかるなあ
 ↓
(一週間後)
 ↓
つまんね

最近はこんな感じばっかりだ。

また基本的に、
集中するための「楽しさ」を生み出すようにするためには、
寄り道しないといけないことが多くて、
「スピード」との天秤にかかることも多い。

つまらないものはつまらない。

「楽しい」もの

しかもよくないことに、
期待を込めて実際にやっていないものの方が
長続きするし楽しい。

二年前くらいから、
Ruby on Rails は、本だけ5冊くらい買って、
パラパラめくって楽しいんでいる。

時間あるときにちょこっとはデモプログラム作っては
楽しんでいるが、
本腰を入れてそれで何か作ろうとはしてない。

興味がすぐ変わるようになってから、
むしろ、二年も興味が続いているのが珍しい。

まあ、それくらいの実験しているときや、
期待がこもっているときが、
一番楽しいということだろう。

「スピード」より「楽しさ」の話になってしまった。

「考えない」こと

自分は小さい頃から
とにかく物事に時間がかかる方だと思ってきた。

しかし、はたから見ているとそうでもない部分があるらしい。

基本的に、自分の経験則では、
小さい頃からスピードを発揮できている部分は、
「考えない」ように落とし込めた部分であるということである。

たぶん、これは自分だけに適用できることじゃないはず。

詳しくはまた別のエントリーで書いてみたい。

「いらないものは捨てる」こと

それって本当に要るもの?と問いただす習慣がいる。

  • テストファーストは捨てる
  • 余計なライブラリ構築は捨てる
  • 完璧は捨てる
  • 汎用性は捨てる
  • 高い完成度は捨てる
  • 将来性は捨てる

どれだけ可能だろうか。

全部できなくても、
パレートの法則(20対80の法則)でいえば
2割の時間が非常に時間がかかる部分を捨てればいいはず。
常に「20対80」これを意識する必要がある。

まとめ

  • 考えない
  • 楽しく
  • 捨てる

質問した時に比べて、
結構、まとまってきたんじゃないかなあ?

自分にできそうな(に見える)部分も少なからずある。

(しかし、自分がかかわったものがオレンジニュース入りするの