iMacのデュアルディスプレイに惹かれる

Mac No Comments »

【追記】実現しました。「iMac (Early 2008)でデュアルディスプレイ」をご覧ください。


これまでiMacには全然興味がわきませんでした。ディスプレイ一体型だと、モニタの質を選べません。広視野角の液晶だったり、角度とか設置の自由度が高いモニタが好きなんです。知ってて買ったとはいえ、視野角が狭く、単色でもグラデーションがかかって見えるiBookのような安物液晶はもうこりごり。

そういう冷ややかな目で見ていたiMacですが、アップルのサイトを眺めてみてビックリ。

3つのどのモデルのiMacでも、2台目のディスプレイを接続して、単純なミラーリングだけでなく、 デスクトップを拡張して使うこともできます。Mini DVIポートには、DVIディスプレイ、VGAモニタ、プロジェクタや、S-Video、Compositeコネクタ(別売のアダプタが必要)を接続できます。

え、iMacってデュアルディスプレイできるの?しかもDVIポートなの?VGAオンリーじゃないのか!

知らなかったorz

そうなると、俄然魅力的に見えてきた。内蔵ディスプレイに不満があれば、DVIポートに別のをつないでそっちをメインディスプレイにすればいいわけだし。キャンペーン価格になったときのデル液晶モニタシリーズ と組み合わせれば完璧?

コストパフォーマンス的に、20インチ 2.16GHz Core 2 Duo(4MB共有二次キャッシュ)のやつが一番よさそう。17インチのも良いけど、2次キャッシュが半分の2MBのものはちょっとやだな。

アマゾンだと¥189,800 (税込み)だけど、「その場で8000円割引」キャンペーン中だからお会計は¥181,800。10%還元が付いてるので、後日¥15,000分のAmazonギフト券がもらえるから、実質¥166,800か。8千円引きは10月3日までらしいので、買うならそれまでに決めないとダメか(※追記あり)。

iMac 2.16GHz Intel Core 2 Duo/20

iMac 2.16GHz Intel Core 2 Duo/20″/1GB PC2-5300/250GB/SD/ATI Radeon X1600 128MB

ソフマップだと、189,800円 (税込)で6%還元の11,388ポイント付き。5年保証のパーフェクトワランティに加入するなら、こっちもありかも。

ただ、一番のネックはやっぱりLeopardのプリインストール機の方が良いなぁということ。OSはアップグレードするより、クリーンインストールされている方が良いでしょう。気分的にもね。

【9/16 追記】

iMacは「エレクトロニクス 秋のハッピーセール」の対象商品ではありませんでした。支払い段階でキャンペーン用のAmazonギフト件番号を入力すると、「このキャンペーン用Amazonギフト券は、このご注文にはご利用いただけません。詳しくは、キャンペーン用Amazonギフト券の細則をご覧ください。」というお知らせが表示されました。

誤った情報を掲載して、申し訳ありませんでした。

あと、最終的にメモリを2GBにするんだったら、Apple Storeでプラス¥22,050したほうが割安かもしれませんね。ソフマップではBUFFALOの「DDR2 667MHz SDRAM(PC2-5300) 240Pin DIMM 2枚組・容量:1GB×2」が44,300円しますし、受注生産品らしく納期が「通常1〜2週間」でお取り寄せになっています。

iMacはメモリ交換のためにボディを開けるためのネジがなめやすくて危険という情報もありますし、最初から増設しておいた方が安心ということもあります。その代わり、BTOになるので出荷予定日は、2-4日に若干のびますが。

iMac CoreDuoを手に入れた!

アマゾンの外貨参考価格がドルだったり、ポンドになったり

No Comments »

昨日まで5,201円だったAmazon.co.jpでの『JavaScript – The Definitive Guide 5th Edition』の価格が、今日見てみると6,957円と値上がりしてる。アマゾンの洋書の販売価格は、為替レートの変動で高くなったり、安くなったりすることがありますが、今回は随分高くなりましたねぇ。

と思いつつよく見ると、日本円に換算される前の「外貨参考価格」の単位が「$」じゃなくて、「£」に変わってる。

pound

こちらがGoogleのキャッシュに残ってた「2006年9月11日 01:44:03 GMT」のもの。

dollar

Amazon.co.jpの洋書コーナーを見ていて以前から気になっていたんですが、どういう仕組みで外貨参考価格の通貨がコロコロ変わるんでしょうね?理由が気になるところです。

