スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Brazilian Kaleidoscpe - なつかしのフライヤー

そうです!

あの伝説のパーティー、ブラジル万華鏡ことBrazilian Kaleidoscpeのフライヤーが発掘されました!


こいつは僕が描いたイラストなのですけど、とある色男の依頼により過去のデータを発掘。

そして謎のMOディスク(笑)から復元されたものになります。

他にも色々発掘されたのですが、折を見てアップしていきます。

…そもそもブラジル万華鏡とはなんぞや?という方は…当時を知る何某さんのコメントを読んでみてください(以下ご参照)。
Cinematic Jazz & kaleidoscopic Brazilian Sound.

おそらく、私の拙い英語力を以って解釈するに、
万華鏡を覗いてブラジルの映画をみる集いなんでしょうか。

でもJazzとかSoundとかかいてあるから、音楽の集いなんでしょうか。

いずれにしても、サイケデリックな香りが一筋の風となって
股間をそよぐ、そんな雰囲気を感じました。

このパーティーに参加されている方は、
あさっての方向に向かって邁進する、ある種のミトコンドリアを、顕微鏡的なミクロスケールで以ってアナライズする、究極の環境保護団体にも所属していることでしょう。

そんなあなたは今すぐビバノン!

マストォォォオ!!!

どうでしょうか?

ドキドキしてきませんか?

行ったことがある!という方がいらっしゃいましたら、是非コメントをよせてください。

ウキャッ!!
<<==このブログの応援に、ポチッと押していってください!
スポンサーサイト

DriveCleaner 2006 - お仕事とご結婚が危険です

母親からヘルプの声がかかりました。

インターネットを見ていたらこんな画面が出てきたのだけれど、どうしたらよいのだろうか?というものです。

こんな画面というのは↓こんな画面(笑)
(画像をクリックすると拡大して文字が読みやすくなります)


言っていることがすげぇなぁ。。。

お仕事とご結婚が危険ですって(笑)

いったいどんな状況だっていうのやら…

どうも、ブラウザの画面にこんなヤツが表示されたので、何も疑わず「今すぐ修復!」してしまったらしいのです。


いわゆる、偽装アンチスパイウェアってやつですかね。

ともかく間違っても怪しいメッセージに反応してクリックなどしてはいけません!

ぷんぷん!!
<<==このブログの応援に、ポチッと押していってください!

ゆっぴ - メロンパンのうた

さて、各所で話題騒然の(?)ゆっぴが歌う、メロンパンのうたが2007/10/24にマキシシングルとしてビクターエンターテイメントより発売されることになりました!

とりあえず、ご存知のない方はYouTubeにアップされているこちらの映像をご覧ください(…この映像自体はファンが作ったアン・オフィシャルなものですが)。

あんパンにはあんこが入ってるのに、私の好きなメロンパンにはメロンがはいってない・・・

う~む。

素朴な疑問だこと。

ゆっぴのこれからの活躍に目が離せませんよ!!(ホントか!?)
<<==このブログの応援に、ポチッと押していってください!

Beaux yeux - おしゃれな眼鏡フレームのあるお店

このブログでも何度か取り上げているお店Beaux yeuxからはがきが届きました。


自由が丘にある眼鏡フレーム、サングラスの専門店(もちろんレンズを作ることも出来ます)なのですが、眼鏡の調子が悪くなったりした場合の調整やクリーニングなどは無料でやってくださるそうです。

お店もおしゃれですし、値段もかなり良心的なお店ですので、自由が丘においでの際は、是非一度お立ち寄りください!
<<==このブログの応援に、ポチッと押していってください!

初音ミク - グラディウスを歌う

Yamahaの技術の結晶。

ニコ動でも話題沸騰中の初音ミクですが、
なんと、グラディウスのテーマ曲を無理やり歌っています(笑)

字幕ずれまくりだし(笑)

デケツク、デケツク、アマゾン!アマゾン!って!!

いったいなんなんでしょうか!?

このセンスには脱帽です(驚愕のまなざし)

ちなみに元曲を知らない方はこちらのテーマ曲と、こちらのボス対決の曲を聴いてみてください。
(※ファミコンのゲームですよ~)
<<==このブログの応援に、ポチッと押していってください!

音楽タイアップ情報と楽曲のマッチングサービス(PT4)

前回の記事の続きです。


Musicpro.jpがオープンしました。

そして、僕の元に一通のメールが届きました。

この度はMusicpro.jpへ会員登録申請いただきありがとうございました。

会員登録審査の結果をご連絡させていただきます。

今回のご登録内容を審査させていただいた結果、
大変残念ではございますが、今回は会員登録を見送りとさせていただきます。

次の機会がございましたら、あらためましてご登録のほどよろしくお願いいたします。


オー!マイガッ!!

以上で、Musicproに関するレポートを終了いたします(笑)

ほげぇ…
<<==このブログの応援に、ポチッと押していってください!

驚愕の映像 - 哲学するマントヒヒ

某マイミク様の日記から情報をゲット。

なんですか!この映像は!!

スモーカーズ・ディライトですか!?

…ダメダメダメ!!
こどもはこんなのみちゃダメですよ~!!

NHKみんなのうた!?

だめですよ~!!
<<==このブログの応援に、ポチッと押していってください!

