新ブログの更新状況

スポンサーサイト

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

花咲か中年

本当は、全然枯れてなんかいないんだぜ。

スポンサーサイト

ウイスキーの小瓶

昨夜、ふと思いついて、ウイスキーの小瓶を買ってみました。

普段は全く酒は飲まないんですが、珍しくストレスが溜まったりすると、アルコールが欲しくなります。 といっても、酒に溺れて全てを忘れたい!というわけじゃありませんよ。 私の場合、しらふでは細かいとこまでこだわり過ぎてしまうんですが、アルコールが入ることで適度に気持ちが緩んで「いい加減」になるんですよ。 もちろん、飲み過ぎはいけませんけどね。

ビールだと、冷えてるうちに飲まないといけないし、アルコール分が少なくて分量が多いので、飲むのに忙しくなってしまいます。 かといって、焼酎は臭いがキツいし、日本酒は高いし後に残っちゃう。 で、残ったのがウイスキーの小瓶だったわけです。 あまりウイスキーの味は好きじゃないんですが、アルコール度数が高いので、ストレートで飲む分にはあまり気になりません。 それに、小瓶ならたったの300円で買えちゃいますからね。安い!

そうそう、ウイスキーの小瓶といえば、洋画に出てくる酔っぱらいの必需品ですよね。 高架下のホームレスが寝っ転がったままラッパ飲みして激しく咳き込んだり、アル中患者がポケットから取り出してフラフラになりながら小瓶を壁に投げつけたり。 どうしようもないダメ人間ばっかりなんですが、なぜかウイスキーの小瓶が良く似合うんですよね。 これが缶ビールだとなんだか子供っぽいし、一升瓶だと逆に親父臭いし。 独特の薄っぺらい瓶の形は、不思議な大人の魅力があるんですよね。

ウイスキーのアルコール度数は約40度。 ビールが5度、日本酒が15度、焼酎が25度なので、これはダントツの高さです。 若い頃は、わけもわからずにがぶ飲みするしか能がなかったので、ウイスキーは危険な飲み物でした。 でも、アルコール度数の高い酒には、それなりの飲み方があるんですよね。 そう、舌の先を湿らす程度にチビリチビリやるんです。 これができるようになれば、君ももう大人の仲間入り。 深飲みせずに、上手に酔いをコントロールしましょう。

熱い液体が、喉を焦がしながら流れ落ちていく。 この感触がたまらないんですよね!

肉球の夢

寝てるけど、起きてるんだよ。

知識の功罪

iKeyboard 3の開発ですが、いきなり躓いています。

昨年末に学んだオブジェクト指向プログラミングやデザインパターンのおかげで、これまで苦労していた部分が簡潔にできそうな予感はあったんです。 実際、ここはVisitorパターンが使えそうだな、これならStateパターンが良さそうだ、などなど、早速勉強の成果が現れてはいるんですが、そこから先になかなか進まないんですよね。 理屈ではわかっていても、実際にそれを実装する方法がわからずに、手をこまねいてしまっているんですよ。

今は、基本となるキーボード関連のデータ変換部分を実装しようとしているんですが、これがまたややこしいんです。 要素としては、まず各キーに割り当てられたKeyCodeがあり、キー配列上の位置を表すKeyMapがあり、キー位置に対応した指使いのヒントとなるKeyHintがあり、キー配列に対応した文字配列となるKeyScriptがあります。 さらに、KeyMapにはJisとUsの2種類、KeyScriptにはQwertyとDvorakの2種類があり、おまけに直接入力とシフト入力、英字入力とかな入力の違いもあったりして、もう何をどうして良いやらわからなくなってしまいます。

これまでは、IfやSelectによる分岐を使って使い分けてきたわけですが、正しいオブジェクト指向プログラミングでは、クラスによって使い分けるらしいんですね。 とりあえず、それらしいクラスを作ってみたんですが、クラスの数が増えるばっかりで、それをどう扱って良いのかがさっぱりわからないんですよ。 どうやら、私の頭は非オブジェクト指向になっているようです。 でも、ちょっと待てよ。 今の自分は、オブジェクト指向やデザインパターンに振り回されてないか?

効率化を図るのが目的のはずなのに、効率化のために効率が落ちていたんじゃ話になりません。 確かに、オブジェクト指向プログラミングは非常に強力な手法ではありますが、何が何でもオブジェクト指向にしなければならないわけではありません。 XPプログラミングでも、まずは最短の解決策を見つけて、最適化は後からリファクタリングすることになってるじゃありませんか。 どうやら、気負い過ぎて頭が固くなっていたようです。

