2008/05/20

[Mac]BootCamp終焉の日

去年の秋あたりから私のMacBook(OSX10.4 Tiger)は
BootCampによるWindowsXPのみの起動だけになっていた。

起動ディスクもWindowsにしていたので、
私のMacBookの扱いはWin機といってもいい。

最近XPの調子が悪いのでパーティションを一度つぶして、XPを入れ直そうと思った。


久しぶりにOSXから起動すると、何故だかBootCampが動かない、
Windows用に区切ったパーティションを潰すためにはBootCampを起動して潰す必要がある。
BootCampの起動は必須だ。

おいおい・・・どうすりゃいいんだ・・・

とりあえずネットで調べてみると
  • TigerでのBootCampは元々Leopardに乗せる機能用のBeta版
  • OSX10.5 Leopardの登場でBootCampは2.0(正式版)に移行したため
    Tigerでの起動は出来なくなるとのこと。
  • Tigerで起動できる最終期日は2007年12月31日
  • 2008年1月1日からはBootCampの起動は出来ないが
    インストールしたWindowsの使用は出来るとのこと、
    ただしドライバなどの更新やサポートは行われない
以上のことがわかった。

とりあえず今は2008年の5月だ、当然起動できない。

まぁ、BootCampがBeta版だから使えなくなるってのは、理解する。

しかしながら、区切ってしまったパーティションを元に戻せないのは非常に困る。

ほぼWin機として使っていた、私のパーティションは
OSX用に30G、Win用に90Gといった状態だ。
90Gの領域がまったく使えない状態というのは痛すぎる。

なんとか方法はないものかと調べてみたが、
調べ方が悪いのか、全然情報にHITしない。

万策尽きたかと思ってるとこで、ふとある考えがひらめいた。
Windowsでよく期限付きShareWareの期限が切れた時にやる手だ、
まさかMacでは出来ないよなぁ?と思いつつ
MacBookの日付を2007年12月30日に変更。

ああ・・・BootCamp起動できたし、使用出来た。

サポート関係ないのなら、
Windowsをインストールする時にのみ日付をいじれば
問題無くBootCampを使用していけそうだ。

ただ、なんとなく私はWindowsを再インストールする気にはなれなかった。
サポートが無い状態でOSを入れるのは勇気がいる。

ゲーム用PCとかならいざしらず、勉強や仕事に使うPCだ。
環境が出来たところで、OSが動かなくなるとか考えただけで恐ろしい。

今後私に用意された選択肢は二つ。

  1. Leopardを買い、BootCampの正式版を利用する。
  2. Parallels Desktopを購入して仮想OSでWindowsを利用する。
今のところ後者の使い方のほうがしっくりくるように思っている。
以前に評価版を使用はしてみたことがあるが、結構私の中では好感触だったからだ。
(その時は、MacBookでWindowsゲームがしたかったので、フルにメモリが使用できるBootCampを好んだ)

後はソフトの値段だけ、Parallels高いよぉ〜

2008/05/07

GW最終日



荷造り、引越し、荷解きで終わったGWですが。
最終日ぐらいどこかに観光に行きたいなと嫁さんと二人で浅草へ

青砥駅まで35分かけてテクテク
(青砥駅から浅草へは都営浅草線で一本)

昨日までの涼しさはどこへやら、めちゃ暑くて結局青砥駅でアイス食って休憩。


浅草についたら適当に歩いて有名な雷門へ。
GW最終日だから人少ないと思ってたら・・・なんだこの人の多さは!

あとやっぱり外人さんが多いですね。

雷門くぐって仲見世通って25円投げ込んで参拝終了。

仲見世あたりはこみこみだったけど、少し外れれば結構空いてる。

神社のほうに行くと猿廻しをやってたので拝見。
なんとタロージローが来ていた!
(芸暦30年以上の大ベテラン)

流石の猿廻し芸を見た後おひねり渡したら、猿の手形をくれた。