田中フミヤ with 石野卓球 - 伝説のパーティー

まさか、そこに店があるとは思ってもみなかった。

手に入れたフライヤーの地図を元に、そこと思しき場所に行ってみたものの、
どうにも店があるようには思えなかったのだ。

隣には謎のおもちゃ屋さんがある。

僕は意を決して、そのおもちゃ屋さんの店員に聞いてみた。

「このお店を探しているんですけど…」

すると、その店員はヤヴァぃことでも聞かれてしまったかのように、身をかがめ、そして小声で僕に囁いた。

「その階段を降りていきな!」

階段!?

確かに、おもちゃ屋さんの左隣には地下へと続く階段があった。

僕は「覚悟」を決めて階段を降りていった。

そう。

僕は「その先で見たものを」ここに書く、まさにそのために、この記事を書いているのだ。

いた…。

紛れもない。…DJブースには田中フミヤがいた…。

そして謎の歌謡曲が流れているダンスフロアーは既に最高潮をむかえていた。

よく見ると田中フミヤが操作しているのはターンテーブルとか、DJミキサーとかいった、ちゃちなものではなかった。

頭がどうにかなりそうだった。

もっと恐ろしいものの片鱗を味わったのだ。

そう。

それは、流しそうめんのミキシング・コンソールだったのだ!!

彼…田中フミヤはフェーダーの微妙な操作で左右の流しそうめんの「具材」をコントロールし、またピッチコントローラーで以って、それが流れる速さをコントロールしていたのだ。

そして!

そして…、その先には、あの石野卓球が全裸で口を開けて待ち構えているではないか!!

まさに地獄絵図。

僕はあっけにとられながら、それでもなんとか、流れる歌謡曲にあわせて踊り始めた。

意識が遠のいていくのを感じた…。
<<==このブログの応援に、ポチッと押していってください!

流れる水のように



■ 「流れる水のように」 photo by atomico, 1999/06/08
<<==このブログの応援に、ポチッと押していってください!

都営大江戸線



■ 「都営大江戸線」 photo by atomico, 1999/05/20
<<==このブログの応援に、ポチッと押していってください!

文化服装学院



■ 「文化服装学院」 photo by atomico, 1999/05/20
<<==このブログの応援に、ポチッと押していってください!

子犬を守れ!! - Don't shoot the puppy

子犬が画面の外に無事に駆け抜けていければ、クリアー!…という簡単なゲームなのですが…。
Dont shoot the puppy

どうやって、やるかって?

まずは、ためしにゲームをやってみてください!

無事にクリアーするための"方法"がわかってからが、本当のゲーム・スタートなのです。

がんばって!!

※この記事からゲームのカテゴリーを追加しました。
<<==このブログの応援に、ポチッと押していってください!

イラスト・カード - 肩たたき券(かたたたきけん)

みんなも肩たたき券を印刷して、おじいちゃん、おばあちゃんに渡そう!!
肩たたき券

※画像はご自由にお使いください
<<==このブログの応援に、ポチッと押していってください!

電球と電線



■ 「電球と電線」 photo by atomico, 1999/05/20
<<==このブログの応援に、ポチッと押していってください!

Market Daemon - テクニカルデータ参照機能の実装

前回の記事の続きです。(クリックすると拡大されます。拡大した図で文字が見づらい方は、画像を100%のサイズで表示してみてください。)



随分と期間があいてしまったので、何をやっていたのかすっかり忘れてしまいそうなのですが(汗)、概要図でいうと、株式データ参照機能(②)を作りこんでいるところですね。

今回はテクニカルデータにアクセスするためのプログラムを作成していきます。
(UML図はこんな感じになります。)



テクニカルデータというと、それこそさまざまなものがあるのですが、今回は移動平均、移動平均乖離率、RSI、ストキャスティクス(Fast/Slow)あたりを実装しようと思います。

先ほどのUML図を元に実際にコーディングしていくとこんな感じになります。
(ちょっと長いですが・・・)
// *********************************************
// プログラム名:TechnicalDataAccess.java
// プログラム概要:テクニカル・データにアクセスする
// *********************************************
// パッケージ:mdp.data
// *********************************************
package mdp.data;
// *********************************************
// 各種インポート
// *********************************************
import util.Utility;

class TechnicalDataAccess extends DataAccess {

    // *********************************************
    // インスタンス変数の定義
    // *********************************************
    // 証券コード
    private int code;
    // 平均値の算出期間
    private int daysOfAverage;
    // RSIの算出期間
    private int daysOfRSI;
    // ファーストストキャスティクス%Kの算出期間
    private int daysOfFastStochasticsK;
    // ファーストストキャスティクス%Dの算出期間
    private int daysOfFastStochasticsD;
    // スローストキャスティクスSDの算出期間
    private int daysOfSlowStochasticsSD;
    // アーカイブ・データ・アクセス処理型オブジェクト
    private ArchivedDataAccess ada;
    
    // *********************************************
    // コンストラクタの定義
    // *********************************************
    TechnicalDataAccess(int code) {
        this.code = code;
        this.daysOfAverage = 14;
        this.daysOfRSI = 14;
        this.daysOfFastStochasticsK = 9;
        this.daysOfFastStochasticsD = 3;
        this.daysOfSlowStochasticsSD = 3;
    }
    