人の意見に耳を傾けるのは大切なことですが、人の意見を鵜呑みにして自分を犠牲にしてしまっては意味がありません。 まずは、自分にとっての理想をイメージした上で、それを現実にするための努力をするべきです。 人の意見というのは、その段階になって初めて役に立つんですよね。 イメージを膨らませるには、自分のやり方を貫くのが一番です。 そう思うと、肩の荷が下りて、ずいぶん気が楽になりました。

とにかく、手探りでもいいから前に進まないと。

廻る寿司 めっけもん、めっけ!

NORIさん(旧ドラゴンさん)と、回転寿司に行ってきましたよ。

鹿児島の回転寿司といえば「寿司まどか」なわけですが、最近新しく美味しい回転寿司ができたらしい。 それも、テレビで回転寿司日本一になったんだとか。 実は、正月明けに一人で食べに行ったんですが、噂に違わず本当に美味しかったんですよ。 ちょうど、NORIさんの修論が上がったところだったので、お祝いに食べに行くことになったのでした。

店に着いたのは7時半前で、店内は意外と空いていました。 待ち時間が長いという話だったので、これは助かりました。 二人で6人掛けの座席に着くと、とりあえず赤出しを注文。 それから、お薦めの品々を適当に注文してから、いただきま~す! うん旨い!やっぱりネタの旨さが違う! ちゃんと魚を食べてるな~という実感があります。

値段を気にせず、好きな物を腹一杯食べて、28皿で5,500円也。 7,000円近くするんじゃないかとヒヤヒヤしてたんですが、意外と安く済んでビックリ。 1皿当たり200円というのは、ネタの旨さを考えれば十分安いですね。 今回はドルフィンポート店に来たわけですが、あちこちライトアップされていてとても綺麗でしたよ。 次は、隣の定食屋(同じめっけもん)で海鮮丼を食べてみたいなぁ。

帰りは、天文館をブラブラと歩いてから、市電で帰りました。ふう、お腹いっぱい!

ONKYO SE-U55GXを買ったよ

Yahoo! オークションで、ONKYO SE-U55GXを落札しちゃいました。

これは、USBで繋げるサウンドユニットで、Creative XmodSound Blaster Audigy 2 NXときて、これで3代目になります。 定価で比べると、Xmodが7,800円、Augidy 2 NXが13,440円、SE-U55GXが23,100円なので、倍々と順当に進化していることがわかります。 ちなみに、落札価格は約9,000円。 新品同様の綺麗な品で、なかなか良いものを手に入れました。 でも、性能の方は値段相応に良くなっているのでしょうか?

早速、Mac miniにUSB接続します。 メーカーのサポート外ですが、Mac OS Xでもちゃんと認識されて、音もちゃんと鳴ります。 愛用のヘッドホンATH-A700を繋げて聴いてみると、その音の変わり様に驚いてしまいました。 Audigy 2 NXも、エネルギッシュな音に満足していたんですが、SE-U55GXは、音に膨らみと広がりが出て、あまりの違いに思わず笑ってしまいました。

実は、ネットの情報によると、SE-U55GXのヘッドホン出力は良くないという評価が多くて不安だったんですが、私には十分過ぎるくらいの性能でした。 ヘッドホンの最高出力が弱いという情報もあったんですが、ATH-A700では出力が足りなくなることはありませんでした。 ところが、USBオーディオ特有のプチプチノイズがわずかに出ていて、せっかくの高音質がもったいない!

でも大丈夫。 SE-U55GXは、オーディオセレクタ&ヘッドホンアンプとして、パソコンからは独立して使えるようになってるんですよ。 そこで、Mac miniの光出力をSE-U55GXの光入力に繋いでみたところ、プチプチノイズのない綺麗な音が聴けるようになりました。 SE-U55GXでは、パソコンから音量を変えられなくなってしまうんですが、ヘッドホンの音量つまみがついているので、さっと音量を変えられてとっても便利です。

Audigy 2 NXは、Macで使うには何かと不便だったんですよ。 初期状態でCMSSというサラウンド機能がONになっていて、これのせいでこもったような音になってしまうんです。 CMSSのスイッチがついているんですが、Macではなぜか反応してくれません。 これを切るためには、一旦Windowsに繋いでからCMSSのスイッチを切って、再びMacに繋ぎ直さないといけません。 何かの拍子に設定がリセットされると、またこれのやり直しです。 Macはサポート外だから仕方ないんですが、いい加減うんざりしていたんですよね。

