レッドクルーズからeクルーザーというティッカー型RSSリーダーがリリースされていますが、このeクルーザーがmixiやGREEに対応したようです。
実はHeimdallrもそのうちmixiやGREEに対応しようと思っていました。
さっくり先を越されてしまいました。
Heimdallrが対応するのはバージョンとしては1.08か1.09、つまり数ヶ月先の予定です。
さて、ここでなんとなくHeimdallr 1.08に追加される予定の機能を予告してみます。
まだ1.07もリリースされていないんですけどね。
Heimdallr 1.08では、ChannelExtensionという機能を追加する予定です。
(昔はSiteExtension)と呼ばれていましたので、このサイトをSiteExtensionで検索すると関連記事が見つかるかもしれません。
ChannelExtensionは、Heimdallrに、RSS Feed以外のデータを表示させることを可能とする枠組みです。
具体的には、ChannelExtension Pluginと呼ばれるDLLを、Heimdallrインストールフォルダ/pluginに置くと、Heimdallrが、そのDLLから取得したデータを表示するようになる、という仕組みを予定しています。
ChannelExtension Pluginの仕様は公開して誰でも作ることができるようにしようとは思っていますが、たぶん誰も作ってくれないと思いますので主なものは私からリリースしようと思っています。
ChannelExtension機能のポイントとなるのは、どんなPluginがあるの?ということだと思います。
色々なPluginを考えています。上記したmixiやGREEの新着情報等を読み込むPluginもその一つです。それ以外のPluginの詳細は、言ってしまって実現できないと恥ずかしいので、本当にPluginがリリースされるまでお待ち下さい。
Heimdallr 1.07beta1をリリースします。
安定版ではありません。
Heimdallr 1.07beta1
安定版はHeimdallr 1.06です。
1.07alpha2→1.07beta1の変更点は以下の通りです。
本バージョンからβ版になりました。
しばらく使ってみて特に問題が無ければこのままの機能で安定版としてリリースします。
それではHeimdallrにおいてデザインパターンが使われているクラス構成を紹介します。
最初に紹介するのは、Heimdallrのスキン関連のクラス構成です。 ここがHeimdallrにおいてもっともデザインパターンが有効に活用されたところでしょう。
以下にクラス図を示します。
このクラス図は、Heimdallrの本来のクラス構成そのものと完全に一致しているわけではありません。
デザインパターンにあまり関係無い部分は省き、分かり易い様にしてあります。
また、本クラス図を作成したソフトの都合上、CSkin*を返す関数、というのは記述し難かったので、
CSkin*を返す関数もCSkinを返す関数もCSkin&を返す関数も、まとめてCSkinを返す関数として記述してあります。
適当に解釈して下さい。
以下、各クラスを順番に説明していきます。
以上で説明したクラス群の重要な役割は、 CRankedViewFrameに、CSkinContextクラスのインスタンスを割り当てることです。 この割り当ては、次のように行われます。
本クラス構成において、以下の2つのデザインパターンが使われています。
こうしてデザインパターンを使うことにより、いくつかのメリットがありました。
1つ目のメリットは、スキンの種類を簡単に増やすことができたことです。
デザインパターンを使う以上、このメリットが得られるのは当然です。
透明スキン、ペイントスキンを追加するときに既にこのメリットを享受できましたし、
今後スキンの種類を増やすときにも享受できるでしょう。
2つ目のメリットは、透明スキンのWin9x対応が簡単にできたことです。
Heimdallrでは、透明スキンを実現するためにレイヤード ウィンドウというWin2000以降で追加された機能を使用しているため、Win9xでは透明スキンが実現ません。
そこで、CTransparentSkinクラスのGetContext関数では、OSのバージョンを取得し、Ver.4(Win9x)であればCSimpleSkinContextインスタンスを生成し、Ver.5(Win2000)以降であればCTransparentSkinContextインスタンスを生成するようにしました。
こうしたことにより、CTransparentSkinContextクラスの実装及びテストにおいて、Win9xを一切考慮する必要が無くなり、実装もテストも楽でした。
3つ目のメリットは、重たいスキンやメモリを大量に使うスキンが、他のスキンに影響を与えないように簡単にできたことです。
透明スキンは、レイヤードウィンドウという重たい機能を使う上、CTransparentTextFrameを使ってウィンドウを2枚使っています。しかし、透明スキンを使わなければ、CTransparentSkinContextインスタンスは生成されないため、いくら透明スキンが重たくても他のスキンを使っていれば影響がありません。
また、ペイントスキンは、画像データを保持するためメモリを確保します。メモリを確保するのはCPaintSkinContextなので、ペイントスキンを使わなければ、CPaintSkinContextインスタンスは生成されず、従って、画像がどれほど大きくてもメモリを無駄に消費することはありません。
以上のように、デザインパターンを使うことにより色々と具体的なメリットがありました。
・・・。ということですが、うーむ。本当ですかねこれ。これらのメリットは、デザインパターンだけから得られたメリットもないでしょうし、分析も甘い気がしますし、本気で信じないで下さいねー。
しかしクラス構成を書いた図だけからそのクラス構成のメリットをしっかりと説明するのって難しいですね・・・。
Heimdallrは、C++を用いてオブジェクト指向による開発が行われている、ということに一応なっています。
そして、そこでは様々なデザインパターンが使われています。
本記事のデザインパターンは、GoFのパターンを意味することにします。Abstract Factoryパターンやらなんやらの23個のパターンのことです。
デザインパターンとは何か?ということについてここでは詳細に触れません。 知りたい方は、オブジェクト指向における再利用のためのデザインパターンという本を読んで下さい。Googleで検索しても色々な情報が見つかります。
本記事では、Heimdallrにおいて、デザインパターンが使われている所のクラス構成と、デザインパターンを使うことによるメリットを説明したいと思います。
Heimdallrはソースコードを公開しているので、今回紹介するクラス構成の実装をじっくり見ることもできます。
また、Heimdallrのソースコードセットに含まれているdesign\heimdallr.judeというファイルは、Heimdallr全体の(巨大な)クラス図が記述されているデータファイルで、永和システムから配布されているJUDE/Communityというフリーソフトで見ることができます。
実装の方もクラス図の方も(残念ながら)それほど素晴らしいものではありませんが、デザインパターンがどのように使われ、どのように実装され、そしてそれがどのように働いているのか、具体的な事が全て分かります。
こうして具体例を紹介することで、皆様の今後のソフトウェア設計の参考になったり、デザインパターンへの理解が深まったりするんじゃないかなーーーと少し期待しています。
前置きが長くなってしまったので今回はこれでおしまいです。クラス構成の紹介は次回から行います。
先日購入したハードディスク内蔵ポータブルMP3プレイヤーRio carbonを使って、
通勤途中に英会話なんぞを聴いています。
一応一週間続いております。聴いていてもあまり苦にならないので今後も結構続きそうな感じです。
ハードディスク容量が5Gもあるので、簡単な英会話とちょっと難しい英会話を入れておいて、元気なときは難しい英会話、疲れているときは簡単な英会話と使い分けています。
聴いているだけで語彙が増えるのが良いですね。
here we are. after you. hold on please. と言った決まり文句がいつの間にか覚えられています。
今のところ聴いているのが、
これらのCDには、日本語訳と英会話がセットで入っているため、ぼーっと垂れ流して聴くだけで日本語とセットで覚えられます。
日本語訳は必須ですね。試しに、日本語訳が無く英語だけのCDを調達して聴いてみましたが、正直さっぱり分かりません。慣れれば平気なのかもしれませんが、しばらくは日本語も入っているCDを中心に聴いていく予定です。
私は、masato@mb.kcom.ne.jpというメールアドレスを利用していることから分かるとおり、KCOMというプロバイダを利用しています。
しかしそのKCOMが来年3月末でサービスを終了することになりました。つまり潰れるということです。
インターネット接続サービスにおけるダイヤルアップ・フレッツサービス終了のご案内
何より痛いのが、このメールアドレスが使えなくなってしまうことです。
一応来年9月末まではメールアドレスの利用を継続できますが、それでも9月末で終了です。
これは、あなたの家の電話番号は来年9月末で変わりますと言われるに等しい出来事です。
長いこと連絡が無いけれど連絡手段を失うのも困る人とか結構いるのですがどうしましょうかね・・・
なお、私は数年前からhi-hoを利用しているので、hi-hoのメールアドレスも持っています。masato@max.hi-ho.ne.jpです。今後の公式メールアドレスはこちらにする予定です。
Amazonやらbk1やらメールアドレスを使って登録している色々なサービスも順次設定変更していく必要があるのですが・・・。一体いくつ登録したのか検討も付きません。
こうしたサービスは、パスワードを忘れた場合、登録してあるメールアドレスにパスワードを送付する、という方法でパスワードの更新が行われる場合が多く、パスワードを忘れたままメールアドレスが使えなくなると身動き取れなくなって大変です。
メールアドレスってインターネットにおける名前兼住所になっているんですね。変わるととても大変です。
プロバイダの選択は、価格とかサービス内容よりも、潰れないかどうかで選ぶべきだったかなといまさらながら後悔しています。OCN(ここはたぶん潰れない)が一番だったかもしれませんね。でもいまさらhi-hoからOCNに移るのも面倒ですし、メールアドレスのためだけにOCNに加入するのもお金がもったいないので、当面はhi-hoで行きます。頼むから潰れないで欲しいなhi-hoさん。
Rio carbonという携帯ハードディスクmp3プレイヤーを買いました。
私は音楽をあまり聴かないので、今までラジカセも携帯CDプレイヤーの類も買ったことがありません。
これが生まれて初めて買った音楽プレイヤーになります。
買った一番の目的は英会話の勉強をすることなんですが、
音楽も聴いてみたいとか携帯ストレージとしても使いたいとか、他にも色々目的はあります。
このプレイヤーは記録容量が5Gもあるため、恐らく私が生涯に聞く曲が全曲入ります(私は生涯に1000曲も聴かないだろうという見込みがあるからです)。さらにその上88gと軽いので、胸ポケットに入ってしまうお手軽さがあります。
Rio Japanがこのプレイヤーを発表したときから欲しいなーと思っていたので、
仕事が一段落したこの機会にさくっと買ってしまいました。
生まれて初めて買った音楽プレイヤーなので他の音楽プレイヤーとの比較なんてできるはずもないですが、なんとなく便利だと思ったことや不便だと思ったことを取りとめもなく書いてみます。
便利だと思ったこと
不便だと思ったこと
総括すると、Rio carbonは、落としやすいところは気になりますが、音楽プレイヤーとしてとても便利に使えます。生mp3が再生できるというのが一番のポイントですね。USBマスストレージクラスに対応しているので、USBでさくっと接続して、さくっとmp3ファイルをコピー。これで転送完了。本体も落としやすいという点を除けばジョグダイヤルで操作もお手軽。これで音楽が少し身近になるでしょう。
あっそういえば主目的は英会話でしたね・・・。一応何か入れておかないと・・・。