DELLで最高の[購入]パフォーマンスを挙げるには
DELLの購入サイトを見ると、
・個人のお客様
・法人従業員500名以下
・公共機関のお客様
・法人従業員500名以上
とわかれている。
それぞれのターゲット向けに、商品や商品構成が異なるが、同じスペックと思えるのに、なぜか価格が違ったり、どうも後者に行けば行くほど割高に感じられる。昔からの謎だったので、同じスペックのPCの構成で比較してみた。ちなみに法人でも個人のラインナップから買うことは可能。
構成はこんな感じ
CPU: Core(TM) 2Quad Q8300(4MB L2 2.50GHz,1333MHzFSB)
OS: Windows Vista(R) Home Premium SP1
メモリ: 4GB (2GBx2) DDR2-SDRAM
ハードディスク:500GB SATA HDD (7200回転)
グラフィック:ATI Radeon(TM) HD 4350 512MB
光学ドライブ:DVDスーパーマルチドライブ
一年保守
保守のメニューが多少違う感じだが同じレベルにし、ほかは同じ構成で揃えたところ、
個人のお客様: 69,980円(内割引22,050円)
法人500名以下: 76,930円(内割引31,220円)
公共機関: 108,150円
法人500名以上: 108,150円
となった。公共機関と法人500名以上は、同額になった。法人500名以下は、割引がなければ同額になる。
ちなみに、個人は中の構成は同じだが、ブランドが違う。VistroとStudioDesktopの違い。この違いは、マザーボードが違うのかどうかはわからない。Dellではマザーボードの情報は表示されないし、選択もできない。
もしそこに差がなければ、個人で買うのが一番安く済むということになる。
そして、まったく同じものが、公共機関や法人500名以上だと、割引がつかないということ。
金を取れるところからしっかりと金を取る、という素晴らしい!コンセプトになっているようだ。
・個人のお客様
・法人従業員500名以下
・公共機関のお客様
・法人従業員500名以上
とわかれている。
それぞれのターゲット向けに、商品や商品構成が異なるが、同じスペックと思えるのに、なぜか価格が違ったり、どうも後者に行けば行くほど割高に感じられる。昔からの謎だったので、同じスペックのPCの構成で比較してみた。ちなみに法人でも個人のラインナップから買うことは可能。
構成はこんな感じ
CPU: Core(TM) 2Quad Q8300(4MB L2 2.50GHz,1333MHzFSB)
OS: Windows Vista(R) Home Premium SP1
メモリ: 4GB (2GBx2) DDR2-SDRAM
ハードディスク:500GB SATA HDD (7200回転)
グラフィック:ATI Radeon(TM) HD 4350 512MB
光学ドライブ:DVDスーパーマルチドライブ
一年保守
保守のメニューが多少違う感じだが同じレベルにし、ほかは同じ構成で揃えたところ、
個人のお客様: 69,980円(内割引22,050円)
法人500名以下: 76,930円(内割引31,220円)
公共機関: 108,150円
法人500名以上: 108,150円
となった。公共機関と法人500名以上は、同額になった。法人500名以下は、割引がなければ同額になる。
ちなみに、個人は中の構成は同じだが、ブランドが違う。VistroとStudioDesktopの違い。この違いは、マザーボードが違うのかどうかはわからない。Dellではマザーボードの情報は表示されないし、選択もできない。
もしそこに差がなければ、個人で買うのが一番安く済むということになる。
そして、まったく同じものが、公共機関や法人500名以上だと、割引がつかないということ。
金を取れるところからしっかりと金を取る、という素晴らしい!コンセプトになっているようだ。
VMWare Unkown (Invalid) 問題解決
今まで、てっきりVMのバージョンの違いとばかり思っていた。
VMのマーケットプレイスに行って、CentOSなどのアプライアンスをダウンロードするのだが、多くは、VMを追加した段階で、UnkownあるいはInvalidと表示され、PowerOnをしても、
The server response included one or more errors
などと出てきて、動作できない。
バージョン1で作ったVMファイルは、2では動かせなかったりしたので、アプライアンスが動かないのもそのせいだと思っていた。なので巨大なアプライアンスをDLしてきては、駄目で、と動くものを探して何度もDLを繰り返していた。
今日、久しぶりに、TomcatをLinux上で動かすために、再度VMを使って検証しようとし、CentOS5.2をダウンロードしてきた。
ところが前と同じ問題。
検索しても解決策はヒットしない。似たような問題もあるが、VM1ベースでのことであったりする。
こういうとき奇妙な気持ちに襲われる。
多くの場合、自分が経験している問題は他の人も経験している。だからGoogleればヒットする。特に変わったことをやっているわけではないのだから、当然他の人にもあるはずだと思うが、全く解決策が出ないとはこはいかに。
としているうちに、ようやくみつかった。
http://tech.zsoldier.com/2008/11/vmware-server-20-unknown-invalid-vms.html
.vmxファイルを開いて、.encodingの行を削除すればいいのだ。
それだけでVMからもうUnkownとは言われなくなり、普通に起動できた。
今回の場合、
.encoding = "windows-1252"
とあった。別のを見ると、
.encoding = "Shift_JIS"
とか
.encoding = "UTF-8"
などきわめて(日本で)一般的な名前だ。
OSに依存するので、アプライアンスの作者の環境では問題なかったのだろう。
無事起動し、NetworkはBridgeに変え、dhclientでIP取得。コンソール上からは操作がいまいちだったので、外からSSHで接続。
yumも入っており、rubyとjavaをインストール。
きわめて順調。
VMのマーケットプレイスに行って、CentOSなどのアプライアンスをダウンロードするのだが、多くは、VMを追加した段階で、UnkownあるいはInvalidと表示され、PowerOnをしても、
The server response included one or more errors
などと出てきて、動作できない。
バージョン1で作ったVMファイルは、2では動かせなかったりしたので、アプライアンスが動かないのもそのせいだと思っていた。なので巨大なアプライアンスをDLしてきては、駄目で、と動くものを探して何度もDLを繰り返していた。
今日、久しぶりに、TomcatをLinux上で動かすために、再度VMを使って検証しようとし、CentOS5.2をダウンロードしてきた。
ところが前と同じ問題。
検索しても解決策はヒットしない。似たような問題もあるが、VM1ベースでのことであったりする。
こういうとき奇妙な気持ちに襲われる。
多くの場合、自分が経験している問題は他の人も経験している。だからGoogleればヒットする。特に変わったことをやっているわけではないのだから、当然他の人にもあるはずだと思うが、全く解決策が出ないとはこはいかに。
としているうちに、ようやくみつかった。
http://tech.zsoldier.com/2008/11/vmware-server-20-unknown-invalid-vms.html
.vmxファイルを開いて、.encodingの行を削除すればいいのだ。
それだけでVMからもうUnkownとは言われなくなり、普通に起動できた。
今回の場合、
.encoding = "windows-1252"
とあった。別のを見ると、
.encoding = "Shift_JIS"
とか
.encoding = "UTF-8"
などきわめて(日本で)一般的な名前だ。
OSに依存するので、アプライアンスの作者の環境では問題なかったのだろう。
無事起動し、NetworkはBridgeに変え、dhclientでIP取得。コンソール上からは操作がいまいちだったので、外からSSHで接続。
yumも入っており、rubyとjavaをインストール。
きわめて順調。
きゅうり35cmに
Getterの主体は誰か?
他人の書いたソースコードを読んで、?と思ったので一言。
getHogeboke(x);
.....
ん、戻り値を受け取ることなく、getとは何事か。
このメソッドの定義を見れば、
void getHogeboke(String x)
などとある。
にもかかわらず、なぜgetと付いているかというと、このメソッドが、外から値を取ってきて、メンバー変数にセットしているから。
外から値を取ってきて、メンバーに値をセットするなら、setもありではとも言える。
ときどき、get、set絡みで、メソッド名の命名に困惑することがある。
これはプログラマが無知だからでも、要領が悪いからでもない。
最初にgetter/setterを考え出した人間と、オブジェクト指向を考え出した人間が悪い。
GetやSetというのは、あくまでもオブジェクトを利用するクライアント側の視点であり、主語はクライアントだ。クライアントが値をGetするために、そのGetなんちゃらを呼び出すのであり、クライアントがそのオブジェクトに値をセットするために、Setなんちゃらを呼び出すのである。
オブジェクト指向によれば、メソッドとは、オブジェクトに対してメッセージを送ることを意味する。
メッセージを送るというのが???だが、通常、オブジェクトに対する命令もしくは依頼だ。
命令文は英語では、主語なしに、
Stand up!
というが、これは
You stand up.
の主語が省略されたもので、stand upの主語はあくまでもYouだ。つまりオブジェクトがどうするかを命令することだ。
とすると、オブジェクトにGetしろと命令することは、オブジェクトがどこからか、値をGetすればいいのであるから。void getHogeboke()というメソッドは何の問題もない。
英語で、Get the pen.と言ったら、そのペンを取れということであって、よこせと言うことではない。
もしよこせと言うなら、giveHogeboke()という命名にしないといけない。
一方、Getter以外のメソッドの命名は、たいてい主語はオブジェクトになっている。
この矛盾は、Getter、Setterを考え出した人間に責任がある。
とはいえ、いまさら慣習は変えられないので、私の方針としてはこんな感じ。
1.そのオブジェクトが持っているメンバーを返す
⇒get
2.そのオブジェクトが外から値を持ってきて、メンバーにセットし、値は返さない。
⇒load
3.2に加え、値を返す。
⇒loadAndGet
もしくはgetかloadかどちらか力点が置かれる方。値をセットすることが中心で、返す値は参考程度ならload。キャッシュのためにメンバーにセットし、値を返すことが中心ならget
4.そのオブジェクトが外から値を取ってきて、メンバーにはセットせずに、値を返す。
⇒fetch, find, retrieve
あと、引数に渡されたオブジェクトに、値をセットするなら、
void setTo(HogeObject obj, String param1..)
ちなみに、HTTPのメソッドの、GET,POST,PUTなどもクライアントが主語になっているが、これはこれでそれ以上メソッドの数が増える心配もないし、クライアントが主語で統一されているので問題はない。HEADやOPTIONは置いといて。
getHogeboke(x);
.....
ん、戻り値を受け取ることなく、getとは何事か。
このメソッドの定義を見れば、
void getHogeboke(String x)
などとある。
にもかかわらず、なぜgetと付いているかというと、このメソッドが、外から値を取ってきて、メンバー変数にセットしているから。
外から値を取ってきて、メンバーに値をセットするなら、setもありではとも言える。
ときどき、get、set絡みで、メソッド名の命名に困惑することがある。
これはプログラマが無知だからでも、要領が悪いからでもない。
最初にgetter/setterを考え出した人間と、オブジェクト指向を考え出した人間が悪い。
GetやSetというのは、あくまでもオブジェクトを利用するクライアント側の視点であり、主語はクライアントだ。クライアントが値をGetするために、そのGetなんちゃらを呼び出すのであり、クライアントがそのオブジェクトに値をセットするために、Setなんちゃらを呼び出すのである。
オブジェクト指向によれば、メソッドとは、オブジェクトに対してメッセージを送ることを意味する。
メッセージを送るというのが???だが、通常、オブジェクトに対する命令もしくは依頼だ。
命令文は英語では、主語なしに、
Stand up!
というが、これは
You stand up.
の主語が省略されたもので、stand upの主語はあくまでもYouだ。つまりオブジェクトがどうするかを命令することだ。
とすると、オブジェクトにGetしろと命令することは、オブジェクトがどこからか、値をGetすればいいのであるから。void getHogeboke()というメソッドは何の問題もない。
英語で、Get the pen.と言ったら、そのペンを取れということであって、よこせと言うことではない。
もしよこせと言うなら、giveHogeboke()という命名にしないといけない。
一方、Getter以外のメソッドの命名は、たいてい主語はオブジェクトになっている。
この矛盾は、Getter、Setterを考え出した人間に責任がある。
とはいえ、いまさら慣習は変えられないので、私の方針としてはこんな感じ。
1.そのオブジェクトが持っているメンバーを返す
⇒get
2.そのオブジェクトが外から値を持ってきて、メンバーにセットし、値は返さない。
⇒load
3.2に加え、値を返す。
⇒loadAndGet
もしくはgetかloadかどちらか力点が置かれる方。値をセットすることが中心で、返す値は参考程度ならload。キャッシュのためにメンバーにセットし、値を返すことが中心ならget
4.そのオブジェクトが外から値を取ってきて、メンバーにはセットせずに、値を返す。
⇒fetch, find, retrieve
あと、引数に渡されたオブジェクトに、値をセットするなら、
void setTo(HogeObject obj, String param1..)
ちなみに、HTTPのメソッドの、GET,POST,PUTなどもクライアントが主語になっているが、これはこれでそれ以上メソッドの数が増える心配もないし、クライアントが主語で統一されているので問題はない。HEADやOPTIONは置いといて。




