遅くとも動いていれば打開されることもある件

id:coma2nさんの「Booの開発にはSharpDevelopがオヌヌメ」によると、すっかり記憶の彼方に消し飛んでいたSharpDevelopが地味にバージョンアップされてるようなので、総本山を訪問してみることにした。

「Features」を見てみたら、「Multi-framework support (.NET 1.1 and 2.0, Mono, Compact Framework) 」なんて一文もあって、MonoDevelopもこっちと融合しちゃえばいいのに、とか思ったり。どうもデフォルトでBooが使えるようなので、Alexもさぞやお喜びの口かと。

「Download」には追加ソフトウェアとしてF#のコンパイラだのFxCopだのStyleCopだのTortoiseSVNが挙げられていて、なんか結構まともな(というのは失礼ですね)環境に育ちつつあるような。ただまあ、相変わらずWinFormがメインでASP.NET関係はダメっぽいので、あたくしは使わないだろうなあ。WinFormメインのアプリケーションを最後に作ったのは、あれはいつのことだろう(遠い目)。

開発進捗は牛の歩み以上に遅いですけど、止っているわけじゃないところが偉いなあと思うわけです。すっかり止ってしまった案件をいくつも抱えている身としては。

やれやれ。

  • ic#code=http://sharpdevelop.net/OpenSource/SD/

真夏の夜の出来事

というわけで、Mono meeting終了。

前回(Mix07裏meeting)は、オモテのMix07があまりにもあまりだったので大激怒(だったそうです。K.Awasakiさんの話によると ;)し、そのまま帰ってしまったがために参加できず(直前に電話までいただいたんだけどねえ)。

2007年の年末特大Mono Meetingは仕事の都合で参加不可となり、その前(たぶん第4回)のMono Meetingは、会場の冷房が壊れていて、みんな汗だくになりながらの開発与太話だったことを覚えているので、かれこれ1年ぶりかあ……。

今回は雑談がメインで、ネタとしては、

  • Google Street View
  • デラゲーツ(笑)
  • RPC
  • CORBA(!?)
  • Visual Studio 2008 SP1のAA

かな。

まあ、個別に細かい話をしていたとは思うのだけど(特に後半)、アウェイの身としては遠巻きに眺める程度で。

「Google Street View」というか、そっち方面の話題はMIAUのほうでゴニョゴニョするそうなので、興味のある方はそっちを注意するといいと思った。

「デラゲーツ(笑)」は「スイーツ(笑)」みたいなもの(らしい)。JavaとかJavaハウスとかそっちの方面にとんと疎い私には、よく理解できませんでした。残念。

「RPC」は、次の「CORBA」と密接な関係があるのだけれど、詳細はカット。てか、CORBAなんて単語を聞いたのは何年ぶりだ? DDJJやってたころだから1997年から1999年くらいかな。MSがDCOMでJavaがCORBAなんて感じで、分散が合言葉だったような気が。

あとはartonさんの「Visual Studio 2008 SP1のAA」ですね。プログレスバーを補助するAAという発想はなかったわ、と大絶賛。これほどまでに先進的なインターフェイスならMono Developにも実装するべし、ということになり、どうも次のバージョンでは採用されるらしい。

てゆうか、Mono Developの先進機能として、Debug機能が実装されたわけだが、これが凄い。ブレークポイントが設定できるようになったし、エラー発生箇所から[F1]キー(だったかな)で飛ぶと、該当箇所が黄色の矢印で表示される。しかも2行も3行も!

「なんだそりゃ」と突っ込まれると「マルチスレッドなんだよ」とかわけのわからないフォローが入るあたりがMono meetingクオリティ。

ネタ開陳は、誰かが決められた時間で発表するというフォーマルなものではなく、自己紹介の際に“Monoに興味をもったきっかけ”を答えてもらい、それに応じて口を出せるものがint 21を発動するという割り込みイベント駆動型。なので、実際には茶会という感じ。このユルさと濃さがいいわけですけど。

後半、Java MVMネタのテーブルと、正規表現ネタに関するテーブルに分かれて、個人的には「文字列以外にも正規表現を適用する手法」みたいなコトバが聞こえていたほうに参加したかったのだけれど、Alexと悲しくて暗い話に終始する。

躁鬱の差が激しいヒトほど技術者に向いているかもしれないとか思ったり。なんつったって、開口一番「いい転職先はないですかねー」だって。もう、笑うしかない。

あまり活発に動いてないせいでBooも最近は触ってないし、面白そうな言語もないみたいで、燃える対象を見失ってる感じ。とりあえずAction Script+iPhoneネタを提示。

そのままAlexとはIDEの未来を暗く語りつつ、帰宅。あー、おもしろかった。

OnClickが効かないのはなぜだ問題

Form1とForm2を作り、Form1に、

<mobile:Command ID="Command1" runat="server" OnClick="Command1_Click">Submit</mobile:Command>

としてボタンを置いて、これをクリックするとForm2に移動するサンプルを書く。が、動かない。

Visual Studio 2008を使っているので、aspxのデザインビューは使い物にならないことは知っているものの、まさかOnClickが効かないとは!

もちろん、そんな馬鹿なことがあるはずはないので、あっちゃこっちゃ調べてようやく手前のミスを発見。

protected void Command1_Click(object sender, EventArgs e)
{
    if (ActiveForm.ID == "Form1")
        ActiveForm = Form2;
    else
        ActiveForm = Form1;
}

とすべきところを、protectedではなく、これまでどおりprivateとしていたのが敗因。

VS2003、VS2005、VS2008の三世代同居マシンなので、そのせいかとも思ったのだけれど、解決してみればなんてことはないミスでした。ははは。

がっくし。

夏休みの宿題ではまりかけた件

夏休みの宿題にVisual Studio 2008で携帯サイトを作ろうと思ったのだが、なにをどうがんばってもモバイル用のテンプレートが出てこない。

しかたなくgoogleさまにお伺いしたところ、VS2008では作成機能が落とされていることがわかった。WCFも使いたいので、できればVS2008で全面的にまかないたいのだが、フロントエンドはVS2005のお世話にならなければならないらしい。なんだそれ。馬鹿にしてるのか。

悔しいので、さらに検索してみたところ、どうも「Your Websites, Our Passion!」でモバイル用のテンプレートが提供されていた。

上記サイトの「ASP.NET Mobile Templates.zip」てのがそれで、中身はこんな感じ。

右ペインに表示されている各zipを、そのまま(展開せずに)テンプレート用ディレクトリにコピーすればOK。

ただし、

  • 「ASP.NET Web Application」のCSとVBは、「Visual Studio 2008\Templates\ItemTemplates\」のC#とVBに
  • 「ASP.NET Web Site」のCSとVBは、「Visual Studio 2008\Templates\ItemTemplates\」の「Visual Web Developer」に

それぞれ放り込む。

これで、VS2008を立ち上げればテンプレートが表示……、されないので、とりあえず、ASP.NET Webサイトを選択し、ソリューションを作ってしまう。

通常のASP.NETサイト開発ファイル群が生成されたら、ソリューションエクスプローラに表示されている「Default.aspx」と「web.config」を削除し、改めて右クリックから「ファイルの追加」ダイアログを表示させると、

のようにめでたくモバイルサイトテンプレートが表示されるので、ここから「Mobile Web Form」と「Mobile Web configration File」を追加すれば、ASP.NETで携帯サイトを開発できるようになる。

てか、実に“まんどくせー”のである。

銀光で大騒ぎするのもいいけど、こーゆうのを落として平気な顔してちゃマズイと思うんだよね。携帯王国の市場ではさあ。

SQL Server 2005 Driver for PHP

ちょっと前から「ベータがリリースされた」とか「RCになった」とか地味にアップデートを重ねていた「SQL Server 2005 Driver for PHP」が、とうとうVersion 1.0になってダウンロード可能になったみたい。

そういや先日、「おれらが貸しとるサイトでPHPをつことったら、アップグレードせいや」というメールがホスターから着弾していたのだが、もしかしたらこのプロダクトを導入するのか知らん。

いま、過去メールを引っ張り出して見てみたが、どうも違うっぽい。単にカレントの4.3.4を5.2.6に上げることと、4のサポートはあんまり長くないよ、という話でした。

まあ、いずれにせよ、データベースにSQL Server 2005を使っていて、PHPアプリケーション(というのかな?)を走らせてるヒトには、上記Driverはうれしいのかもしれない。

でも、そんな奇特なヒトビトはどれくらいいるんだろうなあ。

ちょっとお手上げな件

LISPのソースをWindowsアプリケーションとしてビルドする方法。

展開したclisp<ビルドバージョン>\base下のlisp.exeとlispinit.memを使用する。LISPソースをhoge.lispとして、