SE-U55GXのおかげで、やっと快適に音楽が楽しめるようになったわけですが、私の持っている音楽はロックばっかりなんですよね。 ロックは元気が出てくるので好きなんですが、時にはそれがうるさく感じることもあります。 そんな時は、静かで落ち着く音楽を聴きたいところなんですが、そういうのはほとんど持ってないんですよ。 ジャズはなぜか体が受け付けないので、クラシックなどでお薦めがあれば、ぜひ教えてくださいね。

良い音楽に包まれながら、良い仕事をしよう!

iKeyboard 3 初スクリーンショット!

iKeyboard 3で、ようやくスクリーンショットが撮れるまでになりました。

このキーボード表示自体は、ただ表示しただけのやっつけ仕事なわけですが、これらのキー情報の取得がひと通りできるようになりました。 このキーボード表示は、OS (Mac/Win), KeyMap (Jis/Us), KeyScript (Qwerty/Dvorak), Modifier (Direct/Shift) と、2 x 2 x 2 x 2 = 16通りの組み合わせがあるわけですが、これらをどう実装するかでずいぶん回り道をしてしまいました。

オブジェクト指向プログラミング、デザインパターンやリファクタリングでは、switchの代わりにポリモーフィズムを、継承よりも委譲を、定数よりもクラスを、ということでした。 よし、それじゃあと、16個のクラスを用意して、それぞれの上位の抽象クラスを用意して、というようにしていったんですが、クラスが増えるばっかりで、ソースが単純化するどころか、逆に複雑になって収拾がつかなくなってしまったんです。

iKeyboard 1では条件分岐を駆使することで、iKeyboard 2では固定長データを何層も用意することで対応してきました。 iKeyboard 3では、表計算で作った表をそのまま読み込めるようにすることで、プログラムの単純化とデータを並び替える手間を省いて、信頼性を向上させようと考えていました。 大して難しい処理じゃないはずなのに、どうしてこんなに苦労しなくちゃならないんだ?

結局、固定長のMemoryBlockにデータを展開して、それを配列にすることで対処できました。 クラスはKeyMap, KeyHint, KeyScriptの3つと、表を読み込むクラスが1つ、そしてそれらをパッケージ化するモジュールが1つ。 クラスの数が大幅に減って、おまけに、これらのクラスを外部から隠蔽することにも成功して、ずいぶんすっきりさせることができました。

これまでは、ひとつのグローバルモジュールにキー関連の処理を詰め込んでいたので、大きな進歩です。 iKeyboard 3では、モジュールは窓口の役割に特化していて、具体的な処理は各クラスに任せています。 これにより、モジュールがカタログ代わりになって、外部からの利用がとてもしやすくなりました。 ずいぶん時間がかかってしまいましたが、おかげでオブジェクト指向プログラミングのリズムがつかめてきました。

これまで、ずっとREALbasicというオブジェクト指向言語を使ってきたにもかかわらず、その利点をまるで活かせてなかったのかと思うと、とても悔しいですね。 でも、この調子なら、今まで泣く泣く諦めてきたアイデアの数々を、どんどん実現できそうです。 とりあえず、今週中に、このキーボード表示部分を、iKeyboard 2と同程度にまで仕上げたいと考えています。

iKeyboard 3が、どれだけ素晴らしいソフトになるのか、今からとても楽しみです!

チョコの季節

チョコの美味しい季節になりました。

酒に想う

酒を飲みながら、あれこれ考えてみた。

自分を取り巻く状況は、ここにきて好転してきている。それは間違いない。 やりたいこともあるし、やるべきこともある。 なのになぜ、迷っているのか。迷う必要などないのに。 どれだけ周りの環境を整えても、満たされないものがある。 何を欲しているのかはわかってる。情熱だ。 わかっていても、求めるばかりで、情熱は湧いてこない。

情熱を燃やす対象はある。情熱が全くないわけでもない。 でも、その情熱が長続きしない。 アルコールで焼けた喉の感触が消えていくように、情熱もその勢いを失っていく。 でも、これは今までだってそうだった。 いくら情熱を燃やしたところで、それで望みが叶うわけじゃない。 それでも、情熱の炎が照らす夢の姿を、はっきりと見れたじゃないか。

