2008/01/31


なんか寝つけないので、もひとつ愚痴...
最近、お仕事でJava使ってます。

といってもJavaの画面上にはActiveX(Ocx)が張りついてます。しかもそのActiveXって.NETで出来てるんです。どんなシステムなのかと...苦笑
まぁそれが言いたいのでなく、COMやATLをJavaアプリで動かすので、Javaのメインスレッドを食われない用に、STAやATLで作ったOcxは別スレッド起こして実行してます。
なんかこういう場合にも、メインスレッドを汚ない(出来ればCOMなんか関与しない)ようなコードが、簡単に書けないものか...

非常にメンドイです。

そうそう今日職場で休憩時間にMSから出てるPowerShellっていう管理者用(?)シェルを試してみました。
感想としては、まさしく...「コマンドプロンプトに.NETという毛を生やした」というのが相応しく(いや、変な意味でなく)、私にとってはPowerとまでは行きませんが、違う物としてみれば使える代物なのかもしれません。

ただ、exeもパス内のものが実行出来るのですが、「startコマンド」が使えない。私にはダメージが大きすぎる。
私は仕事中はだいたい70〜80%をコマンドプロンプトの中で生活しますから、たまにエクスプローラを開くときなんかは、「メニューから...」なんて事はしないんですよね。「cd」してエクスプローラが開きたくなったら
C:\foo\bar\> start .
ってやるんです。
この「startコマンド」がないと、まるで周りからはPCド素人に見えてしまうんですよ。私...

マイクロソフトさん、私を助ける意味でもPowerShellに「startコマンド」を付けて下され...


マイクロソフトで思い出しました...
今日IronPythonを試しました。以前に少し触った事はあったのですが、MSエバンジェリストのブログで、「IronPythonを使ったMSAgentのサンプル」を見つけたので、試してみたんです。
ほう...確かに動く。


...で?
これってpythonのwin32com使ってもおんなじやん...
まぁアセンブリ参照みてモジュールベースのコーディングが出来るのかもしれないんですが、pythonって呼出フック出来るから、結局似たようなコードになるんじゃ...
ちなみにExcelを操作するpythonのコードは...
import win32com.client
xlApp=win32com.client.Dispatch("Excel.Application")
xlApp.Visible=1
xlApp.WorkBooks.Add()
sheet=xlApp.Sheets(1)
sheet.Cells(1, 1).Value="Hello Python"
こんな感じ?じゃぁ、「.NET」である必要って何?

あと余談ですが、MSAgentってSTAでしか動かないんすね。おまけにイベントシンク(IAgentNotifySink/IAgentNotifySinkEx)ってInvoke呼出してくれないし...泣
汎用ディスパッチシンクを呼ばせるには、IDispatchを継承してQueryInterfaceで嘘を返してあげればいいの?
#GetTypeInfoCountもGetTypeInfoも呼ばれない、IAgentNotifySinkを継承してないインスタンスをRegisterメソッドに渡すとエラー出るし...


さぁいい加減に寝ないと、死ぬぞ...
Posted at by




関西の食パンは5枚切りなの?
そうですよ。うちは5枚切りですよ!当たってますよ!
って事で、パンが何枚切りかで関西人かどうかを判断するAPIを作りました。

http://mattn.kaoriya.net/cgi-bin/breadslice.cgi

パラメータ:
slice: 何枚切りか
callback: JSONコールバック
サンプルリクエスト:5枚切り

簡単に作ったアプリケーション
あなたのパンは何枚切り?
あなたは...


これで気になるアノ人が関西人かどうか分かります。
Posted at by




もごもご vimからもごもごを閲覧/更新できるアプリケーションを作りました。
ベースとなっているのは、Twitter : A simple client for Twitterです。
以前、この「Twitter : A simple client for Twitter」のマルチバイト周りとWindowsで動作するように修正した物をtwitter上でひっそりとアナウンスしましたが、それをベースにもごもごバージョンを作ってみました。
もごもごって、public_timelineでも認証がいるんですね...汗
使い方は、twitter版と同じ

publicステータス取得
:Mogo2PublicTimeline friendsステータス取得
:Mogo2FriendsTimeline ステータス更新
:Mogo2StatusUpdate 今日も、もごもご となります。
※スレッドへの発言も同様に
:Mogo2StatusUpdate >>343473 もごもご... と実行します。

ダウンロード:
※witter.pyがpythonスクリプト内でグローバルなメソッド名称定義してくれてますので、mogo2.pyでは接頭語「Mogo2」を付けてます。

また、オリジナルのtwitter版をマルチバイト/Windows対応した物も一緒に配布します。こちらは精神衛生上の都合もあり上記接頭語を「Twitter」に変更しています。
ダウンロード:
上記スクリプトのインストール方法は...メンドイので省略
Posted at by