lisp.exe -M lispinit.mem -x "(load \"hoge.lisp\")
 (ext:saveinitmem \"hoge\" :init-function #'main :executable t :norc t)"

これで実行ファイルが出来るんだけどね。できた「hoge.exe」をダブルクリックすると「なんとかdllがねーYO!」と怒られるので、あらかじめclisp<ビルドバージョン>\baseにパスを通しておくか、「libintl-8.dll」と「readline5.dll」(と「libiconv-2.dll」も?)をそれらしきところにコピーしておくと吉。

で、もう一回ダブルクリックすると、今度はCommand Promptも立ち上がってくるという大罠。

どうすればいいんだろうな?

ちなみに、ソースはこんな感じ。

(use-package "FFI")
(def-call-out messagebox
    (:name "MessageBoxA")
    (:library "user32.dll")
    (:arguments (hwnd int) (text c-string) (capt c-string) (type uint))
    (:return-type int)
    (:language :stdc))

(defun main()
  (messagebox 0 "Hello World!" "Message" 0)
  (quit))

たぶんコレは大真面目

このLive.comとiGoogleを足して2で割ったような画像はなにかというと、Omar AL Zabirというヒトが作ったAjaxベースのWebポータルサイトなんだそうで。

見た目だけなら「Ajaxベースというより、iGoogleベースというべき」なんてことも思うわけですが、これ、ASP.NET 3.5で作ってあるんだなあ。そんで、ソースコードもダウンロードできちゃう。そのため、このネタを紹介してくれたBrad Abramsは、「Now you can build your own Ajax portal fun!」なんつって、大喜びなわけです。

本気でセルフポータルサイトを立ち上げる香具師がどんだけいるよ、ちう気がしなくもないですけど、あまっているマシンにWindows Server 2003 R2でも入れてネットワークにつなぎ、IISを立ち上げてVS2008から放り込んであげると、それはそれでシアワセに一歩近づけるような気がしなくもないです。

でも、そうすっと社外からアクセスできないので、結果的にダメなんだけどね。

個人的にはBrad Abramsが紹介している「Cool Features」と「Technologies he shows off...」てのは、どうかと思うんですが、

  • データバインディングにLINQを使っている
  • データアクセスレイヤの構築にLINQを使っている
  • あとビジネスレイヤの構築にWF(Windows Workflow Foundation)を使っている

という3点が気になりました。中身を見てみたい。

あと、あれですね。REST指向になちゃったんですね、やっぱり。

なにがなんでもSOAPだった政治的な季節はさすがに終焉を迎えたわけでしょうか。まあ、そうでもしなきゃYahoo!なんて買えないしなあ。

で、日本にいるマイではじまってクロソフトで終わる某IT企業は、このネタのローカライズを誰に振るんだろうな?

興味の対象はこのあたり

覚え書き

  • OAuth
    • 認可(アクセス制御)
    • 第三者に対して、認証を要求するリソースへのアクセスを一時的に許可するためのプロトコル。サービスプロバイダから、WebサイトやWebアプリケーションの制限付きリソースへのアクセスを可能にする。このとき、サービスプロバイダはサイトやアプリケーションに対して(IDやPasswordといった)秘匿情報を要求しない。
    • OAuth=http://oauth.net/documentation/spec
  • OpenID
    • 認証
    • 分散ID認証システム。エンドユーザーの自己同一(Identity URL)性を保障する方法を提供する。各種認証を必要とするサイトにアクセスする際、たとえばメールアドレスとかパスワードなどの、個的情報を使わなくてもloginできるようにしてくれる。
    • 中央集権型ではなく、ユーザー指向(嗜好?)。

      プロフィール情報(profile information)自体を交換するメカニズムはない。

    • OpenID.net=http://openid.net/
    • OpenID Authentication 1.1=http://openid.net/specs/openid-authentication-1_1.html

顔パスまであと一歩……、なのかなあ。ちょっとよくわからないので動向のみチェックする予定。予定は未定でいつものことだが。

こんなアプリケーションがほしい

ここのところWebの入り口はiGoogleを使っていて、おかげでついうっかり気がついてしまったのだけれど、“Webアプリケーション”とかいいながら(あるいは、だからこそ)Webブラウザの中でしか表現されない(あるいは、できない)んだよなあ。

まあ、いまさら感が漂う話で恐縮ですが、リッチWebアプリケーションとか喧伝されてるけど、よく考えるとリッチじゃなくて単なるデコラティブでしかないわけですよ。しかもIE(とかFireFoxとかSafariとかOperaとか)の表示エリア内でしか有効ではない。それでデコラティブだと、アクセシビリティはそりゃ悪い。もちろん、大画面で解像度がすごい高ければ話はまたちょっと変わりますけど。

まあ、ごちゃごちゃ書いててもしょうがないんで図版を出すと、たとえば下の図はiGoogleに配置したGoolge ReaderガジェットでBlogを読んでるところ。

で、下の図はおれの理想的な“リッチWebアプリケーション”の表示具合。

ガジェットから呼び出された表示エリアがIEを超えているところがミソ。で、この表示エリアを(この場合は読みやすいように)動的に変更できて、記憶してくれるとなおうれしい。なんてことを思ったわけです。

もっとも、すでにこのような要望を満たすガジェットなりアプリケーションなりがリリースされていることは想像に難くないんだけど、とりあえずおれのせまーいせまーい知見の範囲内では見たことがない。

どなたかご存知でしたらご教示くだされ。

.NET Framework 3.5対応ホストリスト

.NET Framework 3.5対応ホスト。

タンスの肥やしは多いほうがいいかもしれない件

hugを使っているのだが、ここにきてコンパイルの必要が生じ、泣く泣くVistaにGHCをインストールする(やや大げさ)。

ところが、

> ghc foo.hs -o foo

などとやると、

gcc: installation problem, cannot exec `as': No such file or directory

と怒られる。なんだそりゃ。GHCの最新バージョンはさすがに安定してないのかなあ、などと、ひとつ前のバージョン(6.6)に戻したりしたものの、状況は変わらず。

エラー表示をそのままぐーぐる様にお供えしたところ、「lang.haskell.glasgow.bugs」を示していただいた。ありがたいありがたい。

このMLのアーカイブによると、なんのことはない、ghcに含まれている(!?)gccのライブラリを環境変数PATHに与えてやらなければならないのだった。ははは。VistaのRC1、RC2から発見されているバグみたいなんだけど、これはいまだに(最新バージョンは2007年の4月26日リリース)修正されていないわけか。うむむむ。

というわけで、VistaでHaskellしてみようというヒトは、ghcのPATHを設定する際に忘れずにgcc-libも一緒に設定するとよいことがあるような気がする。

で、なにしろ、gccまで放り込まれるってのはどういうこと? とディレクトリを覗いていたら、gccだけじゃなくて、perlまで放り込まれていたのことよ。

> cd c:\bin\ghc
> perl --version

This is perl, v5.6.1 built for MSWin32-x86

Copyright 1987-2001, Larry Wall

Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on
this system using `man perl' or `perldoc perl'.  If you have access to the
Internet, point your browser at http://www.perl.com/, the Perl Home Page.

> gcc --version
gcc (GCC) 3.4.5 (mingw special)
Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

いやはや。

IronRubyが姿を見せ始めている件

DLR(Dynamic Language Runtime)ってのは、想像以上に貪欲で、鉄人化の道を歩んでいるといわれていたRubyが、Pre-Alphaとして姿を現しつつあるのであった。

ソースコードもMicrosoft Permissive Licenseで公開されたようで、なんというかマイクロソフト内のRubyな人たちは、さぞかしお喜びの口かと。まあしかし、当たり前だけれど、まだまだ実行速度は遅そうだから、今後JRubyよりも「早っ!」なものにならないと、ツライだろうな。

とはいえ、Scott GuthrieのBlogでは、IronRubyからWPFを使う、なんてことをやっていて、それがちゃんとできてるのがいい感じ。8月末にはRubyforgeにもあげられそうなイキオイなので、期して待ちたい(いじるかどうかは別として)。

てゆうか、上記記事内でも書いてあるけど、MIX 07でアナウンスされたDynamic VBってのが、気になる。要はVBScriptだと思うんだけどさ、先祖返りを起こしてるのかな。そうだとすると、某ユーザーグループもお喜びの口かと。

どうも、マイクロソフトの新しい(けど地味な)プロジェクトは、旧世代が喜ぶものばかりのような気がしなくもない。

銀光ゲーム

おぉ、これはすごい!

ソースもあるのでここから銀光をはじめるのがいいかも。

あと、なぜか銀光のバージョンはAlpha 1.1推奨。Beta 1.0では動作しない。

  • Dr. Popper=http://www.bluerosegames.com/brg/drpopper/
  • Dr. Popper:source=http://silverlightrocks.com/cs/files/folders/sample_games/entry12.aspx
  • Digger=http://www.aisto.com/Roeder/Silverlight/Digger/Default.aspx
  • Digger:source=http://www.aisto.com/Roeder/Silverlight/Download.aspx?File=Digger
  • Zero Gravity=http://zerogravity.terralever.com/
  • Chess=http://silverlight.net/samples/1.1/chess/run/default.html
  • Chess:source=http://silverlight.net/samples/1.1/chess/chess.zip
  • Destroy All Invaders=http://www.andybeaulieu.com/silverlight/DestroyAll/Default.html
  • Destroy All Invaders:source=http://www.andybeaulieu.com/Home/tabid/67/EntryID/75/Default.aspx
  • Silverlight Rocks!=http://www.andybeaulieu.com/silverlight/HelloSilverlight/Testpage.html
  • Silverlight Rocks!:source=http://www.andybeaulieu.com/Home/tabid/67/EntryID/73/Default.aspx
  • Sprawl=http://silverlight.net/samples/1.0/Sprawl/default.html
  • Sprawl:source=http://silverlight.net/samples/1.0/Sprawl/sprawl.zip

銀光についてのメモ

  1. Visual Studio 2007 CodeName "Orcas" Beta 1をダウンロードしてインストール。
  2. Silverlight 1.1 Alpha SDKをダウンロードしてインストール。
  3. Orcasを起動して、新しいプロジェクトを作成する。ちゃんとインストールされていればテンプレート内にSilverlight Projectがあるので、それを選択。
  4. グラフィックは単純な部品をキャンバス上で組み合わせて作る。このあたりの作業はExpression Blendを使うのが王道だけど、もちろんXAMLでコツコツ記述するのも、ありっちゃーアリ。おれはヤだけど。
  5. ソリューションをビルド。出来上がったdllはプロジェクトの指定の場所に落ちている(ハズ)。よくわからなければXAMLページのヘッダ部分をいじるといいかも。元から修正する場合はプロジェクトの「Properties」-「Build」-「Output」とたどって「Output path」を変更すればOK。
  6. <Canvas x:Name="parentCanvas"
      xmlns="http://schemas.microsoft.com/client/2007" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
      x:Class="SilverlightProject1.Page;assembly=[ClientBin\SilverlightProject1.dll ...."
    
  7. 出来上がったら、プロジェクトをWebサーバーにあげて、アクセスしてみる。

うまくいったらお慰み。てか、外向きのWindowsサーバーを探すのが、一苦労なんだけどね。

ん? このサイト? ここをOrcas仕様にするのは、当分先の話だなあ(遠い目)。

Orcas Express

年末にOrcas(≒Visual Studio 2007)が出てくるとして、その場合、Expressエディションはどうなるんだっけ、とかウスラぼんやり考えていたら、なんと、すでにMSのサイトに「Codename“Orcas”Express Edition」なんてものがアップロードされていたのでした。

手っ取り早く.NET Framework 3.0(3.5?)ベースの開発を楽しみたいなら、これを使うのもありだろうな。

だからといって、あわててダウンロードしないあたりが、おれの歳を物語っている(様な気がする)。

サービスパックが出てる件

とりあえず、出た。

ベータ版をインストールしている場合は、それをアンインストールしてから適用のコト。

あと、SQL Server 2005向けのSP2も出ているので、こちらも忘れずに。

PowerShell 1.0 for Vistaがリリースされた件

ここで「Vista向けSP1にはPowerShellが含まれるみたい」とか書いてたんだけど、どうも違うっぽい。てのは、PowerShell 1.0 for Windows Vistaがリリースされたから。

まあ、リリースしたもののインストールしないVistaユーザーに、強制的に入れるという目的があれば、SP1に同梱しちゃうんだろうけど。

でも、そこまでして入れる理由がわからんな。コンフィグレーションをいじるようなマネージドなインストーラに対応させるとか? リモートな処理のため?

もちろん、SP1にはPowerShell自体は入ってなくて、入っているのはPowerShellを入れたヒト向けのホットフィックスという可能性もあるわけだから、なければないでノープロブレムなんだろうけど。

XP/VistaのVS2005でWPFを楽しむ

“WPFを使ったアプリケーションを作成するためには、なにをどうすればいいのか”のまとめ。

この順番でインストールすれば(今のところ)問題ない。ASP.NET AJAX 1.0とかWWFは最後に導入すればいいんだろうな。きっと。

順番が大切……、ってのはVisual Studio 5.0/6.0のころと変わりませんねー。サービスパックとか。Officeとか。IEとか。

あのころに比べれば(ベータ版であるにもかかわらず)ラクなんだろうな。

ところでSQL Server 2005 SP1の適用後って、あんなの(インスタンスが増えてる)でいいのだろうか。使えてるからいいのかもしれないけど。もしかしたら、ローカルマシンの管理者権限でインストールしないとまずいのかな。administratorsグループに放り込んだドメインユーザーでインストールしたんだけど。

でも、そう考えるとVS関連のものはすべてローカルマシン管理者でインストールしたほうがいいのだろうしなあ。

……。今週末はインストール大会ですかねえ。

  • Windows XP SP2+Visual Studio 2005
  1. .Net Framework 3.0
  2. Windows SDK for Vista
  3. VS 2005 extensions for .NET Framework 3.0(WCF & WPF), November 2006 CTP
  • Vista+Visual Studio 2005
  1. VS 2005 Team Suite SP1
  2. VS 2005 SP1 Update for Windows Vista Beta
  3. Windows SDK for Vista
  4. VS 2005 extensions for .NET Framework 3.0(WCF & WPF), November 2006 CTP

おかしいと思ったら、その場で質問してこいよ

Vistaの開発をVisual Studio 2005で行なう場合は、SP1とそのサービスパックが必要となります。

詠み人知らず

と某セミナーで言われて「わからーん! ビタイチわからん!」と騒いでいるヒトがいるのだが、「Vistaの開発」ってのは「Vista対応アプリケーションの開発」ということでしょ? たぶん。そのためにはVS2005に、現在リリースされているSP1とそのホットフィックスをあてろ、ってーことじゃねーのかと。いつそのホットフィックスが出るのか知らんけど。

SomasegarさんのBlogには「Bug Fixes in VS 2005 SP1」なんてエントリーがあがっているわけだし。

まあ、ワタクシは親切なので微笑んでいるだけですが。

MS謹製AJAXライブラリ出来

ASP.NET AJAX v1.0がようやくリリースされましたな。

とりあえずダウンロードして放り込んでみるけれど、実際に使ってみるのはいつになることやら……。

Control Toolkitもv1.0になってるんだなあ(当然か)。

VB6.0で.NET Framework 2.0(限定的だけどな)

なんと申しましょうか……。印刷機能を持ったVB6.0のアプリケーションで.NET Framework 2.0の印刷機能を使用できるようにするためのライブラリ。マイグレートが目的なのか、VB6.0から.NET Framework 2.0(の印刷機能)を使えるようにするための方策なのかがよくわからない。必要とする人がいる、ということなのだろうなあ。VB6.0に対する、マイクロソフトの微妙な本気度が伝わってくる逸品と申しましょうか。

まあ、とりあえずメモ。

VS2005 extensions for WCF & WPF, 11月CTP版のその後

ここで迷っていた「Visual Studio 2005 extensions for .NET Framework 3.0(WCF & WPF), November 2006 CTP」を放り込んでみたら、「出直せ。バーカ」(意訳)といわれた。

やっぱり、導入しなくてもいいっぽいな。

なにを導入したらいいかわからん件

原稿が届かないので(というイイワケもどうかと思うが)Vistaに導入したVisual Studio 2005にSP1をインストールしなおし、ついでに(というのもどうかと思うが)「SDK for Windows Vista and .NET Framework 3.0 Runtime Components」をインストールし、さらに「Visual Studio 2005 extensions for .NET Framework 3.0(Windows Workflow Foundation)」などというものも放り込んでみる。小規模ワークフローが、ホントにうまく作れるかどうか試してみたいわけだ。おれのチームは解体してひとりチーム(あるいは独立愚連隊。いずれにせよ、論理矛盾を起こしているなあ)となったので、カッコいい言い方をすると、おれ自身を分散オブジェクト化してフローの中に落とし込んでみようというのが狙い。まあ、そのコトバどおりにパーソナルシステムを構築できるかどうかは不明ですし、どっちかというとOffice 2007(正確には2007 Office Systemだっけ?)でやったほうが簡便だと思うけど。

で、悩ましいのが「Visual Studio 2005 extensions for .NET Framework 3.0(WCF & WPF), November 2006 CTP」。これは、.NET Framework 3.0の機能(とくにWCFとWPF)をVisual Studio 2005から使うためのブツと考えればいいのだろうか。であれば、導入したいのだけれど、11月6日リリースのCTPってのが、すごい引っかかる。Vista(.NET Framework 3.0)が出てもまだCTPかよ。あんなにWCFとWPFを喧伝しているわりにCTPって、どういうこと? みたいな。Orcas(というかCider?)先取りパックなら、.NET Framework 3.0を焦って出した理由って何? もしかしてVistaに“新しい”というイメージを付加したいから、メジャーバージョンをアップした.NET Frameworkを放り込んだだけなんじゃないの? みたいな(あれはホントに.NET Framework 2.5だよなあ)。

まあ、ブツブツ言いながらも、たぶん導入しちゃうわけだが、これで年明けに新版が出てきたらヤだなあ。アバレかねない。

さらに「ASP.NET AJAX 1.0 RC」なんてのも放り込んでみる。

ASP.NET AJAXは、ベータのころに発生していたエラーがきちんと回避されていた。あと、インストール中にVS2005から(相変わらずUACがらみの)メッセージが表示されたけれど、なにも考えずに[続行]ボタンを押した。これが吉と出るか凶と出るか、わかるころには回避策とかその意味とかは、どこかのWebに上がっていることでしょう(←ひどい)。

ところで、SP1を再導入して、VS2005を立ち上げたら、相変わらず「管理者権限でインストールしろ」というようなことを言われたのだけれど、マシンをリブートしたら出なくなったのはなぜだろう。アラートボックスには、「いつでもこのメッセージを表示する」のチェックボックスがあって、そこにはチェックが入っていたはずなんだけど。

よくわからないけれど、とりあえず使えるようになったので、よしとする(←ますますヒドイ)。

ちなみにIIS7.0の設定は一切行なっていない。このstupidGeekが入居しているサイトの大家(ホスター)からは「IIS7.0が使えるようになったよー」というお知らせメールが着弾しているのだけれど、まあ、しばらくは使わないだろうな。

SP1を適用してみた件

Visual Stuido 2005のSP1が(ようやく)リリースされたので(18日)、ダウンロードしてVistaマシンのVS2005に適用してみる。

もっとも、他の作業をしながらだったせいで、老人力が注意力を上回ってネットワークインストールとなってしまった。そのせいか、VS2005と同等かそれ以上の時間がかかったSP1インストールは、どうも失敗したらしい。製品適用後にVS2005を立ち上げると「SP1がリリースされているから、とりあえずそれを適用せい」(意訳)というアラートが表示される。

ネットワークインストールだったので、おそらく管理者権限でのインストールとはならなかったせいだろうなあ。悔しいがいったんアンインストールし、再度インストールすることに。

ところが、SP1のアンインストールにはVS2005のメディア(CDとかDVD)が必要なのだった。果てしなくうんざりして、とりあえず、自宅で作業することにする。まいったな。どうも。

あと、Expressシリーズも適用したほうがいいと思ったが、ひとつひとつインストールするのはクソ面倒くさいなあ。

Mono Meetingの資料

以下は会場で配布されたペーパーを入手できるURL。

で、これに付随した謎リンク集が、主催者のサイトに!

第4回 Mono Meetingに出席した件

4回目となるMono Meetingに出席。

一番乗りだったみたいで、おれの後ろを歩いていたという首謀者のid:atsushienoさんは、開口一番「Microsoftマークのリュックを背負った人がいて、これはもう確実に参加者だろうと思った」。

サプライズはartonさんがいたことで、思わず周囲を見回しK.Awasakiさんの姿を捜す。

「スラドで見てても、ホントにMonoって知名度ないのね」という一言からいかに狭間のテクノロジーが面白いかという話になる。MSフリークから見れば、.NET Frameworkがあるのに、なんでそんな辺境にいかなければならないの? だし、オープンソースな人たちからすると、MSでしょ? ということになるから、誰も積極的に拾いに来ないんだよね。というのが、artonさんの弁。もともとプラットフォームを越えたところで技術者しているartonさんらしいというか。だいたいバッグから取り出したマシンがMacというあたりが、すでにアレゲなわけで。というか「取材ですか?」とか訊かれて答えに詰まるという一幕もあったりして。

集まってきたのは、Linux(含むMac)系Java系をメインにしている人たちばかりで、このあたりはこれまでのMono Meetingと変わらない。ほとんどがハッカーで、実務よりの人はデータベース周りを見ている(らしい)人がひとりだけ。VMで盛り上がっている一群がいたけど、よくよく話を聞いていたら、.NET FrameworkによるTerminalソフト「ゲバラ」を作った人がいて、さっそく名刺交換。さらにセッション中だというのに大声で話をする人がいて、この人はPostgreSQLのコミッター。

したがって、基本的なVisual Studioの機能とか、Windows OSの基本的な機能とかをわかっている参加者はartonさんと首謀者のid:atsushienoさんくらい。まあ、Microsoftのテクノロジーを追っかけて検証して自身のプロジェクトに応用し実装するのが精一杯なんだろうけど、なんと申しましょうか。MSマンセーな技術者はMSの揺りカゴの中で一生を終えるんだろうなあ、などと不埒なことをボンヤリ考える。

結局、こういう人たちがテクノロジーの面白いところをゴソゴソやっているんだよな。中でもOracleデータベースとASP.NETを使用したシステムを構築している現場の技術者の話は面白かったな。そこからFinallyとCriticalFinally(だったっけ? Helpで探してもないんだけど。CriticalFinalizerObject?)の話が出て、どっちが本当のFinalなんだYO! みたいなネタが登場したり。あと、MS謹製のOracleドライバとOracle謹製のDBドライバの実装における思想の差とかね。

いや、MeetingのメインテーマはBoston Mono Meetingのレポートだったんだけどね。

そっちのネタとしては、.NET Framework 2.0への対応がぜんぜんなので、ちょっとなあ。ジェネリック周りが問題になってるらしく、ちょっと厳しい。あと、Windows.FormsもX11ベースなので、日本語は通らない。実用への道はまだまだ遠いというわけだ。じゃあなんで顔を出したのかというと、まあ、Monoを実用的に使うとか使わないとかはともかく、そこから.NET Frameworkを透かし見るのが楽しいというゆがんだ性格のおれにはうってつけなのであった。あはは。

石鹸箱のテスト

soapBoxに放り込まれているBill Gates関連の動画。



ちなみに、

type="application/x-shockwave-flash"

てのがちょっと悲しい。ま、しょうがないか。

廃止されるAPI一覧

とりあえず、メモ。

掲示板を求めてさまよった件

掲示板システムが必要になったのでASP.NET 2.0ベースのものを探しているのだが、なかなかいいのがない。

「AspNetForums JP」なんてのがeXeconnにあがってたっけなあ、なんて思い出していってみたら、これは1.1ベースで開発はストップしている。あわい望みを抱いて本家ASP.NETのサイトに飛んだものの、Starter KitsからはForumアプリケーションは影も形もない。

どうもForumアプリケーションはポータルサイト構築キットだのEコマース構築キットなどに取り込まれて、単体での提供はしないのが流行のようだ。困ったものだ。

で、結局「YetAnotherForum」にたどり着く。こちらはVS2005(ASP.NET 2.0)への対応が終了しており、Stableの表示も出ている。もちろんSQL Server 2000/2005対応済み。ソースとバイナリも拾える。

インストールその他については、(やる気のない)Wikiが立ち上げられていて、そこで読むことができる。まあ、アーカイブに入っているReadme.txtと変わりばえはしないけど。とりあえず「こうしろ」と書かれていても、その方法がよくわからない場合は、その解説が記載されたサイトにリンクされているので、あまりストレスはない(かもしれない)。とりあえずローカルで使用してみて、日本語その他問題ないようであれば(UTF-8だから問題ないような気がするけど)、そのまま本番に雪崩れ込む予定。

それにしても、車輪の再発明を禁じる文化によるものなのか、よいアプリケーションは取り込んでgood enoughを目指すOffice思想に感化されたのか、世界的なEAI思想なのかよくわからないけれど、単機能のアプリケーションを探そうとすると、思いのほか苦労するなあ。COM(というかActiveX)的モジュールはいっぱいあるんだけど。

これがいわゆるMSクオリティだったら、ちょっと悲しす。

もっとも、eXeconnはユーザーが少なすぎてメンテナンスもする気にならなかったというのが、真相だと思われるが。

.NET Framework 3.0関連

リリースされましたですなあ。

なんというか、感慨ひとしお(笑)。

  • .net Framework 3.0 runtime=http://www.microsoft.com/downloads/details.aspx?FamilyID=10cc340b-f857-4a14-83f5-25634c3bf043&DisplayLang=en
  • Windows SDK for .net Framework 3.0=http://www.microsoft.com/downloads/info.aspx?na=40&p=3&SrcDisplayLang=en&SrcCategoryId=&SrcFamilyId=10cc340b-f857-4a14-83f5-25634c3bf043&u=http%3a%2f%2fgo.microsoft.com%2ffwlink%2f%3fLinkId%3d74726
  • .net Framework=http://www.netfx3.com/

AjaxがいよいよASP.NETに取り込まれたようです

ASP.NET AJAX v1.0 βキター!!

って、まだ使いませんけど。

その変数はnullか?

ちょっとしたプログラミングクイズ。

Which would you use to test if a string is blank? And Why?
  1. x.Equals(string.Empty)
  2. x = ""
  3. x.Length = 0
  4. x = string.Empty
  5. string.Empty.Equals(x)

「Code Quiz: That Empty Feeling」(secretGeek)

おれはどれかなあ。2か3だなあ。理由は、1とか4とか5って、あまりお目にかかったことがないこともあるけど、より直感的だから、かな。英文圏の開発者なら、むしろ4のほうが直感的という判断を下すだろうけど。

VBが長いユーザーなら圧倒的に2なんじゃないかと思われる。よくわからんけど。

コンボボックスについて

ちょいと小粋な(ウソ)Windowsアプリケーションを作ろうとしているのだけれど、初手から行き詰ってしまって意気消沈中。

カンタンな話で、コンボボックスを2つ並べ、一方のValueが確定したら、そのValueにあわせて、もうひとつのコンボボックスの中身を取り替えたい。たとえばこんな具合。

ComboBox 1ComboBox 2
Aa、a'、a''、a'''
Bb、b'、b''、b'''
Cc、c'、c''、c'''
Dd、d'、d''、d'''

ComboBox 1から「A」を選択したら、ComboBox 2には「a」「a'」「a''」「a'''」が選択肢として登録され、「B」を選択したら「b」「b'」「b''」「b'''」が登録され(以下ry)という感じ。

なんかVB6.0のころにも似たような処理を書いたような気がするんだけど、もうすっかり記憶の彼方に消し飛んでいる。困ったものだ。

とりあえず、「ComboBox.SelectedIndex」を拾って、switch...caseで分岐させたけど、なんかかっこ悪い。XMLかなんかでテーブルを作ってデータバインドさせたほうが、Valueが増えたときにソースからイヂリ直さなくても済むので、そうしてみようかとか思ったり。

なんかこう、スマートな方法ってないんでしょうかね。ComboBoxそのものをListBoxっぽく拡張してみるとか。

などと誰ともなく訊いてみるテスツ。

vimのバージョンが上がっている件

ご存知のとおり、おれはvimユーザーで、OSを再インストールした際は、なにはともあれgVimのディレクトリを作るのはもちろん、手前のプラグインだのシンタックスファイルを山のように(やや大げさ)突っ込んであるvimfilesを%USERPROFILE%に、.vimrcと.gvimrcとともに放り込まなければ、先に進めないわけだ。

で、メジャーバージョンアップしたvimがリリースされているわけだが、タブ機能とかdiffが自前のエンジンで動いたりという話を聞くだけ(Webベースなので正確には「読むだけ」ですね)では、あまり触手が動かなかった。愛用している香り屋のvimもデイリービルドだったりするし。

というわけで、様子見を決め込んでいたわけですけど、補完機能をビデオにして紹介されている方がいらっしゃいまして、それを見たら、俄然、バージョンアップしたくなりました。

とりあえず、その動画を見よ!

なんかもう、VS並みでしょ? 上も下もナニカが表示されるため、肝心のメインペインがガクガクして使いにくそうだけど;-)。

