« 2005年10月 | トップページ | 2006年1月 »

SmartVisionセットアップ手順

いやはや、酷い目に遭いました。
昨日からパソコンをオーバーホールしていたのですが(と言ってもハードディスクを新品にしてOSを再インストールしただけですけど、)SmartVisionというNECのテレビ機能管理ソフトにはまりました。
このSmartVisionというソフトは、NECのテレビ機能付きパソコンを所有する限り絶対に使わざるを得ないソフトなのですが、僕が今まで見てきた中でも最もバギーなソフトの一つです。しかも、他の選択肢が一切ないというのがきついですね。

忘れないうちに手順をメモ。

1.システムの再セットアップ後に何らかの理由でSmartVisionをアンインストールしてしまった場合は、「ソフトナビ」というソフトウェア管理ソフトを使用して再インストールする。SmartVisionの実体は起動ドライブのAPSETUP\SVISION以下にあるが、ソフトナビを通さないと正しくインストールされない。

2.インストール終了後、一度起動して設定を行った後に、NECのサイトからADAMS-EPG+(Plus) 対応モジュールを拾ってきてインストールする。これはインターネットから番組表を落としてくるのに必要。

3.2の作業の後、一時的に起動時にエラーが出てしまう状態となるが、121wareの自動アップデート機能でSmartVisionをアップデートするとエラーが出なくなる。

2と3の作業を逆にするといつまでもエラーが出てしまうようで、これにはまってしまったのでした。
ほんとにこういうソフトは勘弁して欲しいなあ...。.Net frameworkが浸透すれば、軽くはならないと思うけど、もう少し安定したソフトが出回るようになるかな。

※追記…この方法だと、ADAMS-EPG+(Plus) 対応モジュールから番組表を落としてくることはできるものの、それがSmartVisionに反映されないみたいです。前はどうやったんだっけなあ…。

※さらに追記…落としてくるADAMS-EPG+(Plus) 対応モジュールが古いためにうまくいってなかったようです。こっちを使うとうまくいきました。

| | コメント (10) | トラックバック (0)

unless... と if not...

またRubyネタになってしまうのですが、今僕がRubyに関して悩んでいることの一つに、unless... を使うべきか、if not... を使うべきか、というのがあります。

unlessというのはRubyの予約語で、

unless A
 B
end
は、
if !( A )
 B
end
と同じ意味を持ちます。Cだと、
if !( A ) {
 B
}
ですね。 つまり、Rubyにはifと逆の意味を持つ構文が用意されているのですが、これに関して、Rubyist Magazine 第10号のあなたの Ruby コードを添削します 【第 1 回】 pukipa.rbでは、以下のように書かれています。
C や Java から Ruby 移行してきた人にありがちなのが、C/Java にもある構文ばかり使って Ruby 特有の構文を避けることです。特に unless, until はなぜか嫌われているようです。
(中略...)
ではなぜ if not よりも unless が、while not よりも until がよいのでしょうか。その理由は、文を構成する要素数が減るからです。わたしが「if not A」という式を見る場合、まず if を見て、A を見て、それを not で反転します。つまり脳内操作は三つです。しかし「unless A」の場合、unless を見て A を見れば終わりなので二つです。
僕もまさしく「C や Java から Ruby 移行してきた人」なので、unlessに対して微妙に違和感があります。なんだかunlessを見ると、「なんだっけ?」って感じで一瞬思考停止してしまうんですよね。

もちろん、if !(...)という括弧が必要な書き方は美しくないことはわかっているので、unlessを使うようにしたいという気持ちもあるのですが、悩ましいことにRubyにはif not...という逃げ道があるのです。
notというのは、!と同様に単項演算子で、真偽をひっくり返す効果があります。ただ、全く同じではなくて、Rubyの演算子式の仕様を見ていただくとわかるのですが、!よりも優先順位が低いんですね。notの下は、andとorしかありません。つまり、「andとorを使わない」というコーディングルールを使っている限りは、if not...はunless...と同じ意味になるわけです。(andは&&の優先度が低いもので、notと!の関係と同様です。)

もちろん、他の人がコードを読む場合、戸惑うことは予測できます。つまり、

