IE9とか、その他雑記。

自分でやってみることの大切さ。

なにかしらのプログラム or スクリプトを書く方なら、「車輪の再発明」という言葉は聞いたことがあると思います。一般的には、やや否定的な意味合いが強いです。まぁ、要は・・・

すでにあるプログラムなりライブラリなりを使わず、自分でなんでもやるのは、非効率だし、バカらしいからやめなよ!

っていう風に僕は解釈しているんですが・・・(^^;;
「車輪の再発明」だとしても、自分でやってみたい、というのはプログラマ本来の姿なんじゃないでしょうかねぇ。

Internet Explorer 9 RC

Internet Explorer 9のRC版が公開された、という記事をどっかのサイトで見て、入れてみました。
Internet Explorer 自体、5~6年前から全く使わなくなって、サイトの管理のなかで、HTMLを書く作業があるときだけ起ち上げてIEでの表示を確認する、ということぐらいにしか使ってなかった。Internet Explorer を使わない(使いたくない)理由は、いろいろあって、

  • 良いか悪いかを別にして、Web Standard から(W3Cの仕様から)大分ずれてる。
  • 特にIE6はバグだらけ。
  • 今となっては ECMA Script実行速度が遅い
  • カラープロファイルが埋め込まれた画像などを正しく表示できない。
  • イマイチなユーザーインターフェイス
  • (OSのバージョンアップと連動しているからなんでしょうけど・・・) バージョンアップするのが遅い。
  • Internet Explorer を使っている、という時点で、パワーユーザーから軽蔑される(笑)
  • OS(Windows)の基幹システムとガッチリ結びついているので、セキュリティという点で心配。
  • その他もろもろ 挙げればキリがない。

写真を撮るのも趣味の一つなので、特にカラープロファイルを処理してくれないブラウザというのは、いただけない。

かくして、いろいろ不満があったので、消極的だったんですが、IE9のβ版が、上記の不満のすべてではないにしろ、結構まともに改善されていたので、RC版も入れてみました。

以前は、クライアント認証が必要なサイトにアクセスしたら落ちてたりして使えなかったけど・・・かなり良くなってますね~。

まぁ、もっともパソコンでブラウザ起ち上げてWebサイトやブログを見る・・というのは、スマートフォンだとか、iPadなどのタブレットデバイスに置き換えられていってるので、あんまり意味なかったりして・・・(^_^;;;;

ま、それを言っちゃおしまいですが。。。

次と前と戻ると過去と新しいと未来

言葉・・・といいますか、あるアクションの表現の仕方っていうのは、本当に難しい。ま、どーでもいいことなんですが(^^;;;

時系列で記事が並ぶブログなんかで、ページのナビゲーション(次へとか、前へとか)にどんな語を割り当てればいいのかすごく悩むときがあります。ちょっと神経質すぐる感覚もありますが・・・。

それに、画面の左側に配置しているのが、より新しい記事へのリンクで、右側に配置するのが古い記事へのリンク・・・にするのがいいのか? といった問題があります。これは感覚的なことなので、ブログを組む人によってバラバラなことが多いです。実際、この辺はUIデザインとかと絡んでそうなので、統一されないとは思いますが・・・。何か文書でそういった指針といったものはあるんでしょうかねぇ?

ケース 1 : 「次へ」 と 「前へ」

割とこのタイプが多いです。おそらく英語の Next と Prev(previosの略) を単純に訳しただけだと思います。たまに、英語で next と back というのがあると思いますが、これは go と back とごちゃまぜになっている感じがします。・・・ま、どっちでもいいんだけど。

トップのページから順番に見ていくぶんには問題ないんだけど・・・、検索サイトから来た、とかで途中のページからスタートしたとき・・・仮に最新のページへと辿りたいとした場合・・・「次へ」をクリックすればいいのか、「前へ」をクリックすればいいのか・・・迷って手がフリーズしてしまうことが多々あります。

「次へ」というのが、過去へ向いている語なのか、未来へ向かう語なのか?浅学の僕には分かりません。「次」は「継ぎ」と同源と、広辞苑(電子辞書)に載っていったのでこの感覚からすれば、未来に向いている語なんでしょうか?

ケース2 : 記事のタイトルを表示

このタイプも結構見かけます。が、これも最新記事へ辿りたいだとか、過去に遡りたいといった場合、どちらの記事タイトルが新しいか、古いか、というわからないのでこれも不便。

ケース3 : 日付を表示

これはあまり見かけません。これだと同じ日付の複数の記事がある場合は、上記と同様のことが起こる可能性がありますし・・・、時間も表示すればいい話ですが、それだと冗長感あります。ナビゲーションとしてはイマイチイケテナイ気がなんとなく感覚的にあります。

ケース4 : 数字を表示

個人的にはこれが一番分かりやすい、と思います。が、単に数字のテキストを入れるだけでは、何のリンクか分からないのでそもそもナビゲーションとして認識されない恐れがあると感じます。かといって数字画像を使うのは・・・ちょっと違う気がします。

ケース5 : 矢印を表示

「<<」 とか「>>」などを使うところもありますが、これも、どちらが過去で未来か?という根源的な疑問にぶち当たってしまいます。

ケース6 : newer と older

これが最も分かりやすい。が!、日本語にすると、かっこ悪い。直訳すれば「より新しい」とか「より古い」とかになるんだけど、いい意訳が見つからない。

で、結論。

結局、上記のケースをうまく組合わればいいんじゃないかな、という、至極当然で普通の結論に至りました(笑)

長々とどうでもいいこと書いて、すみません。

今年はC#を本気で使っていこう

と、思ってます(^^;

本来は年始の挨拶ですが、喪中なので、「寒中お見舞い申し上げます」 です(m_m)

C#はちょこちょこと触ってつまみ食い程度に使っていたのですが、JScript/Perlなどの便利なLL言語の手軽さに負けてあまり本気で使っていなかったのですが、とある解説本を読んでC#に傾倒しつつあります。

C# 3.0 になって、これまでのC# 2.0 のときに感じた僕の不満点が一気に解決されていました。特にラムダ式とLINQは、非常に煩わしいコード記述を、まるでスクリプトを書いているような感覚で、うまく使えば非常に読みやすいコードの記述ができる武器になりそうです。 普通ならスクリプトで組むようなものでも、これからは気軽にC#を使っていこうかな、と思うようになってきました。

C#といえば、事実上、Windows の .NET Framework上でしか動作しない、という認識でしたが、オープンソースで開発されている Monoをインストールすれば、Windows以外のプラットフォームでも十分使えるようです。CentOSに mono をインストールして、Windows上でビルドしたプログラムが動くかテストしてみましたが、すんなり動くことにちょっと感動しました(笑) フォームを使ったものも含めて、完全に互換性が保てるようになれば、状況が変わると思いますねぇ。

いままでは、どんな小さなプログラムでも、使うか使わないかは別にしてWebサーバーでの使用も考えて、Perl や PHP を使ってコーディングすることがほとんどでしたが、Mono がもっとオープンソース系のサーバー系OSで普及してくれれば、今まで以上にC# を気軽に使えるんですがねぇ~。どうなんでしょうねぇ~。

よくC# と Java は設計思想が似てて、言語的にC#はJavaを真似してる、という意見もありますが、C# を知れば知るほど、Javaとは全く違う言語だということが分かります。

いろんな意見がありますが、僕的に思うことは、 趣味でプログラムするなら、JavaよりC#の方が断然面白い、です。

が、ちょっと、「それはやりすぎじゃね?」 と思うこともあります。
たとえば・・・

/* C# 2.0のときは、*/
List&lt;string&gt; a = new List&lt;string&gt;();

と記述しますが、C++のtemplateときもそうだったんですが・・・同じ語が繰り返し出てきたりして、ずーーーーーと前から不満でした。が、 C# 3.0になって var キーワードが使えるようになったおかげで、スマートに書くことができますよね。

/* C# 3.0 では・・・*/
var a = new List&lt;string&gt;();

これはいい。a の型をコンパイラが考えてくれる。

/* でもこれは・・・すでに何をやってるのか僕には見当もつきません(^^;;;*/
var ar = new[]{1,2,3};

/*  これは下と同じですが */
int[] ar = new int[]{1,2,3};

/* こっちの方がわかりやすいし何をやっているかも一目瞭然だと思うのですが・・・。 */
var ar = new int[]{1,2,3};

こんなやりすぎ感が漂う C# ですが、Perl ほどワケワカメな書き方はできないし、この、程々のやり過ぎ感がちょうどいいんじゃないかと思います(^^;;;

.NET Framework のライブラリが膨大すぎて、必要なクラスがどの名前空間にあるか、すでにライブラリ・クラスの海の中におぼれかけてますが、今年からC#を極力使っていきたいと思います。

でもWindowsでちょっと凝ったことしたいときは、やっぱり Windows APIを直接叩く必要があるのを、次のWindows8でどうにかしてほしいです。。。

仕事納め

世間から1日遅れて今日から年末・正月休みです。

今年は、年始から体調が悪化して入院・開腹手術でここ数年で最悪の始まりで、退院後も障害者手帳取得、小さい頃からすごく世話になった祖母が97歳で大往生したり、その他もろもろ、いろいろ分からないことが多かったです。

なんにしても、健康な身体一つあれば、なんでもできる! と改めて実感させられた一年。あいにく、僕は健康な身体を学生のときに失いましたが(^^;;;、かなり不自由ではあるけど、それでもなんとか普通の生活ができるのはラッキーかもしれない。

こんなノホホンとした生活がずっと続くわけではないと思いますが、五体満足な生き方はこの先できる見込みはもうないけど・・・

まぁ、なんとかなるか。

来年は何か一つ新しいことを始めたい、と思っていますが・・・、まだその「なにか」を見つけることから始めないといけませんね。

MySQL Connector/.NETのインストールが失敗する

Visual C# 2008 Express Editionで以前作ったフォームを使ったちょっとしたアプリを、ちょこっとと修正しようと、Subversionのレポジトリからチェックアウトしてプロジェクトを開いたら、MySQL 関連の参照が切れている、という警告がでました。

そういえば、XPからWindows7にバージョンアップした際に、MySQL Connector/.NETを入れ忘れてたのを思い出して(^^;;; MySQLのサイトからConnector/.NETのGAリリースの最新版(6.3.5)をダウンロードしてインストールを試みたのですが・・・

なぜか、インストール途中でエラーが発生し、ロールバックされてインストールされません。。。

ん?なんで? Visual Studio 2008環境下でのインストールエラーが結構検索で引っかかってきます。これってインストーラーの不具合なのかなぁ?

ちょっと検索してみたけど、解決方法が見つからず・・・古いバージョン(5.2.7)のものがまだ配布されていたのでこれをダウンロードしたらちゃんとインストールされました。

最新のConnector/.NETはVisual Studio 2008環境はサポート外なのかなぁ・・・・?ちょっと時間がなかったので詳しく調べなかったけど・・・

Visual Studio 2010にバージョンアップすればいいんでしょうけど、、、なんか動作が重いっていう話ですし・・・。

う~ん・・・