2006/04/30

SketchUp

さすが、Google という感じです。これだけのものを Free で出すなんて。一番びっくりしたのは Google Earth との連携です。SketchUp のチュートリアルの最後は、練習で作った家のモデルを Google Earth に貼り付けるところで終了します。なんということだ・・・

早速、自分の家を作って貼り付けようと思ったのですが、SketchUp のメニューに緯度・経度を設定する画面がありません。ヘルプには書いてあるので Free 版の制限でしょう。と、思ってあれこれいじっていると、できました。Google Earth で自分の家を表示させておいてから、そのロケーションを SketchUp に取り込むことができました。簡単な小屋を作って Google Earth に貼り付けることに成功。

これでバーチャルマイホームが作れます。夢が膨らみますね。

http://sketchup.google.com/

2006/04/25

SQL Server Express Edition のインストール

Windows2000Pro SP4 にインストールしているのですが、MDAC のバージョンが適切ではないといって途中で止まってしまいます。

MDAC 2.8 をインストールしてから再びインストールすると今度は Native Client が無いといって途中で止まってしまいます。

プログラムの追加と削除に SQL Native Client はあるのですが、削除をしようとするとエラーが出て削除できません。

で、結局OSから入れなおして、先に MDAC を入れてから SQLServer を入れるとうまくいきました。

皆様のところではいかがですか?

2006/04/22

PHP でメール送信

今回は忘備録。

PHP で日本語のメールを送るときは mb_send_mail() を使えば文字コードのコンバートなど考えなくて大丈夫、というところに結構な落とし穴もあって…

4番目以降の引数でヘッダーなどがいろいろ設定できるけど、この部分は自分で文字コード変換をしないといけない。

"From: 島村製作所 <info@shimamuraworks.com>" とかを書きたいとき、これをこのまま第4引数に渡すと文字化けが発生。『島村製作所』の部分を変換する必要がある。

$aaa = mb_convert_encoding("島村製作所", "ISO-2022-JP", "EUC-JP");
$bbb = mb_encode_mimeheader($aaa, "ISO-2022-JP", "B");
$headers = "From: $bbb <info@shimamuraworks.com>";
mb_send_mail($to, $title, $body, $headers);

こんな感じ。

2006/04/13

Google Calendarと Human Interface Guidelines

Google Calendar のβ版が公開されました。ざっと見ただけなんですが、なかなか使いやすいです。ほかにもいくつか Web Calendar を使ったことがあるのですが、どれも、あっちをクリック、こっちをクリックしないとなかなか目的の操作をすることができません。その点 Google Calendar は一歩先をいってるなぁという感じがしました。

どうしてなんだろうなぁ、と何気に考えていると思い出されるのは「モードでユーザを制限しない」という言葉。そう、Apple の Human Interface Guedelines に書かれている言葉です。プログラム屋さんの目で見ると、その場、その場に適した処理をするためには決められた筋道をとおって、決められた処理をこなしていく必要があり、それを実現する一番確実で簡単な方法が、「モード」を設けて操作を制限することです。でも、そんな事情を知らないユーザにとってみれば、やりたいことができないことほどフラストレーションが溜まるものもありません。だから、その考え方は捨てようね、といっているのですね。この本は。

でも、これを真に受けて業務プログラムを組むと、とんでもない目にあうということも、経験してみないとわからないもので・・・  要は「使い分け」なんですが、なかなかこれが難しい。

ネットでこの本のことを調べてみたら、復刊って盛り上がっているようですね。廃刊になってたの? 知らなかった・・・ 原書を買って辞書を片手にプログラムを組んでたの昭和の時代です(遠い目)。

2006/04/11

いよいよスタート

ここでは、ハマッタ事や気がついたことなどを書き留めていこうと思います。

まずは、格闘中の Microsoft Visual C# 2005 Express Edition から。

「データソース」に表示されているテーブルをフォームにドラッグ&ドロップすると DataSet, BindingSource, TableAdapter, BindingNavigator と DataGridView もしくは必要なだけの TextBox が設定されます。サンプルデータベースを貼り付けると、追加・修正・削除が説明どおりに動作します。

ところが、自分で定義したテーブルを同様の手順で設定してもデータの修正だけがどうしてもできません。 DataSet に適切な UpdateCommand が設定されていないとエラーが表示されてしまいます。

で、テーブルに Primary Key が設定されていないことに気がついて、これを設定するとすんなりと動いてしまいました。んー、一日半悩んだぞっ!!

これが正解かどうかはまだわかりませんが、とりあえず解決ということで。