トップ 最新 追記

SewiGの日記

2004|01|04|05|06|07|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|

2005-12-01 [木] [長年日記]

[tDiary] 長年日記追加

今日で、日記を毎日更新し出してから1年になりました。長年日記機能(各年の同じ日付の日記が見れる機能)を追加しました。せっかくなのでテーマも変更しました。


2005-12-02 [金] [長年日記]

[Other] 公費って簡単に出るのね

教授が忙しかったので、技術職員の方と無線LANルータを買いに行きました。で、会計は公費なわけです。電話番号を聞かれたので学科の番号を言うとそれではダメだと言います。大学の代表番号でないといけないのですが、普段電話もしない番号がアドレス帳にあるわけも無く困っていたら、店員が勝手に調べてくれて、あとは署名をするだけでした。印鑑も身分証明書もいりませんでした。こんないい加減なシステムなら悪用されかねないような。よほど技術職員の方が貫禄があるように見えたのでしょうか。

[tDiary] 日記編集時のRSS送信時間

日記の誤字・脱字を修正したりするとRSSも修正されますが、記事の送信時間が編集したときの日時になって不便だったので、記事の日付とインデックス番号を利用するように変更しました。

makerss.rbの

cache[id] = RDFSection::new( id, Time::now, section )

という記述(2箇所とも)を

cache[id] = RDFSection::new( id, Time::local(date[0,4],date[4,2],date[6,2],0,0,index), section )

にしたら、後はRSSクライアントで日付順にソートすれば見やすいと思います。


2005-12-03 [土] [長年日記]

[Shopping] 今週の買い物情報

ポスターとカレンダーも付いてきたよコンプエースとアイマスアンソロジー

今週は雑誌ばかり買いました。本当はまだ欲しいのがあったんだけど、来週のために残しておかなければならなかったのです。

年末は本当にゲームにグッズに、いろいろと発売されて大変です。


2005-12-04 [日] [長年日記]

[Other] また冬がやってくる、それはとても切ない季節

今日はとても寒かったです。明日は全国的にもっと寒くなるそうです。徐々に寒くなってくれればいいのに、急に寒くなるから困ります。今日は布団を1枚多くしてみようと思います。

それにしても、年末は忙しい。研究は追い込み、欲しいグッズも大体年末発売。友人や教授たちもバタバタしています。師走って言うくらいですからね。


2005-12-05 [月] [長年日記]

[Other] 驚愕の事実

Universal Plug and Play を略称で記述すると・・・
汗を出して口を尖らせている人に見える!

(UPnP) <うーん、微妙

本日のツッコミ(全1件) [ツッコミを入れる]