もともと、dictファイルをフル活用することで補完っぽいことをしていたわけだけど、ここまでやってくれるのなら、バージョンアップしてもいいかなとか思う。動画はLinux上でPythonコードをいじっていて、あとはHTMLとかCSSとかXMLくらいしか対応してないようなのだけれど、おそらく普通のテキストファイルにキーワードを記述していけば、好みの言語に対応する(ハズ)。ということはC#でもVBでも、これまでのdictファイルを再構成すればいいのではないか。なんてことを漠然と考えたり。

WManagerを使って3ペイン状態にし、補完バリバリでコードが書けるなら、GUIを伴わない軽いEXEがわらわら作れる(ような気がする)。

というわけで、香り屋のvim7デイリービルドを落としてきたわけでございます。

お楽しみはこれからだ!

時差に関する悩みについて

とりあえず、次期Visual Studioというか、次の.NET Framework(つまり3.5)を待つと、TimeZoneのコンバートが楽になるっぽい。

この際、わりとメインになりつつある今のVista環境を破棄して、Vista+Orcas環境を作ってみようかと思ったり。OfficeもTRが出てるからなあ。

XPSのサンプルが上がっている件

XPSってのは、

The XML Paper Specification (XPS) makes modern documents possible for all. Simply put, XPS describes electronic paper in a way that can be read by hardware, read by software, and read by humans. With XPS, documents print better, can be shared easier, be archived with confidence, and are more secure.

Microsoft has integrated XPS-based technologies into the 2007 Microsoft Office system and the Microsoft Windows Vista operating system, but XPS itself is platform independent, openly published, and available royalty-free. Microsoft is using XPS to bring additional document value to its customers, its partners, and the computing industry.

「XPS」(Windows Hardware Developer Central)

だそうで、まあPDFに対するMicrosoftの回答だと思えばよろしいか。

Office 2007には保存形式にデフォルトで搭載されているので、たとえばおれがWord 2007で記述した文章を適切なセキュリティ設定を行なったうえでXPSで保存すれば、Webにそのまま公開することもできるわけだ。

それを新作でやっているのがsimplegeek(a.k.a. Chris Anderson)。

もしも、.NET Framework 3.0をインストールしたマシンがあれば、「introduction」ページをIEで見に行くとよろしい。「そんなもの入れたくねえ」というヒトはViewerが提供されているのでMSのサイトからダウンロードするといいかも。もっとも、viewerすら入れたくないヒトもいるだろうけど。

ダウンロードしてエディタで中を覗くとバイナリっぽいのだけれど、拡張子を「zip」に変えれば、xmlドキュメントのアーカイブだということがすぐわかる。ではWord 2007でオープンできるかというと、実はできない

PDFに取って代わることができるかどうか、とくにデジタル媒体における著作権方面において有効なソリューションを構築できるかどうか、生温かく見守る所存です。

Webサービスが加速している件

本日、価格.com WEBサービスの第一弾として、価格.comから商品検索とアイテム情報取得用のAPIと、食べログ.comから、レストラン情報を取得するAPIを一般公開しました。

「価格.com WEBサービスを公開しました!!」(価格.com)

id:naoyaさんKU。

これは楽しいなあ。Yahoo!のWebサービスさえ楽しみつくしてないおれがそういうこと言ってもいいのかどうかという疑問は残るにせよ、これは楽しい。こういう動きが加速されないと、PCで楽しいことなんか、ほとんどないもんね(それは言い杉)。

さらに楽天のアンオフィシャルなWebサービス提供サイトも存在するようです。この動きがどんどん加速するといいなあ。

その上で、Mash Up! Mo Mush Up!!

VB6でWCFを使う

リリースされたばかりのinterop Toolkitを使うと、レガシーなVB6のアプリケーションを活用できる、というお話。ソースをリライトするより楽でしょ? というわけだけど、個人的には書き直すほうにシアワセになれる可能性があるような。

  • Interop Toolkitをインストールする
  • VS2005を起動し、InteropFormのプロジェクトテンプレートを使って新しいプロジェクトを作成する(こうしないといけないわけじゃないけど、これが一番カンタン)
  • フォームからサービスの参照設定を使う
    • 「ツール」-「インターロップラッパークラスの生成」
  • プロジェクトをビルド
  • VB6を起動
  • VB6プロジェクトに参照設定で先ほどビルドしたdllを追加
  • これで他のVB6フォームを呼び出すのと同様に、InteropFormを呼び出すことができる

ネタ元は「Ali Pasha's WebLog...」から。誤訳のご指摘は随時受け付けております。

なかなか思うように逝かない件

ローカルにホストされたガジェットを作ってみようと、「Windows Liveガジェット SDK」にあるような設定をIE7に施すと、そもそもwww.live.comにサインインできないという大罠にはまる。

最初はSoapBoxとかと同様に、なんかあったのかと思ったのだけれど、ふと思いついてXPのIE6で逝ってみたら、普通にサインインできるし。

「Trusted sites」の設定か、Internet Zoneに対するセキュリティ設定の影響か、はたまたファイルキャッシュの設定か。どうもTrusted Siteの設定とInternet Zoneに対するセキュリティ設定のせいのような気がする。

前途は果てしなく多難なのであった。

IIS7とVS2005とわたし

Vista RC1にVS2005を突っ込んで、IIS7の上で走るWebアプリケーション(もどき)を作ろうと四苦八苦していたのだが、cassiniで動作を見て、いざlocalhostに配置しようとしたら、IIS7に、

お前なんかに配置の権限はない。metabaseをいじって出直せ。

的なことを言われ、茫然自失状態にあったわけだ。

しょうがないので泣きながらinetmgrを立ち上げて該当しそうな項目を調べてみたり、「aspnet_regiis.exe -i」してみたり、当然googleさまはもとよりLive Searchも動員してWeb漁りに精を出していたら、すっかり夜になっていてびっくりした

で、結局、「プログラムの追加と削除」(になるのかな? 英語版では「Programs and Features」(などとさりげなく自慢))で「Turn Windows features on or off」を開き、要は「導入した/してないコンポーネント」から、

「Internet Information Services」
   |
「Web Management Tools」
   |
「IIS 6 Management Compatbility」

とたどり、「IIS Metabase and IIS6 configuration compatibility」にチェックを入れてインストール。おれは、そのまえに「aspnet_regiis.exe -i」していたので、「ASP.NET」にもチェックが入っているけれど、もしかしたらデフォルトでは入ってないかもしれない(そんなことはないだろうなあ)。

これでOK……かと思いきや、なんたることか、Visual Studio 2005をAdministratorモードで起動しなければならない。

