Audio MixerのMIDIコントロールというコンテンツを追加しました。 オートメーションを手動でプログラムしたい人向け(笑)。
今日は久しぶりにCDを買いました。
合計4枚ですね。 Prefuse 73以外はその場で視聴して購入。 まだ全く聴いていないに等しいのでゆっくり聴いていきたいです。
ところでHMVのポイント(店舗用。オンラインのでない)のシステムが変わったそうで、 ポイントカードを新しいものに変更してもらいました。 今度は500円で1ポイント。という事は50ポイント貯まるまでに2万5千円。 CD一枚2500円と考えると10枚ですか。つまり年間20枚買えば100ポイントですね。 これなら簡単に貯まりますね。 ・・・あ・・・今気づいたんですが、 交換前は発行日が7月だったのに新しいカードは昨日発行した事になっていますね・・・。 正しいような、正しくないような?? まあ得したんだから良しとしますか(笑)。
テキストファイル用アイコンを一つ追加しました。 TeX用です。 ・・・しかし、最近は時間が無い。 言い換えると時間がないと常に思える程にやる事、やりたい事がある。 幸せといえるのかもしれませんが、これはこれで考え物ですね(苦笑)。
SOL2豆知識のページに『「戻る」「進む」と「早送り」「巻き戻し」』を追加しました。
アイコンのページを更新しました。 テキスト系統のアイコンにC#、.hpp、Visual J#、Java、Visual Basicを追加しました。
久しぶりにシステムの再構築をする事になりました。 シェルを変更する程カスタマイズしまくっていたので環境を完全に復元するには時間がかかりそうです。 ああATOKもSOL2もインストールしないと・・・(苦笑)。
再構築中に知ったのですが、 Microsoft Visual C++ 6.0 Professionalをインストールするパスに「ドット」 (=".") が含まれるとIntelli Senseに不具合が出るようです。 Visual Studio .NET 2003もあるので"C:\Program Files\Microsoft Visual Studio 6.0"にインストールしたかったのですが・・・思わぬ弊害が出てしまいました。 具体的な症状はWin32APIやMFCの関数など明示的にインクルードしていない関数が候補に現れなくなる、というものです (細かい検証をしたわけではなく憶測)。 まあ・・・Win32APIはともかく、MFCの関数群は膨大な量なのでIntelli Senseが使えないとツライ(苦笑)。 結局3回も再インストールするはめになりましたが、まあ解決して良かったです(苦笑)。
唐突ですが私はPCゲームの一大ジャンルであるFPSというジャンルのゲームが大好きです。 私が初めてやったFPSは、その後私をFPS好きに変貌させるきっかけになったHALF-LIFEというゲームでした。 HALF-LIFEのできはあまりにも秀逸でして、実際発売直後からPCゲーム雑誌の売り上げランキングの首位は数ヶ月HALF-LIFEが独占していた程でした。 その後発売されたFPSは当然色々ありましたがHALF-LIFEをやった後だとどうにも満足できないものばかりで、 逆に言うとそれ程までに私にとってHALF-LIFEは素晴らしかったのです。 そして昨日、期待の新作"HALF-LIFE 2"が発売されました。 Electronic Entertainment Expo. 2003(略称E3。PCゲームのイベントです)で発表された時以来待ち続けたので、 つまり2003年5月から・・・待つ事1年と6ヶ月ですか。 改めて振り返ると長かったんだなぁと思いますね(笑)。 まあ前作のHALF-LIFEも発表から発売まで1年以上かかったらしいのでそれほど驚きはしませんでしたし予想の範囲内ではありました。 2003年9月にATIが同社製の(当時)最新ビデオチップであるRADEON 9800XT / 9600XT搭載カードに「HALF-LIFE 2をバンドルする」という話を聞いた時の衝撃は忘れられませんね(笑)。 結局迷った末にRADEON 9600XT搭載カードを買っちゃいましたし(笑)。 ところでHALF-LIFE 2 GOLDなるエディションがありまして、 それにはポスターや帽子、前作HALF-LIFEのリメイク版(!!)などなどが付属するという、 要するにコレクターズパッケージといった感じのものなのです。 RADEONを買った時にはそのエディションの発売予定そのものが公表されていなかったので、 そうとも知らず通常版がバンドルされるRADEONを購入してしまったのです。 とはいえ初代ファンである私は当然GOLDエディションが欲しいので、 HALF-LIFE 2の権利が2つにダブる覚悟でGOLDエディションを買おうか買うまいか悩んでいました(苦笑)。 が、本日HALF-LIFE 2の登録をしたところ、広告で表示されたGOLDエディションの値段が・・・下がっています。 どうやらRADEONを購入してHALF-LIFE 2の通常版の権利を持っている人にはその分を差し引いて売ってくれるようです。
非常に長い前置きになりましたが、書きたかった事は次の一行のみでございます。
「HALF-LIFE 2 GOLD、もう買うしかッ!!」(笑)
iPod、再生中にイヤホンが抜けると一時停止状態になってくれるんですね。 ちょっぴり感動しました(笑)。
最近就職活動関連の書籍や資料が多く届きます。 それらにはよく「企業研究」という文字が躍っており、 企業研究をしないものは就職戦争で敗北するといった趣旨の話が書かれてあります。 確かに全く知らない企業に就職しようというのは愚かな事だと思う一方、 このような時期にそのような書類が来る事にも疑念を抱かざるを得ません。 一般的に「大学三年生の頃から就職活動を始めたものが勝ち組」などと言われているように思いますが、 私にとって大学三年生は高校六年生です。 正直に言ってその程度の人間を採用しても企業にとってさほど価値など無いと思います。 特に大学の中で個人間の差が生まれるような講義は極めてまれであり、 唯一それを生むのが卒業研究だと思っています。 卒業研究はどんな人であれ必ず何らかの分野に特化した内容を文字通り突き詰めて「研究」するものです。 従ってその過程を経た後、その研究内容は当人の能力や適性、に大きな影響を与えるはずです。 つまり卒業研究は学生の人生に大きく影響し、後の方向付けをする可能性は十分にあると言えるはずです。 しかし何について研究するかを決めるよりも前に就職する企業を決定するべきだと世の中は言うのです。 私は現段階でやりたい研究内容が決まっており、 それを研究できればそれを武器に「就職戦争」とやらに勝つ自信があります。 確かに企業側の言うように大学学部の研究などレベルが低すぎて経験していようがいまいが関係ない、 という言い分は理解できます。 しかしそれは大学で勉強する事自体を否定されているのと変わりありません。 どうにもこうにも世の中には納得がいかない事が多いものですが、 最近はそう感じる事が多くなった気がします。 私も、年を取ったという事でしょうか(笑)。
PSPadの日本語化作業は全体の半分を終えたぐらいです。 現段階で言語ファイルは57KB。 単純計算で28KB分の英語を翻訳した事になりますか。 28KB分・・・GPL(Version2)の原文がプレーンテキストで18KBなのですごく疲れたのも頷けます(苦笑)。 あと半分・・・まあ無理しない程度に頑張りますか。 あ、もしも途中のファイルでもいいから欲しい、という方がいれば言って下さい。
そんな事よりもiPodを購入しました。 とりあえず各種ソフトをインストールしてiTunesから曲を転送。 いやー、たくさん入る事よりもこの転送の手軽さが嬉しいですね。 しかし個人的にはWinampなどのように単発でファイルを再生できるプレイヤーが好きです。 なのでWinamp用iTunesプラグインを入れて使う事になりそうです。 iTunesもWinampも「あるディレクトリの下をライブラリとみなす」わけですが、 Winampのプラグインはこの「あるディレクトリ」に複数のディレクトリを指定できるのでそれも嬉しいですね。
PSPad の日本語化が結構進みました。 ダイアログフォントの設定もできるようにしてもらえましたし、 文字化けが起こるのはもうごく一部だけとなりました。 言語ファイルは5分の2くらいまで作ってあるのですがまだ少々時間が掛かりそうです。 なにぶん、恐ろしいほどの多機能エディタですから翻訳に困るような機能も多いので。
「何か作る」とか前回書いた気がしますが、 実際はPSPadの日本語化で手一杯でしす(笑)。 それとMIDIツールは思想的に言ってシーケンサの外部にある時点でダメダメです。 ランチャーについてもぶっちゃけて言うとnrLaunchで困っていないので(苦笑) 開発意欲そのものが湧きません(開発停止気味なのが心配ではありますが)。 個人的に開発したいと常々思っているのはRandomizerというMIDIエフェクト。 名前まで決まっています(笑)。 任意の数値(ベロシティ、ピッチベンド、音程や発音位置など) に対して現在値を中心に指定した範囲で「ゆらぎ」を持たせるエフェクトです。 簡単に言うと、ベロシティなどをグラフ上でエディットする「ランダムツール」 (大抵のシーケンサにありますね)のリアルタイムバージョンです。 欲しいなーと思う一方、SOL用プラグイン(つまりOPT対応プラグイン) なんて誰も作ってないので自分で作るしかないと思うのですが・・・ いかんせんCOMはいまだよく分からない(汗)。 10あるうちの8を理解しないとプログラムできない人間なので実現はほど遠い・・・要精進、です。
相変わらず元気に高周波ノイズを奏でるマザーボードをサポートに送り出します。 おしとやかになって帰ってくる事を願いましょう。 その間はしばらく母親のノートPCを借りて自分好みのプログラムランチャーでも作っていましょうか。 いやちょっとしたMIDIツールも良いかもしれないですね。 PitchCalcをもう少し役に立つツールに拡張できるかと。 まあ、何にせよ時間があればの話ですか。
書き物として英語ソフトにおける文字化けの仕組みを追加。 PSPadの作者Jan Fiela氏には結果的に色々な迷惑を掛けました・・・反省。 結局、日本人がいけないんです。多分。うん。
マザーボードからピーピーガーガーと異音がします・・・。 かなり耳障りな高周波ノイズでたまったものじゃないです。 サポートに送り返すか・・・困りました。
本日素晴らしい電卓ソフトに出会いました。 SCAPというソフトです。 何が素晴らしいかと言うと、動作原理です。 例えば WORD でレポートを書いている時に「3.2/5.7*3.5」という計算がしたくなったら、 その場所でおもむろに「3.2/5.7*3.5」と打ちます。 そしてこの計算式を選択し、Ctrl + B(変更可能)を押すと、その部分が計算結果と置き換わるのです。 何がそこまで素晴らしいのかというと、 現在行っている作業を中断する事無くいつでも計算を行えるのです。 OSレベルでこの計算機能を搭載したかのような気分で使えます。
Humane Interface(私のスペルミスではなく造語です)という書籍には 「(簡単な)電卓といったアプリケーションは本来不要である。 何故ならそのような機能はアプリケーションではなくOSが持っているべきだからである」 という事が書かれています。 それを読んだばかりにこのソフトに出会ったのですごく・・・何というか、良い気分です(笑)。
本日Athlon64 (3000+)が届きました。 で、何はともあれ取りあえずDOOM IIIを1024x768 @ High Qualityでプレイ。 以前と比較すると感動ものの滑らかさで動きます(笑)。 ビデオカードはRADEON 9600XTなので少々まだ重たい部分がありますが、 これならNightmareモードもクリア・・・できるかな(苦笑)。
気まぐれにPLG150-DRのボイスリストを更新しました。 "LiveRm A"、"LiveRm B" のドラムインストアイコンを表示するようにしました。
Fantom-Xシリーズ用ボイスリストを作っていた時に気づいたのですが、 Rolandのオフィシャルサイトに置いてある音色リストによると、 Preset Patch H の 127 番は音色名が「xcultural」となっています。 最初が小文字の音色名はかなり珍しいと思ったのですが、 これは実機やマニュアルだとどうなっているのでしょうか。 間違いなのか、正しいのか、気になるところですが、 実機を持ってない為いつも通り動作確認できてません(苦笑)。
新しくXV-3080、Fantomのボイスリストを追加しました。 ところで、ボイスリストを改めてチェックしました。 XV-5080、XV-5050、SC-8850に修正があります。 特にSC-8850のものは使用するに耐えない不具合でした(汗)。 入り用な方は自作ボイスリストのページへどうぞ。
本日よりSOL2の豆知識なるコンテンツを追加します。 ちょっとした知識を書いていきたいと思います。
XV-5080のボイスリストが一部おかしかったので修正しました。
XV-5050のボイスリストを追加しました。
新曲をアップしました。 四つ打ち音楽です。 SOL2の操作にも慣れてきたのでちょっと小技をいくつか使っています。 自分では少しずつ・・・レベルアップしていると思うのですが、気のせいでしょうか?(笑)。 まあいずれにせよ精進していきますです。
インターンシップ終了。 で、バイトとして残る事になりました(笑)。 まだ詳しい話は決まっていないのですが、嬉しい話です。
で、すごいフラッシュサイトです。 今までの人生で見てきた全てのフラッシュの中で一番すごいです。 見る価値はあります。
なんだかあわただしい日記ですが今日はこれまで(笑)。
VLConvを更新しました。 実はうっかりミスをしていて、 カテゴリー名を指定しても反映されなかったので修正しておきました。
アイコンを更新しました。 テキストファイル用アイコンを少々作り直してより見やすいものに。 また、C言語用ヘッダファイル(.h)用アイコンも追加しました。
サーバー移転しました。 とそれはさておき、重大なミスをしていたので修正しておきました。 ミスというのは、ボイスリストの事です。 SCシリーズのボイスリストを公開していたのですが、 これらの設定を間違えていました。 数値一つなのですが・・・もの凄く重大なミスです。 恐らく使い物にならなかった事でしょう。 なにせ選択したボイスとは全然違うボイスが選択されてしまうのですから(汗)。 ともかく、この点を修正してアップロードしなおしました。
もう一点更新があります。 VLConvをアップデートして改行コードがLFのみのファイルにも対応しました。 公開されているCubase用パッチネームスクリプトの中にはMacで標準的な、 LFのみを改行コードとするファイルも多く見受けられます。 これらに対応していなかったのが問題だったのですが、やっと対応できました(苦笑)。
治郎吉商店では色々と学びます。 本日学んだ事は、While文でぐるぐると同じ処理を回すような場合、 「○回ループを回して処理」ではなく「ループを回して○回したら処理」と考える事。 前者の考え方をするとまずループを回し、 回し終わってから処理をする事になるので終端がズレる可能性が出てきます。 一方、後者の場合は回しながら毎ループ中にif文で条件判定を行って、 「欲しい条件が整った」事をきっかけにループを止める事ができます。 前者では例えばループを回す回数を算出する事、 ループがちゃんと思った通りの回数回ったかどうか確認する事などの手間が増えるので 近道に見えて遠回りになってしまう可能性が結構多かったりするようです。
色々と学んだので昔のソースを書き直してみようかな~などと思っています。 特にVLConvは自分で作ったプログラムのくせに何が何だか分からない状態なので修正作業は面白いでしょうね(笑)。 あ、あとアイコン自動登録アプリケーション「associater」 ですが、 Windowsレジストリの構造上避けられない問題が一つ出てきたので計画が頓挫しています。 打開策はあるのですが、いかんせんかなり面倒くさい作業になるので少し避けているトコロがありますね(苦笑)。 うーん、こっちを完成させるのが先なのでしょうか・・・。 まあどうせ誰も使わないアプリケーションでしょうが(笑)。
インターンシップが忙しいですね・・・正直、今は暇なしです。 まあ一日中プログラムを組んでいるのは面白いので別に良いのですが(笑)。 今日でちょうど一週間ですが、色々な事を学びましたね。 その中でも私にとって一番画期的だったのは、 柔軟な文法を持つC言語のソースを「敢えて」長くなるように書く事にメリットがあった事です。 プログラミングの世界においては一般に、長いソースは可読性が低く他人(3日後の自分も含む) が読みにくいので短いソースが良いと言われます。 しかし、これは正確な表現ではありません。 というかある意味大間違いな表現です。 長いと可読性が低くなるのは「ソース」ではなく、「処理」なのです。 よく目安としてエディタでソースを開いて一画面に一つの関数が収まると良い、という話を聞きますが、 例えば次のコードを見て下さい。
// 指定された文字列を検索
while( strcmp(myArray.getDataPtr(i)->m_szStr,szSearchStr) != 0 )
if( ++i>=myArray.getDataCount() ) break;
bHit = (i!=myArray.getDataCount())?true:false;
たった4行のコードです。 しかし、whileの行でエラーが発生した事を想定してみましょう。 どの部分でエラーが発生したか「予想が」付くでしょうか? また、このコードを読んでこの部分が何をしているのかすぐに分かるでしょうか? strcmpなど完成されていてバグが無いと保証されている関数を用いているからまだ良いものの、 ユーザー定義関数が何重にも入れ子しているソースのバグ潰しをしろと言われたら嫌ですよね(苦笑)。 この程度のコードですら、恐らく10分でエラー元を突き止めろと言ってもまず無理ではないでしょうか。 これを、細かい処理に分解して書き直すと次のようになります。
iMaxCount = myArray.getDataCount();
bHit = false;
iDataCount = 0;
// 指定された文字列の検索ルーチン
for( i=0; i<iMaxCount; i++ )
{
// 配列のi番目のデータへのポインタを取得
dataPtr = myArray.getDataPtr( i );
// 文字列の照合
iReturnCode = strcmp( dataPtr->m_szStr, szSearchStr );
if( iReturnCode == 0 ) // ヒットしたか?
{
bHit = true;
break;
}
}
前は4行でしたが、今度のコードは16行に増えました。 しかも変数が増えているのでこのコードを含む関数はかなり長くなる事でしょう。 しかし、前と比べると確実に読みやすくなったのではないか思います。 また基本的に一行に一処理なのでエラーが発生しても追跡するのに大きな苦労はありません。 ここで「でも12行以上も長くなっちゃうのは嫌」と思うのは人情です。 私もそう思います(笑)。そこで、発想の転換をします。 例え前のコードのように行数が少なくなるような処理の書き方をして 「見た目」を短くしたところでやっている事は同じなわけです。 ここがポイントですね。 つまり、このコードにおいて長いのは見た目ではなく実際の処理自体が長いのです。 従ってコードが長くなるのは仕方がない事なのです。 ならば、いくら見た目を短く書いたところで中の処理は変わらないので、 いっそこの部分をサブルーチン化してしまえば良いのではないか、と考えるようにします。 コードを短く書くという事は、モジュール化のチャンスをみすみす逃している事と同じと考える事は十分可能と言えます (だって、違う書き方をしたら画面に収まらない処理を10行に納めたところで、一画面以上分の処理を行っているわけですから)。 治郎吉商店で学んだ最大の収穫は、この考え方だと思います。 当然、ある一カ所でしか使用しないサブルーチンを作った場合、 オーバーヘッドが大きくなって処理速度の面で不利と考えるかもしれませんが、 正直に言うとその程度のオーバーヘッドを気にするよりも内部処理のアルゴリズムを最適化した方がよっぽど意味がある場合がほとんどだと思います。 本当に処理速度を追求したいのならそもそもC言語など使わずにアセンブラを使えという話になりますしね(苦笑)。
さて、今日の日記は異常に長くなりましたが(笑)ここまでにします。
インターンシップの話が確定しましたので8/17から始まりますです。 C言語でWindows用とMac用のアプリケーションを一つか二つ作る事になりそうなのですが、C++ではないのです。 Win32APIを使ってスケルトンも使わずに全て自分でコーディングする事になりそうです。 ウィザード要らず。厳しい(苦笑)。 治郎吉商店様は健全なソフトハウスでして、憶測ですがデスマーチはまずやらないようですね。 無理な注文は最初から受注しないし、できる範囲でやれる仕事が無いかと常に業界情報に目を光らせているようです。 曰く「プログラム企業に就職するなら営業が何人いるか聞け。 一人でもいるようならそこでのプログラミングは過酷なものになるだろう。」と。 要するに営業と実務(プログラム)が分離していると無理難題を受注してしまうという事ですね。 ふむ、いわゆる一つの真理ですな(笑)。
とにかく「時間が無い!」です。 本当は、静的なHTMLではなくPHPで動的に生成させたいとか、 掲示板をまともなものにしたいとか、XOOPSを試してみたいとか、 アイコン関連づけプログラムを使いものになるレベルにしたいとか、 画像ファイル用のアイコンを作りたいとか、 いい加減SOL2のオーディオミキサー解説記事を完成させたいとか、 いろいろ、いろいろとあるのですが、 8/17よりインターンシップが始まる予定です(ほぼ確定ですがまだダメになる可能性もある)。 なお、お願い先の企業様は治郎吉商店様です。 まあ企業秘密という程の事ではありませんが具体的な内容を伏せて話をすると、 C言語でWindows用とMac用のアプリケーションを一つか二つ作る事になりそうです。 忙しくなるとはいえ面白い体験ができそうです。楽しみですね。
今のアドレスが異常に長いと思い。 「お気に入りアイコン」 Mozilla Firefoxで正常に表示されないと思い。 Googleの「サイト検索」を利用したいと思い。 要するにドメイン/サブドメインが欲しいと思い。 またデータベースも使ってみたいと思い。 サーバ移転準備中です。 移転予定先は利用金額がほとんど変わらないのです。 そんな素晴らしい移転先は、さくらインターネット様です。