    // *********************************************
    // アーカイブ・データ・アクセス処理インスタンスを初期化する
    // *********************************************
    private void initArchivedDataAccess(int period) {
        // 日付を取得
        int date = getDate();
        // X営業日前を取得
        int daysAgo = getDaysAgo();
        // アーカイブ・データ・アクセス処理インスタンス生成
        ada = new ArchivedDataAccess(code);
        // 日付とX営業日前の設定
        if ( date > 0 ) {
            ada.setDate(date);
        } else if ( daysAgo > 0 ) {
            ada.setDaysAgo(daysAgo);
        }
        // 期間の設定
        ada.setPeriod(period);
    }
    
    // *********************************************
    // 前日比を取得する
    // *********************************************
    protected int[] getCompDayBefore() {
        // 期間を取得
        int period = Math.abs(getPeriod());
        // 一時的な終値保存変数を初期化
        // ※設定されている期間より1日多くデータを取得する
        int[] tmpEndValue = new int[period+1];
        for (int i = 0; i < period+1; i++) {
            tmpEndValue[i] = -1;
        }
        // アーカイブ・データ・アクセス処理インスタンスを初期化
        // ※設定されている期間より1日多くデータを取得する
        initArchivedDataAccess(period+1);
        // 前日比初期化
        int[] compDayBefore = new int[period];
        for (int i = 0; i < period; i++) {
            compDayBefore[i] = 0;
        }
        // 終値取得
        tmpEndValue = ada.getEndValue();
        // 前日比取得
        for (int i = 0; i < period; i++) {
            compDayBefore[i] = tmpEndValue[i] - tmpEndValue[i+1];
        }
        // 戻り値リターン
        return compDayBefore;
    }
    
    // *********************************************
    // 平均値の算出期間をセットする
    // *********************************************
    protected void setDaysOfAverage(int daysOfAverage) {
        // 平均値の算出期間をセット
        this.daysOfAverage = daysOfAverage;
    }
    
    // *********************************************
    // 平均値の算出期間を取得する
    // *********************************************
    protected int getDaysOfAverage() {
        // 平均値の算出期間をセット
        return daysOfAverage;
    }
    
    // *********************************************
    // RSIの算出期間をセットする
    // *********************************************
    protected void setDaysOfRSI(int daysOfRSI) {
        // 平均値の算出期間をセット
        this.daysOfRSI = daysOfRSI;
    }
    
    // *********************************************
    // RSIの算出期間を取得する
    // *********************************************
    protected int getDaysOfRSI() {
        // 平均値の算出期間をセット
        return daysOfRSI;
    }
    
    // *********************************************
    // ファーストストキャスティクス%Kの算出期間をセットする
    // *********************************************
    protected void setDaysOfFastStochasticsK(int daysOfFastStochasticsK) {
        // 平均値の算出期間をセット
        this.daysOfFastStochasticsK = daysOfFastStochasticsK;
    }
    
    // *********************************************
    // ファーストストキャスティクス%Kの算出期間を取得する
    // *********************************************
    protected int getDaysOfFastStochasticsK() {
        // 平均値の算出期間をセット
        return daysOfFastStochasticsK;
    }
    
    // *********************************************
    // ファーストストキャスティクス%Dの算出期間をセットする
    // *********************************************
    protected void setDaysOfFastStochasticsD(int daysOfFastStochasticsD) {
        // 平均値の算出期間をセット
        this.daysOfFastStochasticsD = daysOfFastStochasticsD;
    }
    
    // *********************************************
    // ファーストストキャスティクス%Dの算出期間を取得する
    // *********************************************
    protected int getDaysOfFastStochasticsD() {
        // 平均値の算出期間をセット
        return daysOfFastStochasticsD;
    }
    
    // *********************************************
    // スローストキャスティクスSDの算出期間をセットする
    // *********************************************
    protected void setDaysOfSlowStochasticsSD(int daysOfSlowStochasticsSD) {
        // 平均値の算出期間をセット
        this.daysOfSlowStochasticsSD = daysOfSlowStochasticsSD;
    }
    
    // *********************************************
    // スローストキャスティクスSDの算出期間を取得する
    // *********************************************
    protected int getDaysOfSlowStochasticsSD() {
        // 平均値の算出期間をセット
        return daysOfSlowStochasticsSD;
    }
    
    // *********************************************
    // 値下がり幅を取得する
    // *********************************************
    protected int getDownValue() {
        // 期間を取得
        int period = Math.abs(getPeriod());
        // 値上がり幅を初期化
        int downValue = 0;
        // 前日比取得
        int[] compDayBefore = getCompDayBefore();
        // 値上がり幅を取得
        for (int i = 0; i < period; i++) {
            if (compDayBefore[i] < 0) {
                downValue += compDayBefore[i];
            }
        }
        // 戻り値リターン
        return downValue;
    }
    
    // *********************************************
    // 値上がり幅を取得する
    // *********************************************
    protected int getUpValue() {
        // 期間を取得
        int period = Math.abs(getPeriod());
        // 値上がり幅を初期化
        int upValue = 0;
        // 前日比取得
        int[] compDayBefore = getCompDayBefore();
        // 値上がり幅を取得
        for (int i = 0; i < period; i++) {
            if (compDayBefore[i] > 0) {
                upValue += compDayBefore[i];
            }
        }
        // 戻り値リターン
        return upValue;
    }
    