後は仲見世外れて横の人通りが比較的少ない裏通りを通って駅に帰る。

途中で揚げ饅頭屋で二つ揚げ饅頭を購入、うまい!
表通りだと並ばないと買えない感じだったけど、
裏通りだと全然並ばずにすんなり買える。

またこよう浅草寺。
Posted by Picasa

2008/05/05

[日記]亀有放浪二日目

ひさーしぶりに日記更新。
日記書いてない間にいろいろ状況かわりました。

結婚したり、関わっていたプロジェクトが終わったり。
転勤したり。

そんなわけで、大阪市内から今現在東京に引越ました。

最寄り駅は「亀有」あのコチ亀の舞台になった場所です。
近くの神社によったら御神輿の車庫がずら〜って並んでいたり、
饅頭屋が10円から饅頭売ってくれたりと、
ほんのり下町風情も味わっていますが、

まだまだ亀有在住三日目


一日目は新幹線にのってやってきただけ
傘もない状態で亀有駅に到着し、
大量の荷物を抱えて雨の中ひ〜ひ〜言いながら自宅までいっただけ。


二日目は有楽町のビックカメラで家電を買う!買う!
ほとんどの家電製品を大阪に捨ててきたので、 大量買い!
(合計50万近く使った・・・)

後二日目に個人的に書き記しておきたかったことは、
「ダイソンは決して最強の掃除機ではない」 ということを知った事。
家電コーナーでダイソンの掃除機を買おうとすると、
売り場の店員に ダイソンは確かに吸引力は落ちないが、
その吸引力自体は普通の掃除機の三分の二ぐらいだと言われた。

ダイソンは最強・・・・そう思っていた時期が僕にも有りました・・・

そんな呟きが有楽町に響く・・・


そして今日は日用雑貨関係を近くのショッピングモールで買い買い。

明日はなんとか荷解きを終わらせたいなぁ・・・

2007/12/06

Oracle 10g Express Edition でチト困った

Oracle 10g Express Edition は

  • AL32UTF8
  • WE8MSWIN1252

のみのCHARACTER SETしか使用できない

資料:
Oracle® Database Express Edition
10 Oracle Database XE Character and Language Configurations


これで非常に困った。

現在数社で連携をとってWebアプリを開発しているのだけど、
他社が作った機能の検証用テストデータとしてINSERT文が書かれたSQLファイルを送付してもらった。

いざINSERTしてみると、
ORA-12899:
列"hoge"."foo"."bar"の値が大きすぎます
(実際: 60、最大: 40)

とOracleに怒られ、データが入らない箇所がある。

慌てて文字数をカウントしたが、データに間違いはない。

これはなんだ?と思ったところで、
思い当たったのが、DBモデルのバージョンが違うのではないか?ということ

誤解を招く言い方かもしれないので補足を書くと、
上記の違いとはDBのバージョンが違うという意味ではない、
今回のプロジェクトでは(あってはならないことなんだけども)、
客先要求の追加などで、テーブルの名前が変わったり、テーブル自体が消えてたりなどの数回のモデルチェンジが行われているのだ。

そして何度かデータの最大文字数も変更されている。

数社で連携をとって開発している中でのモデルチェンジだったので、
もしかしたら各社でバージョンが違うのではないのか?
そのバージョンでは文字数定義が違うのではないか?と思った。

細かい敬意を省くために結果を述べると「モデルのバージョンは同じ」だった。

原因は弊社と他社のDBの差にあったのだ。


私の会社ではWindows版のOracle10gサーバーが見つからなかったので、
他社検証用として急いでOracle10g Express Editionを導入した。

無料で使える10gということでワクワクしながら環境構築していったのだが、
構築過程でサービス名が一つしか設定できないことを知る。

まぁこれは、今回プロジェクト限りで潰してもいいDBなので、問題はない。


それから上記の問題の発生である。
XEのインストールウィザードで文字コードの選択が出てこなかったので考えてなかったのだけど
(浅薄だなぁ・・・)