「Smalltalk におけるシンボルの振る舞い」を、Ambrai Smalltalkで試す

Mac No Comments »

sumimさんが「Smalltalk におけるシンボルの振る舞い」と「Smalltalk と Ruby と LISP のシンボル」でSmalltalkのシンボルについて解説されていたので、早速Ambrai Smalltalkで試してみました。Smalltalkの教科書として買った『Smalltalk, Objects, and Design』は、コードの実行結果が載っていないのが難点だったので、実行結果まで書かれているのが助かります。

ところが、喜んだのもつかの間、なぜか結果が同じにならないところがちらほら。入力間違いか、Ambrai Smalltalkの操作法を理解していないからか、はたまた実行環境の違いが問題なのか、原因が分からないのが困りものです。

イミュータブル

まず、「Smalltalk と Ruby と LISP のシンボル」の方ですが、「イミュータブル」の例が同じにならない。

'hoge' at: 2 put: $a   " => 'hage' "

が、

'hoge' at: 2 put: $a   " => $a "

という結果に。そういえば、『Smalltalk, Objects, and Design』でも同じような例で悩んだ覚えが…

P.36の”Examples”。

#zero at: 1 put: $h
'zero' at: 1 put: $h
'zero' copy at: 1 put: $h
#zero copy at: 1 put: $h

三つ目が’hero’に置き換えられる以外は全部失敗(fail)するらしいんですが、Ambrai Smalltalkの実行結果は二番目と三番目が$hになってしまいます。改めて読み返したら、二番目がイミュータブルなのはIBM Smalltalkの仕様みたいだから、これがfailにならない事自体はAmbrai Smalltakでは問題ないのかな。

In IBM Smalltalk, literals are immutalbe — they are read-only objects and cannot modified. (Literal strings and literal arrays are mutable in other dialects.)

source: Chamond Liu. Smalltalk, Objects, and Design. iUniverse, 2000. P.35

ただ、どうしてこの式の実行結果が$hになるのかが分からない。

x := 'zero'.
x at: 1 put: $h.
x.

こうすると、最終的にxは’hero’になるけど、1行ずつ実行していって、2行目をInspectすると結果は$hだし。

同じ内容の文字列とは等価とみなされる

#hoge  = 'hoge'   " => true "
'hoge' = #hoge    " => true "

みなされないorz。両方、falseになるよ。

The primary difference between a symbol and a string is that all symbols comprising the same sequence of characters are the same instance. Two different string instances can both have the characters ‘test one two three’, but every symbol having the characters #’test one two three’ is the same instance. This “unique instance” property means that Symbols can be efficiently compared, because equality (=) is the same as identity (==).

検索して見つけたSqueak Smalltalk: Basic Language Referenceより引用。これの最終行の意味は、「シンボルではequality (=)とidentity (==)が同じなので、効率的に比較できる」という感じかな。それで、= と == が同じになるのはシンボル同士の比較だけなのかな?一方がシンボルなら、ということなら、Ambrai Smalltalkの結果も理解できそうだけど。

squeak-devメーリングリストの過去ログ「[BUG] equivalence between strings and symbols」によると、Squeak 2.7で

#squeak = 'squeak' false
'squeak' = #squeak true

と、結果が異なってしまうバグがあったようです。これに対し、バグの発見者のJohn W. Sarkelaさんが、

Haven’t made the change yet. Up to my own devices, I would ensure that a string and a symbol are never equivalent. This would be consistent with VisualWorks and VSE. I can’t easily check other dialects at this moment, but I suspect that most others follow the fold.

と述べられています。「stringとsymbolは等値にはならない」、「これはVisualWorksやVSEとも一致するだろう」という感じだと思いますが、そういうことならsymbolとstringの = による比較がfalseになるのは問題ないような気がします。と思ってたら、MLの続きで違った意見も出てるみたいで、またよくわからなくなってきた。「To make String and Symbol ANSI compliant regarding #=」では、ANSIに準拠して両方falseにするか、反対に両方ともtrueにするかメンバーに問うています。2000年の議論らしいけど、結局どうなったんだろう?

最新版で試してみれば分かるだろうと、Mac対応のSqueak 3.8.12beta4Uというのをダウンロードしてみました。勘で動かして(Squeak 3.8.12beta4U.appはVirtualMachineで、起動はSqueak3.8-6665full.imageの方をダブルクリックするんですね)、Transcriptで実行してみると、 結果はtrueでした。