    // *********************************************
    // 平均値を取得する
    // *********************************************
    protected double[] getAverage() {
        // 日付を取得
        int date = getDate();
        // X営業日前を取得
        int daysAgo = getDaysAgo();
        // アーカイブ・データ・アクセス処理インスタンスを初期化
        // ※daysOfAverage間のデータを取得する
        initArchivedDataAccess(getDaysOfAverage());
        // 期間を取得
        int period = Math.abs(getPeriod());
        // 平均値を初期化
        double[] average = new double[period];
        for (int i = 0; i < period; i++) {
            average[i] = -1.0;
        }
        // daysAgoが設定されている場合
        if ( daysAgo > 0 ) {
            for ( int i = 0; i < period; i++ ) {
                // 平均値を取得
                average[i] = Utility.getAverage(ada.getEndValue());
                // daysAgoを1日増やす
                ada.setDaysAgo(ada.getDaysAgo()+1);
            }
        // dateが設定されている場合
        } else if ( date > 0 ) {
            // 日付配列保管用一時変数を設定
            int[] tmpDate = new int[period];
            tmpDate = ada.getDateValue();
            for ( int i = 0; i < period; i++ ) {
                // 日付を設定
                ada.setDate(tmpDate[i]);
                // 平均値を取得
                average[i] = Utility.getAverage(ada.getEndValue());
            }
        }
        // 戻り値リターン
        return average;
    }
    
    // *********************************************
    // 平均乖離率を取得
    // *********************************************
    protected double[] getDistFromAverage() {
        // アーカイブ・データ・アクセス処理インスタンスを初期化
        // ※daysOfAverage間のデータを取得する
        initArchivedDataAccess(getDaysOfAverage());
        // 期間を取得
        int period = Math.abs(getPeriod());
        // 終値を取得
        int[] endValue = ada.getEndValue();
        // 平均乖離率を初期化
        double[] distFromAverage = new double[period];
        for ( int i = 0; i < period; i++ ) {
            distFromAverage[i] = 0.0;
        }
        // 平均値を取得
        double[] average = getAverage();
        // 平均乖離率を取得
        for ( int i = 0; i < period; i++ ) {
            distFromAverage[i] = (((double)endValue[i]-average[i])/average[i])*100.0;
        }
        // 戻り値リターン
        return distFromAverage;
    }
    
    // *********************************************
    // RSIを取得
    // *********************************************
    protected double[] getRSI() {
        // 日付を取得
        int date = getDate();
        // X営業日前を取得
        int daysAgo = getDaysAgo();
        // 期間を取得
        int period = Math.abs(getPeriod());
        // 期間のバックアップ
        int backupPeriod = period;
        // RSI算出期間
        int daysOfRSI = getDaysOfRSI();
        // 値上がり幅の合計を初期化
        int[] upValue = new int[period];
        for ( int i = 0; i < period; i++ ) {
            upValue[i] = 0;
        }
        // 値下がり幅の合計を初期化
        int[] downValue = new int[period];
        for ( int i = 0; i < period; i++ ) {
            downValue[i] = 0;
        }
        // RSIを初期化
        double[] rsi = new double[period];
        for ( int i = 0; i < period; i++ ) {
            rsi[i] = -1.0;
        }
        // アーカイブ・データ・アクセス処理インスタンスを初期化
        // ※daysOfRSI間のデータを取得する
        initArchivedDataAccess(daysOfRSI);
        // daysAgoが設定されている場合
        if ( daysAgo > 0 ) {
            for ( int i = 0; i < period; i++ ) {
                // 期間をRSI取得期間に設定する
                setPeriod(daysOfRSI);
                // 値上がり幅の合計を取得
                upValue[i] = getUpValue();
                // 値下がり幅の合計を取得
                downValue[i] = getDownValue();
                // 期間を元に戻す
                setPeriod(backupPeriod);
                // daysAgoを1日増やす
                setDaysAgo(getDaysAgo()+1);
            }
            // dateが設定されている場合
        } else if ( date > 0 ) {
            // 日付配列保管用一時変数を設定
            int[] tmpDate = new int[period];
            tmpDate = ada.getDateValue();
            for ( int i = 0; i < period; i++ ) {
                // 日付を設定
                setDate(tmpDate[i]);
                // 期間をRSI取得期間に設定する
                setPeriod(daysOfRSI);
                // 値上がり幅の合計を取得
                upValue[i] = getUpValue();
                // 値下がり幅の合計を取得
                downValue[i] = getDownValue();
                // 期間を元に戻す
                setPeriod(backupPeriod);
            }
        }
        // RSIを取得
        for ( int i = 0; i < period; i++ ) {
            rsi[i] = ((double)upValue[i]/(double)(upValue[i]+Math.abs(downValue[i])))*100;
        }
        // 戻り値リターン
        return rsi;
    }
    