if not A && B
 C
end
というコードを見た場合、notが「A」にかかるのか、それとも「A && B」にかかるのかを理解するには、Rubyの演算子の結合順位を正しく理解していなければいけません。最悪勘違いする場合もあります。他方
unless A && B
 C
end
なら、たとえunlessで引っかかっても、勘違いすることはないですよね。そういう意味では、unlessの方が優れていますね。なんだか書いてるうちに、unlessの方が明らかに良い気がしてきました(^^;

あと、調べているうちに見つけたのは、英語的に言うとunlessとif notは意味が違うということです。つまり、unlessは唯一除外する条件を示すのに大して、if notは他にも条件がありうることを意味しているんですね。Rubyでの使われ方では、unlessの方が正しいような気がします。

というわけで、何だか拍子抜けな結果になってしまいましたが、これからはunlessを積極的に使っていくことにしようと思います(^^;

| | コメント (3) | トラックバック (0)

Rubyを使ってみて

最近会社でRubyを使っています。と言っても、使用目的は主にテキスト処理で、今流行のRubyOnRailsではないのですが。

実は今までテキスト処理のようなスクリプト言語が適している開発はしたことがなくて、これがほとんど最初の経験でした。ですので、PerlPythonも勉強したことはあるものの、実際に使ってみたことはありません。スクリプト言語であれば、多分この三つのうちどれかができたらいいだろう...ということで、社内で使っている人が多かったRubyを選んだ次第です。実際、PythonとRubyはできることがほとんど同じなので、どちらを使うかは好みの問題だと思います。

Rubyを使ってみてまず感じたことは、これはプログラミング言語という意味ではCやJavaと同じだけど、書く上での意識の持ち方が全然違うなあということでした。

まず、Rubyを使うとソースコードが短くなるとよく言われるのですが、これは要するに「ソースコードが短い方が得をする」からなのだと思います。Rubyの主要なメソッドは、実際にはCで書かれているので、Rubyレベルでどんなに工夫していろいろ書いても、逆に実行効率が悪くなってしまいます。それに対し、CやJavaはライブラリと同じレベルでコードを書くことができるので、色々コードを工夫すると実行効率が良くなります。
つまり、Rubyプログラマーは、組み込みのメソッドを最大限に活用しようとするので、結果的にコードが短くなるということです。

またRubyを使っていて衝撃的だったのは、Rubyではコメントはなるべく少ない方が良いとされることです。これはつまり、変数名や書き方を工夫することで、コメントがなくても文章のように読めるコードを書くことが最善だということなのです。変数の宣言でコメントを付けるよりも、変数名を一目見て内容がわかるようにすることの方が大切なのは自明ですよね。
逆に言うと、Rubyはこのような書き方が実現できるように作られているということなのだと思います。

Rubyは一見わかりやすい言語ですが、その言語機能は膨大で、上記のような「Ruby Way」を実現するためには、学習すべきことが数多くあります。そういう意味では、Rubyは決して易しい言語とは言えないなあと感じてしまいました。

| | コメント (0) | トラックバック (0)

ユビキタスプログラミング

Rubyのまつもとさんの日記はとっても面白くてためになるので、プログラマなら必読だと思うのですが、11月25日のエントリにちょっと気になる言葉がありました。

・ Matz, you have achieved a lot in your life so far. If I still remember how to count, you're now turning 40 years old. Do you have any dream that you have not yet achieved so far?

Seeing my grandchildren, honestly. Besides that, I do want to see the world of ubiquitous programming, where we can program everything, and to see some influence from Ruby in it.

ユビキタスコンピューティングが実現するなら、ユビキタスプログラミングが実現してもおかしくはないですよね。ちょっと想像してみたんだけど、それってハリー・ポッターの世界観にすごく近いんじゃないかな。その世界では、プログラミング言語が本当に魔法の言葉になるはずです。

ちなみに今でも、最高クラスのプログラマは“Wizard”(魔法使い)と呼ばれるんですよ。

| | コメント (0) | トラックバック (0)

WX310K

散財その...もう幾つになったかわからないのですが、WILLCOM信者としては祭りに乗り遅れるわけにはいかないのです。というわけで、WX310Kのノーブルピンクを買ってみました。

正直初めて京ぽんを使ったときほどの感動はないけど、全体的に速度アップして快適になってます。特にOperaは縮小して表示する機能がだいぶ実用的になりました。いつでもどこでもネットに繋げるというのは、やっぱり安心できますね。必要なときにGmailへアクセスできるわけですし。MIDIも密かに強化されて、着メロにしてるボコのテーマがより楽しくなりました。

あとはやっぱり京ぽん名物のファームアップに期待ですね。CPUは最新型だから、ポテンシャルは高いはずなのです。

ちなみに、うちの会社にドコモを持っているにもかかわらずWS003SHを買おうとしているツワモノがいます。確かにこれはとても新しい形なんだけど、携帯の価値って、やっぱり片手で使えることなんじゃないかなあと個人的には思います。そう言う意味では、iPodのクイックホイールみたいなものが出てきたらいいんですけどね。

| | コメント (0) | トラックバック (0)

引っ越しで買ったもの

広めの部屋に引っ越すといろいろ買いたくなるもので、忙しくてストレスがたまっていたこともあり、何だかやたらと買い物をしてしまいました。冬のボーナスを先に使ってしまった感じです。

まず、引っ越したら絶対に欲しいと思っていたのがデスクとイス。今までちゃぶ台で使ってましたからねえ。
コストパフォーマンス重視で選んだのが、GarageホワイトシリーズのPC用じゃないデスクと同じ高さのラック。あと、イスはいろいろ悩んだんですが、あんまり立派すぎるのもどうかと思って、シンプルなデザインだけど機能は揃ってるNEXチェアの肘なしグレーにしました。

ホワイトシリーズのデスクとラックは、値段のわりに造りが良くて、とても満足してます。ただ、特にデスクの方がやたら組み立てるのが面倒くさい。ちょっとした日曜大工をする覚悟が必要ですね。
NEXチェアは、あんまり存在感のないデザインがやっぱりいいです。ワンルームだと、寝るところもデスクも一緒の部屋ですし。座り心地もしっかりしてて快適です。

あと、ちょっと悪ノリで散財してしまったのが洗濯機。サンヨーのAWD-ST74を買ってしまいました。ただ、やっぱり全自動はメチャメチャ楽です。ほとんど放り込んでスイッチ押すだけですし。僕みたいに無精な人にはお勧めできます。

| | コメント (0) | トラックバック (0)

引っ越しました

就職してからずっと会社の寮にいたのですが、このたび阪急桂駅付近に引っ越しました。晴れて京都市民です...って言っても端っこですけどね。その影響でこのところずっとネット環境がなかったのですが、一週間くらい前にそれも解決しました。やっと元の生活に戻れたなあという感じです。

引っ越しをしようと思ったのは、うちの会社全体が年末に向けて恐ろしい状態になっていた時で、どちらかというと現実逃避でした。会社の寮は、いようと思えば来年の三月までいれましたので。
使ったのは主にエイブルYahoo!不動産です。どちらかにしかない物件があったりするので、両方探してみるのが吉ですね。gamellaも書いてるUR都市機構もお得なんだけど、京都近辺だとあんまりいいのがなかったんです。

大学が阪急沿線にあって、そこに出入りすることが多いので、阪急沿線にしたいとは思っていたのですが、会社からあんまり遠くなるのもきついので、桂という場所は良い妥協点でした。駅から近くて、そこそこ広くて...っていうのを探しているうちに、たまたま新築のマンションがあったので、えいやっと決めてしまいました。ちょっと博打だったかなあと思います。下見に行ったらまだ土台しかなかったですからね(^^;

マンションが建ったのは仕事がやっと収まった頃で、ちょうど良いタイミングでした。家はワンルームだけど10畳くらいあって、なかなか快適です。光回線も思ったより早く引けたし、運が良かったですね。

ところで、はてなって「コメントを書く」のとこにトラックバックのアドレスがあったんですね。合理的だけどちょっとトリッキーなところがはてなっぽいな。

| | コメント (0) | トラックバック (0)

« 2005年10月 | トップページ | 2006年1月 »