同内容のシンボルと文字列、それぞれをキーとしたときの振る舞い

Smalltalk におけるシンボルの振る舞い」のほうでも、シンボルの扱いがAmbrai SmalltalkとSqueakで違います。

| dict |
dict := Dictionary new.
dict at: #key put: #value1.
dict at: 'key' put: #value2.
^ dict

は、Squeakでは

a Dictionary(#key->#value2)

ですが、Ambrai Smalltalkでは

Dictionary((#key)->(#value1) ('key')->(#value2) )

でした。

結局、正しい挙動はSqueakの方って事なんだろうか?方言の違いとかじゃなくて。

One-Click Ruby Installerを入れたら、CygwinのRubyが不調に

Windows No Comments »

以前はWindowsにはActiveScriptRubyを入れてましたが、最近はOne-Click Ruby Installerのほうがおすすめらしいので、こちらをインストールしてみました。

RubyGemsも一緒にインストールできて便利だなと思ったものの、ちょっと動作がおかしいみたい。コマンドプロンプトに”ruby -v”を入力して表示されるバージョン情報が

ruby 1.8.5 (2006-08-25) [i386-mswin32]

のはずが、

ruby 1.8.5 (2006-08-25) [i386-cygwin]

になってる。Cygwin版のRubyもインストールされているのがまずかったか。パスの順番の問題?

ユーザー環境変数のPATHで、”c:\ruby\bin”をcygwinのものより先にすることで解決。

ところが、今度はCygwinのirbが起動しない。エラーメッセージによると、rubygemsがらみのよう。もう一度システム環境変数を調べてみたら、設定した覚えのないRUBYOPT変数に”-rubygems”が入力されていた。これのせいか?

Cygwin版のRubyにはRubyGemsはインストールしていなかったので、とりあえずこちらにも入れておくことにする。RubyForge: RubyGemsからrubygems-0.9.0.tgzをダウンロードして、展開、setup.rbを実行しようとしたら、またエラー。RUBYOPTが設定されたままだと、RubyGemsのインストールもできないのか。

仕方がないので、RUBYOPT変数をクリアしてWindowsを再起動。今度は無事に、RubyGemsのセットアップも完了。RUBYOPT変数を元に戻して、cygwin版、mswin32版ともに動作するようになりました。

irbの使い道は、もっぱら電卓代わりなんだけどね。 :)

"warning: suggest parentheses around assignment used as truth value"

No Comments »

ふつうのLinuxプログラミング Linuxの仕組みから学べるgccプログラミングの王道

ふつうのLinuxプログラミング Linuxの仕組みから学べるgccプログラミングの王道』の198ページのコードで出た警告。gccには”-Wall”オプションを付けてます。以前にも遭遇した警告なのに忘れていたので、メモしておこう。

while (ent = readdir(d)) {

while ((ent = readdir(d))) {

に修正。

while ((ent = readdir(d)) != NULL) {

でも同じ?

TIL 「MacBook: 断続的にシャットダウンする」

Mac No Comments »

アップルのTech Info Libraryに「MacBook: 断続的にシャットダウンする」という項目が更新されていました。

アップル – サポート – TIL

F’s Garage:MacBookだめぽ・・・。」でも書かれているように、MacBookオーナーの方は結構苦労されているようなので、どういう理由でそうなっているのか気になっていました。

で、TILにアクセスして該当項目を読んでみたら、

お使いの MacBook が断続的にシャットダウンする場合は、サポートサービスの窓口として AppleCare あるいはアップル正規サービスプロバイダまでご連絡ください。

という事だそうで。問題としては認識しているけど、現時点では公表する考えはないのでしょうか。

『Mac OS X Dashboard Widget Recipes』は発売中止?

Mac, No Comments »

Amazon.comでWishlistに入れていたDashboardの解説書『Mac OS X Dashboard Widget Recipes』が”This item is no longer available.”になって消えていた。出版元のApressのサイトも調べてみても、以前はアクセスできたはずの『Mac OS X Dashboard Widget Recipes: A Problem-Solution Approach』のページもエラーになってしまう。

もしかして、出版中止になった?来年Lepardと一緒にDashcodeが出るからとか?

MAC OS X Dashboard Widget Recipes

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS ログイン