    // *********************************************
    // ファーストストキャスティクス%Kを取得
    // *********************************************
    protected double[] getFastStochasticsK() {
        // 日付を取得
        int date = getDate();
        // X営業日前を取得
        int daysAgo = getDaysAgo();
        // 期間を取得
        int period = Math.abs(getPeriod());
        // アーカイブ・データ・アクセス処理インスタンスを初期化
        initArchivedDataAccess(period);
        // 終値を取得
        int[] endValue = ada.getEndValue();
        // 安値を初期化
        int[] lowValue = new int[period];
        for ( int i = 0; i < period; i++ ) {
            lowValue[i] = -1;
        }
        // 高値を初期化
        int[] highValue = new int[period];
        for ( int i = 0; i < period; i++ ) {
            highValue[i] = -1;
        }
        // ファーストストキャスティクス%Kを初期化
        double[] fastStochasticsK = new double[period];
        for ( int i = 0; i < period; i++ ) {
            fastStochasticsK[i] = -1.0;
        }
        // アーカイブ・データ・アクセス処理インスタンスを初期化
        // ※daysOfFastStochasticsK間のデータを取得する
        initArchivedDataAccess(getDaysOfFastStochasticsK());
        // daysAgoが設定されている場合
        if ( daysAgo > 0 ) {
            for ( int i = 0; i < period; i++ ) {
                // 安値を取得
                lowValue[i] = Utility.getMin(ada.getLowValue());
                // 高値を取得
                highValue[i] = Utility.getMax(ada.getHighValue());
                // daysAgoを1日増やす
                ada.setDaysAgo(ada.getDaysAgo()+1);
            }
        // dateが設定されている場合
        } else if ( date > 0 ) {
            // 日付配列保管用一時変数を設定
            int[] tmpDate = new int[period];
            tmpDate = ada.getDateValue();
            for ( int i = 0; i < period; i++ ) {
                // 日付を設定
                ada.setDate(tmpDate[i]);
                // 安値を取得
                lowValue[i] = Utility.getMin(ada.getLowValue());
                // 高値を取得
                highValue[i] = Utility.getMax(ada.getHighValue());
            }
        }
        // ファーストストキャスティクス%Kを取得
        for ( int i = 0; i < period; i++ ) {
            fastStochasticsK[i] = ((double)endValue[i]-(double)lowValue[i])/((double)highValue[i]-(double)lowValue[i])*100.0;
        }
        // 戻り値リターン
        return fastStochasticsK;
    }
    
    // *********************************************
    // ファーストストキャスティクス%Dを取得
    // *********************************************
    protected double[] getFastStochasticsD() {
        // 日付を取得
        int date = getDate();
        // X営業日前を取得
        int daysAgo = getDaysAgo();
        // 期間を取得
        int period = Math.abs(getPeriod());
        // period期間にdaysOfFastStochasticsD期間を加算して1引いた期間を取得
        int collectPeriod = period+getDaysOfFastStochasticsD()-1;
        // 分母を初期化
        int[] molecule = new int[period];
        for ( int i = 0; i < period; i++ ) {
            molecule[i] = 0;
        }
        // 分子を初期化
        int[] denominator = new int[period];
        for ( int i = 0; i < period; i++ ) {
            denominator[i] = 0;
        }
        // 安値を初期化
        int[] lowValue = new int[collectPeriod];
        for ( int i = 0; i < collectPeriod; i++ ) {
            lowValue[i] = -1;
        }
        // 高値を初期化
        int[] highValue = new int[collectPeriod];
        for ( int i = 0; i < collectPeriod; i++ ) {
            highValue[i] = -1;
        }
        // 終値を初期化
        int[] endValue = new int[collectPeriod];
        for ( int i = 0; i < collectPeriod; i++) {
            endValue[i] = -1;
        }
        // ファーストストキャスティクス%Dを初期化
        double[] fastStochasticsD = new double[period];
        for ( int i = 0; i < period; i++ ) {
            fastStochasticsD[i] = -1.0;
        }
        // アーカイブ・データ・アクセス処理インスタンスを初期化
        initArchivedDataAccess(collectPeriod);
        // 終値を取得
        endValue = ada.getEndValue();
        // アーカイブ・データ・アクセス処理インスタンスを初期化
        // ※daysOfFastStochasticsK間のデータを取得する
        initArchivedDataAccess(getDaysOfFastStochasticsK());
        // daysAgoが設定されている場合
        if ( daysAgo > 0 ) {
            for ( int i = 0; i < collectPeriod; i++ ) {
                // 安値を取得
                lowValue[i] = Utility.getMin(ada.getLowValue());
                // 高値を取得
                highValue[i] = Utility.getMax(ada.getHighValue());
                // daysAgoを1日増やす
                ada.setDaysAgo(ada.getDaysAgo()+1);
            }
        // dateが設定されている場合
        } else if ( date > 0 ) {
            // 日付配列保管用一時変数を設定
            int[] tmpDate = new int[collectPeriod];
            tmpDate = ada.getDateValue();
            for ( int i = 0; i < collectPeriod; i++ ) {
                // 日付を設定
                ada.setDate(tmpDate[i]);
                // 安値を取得
                lowValue[i] = Utility.getMin(ada.getLowValue());
                // 高値を取得
                highValue[i] = Utility.getMax(ada.getHighValue());
            }
        }
        // 分母と分子を計算
        for ( int i = 0; i < period; i++ ) {
            for ( int j = 0; j < daysOfFastStochasticsD; j++ ) {
                molecule[i] += (endValue[i+j]-lowValue[i+j]);
                denominator[i] += (highValue[i+j]-lowValue[i+j]);
            }
        }
        // ファーストストキャスティクス%Dを取得
        for ( int i = 0; i < period; i++ ) {
            fastStochasticsD[i] = ((double)molecule[i]/(double)denominator[i])*100;
        }
        // 戻り値リターン
        return fastStochasticsD;
    }