たとえば、Administratorsグループに追加されているユーザーのまま、VS2005を立ち上げてアプリケーションをパブリッシュしようとしても、やっぱり「お前なんかに(ry」といわれるのだ。

というわけで、VS2005のアイコンを右クリックし、「Run as Administrator」で起動する。まことに面倒くさい。とはいえ、これでテストアプリケーションがIIS7の上で(という言い方でいいのか?)走るようになった。何はともあれめでたい。

まあ、たしかに非常にセキュアではあるわけですけど、それにしてもなあ……。

ちなみに参考にしたのは以下のサイト。心から御礼申し上げます。

[追記]

いちいち起動対象を右クリックして「Administratorで実行する」のが面倒なので、プロパティの「Privilege Level」の「Adminisitratorで実行する」をチェック。これで今までどおりに使用できるざんす。

ついでに、というか忘れずに「XKeymacs」も同様の設定。こうしとかないと、Administrator権限で起動したアプリケーションには、そうでない権限で起動したアプリケーションからの影響が及ばないため。

Atlas、その後

思い余って帽子に訊いてみたら、

Windows SDKをインストールしていれば自動的に入るようです。

などという回答メールが着弾した。

「えー。だってWindows SDKを導入してからVS2005を立ち上げたけど、テンプレートには表示されてなかったぞ」と首を30度ほどひねりながらVS2005を起動してみたら、Atlas Web Siteテンプレートが表示されて驚倒する。なんでやねん。

どうもWindows SDKを導入した後、一度、マシンを再起動したほうが確実かもしれない。再起動せずに、いろいろなものを導入できる日は、果たしてくるのだろうか。

てか、RC1にそんなことを期待しちゃダメなわけですけど。

VistaにAtlasが導入できない件

Windows Vista RC1にVisual Studio 2005を突っ込みながら、Windows SDKのISOイメージをダウンロードしてDVDに焼いてインストールしたら1日が終わってしまったのでびっくりした。

SDKを放り込んだ後、AtlasのJuly 2006 CTPを放り込もうとしたら、C#用のプロジェクトテンプレートがErrorを起こしてインストールできない。何度やってもVBしか導入できないため、眠ることもできず台風の進路を見ながらのインストール大会となってしまう。

C#とVBを同時にインストールしようとするからダメなのかと思い、C#だけのインストールとか、リペアインストールとかいろいろ試みるが、結局ダメ。原因の追究とか同様の事例がないかどうかは、明日(というか今日)、検索サイト(Live Search)をフル活用して探してみる予定。まあ、予定は未定なんですけどね。

なんだそりゃ? な件

MSDN Subscription では、会員様へのベネフィット提供の一つとして MSDN サブスクライバ ダウンロード サイトより、Microsoft プラットフォームにおける開発に必要となる製品の提供を行っております。この ダウンロード サイトにおいて提供を行っている製品のうち、Microsoft® Java Virtual Machine (以下MSJVM) を含む製品の提供に関しては2005 年 12 月より、順次提供終了の処置を行わせていただいてまいりました。この提供停止は、MSJVM の配布に関するSun Microsystems, Inc. とMicrosoft Corporation との間の和解合意に準拠するため実施するものです。

これに関連いたしまして、日本語版 Visual Basic 6.0 につきましては 6 月 30 日で一旦提供を中止させていただきました。しかし、Visual Basic 6.0 で開発されたアプリケーションは現在でも数多く存在し、それらのシステム メンテナンスのために提供が望まれております。そのため、多くのお客様からのご要望があったことを受け、この度 MSJVM への依存性を排除した形式を作成しなおし提供を再開する運びとなりました。現在、日本語版 Visual Basic 6.0 は MSDN サブスクライバ ダウンロード サイトよりご利用いただけます。 どうぞご利用ください。

MSDN サブスクライバ ダウンロードサイトからの日本語版 Visual Basic 6.0 提供再開に関するご案内

うわー。.NET最大の敵であるVB6.0を、再サポートする気なのか。

もうこうなったら、VB6.0はこのまま独自の進化を遂げて欲しいですな。マネージドな世界でアプリケーションを作りたいなら.NET(C#)で。お手軽アンマネージドなアプリケーションならVB6.0で。とか。

この措置をマイクロソフトならではの“優しさ”ととるのか無謀ととるのか、なかなか難しいところだなあ。

あと、再サポートにあたって「この度 MSJVM への依存性を排除した形式を作成しなおし」とあるんだけど、どの程度、これまでのVB6.0と違うんだろうな。依存性って、そんなにあったっけ?

てか、やっぱりVisual Basicマガジンってのは、アリだったんだよなあ。まあ、いまさらですが。

言語シンポジウム

こんなことをやっていたのかあ。へぇ。

基調講演はやっぱりAnders Hejlsbergだったのね。まあ、当然といえば当然か。

Paul Vickの「VB: Where are you going, where have you been?」は、ちょっと見てみたかったな。いや、それよりもGilad Brachaの「Dynamically Typed Languages on the Java Platform」とJohn Goughの「Dealing with Ruby on the CLR」ですかね。Jim Huguninの「Dynamically Typed Languages on the Common Language Runtime」はF#だからパスかなあ(←勘違いしてる)。面白そうだけど。まあ、見たところでどうなるわけでもないのだけれど。

それよりもPolita Paulusの「BLINQ」ってなんだろう。

仕事そっちのけでVS2005と戯れる

平井さんのPowerPointとサンプルをダウンロードしていろいろ遊んでみる。ついでに拡張しようとスクラッチで作り始めたら、動かない。

結局、古いWSDLを使うと、ItemLookUp()が効かないので、新しいバージョンを使わなければならないという、くだらないことにはまっていた。てゆうか、お前、どんだけふるいの使ってんだ、と。

どうもApp_Codeディレクトリを作ってWSDLをぶっこんどけば、勝手にProxyを作ってくれるので、使いまわしちゃうんだよね。ははは。

ま、これでおれも懲りてちゃんとWeb参照を使うようになるでしょう。

想定していた動作をするようになったのでパチパチいじっていたら、通りかかった上長が背後から覗き込み「書影が出るんだー」と声をかけてきた。

「Amazonに行けば同じ画像が見られるけどねえ」。

……。大きなお世話です。

  • WSDL and Schema Locations=http://docs.amazonwebservices.com/AWSEcommerceService/2006-06-28/ApiReference/ServiceVersioningArticle.html

他力本願モード絶賛展開中

先のエントリ(「Googleがカッコよく見える件」)を書いて思いついたんだけど、キーワードに合致する動画がYouTubeに放り込まれたらアラートが出て[OK]ボタンをクリックすると動画内容を表示するガジェットって、よくね?

だれか作ってくれないかなあ。

VS2005雑感

2.0ベース計画のために、Visual Studio 2005を立ち上げる機会が増えているわけですけど(ぉぃ)、なんというか、コードビハインドだのデザイン部分の分離だの、個人が楽しみで使うには見通しの悪いファイル構成になるのはどうにもなあ。

PHPやレガシーASPはHTMLの中にスクリプトを埋め込むことで、アプリケーションを実現していたわけだけれど、どうもそのほうがスキルの高くないユーザー(たとえば、おれとか)にしてみると、自分が何をやろうとしているのかが手に取るようにわかるからありがたい。

以前「海女さんレベルにならないと顧客が満足するUIをJavaScriptでは作れない」という話を耳にしたことがある。「JavaScriptでAjaxなんてのは“どれだけ息を留めていられるか”が出来に影響する」みたいな裏話(?)で、要は息を殺してそこに集中しなければならないくらい労力を要するということ。

おれぐらいのへタレプログラマだと、たいしたUIなど作れないし作る気もないから、25メートルプールを息継ぎなしで潜水できればいい。海女さんになるつもりはないのだし。そうすると、下手したらレガシーASPでも十分だったりするわけだ。

そういうユーザー向けに(Expressも含めた)Visual Studio 2005が作られているわけではないことくらい重々承知の上だけれど、実際に、ローカルでWebサービスを使ったバカアプリを作ろうと思うと、とたんに短いソースが書かれたたくさんのファイルが雨後の筍のごとくプロジェクトファイル内に散らばるのはいかがなものかなあ、という気が強くしたので書いてみました。

まあ、馴れればなんてこたないんだろうけどね。

Amazon Web Servicesに関する覚書

「stupidGeek」のASP.NET 2.0ベース化を着々と進めているわけですが、AmazonのWeb Serviceがうまくなくて、いろいろ悩む。

なにしろ、マイグレート後のファイルの位置関係、とくに「App_Code」以下に格納されるファイル群がナゾ杉。旧Webrefrernce関連のファイルが放り込まれたり放り込まれなかったり、別プロジェクトのソースコードが放り込まれたり放り込まれなかったり。

さらに「Migrated」ディレクトリ内にもソースコードが放り込まれていて、これはどうも削除してもよさそうなんだけど、それなら「.bak」とか拡張子名を変えろよとか憤ったり。いや怒ることはない。

まあ、基本的にどのような目的を持ったファイルが「App_Code」以下に格納されるのかがわかってないゆえの混乱ではあるのだけれどね。単純にソリューションエクスプローラを眺めているだけだと、同じファイルがあっちゃこっちゃに転がっていて、どれを使用しているのか、サパーリわからん、ということになる。

というわけで、個人的な“Web 2.0”は、果てしなく遠いような気がしたりしなかったり。

とりあえず、下のblogと大本のドキュメントをよく読むといいかも。

それよりもなによりも、日本版のAmazon Web Services Blogである「Amazonアソシエイト・プログラムブログ」はひどすぎる。バナーの紹介ばっかりで開発向け情報は皆無になってしまった。デザインもひどいし、どうしたものかなあ。アルファギーク;-)は英語を嫁ということか。

当サイトに関してちょっとわかったこと

VPCでASP.NET 2.0環境を構築しておいて、1.1ベースのstupidGeekをそのままコピー&ペースト。各ディレクトリのパーミッションをinetmgrで設定する。この状態で改めてホストOSからアクセスすると、普通に表示されて、書き込みその他も問題なく動作した。

そのうえで、www.nardis.orgのアプリケーションエラーを見ると、やはりどうもセキュリティ関係をホスト側でいじってるくさい。おかげでVS2005/VS2003.NETからのアクセスもできなくなってるっぽい。FTPは有効なので、Explorerからファイルを放り込むことは可能だし、おそらくVS2005からFTPを使ったアプリケーションのアップロードも可能だと思われる。

なので、あとはサイト管理者に各ディレクトリに対するパーミッションの設定一覧を送るなどして、適切に運用してもらえれば、現行のサイトはそのまま表示されるに違いない。

とはいえ、もうなんか、飽きてきたしなあ。どうしたものか。

学術論文検索 2.0 β

いつの間にできてたんだ?

Windows Live学術論文検索では、学術雑誌や記事を検索して、記事のタイトル、著者名、概要、および会議の議事録を探すことができます。

Windows Live学術論文検索を使用すると、無関係な情報を検索して時間を無駄にすることなく、目的の論文や記事をすぐに探し出すことができます。検索結果を著者、日付、雑誌、または会議別に並べ替え、プレビュー ウィンドウを確認すると、マウスを上に移動するだけで記事の概要と引用情報を参照できます。

このサービスは、現在はベータ版です。まだ正式にはリリースされていませんが、多くの機能をすぐに利用できます。現在は、情報科学、物理学、電気工学、およびそれらの関連分野の記事がインデックス登録されています。

Academic(Windows Live Search)

ということだそうで。

面白そうなのは「検索マクロ」。早い話がフィルタを作るわけだけれど、それを保存しておいたり、他人様が作ったマクロを「ギャラリー」という形で参照/活用できる。これをクライアントから呼び出して“英和辞典”みたいに使えるようなアプリケーションというのはどうか。誰か作らんか。

もっとも、ストアされている論文だったり雑誌や会議(!?)はすべて欧米のものなので、一介のバカ編集者には関係ないといえば関係ない。てか、Academicじゃねーしな。

プロトコルの拡張をしてみたい

いまさらながらのネタで恐縮だが、高木ではじまって浩光で終わる、その筋では有名な方のエントリを読んで、いたく感銘を受ける。

感銘を受けるったって、全然本筋じゃないところで「やるなあ」と唸ってるわけなので、その筋系の話を期待されても困る。

なにが面白いって、2006年6月11日付の「Winny可視化のため、WebブラウザにWinnyプロトコルハンドラを」で取り上げたアイデアを、6月25日付けの「Java用「winnytp://」プロトコルハンドラを作ってみたら簡単にできた」で、具体化し、さらに7月1日7月8日と、日を追うごとに拡張されてゆくところ。

これは面白い。というわけで、C#で似たようなこと(WebRequestの拡張)を書きはじめたわけだが、よく考えたら、サーバー(というか相手PC)のURLとポートがわからなければ、リクエストの投げようがないわけだ。

Winnyからすると、ノード情報を手繰ってサーバーに行き着き、めでたくP2P接続が可能になるわけだが、ノードを手繰るなんて面倒くさいことはしたくない(ダイレクトに相手PCとおしゃべりしたい)。とはいえ、そんなことができたら、Winnyの売りである「匿名ファイル共有」が根底から崩れてしまう。

んじゃ、高木さんはどうやってるわけ? 彼の日記を見る限りではサーバー(というか相手PC)とポートが特定されてるし。

デッドマン二世に話を聞きに行ったら「とりあえずWinnyを導入して、ファイルの流入が始まったら、ダンプとればいんじゃね?」というサジェスチョンをいただく。

えー、そのためにWinnyいれるのはヤだなあ。

というわけで、この場を借りて、すでに(いまだに)Winnyを使っていて、TCP/IPのダンプ情報をお持ちの方を広く募集させていただきます。応募者とダンプ先のPC情報は一切表に出しませんので、どうぞよろしくお願いいたします。

情報が入手できるまでは、リアルオーディオのストリーミングプロトコル(という言い方でいいのか?)とおしゃべりできるかどうか、やってみることにする。

おれとしては「プロトコルの拡張」ができればいいので、まあWinnyじゃなくてもよかったりはするのだけど。

Oracle Expressのこと

そういや、Oracleも「Oracle Database 10g Express Edition」などという$freeのDBを出していて「Expressはfeeの代名詞かよ」とか思ったわけだ。

これはまあ、日本語は使用できるけど(Oracle Database 10g Express Edition (Universal)を選択する)日本語のドキュメントもないし、用意する予定もないっぽいので、お金のないOracle対応システムを構築する開発者しか使わないだろうなあ。

で、ダウンロードプロダクト選択の前に、エンドユーザーライセンス同意書が表示されるわけだけれど、最初の輸出規制条項がある意味すごい。なんというか、過去にテロ組織が使用していたことがあって、過敏に反応しているような気がしないではない。もっとも“バイオ系データベースにはOracle”なんて言ってた時期もあったし、同時にバイオテロの脅威も(局所的に)盛り上がっているわけだし。

そういう類の文言って、Microsoftにもあったっけな? ちゃんと読んでないことがバレバレですが、たぶんあるんだろうな。どこかに。北朝鮮やキューバ、スーダン、リビア、シリアの人たちへは輸出できません、とか。そうすると、それらの国々にはMSDNユーザーはいないということか。

そらまあ、そうだろうなあ。「Your potential, Our Passion」の可能性が「テロ行為」じゃあ、パッション萎え萎えですものね。

……いや、それはそれでパッション燃えまくりなヒトもいたりして。

SQL Promptが残念だった件

某所で知って「これはいいかも」とか思っていたのだが、実際に使おうとしたらぜんぜんダメ。

VS2003/2005で動作しないこともさることながら(次のバージョンでは対応するらしいけど)、気がついたら「9月1日までは$free」なんて但し書きになってるし。

もっともSQL Server Managemant Studio Express CTP版から使うことはできるので、データベースをいじりたい“だけ”のユーザーにはいいのかもなあ。SQL Server Express+SQL Server Managemant Studio Express CTP版+SQL Promptで、清貧SQLプログラミング。

ある意味、地味すぎて最強。

  • SQL Prompt=http://www.red-gate.com/products/SQL_Prompt/index.htm

FSデベロッパーズプラットフォームEx

某著者との間で「AtlasだWPFだ言っても、Windows Serverの無償ホスティング業者が現われない限り、LAMPの芝生のほうが青く見えるよねー」などとメッセージが飛び交った翌日、無料ホスティングが登場した。しかも日本国内。もっとも無料なのは先着順らしいので、1か月後にどうなってるかわからない。

とはいえ、独自ドメインはないしメールアドレスも取得できないし、それvwdhosting.netと、どう違うの。という気がしなくもないのだけれど、まあ、30日限定じゃないし、DBもvwdhosting.netより20MBほど多いし、なによりも日本語なので、アリなのかもしれない。

というわけで、さっそく登録。

「評価・検証目的」の利用オンリーで「商用」は不可、SMTPは未提供(提供予定はないみたい)、定時メールアンケートへの回答がなければアカウント削除、3か月間FTPアクセスがない場合もアカウント削除などとなっていて、ますますvwdhosting.netと同じようなシステム。

アンケート一発目にメールアドレスとかパスワード設定入力とかあるわけだが、「サービス、イベント等の情報を」受け取るか受け取らないかのチェックボックスがあって、デフォルトでチェックオフになっていたから、そのまま進んだら、「受け取らなきゃダメ」と警告を受ける。そんならデフォルトでチェックしとけよ。

アンケートに答えていったら、読んでいる雑誌のリストがあって、今はなき「dotNETマガジン」が、今にも亡くなりそうな「Windows Developerマガジン」と併記されていてぐったりする。てゆうか「.NETマガジン」になっていたので、もしかすると別雑誌かもしれない。まあ、いいけど。

それよりもなによりも一番気になったのが、無料ホスティングの大元が“ファーストサーバ”であるということ。あの例のYahoo!jpの子会社にしてヨセフアンドレオンとともにACCSの名を天下に知らしめたホスティング業者だ。

いつの間にかPマークまで取得していて、笑ってしまう。ここが取得できるのなら、どこだって取得できるじゃん。などということを言うと弊社コンプライアンス委員会に睨まれるので言ってはいけない。もっとも本日配布された『コンプライアンス・マニュアル』のどれが該当するのかよくわからないのだが。たかだか11ページの細則なのに理解できない自分が悲しい。

いやまあ、そんなことはともかく。

ものの数分でサーバーの設定は終了し、各種アクセス用のアドレスだのなんだのが記載されたメールが届く。基本的にFTPによるアップロードだけみたいでVS2005から直でいじることは想定外みたい。

コンフィグレート用のURLがあるので、ここがどの程度使えるか、あとでいじってみる予定。Office12のβとかインストールしてみたいんだけど、さすがにそれは無理か(当たり前)。

VBの今後

ふと思ったのだけれど、BillGがいなくなると、BASICの呪縛が薄れてメインストリームはC#になるんじゃないかな。

まあ、すでに呪縛もかなり薄れているわけではあるけれど。

無償のASP.NET 2.0ホスティング一覧

とりあえず、無償のホスティング業者一覧。

このうち「AspSpider」は、ちょっと対応がひどすぎるのでお勧めできない。レジスト後、いつになったらサーバーにアプリケーションをアップできるのかさえ、わからないってのは、なんとも。

WebMatrixHostingは、ASP.NET 2.0は使用できるのだけれど、容量制限があるため、MS謹製のAjaxフレームワークであるAtlasを使えないのが難点。Atlasを使うには「Microsoft.Web.Atlas.dll」が必須で、でもこのDLLが1.82MBなのよね(WebMatrixHostingは*.dllの上限が1MB)。

そのため、実験的(あるいは試験的)にASP.NET 2.0(+Atlas)を使おうとしたら、現状ではVWDHositng.NETが最適か。

ある程度まとまったものを作るのなら、Quantasoft Web Hostingがベスト。

「discount ASP.net」は3か月の期限限定という、ほとんどなにもできなさそうなプランがあるけど、それもどうかなあ。まあ、作って試してすぐに撤収というミッションには最適かも(それってつまり、ヤヴァイものを置いてみたりエ攵撃関連とか釣りとか?)。

まあ、いずれにしてもASP.NET 2.0は面白いけど、いつまでたってもクライアント(とか社内とか)から出て行けないところが悲しいし、日本においてはお寒い状況は相変わらず、ということですかねえ。

  1. Quantasoft Web Hosting=http://www.qsh.sk/
  2. AspSpider.NET=http://www.aspspider.net/
  3. discount ASP.net=http://www.discountasp.net/
  4. WebMatrixHosting=http://europe.webmatrixhosting.net/
  5. WebMatrixHosting(日本語対応)=http://europe.webmatrixhosting.net/japan/default.aspx
  6. VWDHosting.NET=http://www.vwdhosting.net/

VS 2005 Web Application Project

ちょいとメモ。

逆キャッシュ!

<%@ OutputCache Duration="180" VaryByParam="none" %>

なんてディレクティブを書き込んでおけば、そのユーザーコントロールは始めてロードされて以降、(この場合)3分間は、生成したコントロールをキャッシュにして、それを返してくれるので高速になる(らしい)。

では逆に、任意のユーザーコントロールだけ、いわゆる「リフレッシュ」するにはどうしたいいのか知らん。

えーと、Visual Studio 2005+Atlasなら、実験済みなので、そっちはOKなのだけれど、問題はVisual Studio .NET 2003+ASP.NETの場合。やっぱりJavaScriptを使わざるを得ないのかなあ。なんとなく、System.Timerとかを無理やり使えばできそうな気がするけど、それはしかし重たそうだしなあ。

もうちっと調べてみよう。

C#とJ#のテンプレートが混在している件

Visual Studio 2005を立ち上げてWebアプリケーションを作ろうとしたら、テンプレートにC#とJ#が混在していた。これ、すごい気持ち悪い。

どこをいじれば直るんだろう?

IIS6.0マネージャのアプリケーション振り分けについて

VS2005で.NET Framework 2.0ベースのWebアプリケーションを作り、IISが走っているWebサーバーにアップする。うまく動けば、「Application Pools\ASP.NET V2.0」に登録(?)されていることがIISマネージャからわかる。

同様に、VS2005で.NET Framework 2.0ベースのWindowsアプリケーションを作り、ClickOnceできるように(という言い方は正しいのか?)Webサーバーにアップすると、それはしかし、「Application Pools\DefaultAppPool」に登録される。

そういうものなのか?

たしかにユーザーエージェント情報を見て、クライアント側のCLRバージョンをチェックしてるし、v2.0のない環境にインストールしようとするといろいろ細かいアラートが表示されるから、いいっちゃーいいのかもしれない。なによりアップロードされたファイル群は、サーバー上では特段ASP.NET 2.0を使用しているわけではないしね。

このアプリケーションを、たとえばWebサービスを使用するようなアプリケーションにして、サービス用プロジェクトと同じディレクトリに配置すると、それは「ASP.NET V2.0」に登録されるのだろうか。

まあ、どうでもいいっちゃーどうでもいいわけですが。

VB6.0で.NET Frameworkを呼び出す記事について

お喜びになる方もいるかとは思うのだけれど、VB6.0のサポートって、いつまでだっけ?

まあ、とりあえずメモ。

Rubyも.NETの仲間入りをしそうな件

とりあえず、メモ。

まあ、なんにせよ少ないよりは多いほうがいいけれど。

  • Ruby.NET=http://www.plas.fit.qut.edu.au/rubynet/

Vista、その後

IE7はいいのだが、なにしろテキストボックスに日本語が入力できなくなってしまった。

IE7のせいなのか、Microsoft IMEのせいなのかよくわからん。

あと、IISの導入方法は、

You can install IIS7 via Add/Remove Windows Components. To get there, click Start->Computer, then click on "Change or remove a program". In the explorer bar above that says ">Control Panel > Programs > Installed Programs", click the arrow after "Programs", then select "Advanced Options". Double-click on "Windows Features", and you should be able to select what you need in the "Windows Features" dialog, we're under "Internet Information Services".

「Vista 5308 and IIS」(Robert Hurlbut's .NET Blog)

とあるのだけれど、「Advanced Options」がないのだよ。それってどういうこと?

あと、このあたりも忘れずに読んどかないとダメかも。

いろいろ導入してみるのだが

というわけで、Vistaの2月CTP版をインストールし直し、ついでに(クライアントプロダクトのみだけど)Vistaに対応したというOffice 12β版も導入。

いやあ、実際に手前のマシンで見るOfficeのインターフェイスは奇怪だなあ。

これまでのメニューから引っ張り出す方式より、タブとリボンのほうが直感的であることはたしかだし、マウスポインタが乗るだけで、そのコマンドの実行結果がプレビューできるのは、なんというかローカルなAjaxっぽくて笑っちゃうし、それだけのことをしていて、でも動作は軽いってのは評価できるんだけど、キーボードショートカットでがんがん利用していたユーザーにとってはどうなんだろうな。

まあ、ヘビーユーザーは最終的に付いて来るから(付いて行かざるを得ないように)、コンシューマーにとにかく与えてしまう使わせてしまう、という戦略で(相変わらず)行くんだろうなあ。

まあ、こちらはSharePoint Portal Serverを立てて、もう少し弄らないとわからん。

てゆうか、Vistaなんですけど、これ、IISってどうやって導入するんだろう。ゲームを筆頭とする要らないプロダクトの削除方法とか全然わからん。

それからフォルダオプションで「隠しファイルとフォルダー」を表示する設定にしたせいか、「My Video」だの「My Picture」だの「My Music」だののリンクフォルダ(!?)が表示されるようになって、しかもこれをクリックすると「権限がありません」とか言われるという。

そういうものなんだっけなあ。

てゆうか、ディレクトリ構成がよくわからん。Explorerのディレクトリツリーに馴れているとすごい勢いで混乱する。

なんで混乱するかというと、ディレクトリをツリー表示する「フォルダペイン」の上にお節介なリンクフォルダが表示されていたり、単純に「アドレス」表示ボックスにフルバスが表示されないとか、そういう部分。

個人的に評価したいのは、ホームディレクトリが、これまでは、

C:\Documents and Settings\<USER NAME>

だったのだけれど、Vistaになると、

C:\Users\<USER NAME>

となる点。

あと、エリアエディタを導入しようとしたら、どうもTempファイル決めうちでEXEにされているらしく、エラーが出て終了してしまう。

それからDaemon Toolは「3.0.1くらいの古いバージョンがよい」という話があったが、たしかに導入はできるけど、OSもろとも落ちるので導入は断念。

社内LANにはスムーズに接続できたし、無線LANも(ちょっと悩んだけど)普通に接続できたが、残念ながらネットワークプリンタはうまくいかない。テストプリントは成功したんだけどねえ。

あ、それと、WebDAVは未実装だったりしますか?

Ajax for ASP.NET

なんだかんだ言うわりに、結構気になっていたり。

というわけでメモ。後半の棒グラフが参考になる(と思われる)。

久しぶりにCSSをいじった件

箇条書きスタイルのリスト表示は本文よりやや小さめにしているのだけれど、行頭に連番を振る「<ou>」タグと中黒を表示する「<ul>」タグが入れ子になっている場合、階層が深くなるにつれて等比級数的に文字が小さくなってしまう。

上記ふたつのタグにそれぞれ「font-size」を「%」で指定しているから当然なわけなんだけど、かといって「<li>」タグにのみ「font-size」を「%」で指定しても同じこと。

「どうすりゃいいんだろう」と思いつつ放置していたわけですが、先ほど解決いたしました。

なんのことはない、「<ou>」タグと「<ul>」タグのプロパティは「padding」と「margin」だけにし、「<li>」タグで「font-size」を「x-small」と指定すれば、とりあえずOKですね。

結局、「font-size」の指定方法によって継承元が変わってくる、ということがわかってなかったわけです。ははは。

いやあ、CSSは奥が深いわ。

世の無常を感じたりした件

いささか旧聞に属するわけだが。

Borland Softwareは2月8日、アプリケーションライフサイクル管理(ALM)推進の一環として、統合開発環境(IDE)に関連した事業の一部を売却する計画を発表した。

売却の対象にはBorland Developer Studio(Delphi、C++Builder、C#Builder)とJBuilderが含まれる。BorlandではBear, Stearns & Co.と契約して売却先探しに当たる。

「Borlandが開発ツールを売却、Segue Software買収」

おぉ、ついにそういうことになりましたか。なんというか、すさまじいなあ。

まあ、しかしこの文面を読む限り“開発環境”の売却なんでねえ、DelphiそのものやC++のコンパイラそのものは手放さないんじゃないかな。むしろ、VSの環境を間借りするかたちで生き残っていくのではないかと。コンパイラは切り替えて使うとかね。DelphiでWin32アプリケーションを作りたい人はこのオプションをつけろ、とか。IntelのC/C++コンパイラを導入する感じといえばいいのかな。

でもまあ、フリーなDelphi環境もあるそうなので、わざわざVSを購入してまでDelphiしようという人はいないかもしれないなあ。このまま好事家の言語になってゆくのだろうか。米国では大学のプログラミング学習にはかならず使用されていた(らしい)言語なのにねえ。

[追記]

今日(2006年2月9日:JST)訊いた話では、開発環境だけではなく言語もコンパイラも一切合財売りに出したとのこと。すげー。その上でALMに行くのかー。

てゆうか、JBuilderだけマイではじまってクロソフトで終わる某外資系企業が買い取る、なんてことは……、ないだろうなあ。だいたい切り売りなんかしないだろうしねえ。

それにしてもまあ、なんと申しましょうか。願わくばRationalと同じ道程を辿らんことを。どうぞご無事で。

F#でもLINQが実装されている件

先日のMicrosoft Developers Conference 2006 YokohamaではVB9.0にC#3.0ネタとLINQネタがいたるところにちりばめられていて、出たばかりのVS2005関連情報は薄ら寒い状況だった。MicrosoftのVBとC#の次期バージョンに搭載する機能がいかに自信に満ち溢れているかがよくわかる。

「でも実際の現場で弄れないんじゃ意味ないじゃん」とか斜め下あたりから三白眼47%という微妙な視線を送っていたおれではあるが、Webをくるくる回っていたら、なんとF#でもLINQが。

.NET Framework対応言語はすべてLINQが実装されることが、これで確定した。あはは。VC++はどうするんだろうか(てか、すでに対応済みだったりしてるのか知らん)。

よくわかんないけどなんかすごい件

スーパーベータ版だそうですけど、Ajaxで将棋ができるようになりつつあります!

「誰かとリアルタイムに将棋が指せます」ということなのでチャット状態で将棋を指すということになるんだろうなあ。いやあ、これは楽しみ。

これ、記事になるかなあ。

スクリプト野郎であった件

個別セッションでは「Monad」セッションが一番面白かった。

cmd.exeじゃない、新しいシェルなわけだが、ここに載ってくるスクリプト言語がMonad。なんつーか、後発だけあってPerlだのRubyだののおいしいとこどりしてるあたりがイイ。まあ、PerlやRubyやPython(サービスフレーズ)ほどめちゃくちゃパワフルというわけではないけど。

ただ、惜しむらくはExchange Serverに搭載されて出てくるので、いわゆる管理者向けシェル+スクリプト言語という感じで、デベロッパー向けではないんだけどね。でもなあ、オブジェクト指向かつパイプ指向言語なんだから、デベロッパーにとってもオイシイと思うんだけどなあ。.NET Frameworkのオブジェクトもバシバシ使えるし。などと考えるのはおれだけですかそうですか。

C#3.0系のLINQでは、どんなタイプのデータも直でいじれます。というアナウンスがされてるけど、実際のところActive Directory関連のデータはいじれない(それ用のAPIは提供されるかもしれないそう(伝聞)だけど)けれど、Monadを使えば、いわゆるパイプ処理ができるので、ADのデータもカンタンにいじれたり加工できたり。

まだベータ版のレベルだけど、すごい使える。シェル拡張なんてワザがあったりして、これもまたいい感じ。つか面白い。

ちなみに、セッション会場でようやく意中の人と出会えて、「幸せハッピー」な感じも二乗でございました。

Web.configを探し回った件

Visual Studio 2005でWebアプリケーションを作っていて、Web.configを探したらソリューションファイル群には見当たらず、ちょっとあせる。トレースモードを有効にしようと思ったわけだが、Web.configをAdd New Itemしようとしたら、なんかエラーが出るし。

いろいろメニューを突きまわして「WebSite」から「ASP.NET Configuration」を選択したらブラウザベースの「ASP.NET Web Site Administration Tool」が立ち上がってきた。

こいつの「Application」タブから「Debugging and Tracing」の「Configure debugging and tracing」をクリックして「Caputure tracing informaiton」をチェックすると、懐かしの(うそですが)トレースモードが使用できるようになり、ソリューションファイルにWeb.configファイルが生成された。

「なんだかなあ」などと言ってはいけないのだと思う。たぶん。

これはすばらしい

これこれ! これを作りたかったんだよね。

いやあ、これはすばらしい。

Mail2.0に関することなど

わはは。これはいい!

今提供しそうなサービスの「おもしろいけど不便」じゃなくって、「これはメールだと便利だな」というサービスを提唱していってくれたら、「メールが色んなもののインタフェースという考えも悪くない」という考えが多少は浸透するかな。

「Mail2.0って何?勝手に定義したらいいんじゃないかな」(ウサギ文学日記)

がぜん、プログラミングがオモシロくなってきた(個人的に)。

Web.configでの認証/認定/通信のセキュリティ保護

毎回わからなくなってしまうのは、おそらく私が老年性健忘症であることに加えて脳軟化症であり、かつ痔核もちだからかもしれない。

相変わらずバカなことをしている件

日付のルーチンを改造すべく、今さらながら.Textのソースをダウンロードして見てみた。

Dottext.Framework\Util\BlogTime.csなんてのがあって、そのものズバリなんだけど、これがまあ、ややこしいこと(うそうそ)をしていて、うんざりする。

要はClient側のタイムゾーンとServer側のタイムゾーンの差を、データの向き(クライアントからサーバー/サーバーからクライアント)によって修正しようという、意欲的なクラスなんだけど、AddHours()を駆使したりして泣きそうなソースになっている。

このあたりは.NET Framework 2.0で解消できるんだろうかしらん。サーバー(設置位置)中心思想のままだと、極東の島国のバカギークには相変わらずツライ日々が続くということか。

APIが公開された件に関して

ラッキーパインさんとこKUで「Yahoo!デベロッパーネットワーク」。とりあえず、IDを登録してみた。

すでにWeb/画像/動画検索ははじまっているので、このしんどい時期を乗り切ったら本腰を入れて見てみるつもり。個人的には地図よりもオークション検索ができるようになると嬉しいなあ。

ただし、SDKはPerlとPHP、それにJavaScriptの3種類しか(まだ?)ないんだよなあ。まあ、なにがどういう具合に送られてくるかというスキーマが公開されているから、試行錯誤していけばナントカなりそうな気もする。

それにしても時間が……。

remixigのために考えておくべきこと

どうでもいいけど、読むのが大変。

232ページ(!?)目の「認証不要な部分認証せずに取得できるようにする」にいたく同意。

WSHのいいところ

とりあえず、試験的に3日間ほど動かしていたプログラムが、意図したとおりに動作してくれているので、実稼動にまわしてみた。

久しぶりにWSH(VBScript)をガリガリ書いて思ったのは、WSHって楽ねえ、ということ。たいていのオブジェクトはOS側(あるいは導入したアプリケーション)が用意してくれているので、面倒くさいルーチンを書かずに済むのよね。などと言いつつ、でも一番大きいのは“型”を気にしなくてもいいことかもしれない。こんなアホっぽい言語をサーバー管理者に独り占めさせておくにはもったいない、などと思ったりなんかしちゃったりして。

しかしまあ、たしかにショボイっちゃーショボイ。せめてperlかRubyくらいの機能を実装してくれないかなあ。

おながいしますよ。誰かさん。

VS.NET2003をvi/vimモードにするアドイン

わはは。

まあ、とりあえずメモ。しかし世の中には酔狂な御仁がいるものだなあ。

ViEmu is a an add-in to Visual Studio which enables vi/vim-like editing for Microsoft Visual Studio .NET 2003.

viemu doc
  • viemu=http://www.ngedit.com/viemu_doc.html

Webのアレをナニしてみる

「Microsoft.XmlHttp」と正規表現を使って、アレをナニするツールを作成。

「Microsoft.XmlHttp」なんだから、もちろん使用しているのはVBScriptで、WSH。ははは。でもRegExpが(困らない程度に)使えて、そこそこ速度もでるので、クイック&ダーティハックにはぴったりなのだ。

てゆうか、クイック&ダーティハックしかしたことないけど。

生活環境がUNIX環境だったら、おそらくPerlを選択していたと思うのだけれどね。

ふと思ったのだけれど、MacOSに生活環境を移したらPerlはあるし、C#も(ちょっと面倒くさいけど)使えるから、もしかするとMacOSでもいいのかもしれない。NetBSDにMonoがもっとカンタンに導入できれば、それこそNetBSDをメイン環境にしちゃってもいいなあ。でも、昼ぐらいにFreeBSDのアップデートで四苦八苦(というほどでもない)していたデッドマンⅡ世の姿を見ちゃったので、ちょっと躊躇気味。

IIS復旧工事

帰宅後、IIS6.0の修復にいそしむ。

実行アクセス許可が「スクリプトのみ」に戻して(なんで変わったんだろう)、Server Extensions 2002 Webを起動して検査と修正。

いらないディレクトリだの残骸だのを捨てて、とりあえずキレイにしてVS2003.NETからWebアプリケーションを作ってみる。OK。

しかしなんで、実行アクセス許可が変わったんだろうな。なんかヘンなスクリプトとか走らせたっけな。んー。

まあ、直ったからいいか。

検索能力が低い件

2日間で溜まってしまったメールの処理と請求書処理業務のため出社(って、おい)。

ひと段落着いたところで、stringの数値をDateTimeに変換する処理を書いてみる。

とりあえず、想定しているのは「2005-10」という文字列をDateTiem型に変換する関数で、こんな感じにしてみた。

static DateTime dateConv(string YearMonth)
{
    System.Text.RegularExpressions.Regex r =
        new System.Text.RegularExpressions.Regex("(-)");
    string[] s = r.Split(YearMonth);

    int y = System.Convert.ToInt32(s[0]);
    int m = System.Convert.ToInt32(s[2]);

    System.DateTime dt = new System.DateTime(y, m, 01);
    return dt;
}

なんのことはない、「-」で前後を分割し「System.Convert.ToInt32」でintに直したのをDateTime型にして返すという処理で、もうちっといいやり方があるんだろうなあ、なんてことを考えながらドキュメントを読んでいたら「DateTime.Parse()」なんていうそのものズバリのメソッドを見つけて、ぐったりする。

いやまあ、別にいいんですけどね。要はあたくしの検索能力が低いということなワケですから。

だからRegularExpressions.Regex("(-)")なんてところは「-」で分割するようなメソッドがあるんじゃないかと思うんだけど、見つけたのはcharの配列で指定するものなのでちょっと使い勝手が悪くて、今回は正規表現を使ってみました。おそらくもうちっといいメソッドがあるに違いないのだ。むかー。

一方そのころ

その一方で、相変わらずVS.NET 2003でWebアプリケーションが作れないのであった。

また最初からインストールですか? それはいやー!

Visual Studio 2005のある生活

Visual Studio 2005英語版が正式に公開されたのを記念してダウンロード。Vista CTP10月版が走るマシンに導入してみる。

コケることもなくサクサクはいってめでたしめでたし。

当初はDaemon Toolsを使ってISOイメージからインストールしようかと思い、タレコミをいただいたversion 3.17を探してきてVistaに入れたものの、Administratorで起動しないと(おれはNTドメインユーザーとしてLogin。もちろんマシンのAdministratorsに加わえている)エラーを表示するだけで使い物にならなかったので、おとなしくDVD-ROMに焼いて、そこからインストール。

SDKとか入れなきゃいかんのかしらん、とか不安がよぎったけれど、待つこと小一時間。無事導入終了。

こちらは普通に起動できて、バカみたいなFirstApplicationのビルドにも成功。

あれ? そういえばワタクシ、VistaにIIS7.0って、導入してましたっけ? 生活環境を整えるだけで手一杯で、なんにも見てないということがよくわかりますねえ。困った困った。

よくわからない権限

てゆうかですね、昨日までOKだった「Visual Studio .NET 2003でIIS 6.0が走るWindows Server 2003にWebアプリケーションを作る」という単純明快なことができなくなっているんですけど。

'[path]¥[projectname]'をプロジェクトに追加できません。
サーバーエラー:The folder "[projectname]" is marked executable.
You are not allowed to put files into an executable folder on this server

なんてことを言われるようになってしまった。

なんでやねん。わたし、どっかでパーミッションをいじっちゃいましたか?

しかも悲しいことにどこをいじれば元に戻るんだか、よくわからない。手前の勉強不足を高い棚に上げて、なんでWeb用のディレクトリパーミッションと非Web用ディレクトリパーミッションが統一されてないんだ、などと憤りつつ、今日はもう眠ることにする。

このプロジェクトはすごいなあ

hack a day』(=http://www.hackaday.com/)KU。

2次元形状をつかんで自由に回転・移動したり変形したりすることのできる手法を提案している。

[snip]

我々の提案する手法は、ユーザが掴んで動かしている点を制約として、それらの制約を満たしつつ、図形の局所的なゆがみが最小になるように形状を瞬時に決定するというものである。

[snip]

入力デバイスとして、ユーザの手指を追跡できるスマートスキンのような多点入力デバイスを用いることで、実際の物体を掴んで操っているかのような結果を得ることが可能となる。また、同様のアルゴリズムを曲線に適用することで、掴んで引っ張るといった曲線変形操作をより自然に行えるようになる。

物体の堅さを表現した2次元形状の操作手法

一読しただけでは、なに言ってんだか良くわからないのだけれど、要は画像を見ればわかるとおり、“ユーザーの指によって二次元画像の形状をリアルタイムに変えてゆく”というもの。hack a dayを経由したので、最初は外人がやってるプロジェクトかと思ったけど、よくよく見たらどうも東京大学に在学中の方のようだ。すごなあ。

サイトにはクイックタイムを使用したMovieや形状変形のデモ(Java2で実装されてるみたい。Windowsオンリー)と曲線変形のデモが置いてある。一見の価値アリアリなので、見ていただきたいなあ。すさまじく重いけど。

ASP.NET開発に使えるかも

これはちょっと使えそうな気がする。こういうのを見るとIEのプラグインツールを作りたくなるんだよなあ。どこから手をつければいいんだかわからないけど。

テスト駆動型は浸透しないな

だって面倒くさいんだもん。

最初は面白がってやってたけど(ホントかよ)、なにしろ面倒くさい。そりゃ、テスト通してグリーンになればシアワセにすこーし近づく気もするけど、Visual Basicが(良くも悪くも)築き上げてきたプログラミング文化って、そういうのじゃないもんね。部品をドラッグ&ドロップ。ダブルクリックしてエディタが立ち上がったらルーチンを記述して、はい出来上がり。

まあなんだ、そのぉ、インスタントラーメン1杯作るのに、なんでそんなに具に手間隙かけなきゃイカンの、ちう感じか。

もちろん“そうしなければならない”シーンってのはいくらでもあるわけだから、必要だと思うんだけど、PCリテラシーと同じで、「このテストが通らないと、あんたのプロダクトは使わないしお金も払わないよ」という強烈な縛りが発生しない限り、“インスタントはインスタントだもんね”派(別名:“動くんだからいいんだもんね派”)を圧倒できないんじゃないかと思われ。

それ以前に「どうせ儲からないんだからなんでもいいよ」というダークサイドからの強烈なお誘いを蹴散らす、強くてピュアなココロが必要だという気もするわけだが。

てゆうか、マジ面倒くさい。

MSDEを再インストールした件について

VS2005をインストールすると、当然SQL Server 2005 Expressも放り込まれる。で、そのままSQL Server 2005 EXPRESSを使用していればよかったんだけど、どうしてもMSDEをインストールしなければならないという状況に立ち至ってしまった。

もともとVS.NET2003はインストールされていて、でもDBは入れてなかったし、すべてを共存させるほどHDD大尽ではないうえ、VS2005はアンインストールすることが確定していたので、いい機会だ、くらいの気持ちでいたのだけれど、世の中そう甘くはなかった。

VS2005を完全にアンインストールしたものの、どうもVS.NET2003からSQL EXPRESSのデータベースを使用したため、サービス関連のレジストリがおかしなことになってしまったらしい。MSDEがインストールできないのだ。

コマンドラインから、

>Setup.exe SAPWD="STUPIDGEEK" /L*v C:\MSDE.log

などとしてログをとったものの、原因が特定できない。

レジストリを目視すると、「SQL Server 9.0」なんて文字列が発見できたり、サービスにも「MSSQLSERVER」が残っている。ダウングレード不可能説が圧倒的に場を支配したところで、インスタンス名もオプションで指定してインストールするという、半ばやけくそなことをやったら、インストールできてしまった。なんだそら。

ちなみにこんな感じ。

>Setup.exe SAPWD="STUPIDGEEK" INSTANCENAME="MSDE2K" /L*v C:\MSDE.log

ホントはターゲットディレクトリも指定したんだけど、それとは別のところにインストールされちゃったので、これは関係なかったみたい。

とりあえずデータベースを作って、テーブルを作って、データを流し込んで、当初の目的はなんとか達成。やれやれ。

トラックバックについて

トラックバックPingの送信実験を(いまさらながら)やっているわけですが、はてなのおれの過去エントリに向けてPingを撃つと、ちゃんと、

<?xml version="1.0" encoding="utf-8" ?>
- <response>
   <error>1</error> 
   <message>http://d.hatena.ne.jp/N0MURA/ was not found in your page.</message>
  </response>

というエラーが返ってきて、とてもエライと思った。

ほかの(つってもたいしてないんだけど)サイトに作った過去エントリに向けて撃つと<error>0</error>で返ってきて、すっかりTB-SPAMになるのとは大違いだ。

Whidbeyのサンプルにまで嫌われている件に関して

マイクロソフトのサイトに行ってうろうろしてたらWhidbey向けサンプルがあったので、喜び勇んでダウンロードし、VS2005β2日本語版で開いたら、

現在開いているソリューションまたはプロジェクトは旧バージョンの
Visual Studioで作成されたものです。このバージョンで使用される
形式に変換してください。

などと表示された変換ウィザードが立ち上がって驚愕する。まあ、たしかに“Whidbey”はVS2005β2日本語版より古いバージョンかもしれないけどさあ。

釈然としないまま変換して、取り急ぎビルドしてみたらすごい勢いでエラー一覧が立ち上がってきた。エラーが2つに警告が6つ。

エラーは、

角かっこ[]付きインデックスを
'System.Collections.Generic.SortedDictionary
.ValueCollection'型の式に適用することはできません。

というもので「えぇ、ってことはβ1では適用できてたんだ」などと再度驚愕する。調べて手直しするのもひたすら面倒くさいので、今日はここまで(えー。

もちろん、あたくしのマシン環境はかなりデタラメなことになっているので、そのせいかもしれないわけではあるのだけど。

VB8.0言語

取り急ぎ。まあ、どうせダウンロードしてもまともに読まないと思うんだけどね。しかしVB8.0ですかそうですか。

本日のインストールプロダクト

The Mono C# compiler is (C) 2001, 2002, 2003 Ximian, Inc.

The compiler source code is released under the terms of the GNU GPL

For more information on Mono, visit the project Web site
   http://www.go-mono.com

The compiler was written by Miguel de Icaza, Ravi Pratap,
Martin Baulig, Marek Safar, Raja R Harinath

ちょっと自慢系の書き込み。

Mono C# compiler, (C) 2001 - 2003 Ximian, Inc.
mcs [options] source-files

うふふふふ。これでこっちでも.NETできる。C#だけど。

InfoPathを使ってみる

すごい勢いで悪戦苦闘していたのだが、ふと思いついてSP1を適用したら一気に解決してしまった。どうにもトホホな話であることだなあ。

やっぱりVB6.0が好き

なんというか、みんなホントにVBが好きなんだなあ、と思った瞬間。

VB6.0をインストールしてちょっと試してみようかなあ、とか思ったりもしたわけですけどね。そこまでVB6.0にこだわってるわけじゃないしなあ。

出てますた

よくわからないですけど、某氏がこれの日本語化をコツコツやるとかやらないとか。「Ver 3.0が出たら本格的に」とか言ってたので、いよいよ“本格化するんだろうなあ”とか思ったり。

がんばってくださいねー。とーいところから応援しております。はい。

あまぞーん

あれ? 在庫状況って、どこに入ってるんだ?

それらしいプロパティが見えないんですけど。

[追記]

[Offers]-[OfferListing]-[Availability]だと思うんだけど、なんで見えないんだろう。おれ、またなんかやらかしてる?

[さらに追記]

あはは。やらかしてました。ダメじゃん。

見え方で悩む

FireFox 0.7(って古いな)で見ると、カテゴリリストもアーカイブリストもバナーリストもズレるんだよね。<ul><li>タグの解釈が異なるためだと思うんだけど、よくわからない。

そのせいかどうか、IE6だときちんと表示されるAmazonサイドバーも、FireFox 0.7だとガタガタになる。IE5.0でもガタガタ。

テーブルタグとかは使わずにCSSだけで制御したいんだけど、どうすればいいんだっけな。

DataSetはテーブル

いまさら言うまでもないことだけれど、DataSetは単なるテーブル(ビューと解釈してもいいのかな)。したがってオブジェクトのツリー構造にマッピングするのはどうしても手作業になる(それがゆえのXML?)。データと画面の距離は近いけれど、それが両刃の剣になっている。

「コレは解決できない問題かもしれない」というのは某識者。ほんとか?

NUnitで行なうTDD

NUnitを導入してテスト駆動型開発というのはよく聞くけれど、NUnitの場合はコンテナ型は使えない(?)のでモック型で行なう。つまりIISを使用せずに若干ブラックボックスにしてテストをする。

ではその場合のテストクラスの書き方は? あるいは、モック型であるがゆえに設計自体も変更しなければならないのだけれど、その際の指針は?

TrackBack Ping

ソースコードを読んでいたら、EntryEditの画面で[Save]ボタンをクリックした際に、http://rpc.weblogs.com/weblogUpdates/にPingを送るソースを見つけた(BlogXUtils.cs)。これを援用して、たとえばEntryEditにPingの送り先用の入力ボックスを作り、ここにURLが入力されていた場合は、該当URLにPingを送信する、なんてことが可能になる。

ただ、個人的にはこちらからPingを送りたいわけではなくて、むしろTrackBackを受信したいだけなんだけどね。

Visual Stuido 2005

いよいよ登場するわけですなあ。起死回生(誰の?)のプロダクトとなるか。

Microsoft Corp. is expected to roll out the much-anticipated second beta release of its Visual Studio 2005 development platform at the end of March or early April, sources close to the company said.

According to sources, Microsoft is scheduled to release Beta 2 of Visual Studio 2005, code-named Whidbey, on March 31. Sources also said Microsoft is expected to release the release candidate version of Visual Studio 2005 around the time of the Microsoft PDC (Professional Developers Conference) in Los Angeles in mid-September.

Microsoft officials had said to expect the final Whidbey release to ship in late summer 2005.

Visual Studio 2005 Nears Second Beta, 'Go Live' Status(Application Development/eWeek)

3月末から4月初旬の段階でβ2がリリースされるとなると、日本語版は5月上旬かなあ。早ければ5月売り6月号でDVD添付ができるかもしれない。逆に言うと4月売り5月号ではDVD添付の可能性は消えたということですな。いいんだか悪いんだか。

で、9月中旬のPDCではRC版が出回ると。やっぱりPDCには行きたいなあ。今度はLAですか。

どの程度まで機能を盛り込んでくるんだろう。β1でかなり完成度が高かったから、それほど機能を絞ってくるとは思えないんだけどね。むしろSQL Server 2005の出来次第だろうなあ。ストアドプロシージャを.NETで記述できるってのは、かなり魅力なんだろうけど、個人的にはASP.NET2.0かなあ。この流れって、やっぱりWeb中心だよなあ。リッチクライアント絡みではClickAtOnceが構築できるかどうか。そこだなあ。これがちゃんと実装されるようになっていれば、Webはもちろん、クライアント側のアプリケーションが息を吹き返すことになる。希望的観測だけれどね。

お手軽開発

去年のPDCでsimpleGeek(a.k.a. Chris Anderson)がDemoで使用していたIDEを、ようやく発見。Snippet Compilerという奴だった。

RADではなく、完全にエディタとして作られているところが、CSharpDevelopとかとは違う点。がつがつ入力して[ビルド]ボタンをクリックするだけ。[実行]ボタンをクリックするとcmd.exeが立ち上がって結果を表示する。エディタ下部のペインに結果を出力することも可能。

ただなあ、VB.NETのテンプレートで「imports Microsoft.VisualBasic」がはいってるというのはどうなんだろうなあ。「VisualBasic」はプリコンパイルができないから遅い実行ファイルができてしまうのだから、これは当然、削除でしょう。まあ、テンプレートを書き直せばいいわけですけど。

ていうか、「Imports」じゃなくてもいいんですね。

まあしかし、いまやgvimで同じことができちゃうからいいんですけど。うらやましいのはインテリセンスだけど、これもdict機能を強化したからあんまりストレスないし。

というわけで、ダウンロードしたけど使わないなあ。

あ。でもv2.0のほうは.NET Framework 2.0にも対応してるからLonghornにこれだけ入れておけば、開発は可能だ。そういう使い方のほうが幸せかもしれない。ちなみにv1.0は.NET Framework 1.0にしか対応してない。

TrackBack/Pingback

ちゃんと探せば出てくるもんだ。

ちょっと気分がよくなった

マイクロソフトの某氏から久しぶりに電話があり、話しているうちにちょっと気分がよくなった。

というわけで、blogxのハック。今回はコメント欄に代わるものとして、メールシステムをサイドバーにくっつけてみることにした。

基本的にはascxでインターフェイスを作り、ascx.csにロジック(というほどのものではない)を書けばいいわけで、案の定、30分ほどで完成。メールの送信にはSMTPが欠かせないわけだけど、この実験はローカルで試しているので当然社内のメールサーバーの手を借りることにする。具体的には、

SmtpMail.SmtpServer = "xxx.yyy.zzz.nnn";

とするだけ。To:だのFrom:だのSubject:だのをSmtpMail.Sendメソッドで上記SmtpServerに放り込んでやればOK。実験は成功で(当たり前だ)これでコメント記入欄がなくても大丈夫ということになった。

問題はここ(nardis)のメールサーバー。残念ながらPOP before SMTPなので単純に送信することができなかったりするのであった。もしかしたらWebの管理ガイドに回避方法が記載されてるかもしれないので、あとで確認してみよう。うまくいきそうだったらインターフェイスをきれいにして、こちらにアップする予定。さて、うまくいきますか。

てゆうか、おれって単純極まりないな。

パーマネントリンク

現在、

  • タイムスタンプにパーマネントリンクを設定
  • トラックバック先としてTrackBackを表示

しているけれど、これを

  • タイムスタンプはラベル化
  • TrackBack表示を削除
  • トラックバックのリンク元としてPermaLinkを表示

に変更(ローカルで)。今晩じゅうにこちらもアップデートの予定。

[追記]
なんてことを言いつつ、ちゃっちゃと修正してしまいました。

Amazon Webサービスアプリケーション

実際に作ってみたAmazon Webサービスアプリケーションがうまく動作しなくなったのは、これの影響かと思ったんだけど、どうもそうではないクサイ。

nullが返ってくるあたり、手前のコードミスだなあ。やんなっちゃうなあ。

トラックバックの実装方法を探す

あと、http://r286.com/arc/205 を読む限り、

書き込み登録の送信内容ですが、通常のTrackBackのようなものです。つまり、クライアントからサーバーへはHTTP POST、返値はXML。

サーバー側の受け口はtb.cgiの148行目。通常のHTTPのPOSTの形式で内容は、

__mode=regist&id=iBlogの書き込みのID&title=書き込みのタイトル&excerpt=書き込みのdescription

返値を作っているのはtb.cgiの167行目以降。まさに単なるXMLです。

~でデータが1であれば、エラーとして~をiTrackBackが表示します。

とのこと。tb.cgiはトラックバックを実装しているiTrackBackの該当プログラム箇所。

もっとも「書き込み登録の内容は、通常のトラックバックのようなものです」ってのが、ひっかかるなあ。これ、どういう意味なんだろう。やっぱりちゃんとトラックバックを実装しているCGIを解析しないとダメかなあ。

トラックバックに関する資料

トラックバックに関する資料。これを熟読玩味すればなんとかなるんじゃないかと夢想。ただし英文ですから。残念!

[追記]

さらに検索していたら、上記の記事が日本語に翻訳されてるところを発見。

  • トラックバック技術仕様書=http://lowlife.jp/yasusii/stories/8.html

トラックバックについて

トラックバックってのは、要は他のサイトからリファラとしてXMLデータが送られてくる、という解釈でいいのだろうか。pingとしてXMLタグ付きデータが送信されてくるので、それを受信し、XMLタグに沿ってデータを解釈するという実装で問題ないのだろうか。

Windowsアプリケーションにトラックバックの送信システムを実装した、RSSリーダーを作るとそのあたりがわかるのかな。その場合は自前サイトにコンテンツをアップする際にトラックバック送信を送る、というシステムにしないとだめなんだっけ。トラックバックは送るけど実態となるべきコンテンツはどこにもない、ってのはスパムTBになるわけだもんな。それはそれで面白いけど。

このあたりのことをRSSと一緒に記事化すると、おれがうれしい。

Webコントロールについて

BlogXのWebコントロールはPreRenderイベントを使用しているため、コンポーネントのイニシャライズ時にイベントハンドラを付与しておかないと描画されない。

具体的には、

private void InitializeComponent()
{
    this.Load += new System.EventHandler(this.Page_Load);
    this.PreRender += new System.EventHandler(this.MyWebCtrl);
}

こんな感じ。

この処理を忘れていたせいで、なんで表示されないんだろうとしばらく悩んでしまった。ダメダメだなあ。

amazon Web Service

前に作ったAmazonのWeb Serviceを使ったアプリケーションが動かなくなった。どうもDetails構造体が微妙に変わったっぽい。

でもVS.NET 2003のインテリセンスはきちんとDetailsを把握してるみたいなんで、どこがどう変わったのかよくわからん。ネットワーク環境に依存するとも思えないし、プログラム自体はこれまで動作していたのだから、こちらも問題ないはずなんだけどなあ。こーゆう場合のデバッグって、どうやるんだろう。

IPv6アプリケーション

IPv6なヒト(どんなヒトだ?)はこぞって応募しる。やり直したいヒトも応募しる。

でも商品がちっとしょぼい気が。

IPネットワーキングを社会やビジネスに生かすためのアイディアを求めています。IPv6普及・高度化推進協議会が開催しているIPv6アプリコンテスト2004のメディアスポンサーとして、IPv6styleではアイディア部門へのエントリーを大募集! IPv6style経由でIPv6アプリコンテストに応募し、コンテストに受賞できなかった人全員から抽選で、ソニーのHDDオーディオプレーヤー「ネットワークウォークマンNW-HD1」とパナソニックコミュニケーションズのネットワークカメラ「BB-HCM311」をプレゼント!

応募期間は2004年10月18日午後23時59分まで。急げ!

IPv6アプリコンテスト連動プレゼント企画(IPv6style)

[追記]

こちらのほうがリンク先としては正しいような気がする。

てゆうか、これ、締め切りすぎてないか?

路上カラオケ

チューブの「シーズン・イン・ザ・サン」が荒木町にこだましている。微妙にエコーがかかっているとこから想像するにカラオケでいい気持ちふうなのだが、オケは聞こえない。まさにカラオケだ。どうなっておるのか。

新宿関連の話題

  • 2丁目関係

月刊 『薔薇族』は9月21日発売の11月号(382号)を持ちまして廃刊となりました。 永らくご愛読、ご支援いただきましたみなさまに心から厚く御礼申し上げます。

月刊薔薇族ホームページ
  • 駅ビル関係

【書店短信】新宿駅ビル店、閉店へ/山下書店(3面)

本誌ヘッドラインバックナンバー 9月30日号(新文化 - 出版業界紙 -)

MSDNサイトの使い方

http://msdn2.microsoft.com/library/<namespace>.aspxなんてやると、URLで指定したネームスペースのドキュメント(Visual Studio 2005)が読める。たとえばこんな感じ。

System.Net.Sockets=http://msdn2.microsoft.com/library/System.Net.Sockets.aspx

あと、Assemblyがある場合は、こんなふう。

System.Reflection.Assembly=http://msdn2.microsoft.com/library/System.Reflection.Assembly.aspx

こういうのもあり。

System.Reflection.Assembly.FullName=http://msdn2.microsoft.com/library/System.Reflection.Assembly.FullName.aspx

とりあえず、VS2005をいじってみて、「Helpが整備されてなーい」と叫んだ人は、これを試してみるのもいいかもしんまい。

カーネル読書会

45回目はDan Aloniさんが登場するもより。

つってもDan Aloniさんて誰よ、というわけでグーグル様にお伺いを立てたところ、どうもWindows 2000/XP上で走るLinux(coLinux)を開発した中心人物のようで。Cygwinと大きく異なるのは、バイナリ環境をWindowsの中に構築するという点。これって、NetBSDのPEACEと逆の発想か?

ちょっと面白いので追いかけてみようかなんて思ったり思わなかったり。

Code Jam 2004

ことしも『Code Jam』の季節がめぐってまいりました。腕の自信のあなたはぜひ参加して、無料の社食で食費のいらない生活を目指していただきたい。

あたしはダメですけどね。

ちなみに言語はJava、C#、VB.NETのようです。

IIS6.0マイグレーションツール

おぉ、こんなツールが。

コマンドラインツールみたいですね。

OneNote-WinBlogX

I think whether I can make WinblogX using OneNote. Although Word or Excel is sufficient.

Now, I happened to have thought suddenly. If PowerPoint is used, "a picture diary blog" will be able to be made.

Module or Class

VB.NETでは、“コードモジュール”がサポートされているので、以下のような使い方ができる(実例はこちら)。

Module hoge
    Sub Main()
    End Sub
End Module

コードモジュールを使用すれば、グローバル関数をあつめたライブラリの作成などが可能になるわけだけれど、実はILレベルで見ると、このようなモジュールを、vbc.exeはすべてのメンバがSharedのクラスに変換し、クラス自体はNoInheritableとして生成する。

というわけで、モジュールに対してはインスタンス/コンストラクタを追加することはできない。追加できるのは共有コンストラクタだけであることに注意しなければならない。

[利点]

  • モジュール名を指定せずに直接メンバを参照できる。
    • ただし、コンパイラが呼び出さなければならないメソッドを解決できる場合に限る。

VB.NET Resource Kit

Hey. It's wonderful.

When is this product released in Japan?

VB.NETリソースキット

こんなのがリリースされてますね。

コレは結構いいかも。

つか、はやく日本語版リリース汁。

DLLヘルについて

DLLヘルで飛んでくる人が多いようです。どういうDLLヘルの内容が知りたいのか、よくわからないのですが、.NET関連のDLLヘルに関しては『dotNETマガジン』の9月号にわかりやすい記事がありますね。

それ以外の、いわゆるWindow NT4でVBやVC++で構築してたシステムのDLLヘルに関する情報なら、『Visual Basicマガジン(休刊)』や『MSDNマガジン(休刊)』にも載っていたように思います。

あとはWebを丹念に調べれば、まだまだ残っているかもしれません。

乱暴に言ってしまえば、

『アプリケーションを作成する際に使用したランタイムライブラリーと実行環境にインストールされたランタイムライブラリーの不整合に起因する不具合』

ということになります。

で、なにが困るかって、マイクロソフトが配布するパッチやSPによってDLLが置き換わってしまい、この症状がしばしば発生するからですね。

つまりセキュリティホールをふさぐためにSPをあてたら肝心の基幹アプリケーションが動かなくなる(場合がある)わけです(なにしろ、IEやOfficeをアップデートしただけで、動作がおかしくなるのもあったくらいですから)。

そのため、開発者はシステムを守るため、できるだけSPなどをあててくれるな、ということになりますし、一方でシステム管理者はシステムを守るため、いかにしてSPやパッチをきちんとあてるかに腐心するので、当然、大騒ぎになります。

で、開発者が自社内にいるケースはまれなので、システム管理者が寝る時間を削ってSPやパッチのテスト(自社内システムがSPやパッチをあてても影響がないかどうか)を行なうわけです(むろん、(良心的な)開発者はやってるはずですが)。

というわけで、いたるところでDLLによる地獄がぽっかりと口をあけているわけです。あはは。いや、笑い事じゃない。

Windows 2000以降はOSに、そのDLLを判別する機能が盛り込まれましたが、XP以降で7割方(OSのシステムとしては)完成したと見るほうがいいです。

また、.NETアプリケーションであれば、実行環境(.NET Framework)自体が、どのバージョンのどのランタイムを使用しているかを確実に(現時点では)判断してくれます。

だからまあ、.NET Frameworkにはやく移行したほうがシアワセになれるかも。なんてことを個人的には考えていたりしますが、どうなんでしょうねえ。

IDE機能あれこれ

    Things VB.NET should have had out of the box:
  • Multiple lines code (i.e. no "_" needed to break a line into smaller ones - much more readable code (Especially when declaring attributes - yuck!)
  • Multiple lined comments
  • XML help tags like C#(Why do we need VBCommenter for such a basic thing?)
  • "Debug" and "Release" build folders by default. Why the hell is that missing? Indexed properties and arrays accessed like C#'s arrays - using "[]" and not "()" The same for attributes - using "<>" is *ugly*
    Things C# should have had out of the box:
  • Background compile
  • Case-insensitivity
  • VB.NET-like Intellisense for enums and namespaces writing
  • Automatic creation of "()" braces on method calls - meaning that writing the following: MyMethod myParameter Turns into: MyMethod(myParameter) automatically.(VB.NET does this very nicely - saving lots of typing time)
  • With like functionality VB.NET - jeez - this is the part I miss the most....
What’s missing in today’s hottest languages?

全面的に賛成。

Whidbeyに盛り込まれると、とてもシアワセなんだけどなあ。

VBでコマンドラインコンパイル

ちょっと気になってVB.NETでコマンドラインコンパイル関係のサイトを調べてみたのだけれど、ジャストミートな情報って出てないんですね。

というわけで、C#じゃなくてVB.NETでのソースも掲載してゆくことにしました。

まずは9月26日付けのネタから。

Imports System

public Class hoge
    Public Shared Sub Main(ByVal cmdArgs() As String)
        if cmdArgs.Length <> 1 Then
            Console.WriteLine("USAGE: VBCOMP yyyy-MM")
            Return
        End If

        Dim strArgs As String =""
        Dim strDate As String =""

        strArgs = cmdArgs(0)
        strDate = DateTime.Now.ToString("yyyy-MM")
        Console.WriteLine(compareStrings(strDate, strArgs))
    End Sub

    Public Shared Function compareStrings(ByVal str1 As String, ByVal str2 As String) As String
        Dim result As Integer =0
        Dim strRes As String = ""

        result = String.Compare(str1, str2)
        If result <> 0
            strRes = "No"
        Else
            strRes = "Yes"
        End if
        Return strRes
    End Function
End Class

[実行例]

c:\> foo.exe 2003-09
Comparing "2003-09" and "2003-09"
Yes!
c:\> foo.exe 2003-10
Comparing "2003-09" and "2003-10"
No!

というわけで、あんまり面白くないと思うな、これは。

というよりこれは中途半端なんですね。

本当にこれだけの内容であれば、「Class」は使わずに「Module」で構成すべきだし、身も蓋もない言い方をすれば、「Console.WriteLine(CompareStrings(strDate, strArgs)」なんて、わざわざ別関数にするまでもないわけで。

Perlと同じで「やりようはいくらでもある」わけです。

ここでやりたかったのは、要はClassキーワード内で別関数を使用するということだったので、あまり深く考えてはいけない。

文字列比較(検索)

String.Substringメソッドを使ってもいいですね。

文字列比較

やっぱり、ヘタレでした。

Stringクラスのメンバ関数に、各種文字列比較メソッドがおりまして、今回はとりあえず、行頭文字列を比較して等しいかどうかを調べることにしました。

以下のサンプルコードは、実行時の日付(yyyy-MM形式:ex. 2003-09)を取得し、引数(2003-XX)と比較して等しいかどうかを判定します。

using System;

namespace hoge {
    class foo {
        [STAThread]
        static void Main(string[] args) {
        string strArgs = args[0];
        string strDate = DateTime.Now.ToString("yyyy-MM");

        Console.WriteLine(CompareStrings(strDate, strArgs));
        }

        private static string CompareStrings(string str1, string str2) {
            bool result = str1.StartsWith(str2);

            if (result == true)
                return "Yes!";
            else
                return "N0!";
        }
    }
}

[実行例]

c:\> foo.exe 2003-09
Comparing "2003-09" and "2003-09"
Yes!
c:\> foo.exe 2003-10
Comparing "2003-09" and "2003-10"
No!

まあ、実際は、2003-09のあとに日付だの時間だのがくっつくので、年月で判定するにはこれでもいいか、みたいな。

もっといい手があったら教えてください。

選択

基本的に私はVisual Studio .NETで開発する時はVB.NETを使用します。

理由は単純で馴れているからです。

一方、メソッドやプロシージャのテスティングの際はC#を使用します。

理由は単純で、エディタのvimでコーディング-コンパイル、実行まで行なえるようになっているからです。

VBをかじる前は生Cを使っていたので、vimの設定がC関連に最適化されているということと、たかがひとつのメソッドの引数と結果を確認するのに、わざわざVS.NETを立ち上げる気がしないわけです。

というわけで、別に私はC#使いじゃありません。

おそらく、今後、小さいサンプルコードを記述してゆくと思いますが、C#がメインになるけど、実際はVB.NETユーザーだと認識してください。

というか、ヘタレなプログラマ見習いです。

It is there and there is nothing here, again.

Why didn't Microsoft mount the insertion function of the comment corresponding to XML in Visual Basic .NET 2003, either?

脱コンテナしたかった件

C#でマネージドなdllを書いていて重宝するのが、XMLに対応したコメント文の挿入。

書き上げたプロシージャの上でスラッシュを3回入力すると自動的に、

  /// <summary>
  /// 
  /// </summary>
  /// <param name="sender"></param>
  /// <param name="e"></param>

と、コメントが挿入できるようになるのですね。

で、このコメントは、他のプロジェクトから該当プロシージャを使用するときにバルーン表示されるわけです。

これは便利なんですけど、Visual Basic .NETでは使えない機能なんですよ。

やっぱりVisual Basic .NETは.NET Frameworkとなっても、コンテナなんですかねえ。

サポートするFrameworkは?

ノータッチデプロイメントのテストを行なうため、VB.NETでサーバー側に配置するEXEを作成し、とりあえず、.NET Framework 1.0と1.1の両方の環境をサポートするように設定してビルドし、サーバーに配置。

テスト自体は成功でした(何度やっても「あぁ、これはうまい仕組みだなあ」と感心することしきりです)が、本日、C#で同じようにEXEを作成していて、頭の上にハテナマークが128個ほど噴出しますた。

VB.NETでは、プロジェクトを右クリックし、「ビルド」で表示されるダイアログボックスから「サポートする.NET Frameworkの種類」を選択できたのだが、C#では、そもそもそんな選択肢がないんですね。

うーん。これは、

クライアントアプリケーションは、VB.NETで書きなさい!

というお達しなのでしょうかね。
おそらくそうなんだろうなあ。

It is there and there is nothing here.

There is a function which supports both of run time of Framework 1.0 and 1.1 in Visual Basic .NET. However, the function is not in C#.

Although there may be a certain method, I have not found it yet.

Which technology should be used?

There are the following choices in the range which I look at.

  • Web Form
  • Windows Form
    • No Touch Deployment
    • Windows Update System

However, in the development spot in Japan, which solution suits their development most seems have not judged well in me.

If I can clear the problem of security to consider, No Touch Deployment is good. Probably, the solution which updates automatically the application which used Windows Update System if it was useless, and was installed in the client will be good.

However, I think that there is a trap as for Windows Update System.

The phenomenon called "DLL hell" until now will appear as "version hell" shortly.

Visual Basic or Visual C#

It is said that the amount of coding of Visual Basic.NET corresponding to Yukon decreases more than the former. It is said that for the moment, Visual Basic.NET evolves into non coding development environment further. I am glad if the "easy development" power which Visual Basic had returns again from the first. I conclude that Visual Basic.NET is probably accepted in the developer market in Japan.

On the other hand, It seems that C# becomes a development language for the programmers who want to carry out coding.

I think whether as me, a logic portion is developed by C# and a user interface portion should be developed by VB. And it is a place with sufficient Visual Studio.NET that it is made in one environment.

I want to already construct.

Seemingly, ASP.NET 2.0 will be uncanny.

A certain project which was progressing by planning to use ASP.NET 1.1 at the beginning was frozen until ASP.NET 2.0 came out.

Seemingly, it will be as uncanny as it.

It is said like VB.NET that development of non coding is possible also here.

Windwos Up Dateでゾーンの問題を解決する?

ノータッチデプロイメントが、設定zoneの問題でダメとなった場合、サーバーがクライアントにインストールしてあるアプリケーションのバージョンを確認して、自動的にアップデートしてくれるシステムを、企業内システムに導入するというシナリオがあるけれど、長期的に見ると、これもダメなんじゃないかなあ。

DLLヘルは終わったけど、今度はバージョンヘルが待っている(ような気がする)。

どうなんだろうか。

ノータッチデプロイメントについて

個人的には、これ、すごいネタだと思っているのだけれど、おそらくダメだろうな。やっぱりセキュリティ関連が絡んでくるからね。

たぶん、Webフォームで行くか、Windowsフォームで行くか。Windowsフォームを使用する場合に、クライアント配布の手間を考慮してノータッチデプロイメントで行くか、Windows Up Dateシステムを援用するか、という判断が必要になる。

そのあたりの指針が出てくると面白いな。

Web/Windows formについて

結局のところ、混乱の元はWebフォームを使うソリューションとWindowsフォームを使用するソリューションを、きちんと判断できないことにあるのかもしれない。

ASP.NET 2.0はすごいらしい件

これは仙台に行く前から耳にしていたのだが、ASP.NET 2.0はスゴイらしい。どのくらいすごいかというと、1.1(.NET Framework 1.1ベース)の案件を、2.0が出るまで凍結することにしたプロジェクトが出るくらい、すごい。

こちらもVB.NET同様、コーディングレスな開発が可能だという。

うーむ。早く見てみたい。

VB.NETとC#について

マイクロソフトの言葉どおりにVisual Studio .NETがリリースされるのであれば、次はYukon(SQL Server 2000の次のバージョン)対応のVisual Studio .NET 2004となる。毎年バージョンアップすることになるわけだ。

で、これは10月のPDCに行かないと見えてこないのだが、おそらくVisual Basic .NET 2004は、いよいよコードの記述量が減ることになる。生産性の向上という奴だ。

一方で、ごりごりコーディングしたい向きにはC#ということになるだろう。

ここにおいて、もう一度、Visual Basicの“Windowsアプリケーションをカンタンに作成できる開発環境”という、Visual Basicらしさが復活することになる(きちんと.NET Frameworkを隠蔽し、なおかつ質の高いコードを吐いてくれることを切に希望したい)。

業務ユーザーは、VB.NETを選択するだろう。

ロジック部分を手がける部隊はC#か。

# あと背伸びしたいサンデープログラマ(いるのか?)もC#を選択するね。

アンマネージドな世界(COM+)はVC++.NETで決まり。

当たり前だし非常に明確なんだけど、なんでいまだに「VB.NETとC#と、どっちを選択すればいいのだろう?」なんて質問が出るのか。謎だなあ。