Shagyto [If I were a Teenage Mutant Ninja Turtle, now I'd say "Kuwo..]


2005-12-06 [火] [長年日記]

[Lifestyle] バスカード「長崎スマートカード」がおサイフケータイ対応に

さすがバス先進国、長崎。帰省したときに遊んでみよう。携帯電話に専用アプリを導入すれば携帯電話がバスカード対応!

スマートカードと言えば、ICカードへの切り替えも早かったけど、今回も対応が早いとは素晴らしい。


2005-12-07 [水] [長年日記]

[Network] SPF導入の大きな動き

KDDI全体でSPF/Sender IDの導入が進むそうです。追随して携帯電話各社も導入予定。

そろそろSPF導入するべきなのかと思いながら、とりあえずqmailにはSPFパッチが存在することが分かりました。で、http://www.dnsreport.com/ にて自分の利用しているDNSサーバを調べてみると

Mail | WARN | SPF record | Your domain does not have an SPF record.(以下略)

なんてこった。Dynamic DO!はSPFに対応していないでしょうか。


2005-12-08 [木] [長年日記]

[PC] Gatewayの17インチCRTディスプレイを貰ったんだけど

アパートに持って帰るのが面倒だということに気づいた。

でも今ちょうどCRTが必要だったのでなんとしてでも持って帰ろう。


2005-12-09 [金] [長年日記]

[Network] EZwebのブラウザで意図しないWebサイトにReferrerが送信される不具合

ついに、KDDIが公式にリファラ漏れを認めました。私のサーバにもリファラ漏れのアクセスがあり、2005/06/13の日記でも指摘していました。やはり問題の端末は対象機種でした。

auを利用している方は確認してみては?

リファラ漏れ該当機種一覧


2005-12-10 [土] [長年日記]

[Other] 体調が悪い

毎年、2回くらいは体調が優れない日が来ます。今日はとても体調が悪かったです。自転車から転倒したり、寝てもスッキリせず大変でした。

[Shopping] 今週の買い物情報

ToHeart2だらけコンサートグッズ

I'veの武道館パンフ。歌姫のメッセージが載ってて、DVDにはインタビューも収録されています。

それにしても、ToHeart2関連が凄いです。スティックポスター、テレカ、タペストリーとセットが豪華です。

本日のツッコミ(全2件) [ツッコミを入れる]

てっつん [自転車転倒キタ━━━━━(゜∀゜)━━━━━!!!! 転倒して頭を打つと気持ちいいですよね!? (ひさびさに登場して..]

SewiG [いやー、空を舞った気分でしたよ。頭を打たなかったのが不幸中の幸い。 え、頭打ってこいって? それは勘弁(´Д`)]


2005-12-11 [日] [長年日記]

[Game] Xbox 360 国内販売

ついに発売。HD画質をはじめ、機能がとても豪華。残念ながら購入には至らず。RIDGE RACER 6がやりたかった。発売日が延期されたけど、DEAD OR ALIVE 4もやりたかった。

本日のツッコミ(全56件) [ツッコミを入れる]

Before...

acheter du viagra [gycaezlu dlkvlpza ctzxskvv]

acheter cialis en pharmacie [vrrpxyos stbnswdu dzwcrhvh]

viagra [csmxfnkd qarrmbxi kiblxxph]


2005-12-12 [月] [長年日記]

[Network] ソフトイーサ社長の講演

登大遊さんの講演があったので聴きに行きました。PacketiX VPNがいかにして作られたか、起業に際しての心構えなど面白い話が聞けました。今はPacketiX VPNのマニュアル書きで忙しいらしいのですが、HTMLで1ファイル80KBくらいの文書を何ファイルもあるのにサクサク書けるのが恐ろしいですね。行動力は見習うところがあります。


2005-12-13 [火] [長年日記]

[Music][Hardware] AKAIさん・・・

スラド経由。容量・機能を考えても最近はソフトウェアサンプラが強いですからねぇ。


2005-12-14 [水] [長年日記]

[Java][Programming] Default GatewayやDNS Server

java.netを使えば、例えば以下のようにIPアドレスが取得できます。

String address = (java.net.InetAddress.getLocalHost()).getHostAddress();

Default GatewayやDNS Serverは取得する方法がなさそうだったので、Windowsの場合は以下のようにして、外部コマンドの出力を使います。UNIXだったらifconfigを使えばいい。余計な文字はsubstringなんかで適宜消す、と。このままだと、環境依存で気持ち悪いので、Abstract Factoryなどで抽象化して利用できるようにするとなお良し。

Process p = new ProcessBuilder("ipconfig", "/all").start();
java.io.BufferedReader br = new java.io.BufferedReader(new java.io.InputStreamReader(p.getInputStream()));
String address;
while ((address = br.readLine()) != null) {
	if (address.indexOf("DNS Servers") != -1) {
		System.out.println(address);
	}
}

2005-12-15 [木] [長年日記]

[Music] 知り合いがPAになろうとしている

私が尊敬してて、心の中でアニキと呼んでいる知り合いがPA見習いを終え、年末にPAの仕事が来たみたいです。作曲のスピードが凄く速く、それでいてキャッチーな出来。音楽の道だけで食っていくというすごくカッコイイ信念を持っています。でも、アーティストとしてではなく裏方でやっていくと言っています。それで、音楽製作会社か、スタジオ就職か迷っていたようですが、これからはPAでがんばるようです。最近MIDI検定も受検したらしいです。

PAか。ライブはPAしだいで成功するか失敗するかと言われるくらいだし、頑張って欲しいです。


2005-12-16 [金] [長年日記]

[Java][Programming] JavaでSMF (1)

javax.sound.midiはMIDI関連の面倒くさいことをクラスライブラリでやってくれてうれしいのですが、抽象度はそれほど高くないので多少MIDIの知識が必要です。マルチメディア関連はいろいろと面倒なのでメモ。

SMF(Standard MIDI File)の構造は以下のようになっています。

SMF(Standard MIDI File)

ヘッダチャンクは「MThd」「データ長(固定)」「フォーマット」「トラック長」「タイムベース」から構成されています。トラックチャンクは「MTrk」「データ長」「データセクション」から構成されています。フォーマット1なら複数個のトラックがあります。データセクションは「デルタタイム」「MIDIイベント」から構成されています。数値はリトルエンディアンなのに注意してください。データセクション以外はクラスライブラリがいい感じに面倒を見てくれます。可変長数値とかバイト単位のファイルパース面倒だなぁと思ってる人最適。

データセクションですが、デルタタイムは演奏データの先頭からの相対的位置を表しています。なので番号が若い順に演奏されます。MIDIメッセージは以下のように分類されます。

MIDIメッセージ

チャネルメッセージはコンピュータで音楽やってる人にはおなじみのメッセージで、ノートオンやコントロールチェンジやプログラムチェンジなどがあります。システムメッセージはシステムエクスクルーシブなど機器の初期化や特殊な命令を実行します。チャネルメッセージもシステムメッセージも本当はもっと細かく分類できますが、あとは参考書*1を見てください。

トラックはデータを管理しやすいようにまとめているだけなのでさほど重要ではなく、チャネルごとに分けてやるといいでしょう。ここまで来れば、あとは好きなようにMIDIメッセージを作ってタイマーをグルグル回しながらメッセージを送信すればMIDIシーケンサの出来上がりです。

*1 「MIDI1.0規格書」でもいいのですが、MIDIリファレンス&サウンドプログラミング全般の良書として「Windowsサウンドプログラミング」をオススメします。

本日のツッコミ(全1件) [ツッコミを入れる]

KK [初めまして、midi周りについて色々調べていたらここにたどり着きました。 当方、ウェブ系プログラミング言語をちょっ..]


2005-12-17 [土] [長年日記]

[Shopping] 今週の買い物情報

Endless Loop

島みやえい子さんの2ndアルバムです。曲数は少ないですが、全体を流しながら何度も聴ける構成は素晴らしいです。タイトル曲の「Endless Loop (回廊)」は本アルバムでもオススメです。


2005-12-18 [日] [長年日記]

[Programming] Visual Studio 2005 Express Edition 日本語版 無償提供開始

ほとんど機能制限のないMicrosoftが無償で提供する開発環境です。theSpoke向けのProfessinal版無償提供はまだですか。


2005-12-19 [月] [長年日記]

[Java][Programming] JavaでSMF (2)

SMFの読み込みはjavax.sound.midi.Sequenceを使えば楽です。まず、以下のようなメソッドでSequenceを作ります。

public void open(File f) {
	try {
		sequence = MidiSystem.getSequence(f);
		if (sequence == null) {
			throw new MidiUnavailableException("Unavailable sequence.");
		}
		tracks = sequence.getTracks();
		
		init();
	} catch (IOException e) {
		e.printStackTrace();
	} catch (InvalidMidiDataException e) {
		e.printStackTrace();
	} catch (MidiUnavailableException e) {
		e.printStackTrace();
	}
}

それから、シーケンス内部のメッセージを取得していきます。以下は結構いい加減なので適宜データをキャッシュしてください。例では特にメッセージを解析せず内部に格納しています。解析したい場合は、もし独自に再生処理を行いたい場合にはtickとパラメータをまとめたクラスを作ってそれを格納していくといいでしょう。

public void init() {
	for (int j = 0; j < tracks.length; j++) {
		for (int i = 0; i < tracks[j].size(); i++) {
			MidiEvent event = tracks[j].get(i);
			long tick = event.getTick();
			MidiMessage message = event.getMessage();
			// ここでMidiMessageを独自に内部形式に
			data.addElement(message);
		}
	}
}

MIDIメッセージを解析したい場合、例えばShortMessageは以下のようにします。

if (message instanceof ShortMessage) {
	ShortMessage s = (ShortMessage)message;
	if (s.getCommand() == ShortMessage.NOTE_ON) {
		// なんらかの処理
	}
	// 以下略
}

2005-12-20 [火] [長年日記]

[Java][Programming] JavaでSMF (3)

MIDIイベントの作成は前回登場したMidiEventを自分でいくらでも作ればいいだけです。

で、再生ですがこれがけっこう面倒です。方法はいくつかあります。

1. 独自に実装する

動的なデータ変更に対応できて便利なのですが、Win32 + JavaVM環境ではSystem#currentTimeMillisの性能が恐ろしく悪いのであまりオススメできません。とはいえ、J2SE 5.0になってからSystem#nanoTimeが使えるようになってかなり精度が良くなりました。もし独自実装にするにしても、以下のようにループさせるのではなくタイマを使用したほうが、楽で見やすくて良いと思われます。音色ですが、デフォルトではJava Sound Synthesizerで演奏されます。これはSoundbankを変更することでより豪華な音色に変更できますし、指定したMIDIデバイスにも送信できます。
→ソースコード (MIDIPlayer.java, Note.java)

以下にソースコードの要所を示しておきます。

int TPQN = 480;
int BPM = 120;
int TPS = TPQN * (BPM / 60);
long interval = 1000000000L / TPS;

long offset = System.nanoTime();
long startTime = offset;
long d;

for (;;) {
	while ((d = System.nanoTime()) - offset < interval) {
		try {
			NANOSECONDS.sleep(1L);
		} catch (InterruptedException e) {
		}
	}
	offset = d;
	// ここに割り込みが入ったときの処理を書く。
	// ちなみに、Tickとナノ秒の変換は以下のようにする。誤差は無視しています。
	// long t = (long)((double)TPS / 1000000000L * (d - startTime));
}

さらに1の方法でシーケンスをQuickTimeで鳴らしたソースコードです。それにしても、JavaでQuickTimeを扱った日本語の資料が少なすぎです。Windowsなら「C:\Program Files\QuickTime\QTSystem\QTJava.zip」をCLASSPATHに追加してください。
→ソースコード (QTMIDIPlayer.java, Note.java)

2. javax.sound.midi.Sequencerを使用する

これはすごく楽ですし、パフォーマンスも悪くないです。再生させると制御が戻ってこなくなるので再生用にThreadを作るといいでしょう。よほど細かい制御を行わないかぎりjavax.sound.midi.Sequencerで事足りると思います。
→ソースコード (SequencePlayer.java)

3. JMFを使用する

ほとんど2の方法と同様に使用できます。JMFは様々なメディアに対応していてとても汎用的です。ダウンロードはhttp://java.sun.com/products/java-media/jmf/
→ソースコード (JMFPlayer.java)


2005-12-21 [水] [長年日記]

[PC][Hardware] HDD市場が

これはまたすごい。HDD大手の2社がくっつくとは。なんかコスト効率が良くなって価格が安くなるなんて書いてるけど、そんなことないだろう。むしろ、独禁法ギリギリのマーケティングで消費者が混乱しそうです。まぁ、個人的にSeagateのHDDが大好きなので、Maxtorはどうでもいいのです。


2005-12-22 [木] [長年日記]

[Programming][Software] Visual Studio 2005 Professional Edition

そういえば昨日Visual Studio 2005 Professional Editionを手に入れました。Visual Studio .NET 2003 theSpoke Editionユーザだったので、無償で入手。ただ、SQL Server 2005 ProfessitionalやMSDNライブラリは付属せず。

[Other] 雪、積もってるよ

左に写る不気味な学章が怖い「雪、積もってるよ」
「そりゃ、2時間も降ってるからな・・・」

時刻は、04:00am。帰宅しようと外を見たら積雪。誰も足を踏み入れない時間で路面は綺麗に白だ。積雪量自体は大したことないけど、チャリで帰れないから帰るの面倒くさいなぁ。困った困った。

[Network] シャープ製au端末

シャープ信者の私としては少し興味深い記事。今のところコンセプトは決まっていないようだが、ハイエンド向けが出るんじゃないかと予想。


2005-12-23 [金] [長年日記]

[Other] 忘年会

久しぶりの飲み会。幹事さんお疲れ様です。
ソフトウェア業界は今後、どういう分野が流行るのだろうかなどを語り合いました。それにしても、去年ほど盛り上がらなかったなぁ。

[Music] ダイレクトメール

ポストの中を見る。ダイレクトメールだ。また島村楽器から。去年コンテストに応募したから今年も出せよ、と。それから、AW1000のセミナーに出てみないかと無料で誘い、AW1000を買えばコンテストもうまくいきますよ、と。ナントカ商法みたいだ。


2005-12-24 [土] [長年日記]


2005-12-25 [日] [長年日記]

[Other] 大掃除

年末なので大掃除してみました。掃除してたらいろいろ出てくるね。積読を消化しつつ、夜には積みゲーを消化しました。でもまだ残ってるよ。これから年始も暇せずに済みそうです。


2005-12-26 [月] [長年日記]

[Java][Programming] JEditorPaneって便利だね

javax.swing.JEditorPaneってリッチテキストやHTMLも表示できるんだね。しかも編集して、書き出しもできるのは便利。下のソースコードはリッチテキストを表示します。で、コメントアウトを解除して、「ここから」〜「ここまで」をコメントアウトすればHTMLも表示できます。

// JEditorPaneTest.java
import java.io.*;
import javax.swing.*;

public class JEditorPaneTest extends JFrame /* implements HyperlinkListener */ {
   JEditorPane pane;
   JScrollPane scroll;
   
   RTFEditorKit rtf;
   DefaultStyledDocument doc;
   
   public JEditorPaneTest() {
       setTitle("JEditorPaneTest");
       try {
           pane = new JEditorPane();
           scroll = new JScrollPane(pane);
           scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
           
           /*
           pane.setPage("http://sewig.jp/");
           pane.addHyperlinkListener(this);
           pane.setEditable(false);
           */
           
           // ここから
           rtf = new RTFEditorKit();
           doc = new DefaultStyledDocument();
           pane.setEditorKit(rtf);
           InputStream in = new FileInputStream("test.rtf");
           rtf.read(in, doc, 0);
           pane.setDocument(doc);
           in.close();
           // ここまで
       } catch (Exception e) {
           e.printStackTrace();
       }
       add(scroll);
       setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       setBounds(0, 0, 640, 480);
       setVisible(true);
   }
   
   /*
   public void hyperlinkUpdate(HyperlinkEvent e) {
       if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
           try {
               pane.setPage(e.getURL());
           } catch (IOException ex) {
               ex.printStackTrace();
           }
       }
   }
   */
   
   public static void main(String[] args) {
       new JEditorPaneTest();
   }
}
本日のツッコミ(全54件) [ツッコミを入れる]

Before...

viagra [ytcrkksl qajdrspa terbwruj]

acquistare cialis senza ricetta [agahohpo ewznklpg psfwziln]

viagra [vqugoklz kyaljbfh zdvvxteo]


2005-12-27 [火] [長年日記]

[Game] 「ブースターパックが詰まりました。係員をお呼びください。」

ベースボールヒーローズでこんな画面を出してる人を見ました。これはレアだ。カードを使ったゲームが増えてるからI/Oエラーが出ると泣きたくなるところだと思います。少し前にアイマスでカード書き込みエラーで765にカードを送った人もいたし。コンマイのe-AMUSEMENT PASSはサーバ保存だから便利といえば便利なんだけど、ネットに繋がってない場合はどうなるんでしょうね。


2005-12-28 [水] [長年日記]

[Other] CFタイプの無線LANカードが売ってない

しかも、sigmarion2で使用できる製品は限られているため、もはやヤフオク頼み。なのだが、ヤフオク高騰しすぎですよ。

本日のツッコミ(全1件) [ツッコミを入れる]

Cogxfckw [If the party's tax and so on. So on japan that basis?, ]


2005-12-29 [木] [長年日記]

[Other] しぶんぎ座流星群を見よう

2006年は観察には特に好条件だそうです。初夢、初詣、とともに、運試しにしぶんぎ座流星群を見ましょう。


2005-12-30 [金] [長年日記]

[Other] 帰省完了、と。

帰省しました。早速友人と飲み会でした。久しぶりに会ったけど、見た目も生活も結構変わってた。性格だけは相変わらずでしたが。いついても長崎は素晴らしい場所です。住宅地は、まぁ大したことないのだけど、やはり観光地と呼ばれているところは手入れが行き届いていて素晴らしいです。

問題は帰省中の生活なのだが、長崎市内はゲーセンで競合店舗が少ないため、価格設定が独占的だ。さて、どうしよう…


2005-12-31 [土] [長年日記]

[Other] 大晦日

なーんか、最近は大晦日って言っても気分は普段と変わらないような気がします。街の風景が変わったから? 自分の気持ちが変わったから? もう、大晦日とか正月とかは特別な行事ではなくなったのかもしれません。店は年中無休でオープンしてますしね。今は自分の気持ちを切り替えるための日だと思っています。今年こそはいい年にしよう、と。

…ということを毎年思っているわけだから、毎年成長してないのかなぁ、と自己嫌悪。幸せはいつ訪れるのでしょうか。

大晦日は無線LANと戯れていました。いつもの環境とは異なるネットワーク図を描いて環境構築。メルコのルータをブリッジにすると本体設定が面倒だぞ、と。

さて、今から仮眠に入って1日を楽しむことにします。皆様、良いお年を。


Copyright © 2004-2008 SewiG All rights reserved.