    // *********************************************
    // スローストキャスティクスSDを取得
    // *********************************************
    protected double[] getSlowStochasticsSD() {
        // 期間を取得
        int period = Math.abs(getPeriod());
        // 期間のバックアップ
        int backupPeriod = period;
        // daysOfSlowStochasticsSD期間を取得
        int daysOfSlowStochasticsSD = getDaysOfSlowStochasticsSD();
        // period期間にdaysOfSlowStochasticsSD期間を加算して1引いた期間を取得
        int collectPeriod = period+daysOfSlowStochasticsSD-1;
        // 分母を初期化
        double[] molecule = new double[period];
        for ( int i = 0; i < period; i++ ) {
            molecule[i] = 0;
        }
        // 一時的な分母を初期化
        double[] tmpMolecule = new double[collectPeriod];
        for ( int i = 0; i < collectPeriod; i++ ) {
            tmpMolecule[i] = 0;
        }
        // スローストキャスティクスSDを初期化
        double[] slowStochasticsSD = new double[period];
        for ( int i = 0; i < period; i++ ) {
            slowStochasticsSD[i] = -1.0;
        }
        // アーカイブ・データ・アクセス処理インスタンスを初期化
        initArchivedDataAccess(collectPeriod);
        // ファーストストキャスティクス%Dの取得期間を補正
        setPeriod(collectPeriod);
        // 一時的な分母を取得
        tmpMolecule = getFastStochasticsD();
        // 期間を再設定
        setPeriod(backupPeriod);
        // 分母を取得
        for ( int i = 0; i < period; i++ ) {
            for ( int j = 0; j < daysOfSlowStochasticsSD; j++ ) {
                molecule[i] += tmpMolecule[i+j];
            }
        }
        // スローストキャスティクスSDを取得
        for ( int i = 0; i < period; i++ ) {
            slowStochasticsSD[i] = molecule[i]/(double)daysOfSlowStochasticsSD;
        }
        // 戻り値リターン
        return slowStochasticsSD;
    }
}

な…なげえ…(汗)

コンストラクタで各種テクニカルデータの基本取得期間を設定するようにし(例えばRSIであれば14日)、それぞれの値をセット、取得するためのセッタ、ゲッタを用意します。

また、前回作成したアーカイブデータへのアクセス処理インスタンスを生成する際に、日付(YYYYMMDD)指定のデータサーチをするのか、X営業日前といったタイプで指定したデータサーチをするのかを決めておくようにします。

あとは、各テクニカルデータを計算する式を組み込めば完成です。

テクニカルデータの算出式はこちらのサイトなどを参考にすれば、わかりやすいでしょう。

以上の説明では大分はしょっていますが、ここでもそんなに難しいことはやっていない(はず)ですので、ソースコードをざっとおっていただければ、理解できるかと思います。
<<==このブログの応援に、ポチッと押していってください!

音楽タイアップ情報と楽曲のマッチングサービス(PT3)

前回の記事の続きです。


Musicpro.jpのオープン予定日(9月20日)に先がけ、会員登録の受付が開始されました。

さっそくサイトにアクセスして、個人会員として登録を申請してみたのですが、住所、氏名、ホームページ等のパーソネルを入力し、「プロの音楽家としての活動実績」を入力するような形になっていて、申請後3日間程度で返信があるそうです。

「プロの音楽家としての活動実績」ですか…(苦笑)

そんなのないなぁ…

まぁ、色々書き込んでみましたが、申請通らないだろうなぁ…。

これで通ったら通ったで面白いのだけれども。

興味のある方は、一般会員ですと、無料のサービスなので、申請するだけでも申請してみてください。
<<==このブログの応援に、ポチッと押していってください!

オレンジ色のカーテン



■ 「オレンジ色のカーテン」 photo by atomico, 1999/05/20
<<==このブログの応援に、ポチッと押していってください!

Atomico - Ambush at the Forest Coast (PT3)

前回の記事の続きです。


■ Ambush at the Forest Coast written by atomico, Last Update 2007/09/16 19:30

現時点では自分の中で客観性があまりなく、これを最終的と言っていいのか微妙なところがあるので、この状態で少し寝かせようかと思います。

まぁ、一応の完成といったところでしょうか。

このバージョンからMySpaceにもアップしています。

レイドバックした曲調とか言っておきながら、作ってみると思いのほかアッパーになってしまっていますが(汗)…まぁしょうがないでしょう(苦笑)

既に次の曲を作り始めているので、そちらはレイドバックしたものになるはずです(ホントか?)

とりあえず、聴いてみてください!
<<==このブログの応援に、ポチッと押していってください!

コーヒーカップの中へ



■ 「コーヒーカップの中へ」 photo by atomico, 1999/05/20
<<==このブログの応援に、ポチッと押していってください!

Fumiya Tanaka - Via (digest ver)