情熱の炎を燃やす、燃料が足りない。 だが、その燃料は、酒ではない。 自分の中にある感情、喜びや哀しみ、憧れや妬み。 いつの間に、こんなにつまらない人間になってしまったんだろう。 元々たいした人間じゃなかったかもしれないが、誰よりも自分の人生を楽しんでいる自信はあった。 でも今は、そんな自信はない。 あるのは劣等感と、焦りばかり。

いや、焦りすらなくなって、今は諦めだな。 何をやっても駄目というわけじゃないし、やってやれないわけじゃない。 ただ、自分の中にある理想と、自分の目の前にある現実の違いに、うんざりする。 いや、理想なんて、もはや自分の中には存在しない。 今の自分は、何も望んでいない。 過去の情熱の名残に頼ってるだけ。 これじゃあ、情熱が湧いてくるわけがない。

子供の頃の憧れは、使い果たしてしまった。 もう、過去に頼ることはできない。 過去が薄れていき、自分が消えていく。 過去は自分自身。過去を食べ尽くせば、自分は死ぬ。 未来のために、過去を使い過ぎたようだ。 未来のために、今を犠牲にし過ぎたようだ。 先のことは、先になってから考えればいい。 それよりも、情熱の燃料になるような、良質な過去を蓄えていかなければ。

初心に返るよりも、今の自分を、もっと信じよう。

久々の散歩

やっぱり、外の世界は、気持ちがいいなぁ。

キーボードの切り替え

iKeyboard 3のキーボード表示が新しくなりました。

といっても、見た目の変化はほとんどありません。 その代わり、内部構造が大きく変わっています。 まず、キー表示を担当するKeyPartクラスを作り、そこでキーの各キーのスプライトを管理するようにしました。 スプライトは、最上位にAnimationSpriteクラスがあり、キーのスプライトはそのサブクラスになっています。 アニメーションの状態はAnimationStatusクラスが保持しており、実際の描写はAnimationPainterが行います。

これまで、AnimationSpriteクラスの中に、AnimationStatusとAnimationPainterに相当する機能が全て盛り込まれていたので、とても規模の大きなクラスになってしまっていたんですが、他のクラスに委譲する形にすることで、かなりシンプルな構造になりました。 また、AnimationStatusをサブクラス側で初期化して、それをひとまとめにしてスーパークラスに渡すことができるようになったので、データの流れもわかりやすくなりました。

また、日本語キーボードと英語キーボード、Qwerty配列とDvorak配列の切り替えもできるようになりました。 これまで、キーボードや配列の種類を変える度に、キーのスプライトを総入れ替えしていたわけですが、今回は、最初に全てのスプライトを用意しておき、スプライトの位置と内容を切り替えるようにしています。 これらの切り替えは頻繁に行うものではありませんが、これによって切り替え処理が大幅に高速化しました。

あとは、アニメーション処理を実装して、HintPartとCenterPartを追加したら、キーボード部分は完成です。 なんとか連休中にキーボード部分を終わらせて、来週からは出題部分にはいりたいですね。 ただ、このキーボード部分はiKeyboardの要ともいえる部分なので、手を抜くことなく、慎重に練り上げていくつもりです。 大きな機能拡張はしませんが、ひとつだけ新機能を追加する予定です。 これまでにないユニークな機能なので、お楽しみに!

少しずつ新しいオブジェクト指向プログラミングにも慣れてきたので、ペースを上げていかないと。

輝く世界

光があるって、素晴らしい!

プロフィール

K-Hyodo

K-Hyodo

本名:兵頭 薫
鹿児島の30代男性
ソフトウェア作家を目指す

コメント・拍手は大歓迎!

K-Hyodo's Soft

どのソフトも、
Mac & Windows 両対応!

iKeyboard 3

本気で覚えるための、
キーボード練習ソフト。

ベクターソフトレビュー


PhotoMaster 2

撮影を楽しむための、
デジカメ写真管理ソフト。

ベクターソフトレビュー

Vector Best Online Soft of 2004


iKeyboard 2

ブログを読み返すための、
バックアップ表示ソフト

窓の杜 今日のお気に入り


マルチプラットフォームの統合開発環境REALbasicで開発しています。

Twitter

 

カレンダー

01 | 2008/02 | 03
- - - - - 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 -

ブログ内検索

アクセスカウンター

読書メーター

K-Hyodoさんの読書メーター
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。