文字コードの差が問題だということが結果としてわかった。

現在Oracle10g正式版は何種類かの文字コードをカバーしている。
そしてデフォルトインストールすると、文字コードはSHIFT_JIS(JA16SJIS)になるのだが、

10gXEはUTF8(AL32UTF8)がデフォルトだ、
仕様書 を見ると、WE8MSWIN1252というコードも選択出来るそうなのだがこの文字コード自体初見である。

じゃあ、何が困るのか?

プログラマな人はとっくに原因なんて分かっていると思うけど、
プログラマじゃない人も世の中にはいるわけで・・・説明を続けると、

どうやら今回のプロジェクトにおいて10gを使用している所はすべてSHIFT_JISで設計されている。
(日本国内のイントラネット的なWebシステムなのでこれはまぁ、いいんじゃないかな・・・怒る人もいるだろうけど)


そうすると型VARCHAR2での日本語全角20文字MAX文字数の設計のは

VARCHAR2 = 40[Byte]

これは日本語の出力には2byte分のデータが必要なので文字数2倍としただけである。


さて、DBのCHARACTER SETがUTF8だった場合。
日本語全角20文字は
VARCHAR2 = 60[byte]

となる。UTF8はマルチバイト文字であり、
多言語をカバーするため1byte文字以外の出力に2~6byte分のデータが必要になる。
日本語の全角文字に必要なデータは3byteである。
よって文字数3倍とした。

さて、私は10gXEと10g正式版の違いを意識せずに提供されたCreateTable文を走らせた。


条件は揃ったので、最初の問題に戻ろう。

SHIFT_JISで設計されたテーブルデータをUTF810gXEにCreateし、
全角20文字のDBのフィールド用に作られたテストデータをINSERT文で突っ込むと、

DB側は設計上VARChAR2(40byte)という情報と、
入力された全角20文字のテストデータを見比べて

全角20文字を60byteデータと解釈し、入力者側に

ORA-12899:
列"hoge"."foo"."bar"の値が大きすぎます
(実際: 60、最大: 40)


というエラーを返す。


結論 : こっちが悪い。

2007/12/05

[Tool]CVS for NT 2.5.03インストールメモ

インストール環境
サーバーサイド・クライアントサイド共に WindowsXP
CVSには「CVS for NT」を仕様(Verは2.5.03)


  1. 下記にてDL(右端にある)
    CVS

  2. 実行後ウィザード内で
    【Select Components】の画面で【Server Components】にチェックを入れる
    他はデフォルトインストール
    (考えるの面倒だったらFullインストールすればOK)

  3. 環境変数「Path」にCVS for NT のインストールディレクトリが追加されていることを確認

  4. コントロールパネルの中に「CVS NT Server」なるものが出来上がっているので、
    それをダブルクリック。

  5. 【Repository Configuration】なるタブがあるのでそれを選択。
    【ADD】ボタンから新規作成
    • Location : CVS管理したいフォルダをインストール
    • Name : 上記が入れば勝手にデフォルトが入力されるのでそれを採用
    • Description : 適当

  6. 「適用」を押すと、initialize するか聞いてくるのでOK
    この作業が終わると、Location先のフォルダに「CVSROOT」というフォルダが出来る。

  7. コマンドプロンプトを起動してパスワードを設定。

    C:\適当なディレクトリ>cvs -d c:\hogehoge\hoge passwd -r Administrator -a user01
    Adding user user01
    New Password: [作成するユーザ(user01)のパスワードを入力]
    Verify Password: [作成するユーザ(user01)のパスワードを入力]


    [オプション説明]
    -d : リポジトリルート
    -r : Administrator権限を持っているWindowsUser名
    -a : 作成するCVSのUser名


    c

    ※社内開発とかでイントラネットなどでやる場合はパスなんてなくても困らないです。

  8. 以上で終わり、後はEclipseから接続するなりなんなりと

参考サイト