月末にリリースされるらしいDVDからのダイジェスト。

田中フミヤさんがDJブースでインカムつけて、選曲に関してだとか、展開に関してだとか、お客さんの反応に関してだとか、とにかくぶつくさつぶやいているその様をレコーディングするという、前代未聞の試みの結晶です。

DJブースの中で色々考えるのは、そりゃ当たり前のことなんだけど、それを言葉として発するためには、言葉にするための思考を使っていなければならないわけで、結構ハードなことだと思います。

それだけ、ゆとりを持ってプレイできる状態なんだなぁと、ビックリです。

僕は田中フミヤさんには、蹴られたり(ウソ)とか、「君、邪魔」よばわりされたりとか(ちょっとウソ)、渋谷のカフェで睨まれたりとか(ホント)、まぁ、あまりよい思い出がないのですが、これは見てみたいな。

でも、10年前のようなアグレッシブなDJをもう一度聴きたい、というのが切な願いなのですが…
<<==このブログの応援に、ポチッと押していってください!

Atomico - Ambush at the Forest Coast (PT2)

前回の記事の続きです。

前半部分にリズムとパーカッションを入れました。

■ Ambush at the Forest Coast written by atomico, Last Update 2007/09/13 10:30

これまでどちらかといえばアッパーな曲を作ってきたので、今回はレイドバックした感じでまとめようと思っています。

色々頭の中では展開とかメロディーが構築されつつあるのですが、具体化するのにちょっと時間がかかりそうです。

でも、楽しみにお待ちくださいね!
<<==このブログの応援に、ポチッと押していってください!

電柱と螺旋階段



■ 「電柱と螺旋階段」 photo by atomico, 1999/05/20
<<==このブログの応援に、ポチッと押していってください!

水玉模様の空の下で



■ 「水玉模様の空の下で」 photo by atomico, 2000/01/14

写真のカテゴリーを追加しました。最近はほとんど写真を撮っていないのですが、昔撮った写真などをアップしていく予定です。

<<==このブログの応援に、ポチッと押していってください!

DJ Sniff - アブストラクトなターンテーブル・アーティスト

僕の大学時代にはDJをやっていたこともあり、色々な人と知り合ったのですが、DJ Sniffもそんな一人。

簡単に言えば、大学とかサークルが一緒だったのですけど。

当時からスクラッチとかには興味を示していたし、音楽の嗜好もアブストラクトものに傾きつつあったのだけど、その後NYからオランダへと渡り、今ではすっかり渋いおじ様(ウソ)になられております。

音も渋いなぁ…。

イクイップメントも自前で開発したものとかを使用しているみたいで、…って、オランダってさ、もっとこうアッパーなドーパミン音楽だけじゃないの?

こういったアブストラクトなものを受け入れる土壌みたいなものがあるのかしら?

それはそれでちょっと興味深いですねぇ。
<<==このブログの応援に、ポチッと押していってください!

音楽タイアップ情報と楽曲のマッチングサービス(PT2)

前回の記事の続きです。


Musicpro.jpからメールが届きましたので、ここに抜粋します。

メルマガ会員の皆様

Musicpro.jpがオープンする9月20日まで、いよいよ2週間を切りました。

前号でもお知らせしたとおり、Musicpro.jpは、CM、映画など、
さまざまなタイアップ情報と楽曲をネット上でマッチングさせるためのサイトです。
オープンと同時に、楽曲を探すプロデューサーや選曲担当者が大勢訪れると思います。
その方々をお迎えするためには、タイアップを待ち望んでいる楽曲が必要です。
このメルマガをご購読いただいている音楽制作・宣伝ご担当の皆様におきましては、
テレビ、ラジオ、CM、映画などにタイアップ可能な楽曲を、ぜひご登録下さい。
オープン当初は、登録楽曲がまだ少ないと思いますので、
タイアップ契約を結ぶチャンスタイムかもしれません。
登録できる楽曲の数は、一般会員(無料)が20曲、プレミアム会員(有料)は50曲です。
楽曲は45秒以内に編集したmp3データを試聴用としてアップロードできます。
ぜひ今のうちに準備をしておいてください。


なるほど。

一般会員ですと、20曲分の音楽を登録することが出来るのですね。

楽曲は45秒以内にエディットしなければならないようですが、一般会員というカテゴリーがあるということは、おそらくどこのレコード・レーベルにも所属していないアーティストにも門戸が開かれているサービスなのだと思います。

ちょっと興味深いサービスなので、またメールが届きましたら、この場でご報告しますね!
<<==このブログの応援に、ポチッと押していってください!

MySpaceのテンプレートを変更しました

MySpaceのテンプレートは、色々なサイトでフリーのものが公開されていて、大変便利なのですが、今回はHotFreeLayoutsというサイトから適当なものをチョイスしました。


もちろんそのまんま使っているわけではなく、画像などはオリジナルのものに置き換えて使用しています。

これで、ちょっと気分一新できたかな~。

ちなみに、このブログのデザインも秋冬ものに変えていこうかなあ…とか思っています。
しばしお待ちを!
<<==このブログの応援に、ポチッと押していってください!

Atomico - Ambush at the Forest Coast

新曲です。

まだリズムも入っていない作り途中のループもの状態なのですが…

