今年は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<string> a = new List<string>();

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

/* C# 3.0 では・・・*/
var a = new List<string>();

これはいい。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歳で大往生したり、その他もろもろ、いろいろ分からないことが多かったです。

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

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

まぁ、なんとかなるか。

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

AirPrint via Windows Shared Printers

iPhone の iOS4.2 になってから、無線LAN経由でプリンタ出力できるようになってますね。

ただ、これ、現状ではHPの一部のプリンタしか対応していないと思うので、大部分の(ほとんどすべての(笑))iPhone/iPod/iPadユーザは使えてないでしょ?

でも、AirPrint でググると、別途PC or Mac を経由してプリントできる記事が出てくるので、今日の昼休みに手順を覚えて、仕事から帰ってから家のPCで試してみました、遅まきながら。

手順自体は、下記URLで説明されてます。英語ですが簡単な英語なので読めるでしょう。ググれば日本語で紹介されているブログ記事がいっぱい出てきます。

http://jaxov.com/2010/11/how-to-enable-airprint-service-on-windows/

要は、AirPrint.zipを任意のディレクトリに解凍して、Windowsサービスとして登録して起動し、そのPCで利用しているプリンタを「共有する」の設定を行うだけ。

この AirPrint.zip の出所がいまいちハッキリしないので若干不安ですが、一応セキュリティーチェックをかけても異常はないので大丈夫でしょう(^^ゞ

ところで、いろんな記事で、iTunes10が必要と、書かれていますが、必要なのは、Apple?のBonjour サービスだけかと思います。実際、僕のPCはSafari for Windows をインストールしたときに一緒にBonjourサービスが一緒にインストールされていましたので、iTunesをインストールしなくても動作しています。iPhone/iPod/iPadを同期しているPCならともかく、そうでないPCの場合は、別途Bonjourサービスだけインストールすればいいんじゃないかと思います。

ちなみに、Bonjourサービスは http://www.apple.com/jp/ftp-info/reference/bonjourforwindows105.html からダウンロードできるみたいです。

IMG_0088

ただ・・・・これ、用紙選択できひん!!!

うちのデフォルトの用紙サイズは、A5。 なんか、ほとんどのアプリがA4で決め打ち?

秋の色

こちらにも転載(^^

先日は、運動不足解消のため? 久しぶりに写真を撮りに行ってきました。

年賀状のCMが流れてますね~。もうそんな季節なんですね、早いですね。。。

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にバージョンアップすればいいんでしょうけど、、、なんか動作が重いっていう話ですし・・・。

う~ん・・・