■ Ambush at the Forest Coast written by atomico, Last Update 2007/09/08 20:30

この曲でイメージしている雰囲気は、夏の終わりの真夜中、海岸、森林、獣たちが潜む空気、そして咆哮、あるいは月の光。

そんな感じでしょうか。

よく聞くとわかるのですが、ちょっと変わった拍子になっているので、これにあわせるパーカッションとかのプログラミングがなかなか難しそうなのですが、大体のイメージは出来ているのでなんとかなるでしょう。

あとこれまでの曲よりもメロディを重視した展開にしようと思っています。

完成までまだしばらくかかるでしょうが、楽しみにお待ちください!
<<==このブログの応援に、ポチッと押していってください!

Atomico - Mixed at the Garage of My House

以前MercoraでアップしていたHouseもののDJ Mixですが、Mercoraのリンクが切れてしまったため、ここに再度アップします。

ちょっとジャジーな(あるいはガラージっぽい)ハウスが好きな方なら、きっと気に入ってもらえると思います。

なお、トラックリストは以下のとおりです。

01. Bob Sinclar - Freedom
02. Blaze - So Special
03. Fantastic Plastic Machine - Beautiful Days
04. Bah Samba - My Spirit Soars
05. Mr. Hermano - Corcovado
06. DJ Chus And David Penn - Baila (Mediterranean Vocal Mix)
07. Basement Jaxx - Better Days
08. LTJ X-Perience - Sombre Guitar
09. Karl The Voice - Music Is My Life
10. Cassius - Cassius 99 Remix (Radio Edit)
11. Phoenix - If I Ever Feel Better, I'll Go To The Disco (Said The Buffalo Bunch)
12. Jess & Crabbe - Big Booya
13. Bob Sinclar - Europa

最近はぜんぜんDJをする機会はないのですが(むしろやりたくない(笑))、たま~に、気が向いたときに、こういったMixものは作っていきたいなぁと思います(自分でも聞きたいし)。

2009/02/22 こちらの記事に移動しました。

<<==このブログの応援に、ポチッと押していってください!

Pepe Leon(Ricci Ferra リッチ・フェラー)の友人さまからのメッセージ

なにげにブログ拍手してくださる方は結構いらっしゃるのですが(ありがとうございます!)拍手とともにメッセージを残してくださる方はほとんどいなくって、でも、おととい(2007/09/04 15:18:42)ナーバヤンさんからこんなメッセージが残されておりました。

私は、Pepe Leonの友人です。彼はリッチ・フェラーの名前でもアルバムを出しています。


うおお!マジですか!?

Pepe Leonのことをしらない方はこちらの記事をまずご覧になってください。

念のため、その記事でピックアップした曲を再度ここでもとりあげますね。

■ Pepe Nova written by Pepe Leon (and Alfred Hause), From the album "Pepe Nova"

さて、リッチ・フェラーについてはまったく知らなかったので、ググってみると、8件ヒットしました。

あまり充実した記事はなかったのですが、どうやらハウゼから引き継いで、彼の曲のオーケストラを指揮しているようです(※最近ではさらにペーター・コモロフスキーに引き継がれているとか)。

次にRicci Ferraでググってみると、今度はたくさんヒットしました。

その中で日本語のページをみてみると7件あります。

…でもまともな記事がない(汗)

英語のページをみても、タンゴ、ハウゼ、オーケストラ、イージーリスニングといった線のアーティストであること以上にはわからなかったのです。

でもRicci Ferra(リッチ・フェラー)という名前を教えてくれて、ナーバヤンさん、本当にありがとう!

彼の曲で、この"Pepe Nova"のような、キラーチューンはほかにもあるのでしょうか?とりあえず、名前だけでも覚えておこ~っと。
<<==このブログの応援に、ポチッと押していってください!

File2HD.com - 各種動画(YouTubeなど)、音楽(MySpaceなど)のダウンロード方法

MySpaceMP3の作者がはじめた新しいサービスがFile2HDです。

このサイトでは、WEB上で公開されているありとあらゆる動画や音楽(そしてその他もろもろ)がダウンロードできてしまいます(汗)



作者は以下のようなサービスを対象にテストを行ったそうなのですが…有名どころからはじめて聞くようなサービスまで、まぁ、よくもやってくれたな、という感じです。
AOL Video
blip.tv
YouTube
Attachmax
SPIKE
metacafe
eBaum's WORLD
ZippyVideos
veoh
MySpace.com
FLURL
Google Video

実際に私のMySpaceを対象に、音楽ファイルのダウンロードをしてみたところ…


見事にリンク先URLが表示されました。

後は、このリンクを右クリックして「対象をファイルに保存」すれば、自分のパソコンにダウンロードできてしまうわけです。

唖然。

一応、Terms of Serviceをざっと見てみると、以下のような文言が記載されていて、自分がアップロードした自分自身に著作権のあるコンテンツのダウンロードにしか使ってはいけませんよ!とあるのですが…(以下、Terms of Service 抜粋)
You only can use this site to examine your own pages, you acknowledge, warrant and represent that you legally own all intellectual property rights of the content that you download or access using this service.

こりゃ、また問題になるんじゃないかなぁ…
<<==このブログの応援に、ポチッと押していってください!
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。