2008/08 | 2008/09 | 2008/10
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

2008年9月 5日

VSTO running in a server

今作ってるプログラムでは、サーバー側で定期的に処理をする部分と、Excelで処理をする部分があってどうせExcel使うならVSTOが便利かなぁ…と思ってExcelの所をVSTOでやろう、と考えたわけですがこれがどうも難しい。

定期的に処理をするプログラムは、もちろんWindows Service(デーモン)として動かすことになるわけやけども。ということは、そこから起動されるExcelはServiceの一部となるわけで。Excelをサーバー側でオートメーション処理をすることになるわけですね。クライアントではExcelのオブジェクトをCreateObjectで作って、ということの作法が有名なのでそれでもできるんやろうな、とは思うものの…。

Office のサーバーサイド オートメーションについて(ref. MS support)

マイクロソフトは、現在のところ、無人の非対話型クライアント アプリケーションまたはコンポーネント (ASP、DCOM、および NT サービスを含む) からの Microsoft Office アプリケーションのオートメーションについてはサポートしておらず、このようなオートメーションは推奨していません。それは、このような環境で Office を実行した場合、Office の動作が不安定になることやデッドロックが発生する可能性があるためです。

ぐぁ。

▲top

投稿者 ただ : 23:58 | トラックバック (0) カテゴリー ; プログラミング単語帳 , プログラミングとか

2008年9月 7日

VSTO running in a server(2)

マイクロソフトは、Office のサーバーサイド オートメーションの推奨もサポートも行っていません。

ということはまず書いておきます。

Excel 2007のVSTOプロジェクト(マクロつきドキュメント;xlsm)は作って、処理が単独では何とかうまくいくということは確認できたんですけどね。これをServiceプログラムから実行できないんですよこれが。おまけにProcess.Start()から実行してるもんだから…。

ServiceプログラムはDBにアクセスしたり共有フォルダにアクセスするもんでしたのでNETWORK SERVICEで動かしてたんですが。説明によると対話型でないと動かせないとか。うーむ、ユーザー追加せなあかんのか?

にしても、動かん。

というか、インストール先から普通に起動しようとしても「カスタマイズアセンブリが見つからないか...」とか表示されて動かんし。

VSTO v3 による Office 2007 プロジェクトの Windows Installer による配布方法(ref. 松崎 剛 ブログ (Tsuyoshi Matsuzaki Blog))

インストールには.vstoファイルと.dll.manifestファイルが入ってないから別につけんとあかんとは…なんとVSTOって配る側から見たら不便なことか。まだ(これまでのような.NETプログラムの配置と違って)完成されてないんでしょうな。ついでにレジストリにRSAキーを登録するところまでしないと完全な自動インストールは終わらんとは。

▲top

投稿者 ただ : 02:41 | トラックバック (0) カテゴリー ; プログラミング単語帳 , プログラミングとか

結局はまだ未知か

疲労感じる原因たんぱく質を発見 慈恵医大教授ら(ref. asahi.com)

疲労因子=FFって名前にもなってない気がするけども。いまどきは同定も比較的楽にできるんやからせめて同定までやってほしかったなぁと。物質の見つけ方が一昔前っぽくて(というか確実に地道であることには間違いない)「仕事やってるな」という感じがしないでもない。

反応が早いということは測定の時間がものを言うっていうことのようなので検診とかでの疲労具合の測定には向かないね。「ファイトー!!」「いっぱーつ!!」並みの時間差で疲労回復をさせるためのドリンクとかになら応用が利きそうってことなんやろうから、新規性はあんまりなさそう。飲んでおくと疲労予防ができる、ということが可能になるのなら新規性はあるんかも知れないけど。

同定ができて、論文かな。

▲top

投稿者 ただ : 20:30 | トラックバック (0) カテゴリー ; 生命科学

2008年9月 8日

CentOS in VMWareでHDD追加

とりあえず経験だ、ということとハードディスクの追加をどうやるかというのをシミュレートしておくために。というのも、CentOS5でLVM(ろじかるぼりゅーむまねーじゃ)なんて便利なものがあるんやけども、これの使い方がいまいちよく分かってないのよね。ずっと前に会社のVMWareでHDD追加したら起動に失敗したし。

というわけで実践。

VMware仮想ディスクの拡張(ref. Ogawa::Memoranda)

を参考に。8GBの仮想ディスク(sda)に30GBの仮想ディスク(sdb)を追加して、38GBにしちゃいます。

# df -h
Filesystem サイズ 使用 残り 使用% マウント位置
/dev/mapper/VolGroup00-LogVol00
7.2G 4.0G 2.9G 58% /
/dev/sda1 99M 24M 71M 26% /boot
tmpfs 115M 0 115M 0% /dev/shm

↑使用前。

1. 追加した仮想ディスクはsdbになってるので、fdiskでsdbを指定してパーティションを作成。

# fdisk /dev/sdb
デバイスは正常な DOS 領域テーブルも、Sun, SGI や OSF ディスクラベルも含んでいません新たに DOS ディスクラベルを作成します。あなたが書き込みを決定するまで、変更はメモリ内だけに残します。その後はもちろん以前の内容は修復不可能になります。

このディスクのシリンダ数は 3916 に設定されています。
間違いではないのですが、1024 を超えているため、以下の場合に問題を生じうる事を確認しましょう:
1) ブート時に実行するソフトウェア (例. バージョンが古い LILO)
2) 別の OS のブートやパーティション作成ソフト
(例. DOS FDISK, OS/2 FDISK)
警告: 領域テーブル 4 の不正なフラグ 0x0000 は w(書き込み)によって正常になります


コマンド (m でヘルプ): n
コマンドアクション
e 拡張
p 基本領域 (1-4)
p
領域番号 (1-4): 1
最初 シリンダ (1-3916, default 1):
Using default value 1
終点 シリンダ または +サイズ または +サイズM または +サイズK (1-3916, default 3916):
Using default value 3916

コマンド (m でヘルプ): p

Disk /dev/sdb: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

デバイス Boot Start End Blocks Id System
/dev/sdb1 1 3916 31455238+ 83 Linux

2. tコマンドでシステムタイプ(フォーマット)を83(Linux)から8e(Linux LVM)に。

コマンド (m でヘルプ): t
Selected partition 1
16進数コード (L コマンドでコードリスト表示): 8e
領域のシステムタイプを 1 から 8e (Linux LVM) に変更しました

コマンド (m でヘルプ): w
領域テーブルは交換されました!

ioctl() を呼び出して領域テーブルを再読込みします。
ディスクを同期させます。

パーティションを作ったこの時点では何も変化はない。

# df -h
Filesystem サイズ 使用 残り 使用% マウント位置
/dev/mapper/VolGroup00-LogVol00
7.2G 4.0G 2.9G 58% /
/dev/sda1 99M 24M 71M 26% /boot
tmpfs 115M 0 115M 0% /dev/shm

3. LVMに追加するためのPV(物理ボリューム)を作る。

# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created
# pvdisplay /dev/sdb1
"/dev/sdb1" is a new physical volume of "30.00 GB"
--- NEW Physical volume ---
PV Name /dev/sdb1
VG Name
PV Size 30.00 GB
Allocatable NO
PE Size (KByte) 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID M9uvaY-NJqW-Gdie-m4IZ-SYxx-jXWE-TS8zdJ

4. PVで構成されるVG(ボリュームグループ)を、今作ったsdb1のPVの分だけ拡張する。続けてLV(論理ボリューム)をVGの分だけ拡張すると。

# vgextend VolGroup00 /dev/sdb1
Volume group "VolGroup00" successfully extended
# lvextend /dev/VolGroup00/LogVol00 /dev/sdb1
Extending logical volume LogVol00 to 37.34 GB
Logical volume LogVol00 successfully resized

5. ファイルシステムのリサイズをやって、ディスク領域の拡張が終了。

# resize2fs /dev/VolGroup00/LogVol00
resize2fs 1.39 (29-May-2006)
Filesystem at /dev/VolGroup00/LogVol00 is mounted on /; on-line resizing required
Performing an on-line resize of /dev/VolGroup00/LogVol00 to 9789440 (4k) blocks.
The filesystem on /dev/VolGroup00/LogVol00 is now 9789440 blocks long.

# df -h
Filesystem サイズ 使用 残り 使用% マウント位置
/dev/mapper/VolGroup00-LogVol00
37G 4.0G 31G 12% /
/dev/sda1 99M 24M 71M 26% /boot
tmpfs 115M 0 115M 0% /dev/shm

落ち着いて手順通りにやればどうってことないね。ドキドキするけど。

▲top

投稿者 ただ : 23:17 | トラックバック (0) カテゴリー ; プログラミングとか

2008年9月11日

いもうと管理

タスク管理に妹で潤いを - NetworkTODOに「いもうと管理バージョン」(ref. マイコミ)

なんなんですかこれは!!(笑

▲top

投稿者 ただ : 13:38 | トラックバック (0) カテゴリー ; 仕事関係

ジェネリック医薬品は信用なるか

安い後発薬、医師の間に不信感も - goo ニュース(ref. 毎日)

の記事が読めなくなってる。検索しても中身は出てこない。

後発医薬品(ジェネリック医薬品)、普及広まる一方で問題も(ref. Garbagennews.com)

この記事を見つけて、読んでみたら今は読めなくなってる上の記事に同じようなことが書いてあった気が(ちなみに下の記事は2006年のものであることに注意)。…まさか。ていうか、僕はもともとジェネリックに懐疑的な方やけども、ここの辺の情報整備ってビミョーな気がするんよね。それに使わせる側もほんまに勧められるのかどうかってのが判断しにくいところやろうし、使う側としても結構リスキーじゃないかと思うんよね。

じゃあどうすりゃええん、っていうことやねんけど。どうしようもない。「自分」は1人しかいないんやから。使ったらどうなるかっていうのは自分で実験するしかない。もちろん、遺伝情報に依存性が高いものなら遺伝情報でデータを蓄積させて、自分の遺伝情報とつき合わせてみれば実践せずともデータから確率の高い結果を得られるけれども、今、遺伝情報をちゃんと集めて薬効と照合するためのデータベースの整備がちゃんとできてるかといえば、それは怪しいんではないかと。やってるところもないことはないやろうけど、数が少ないやろうし、全国的にやろうと思えばそれこそ国を挙げて倫理関係から何から全部整備せんと。iPS並みのスピードで。

高速シークエンサ+SNP高速解析(部分的にハッシュ値化するとか、翻訳パターンでハッシュ値化するとか?)の技術を使えばデータ集めは力技で何とかなる。だろうし(問題は自分の遺伝情報が全部データになっちゃうことか?)。

▲top

投稿者 ただ : 23:58 | トラックバック (0) カテゴリー ; mein Erbe

2008年9月16日

やりすぎるとこうなる

ネット向け見出しで名誉棄損=毎日新聞に賠償命令-東京地裁 (時事通信)(ref. jiji)

記事の中身を見てもらうためにはタイトルが重要だということは理解できるけれども、タイトルが全く正確でないことが多い。極端なことになると、上記のようになるということです。asahi.comは、まだいいほうだとは思いますが、最近ネタなタイトルに走っているものが目に付き始めててかなりゲンナリしてます。もしくはタイトルと記事の中身がほとんど無関係とか。

ポータルサイトにいたっては同じ中身なのにタイトルを何回も変更するとか全く迷惑なことをしてくれますネ。ユーザビリティの低下も甚だしい。

▲top

投稿者 ただ : 23:00 | トラックバック (0) カテゴリー ; mein Erbe

2008年9月24日

Pylons, CGI driven on さくら

ずっと前にPylonsを入れてみて、専用のHTTPサーバープログラムを起動した状態でのアクセスができたまま休止状態だったわけですが。夏休みの自由研究かの如くCGIで動かしてみた。いや結構前から挑戦はしてたんやけど、なかなかできないのよこれが。

PylonsをWSGIで動かす方法ってのは公式ページにあるものの、FastCGIがあちらではメジャーのようで、FastCGIのやりかたばっかり。FastCGIじゃなければmod_python。さくらの場合は、mod_pythonの手が使えないからなぁ…RoRでapache連携ができないのと同様に。

おまけにCGIで起動するやり方はあんまり丁寧には書かれてない。ただでさえクセのあるさくらの共用サーバーなのに。

「さくらのレンタルサーバ」で Python 外部モジュールを使う 改訂版 とか、PYTHONPATHの挙動を正確に把握する とか、最終的にはDjango関係のページとか見たりもして(それは原因がPYTHONPATH関連だろうと踏んだからやけど)、結果的に さくらでPythonモジュール設定: 訂正版(ref. sh1.2 pyblosxom) というのに到達し、site.addsitedir()が必要っぽいというのがわかったものの、うまく行かず。

下のコードを1行ずつ切っていったら、loadapp()で詰まったのでやっぱりパスか、と数行上のsys.path.append()を入れたらようやくうまく動いた。このファイルをhelloworld/publicディレクトリにindex.cgi(755)として保存、と。

#!/usr/bin/env python

import sys
sys.path.append('/home/path/to/pylons/helloworld')

import site
site.addsitedir('/home/username/local/lib/python2.4/site-packages')

from paste.deploy import loadapp
wsgi_app = loadapp('config:/home/path/to/pylons/helloworld/development.ini')
import wsgiref.handlers
wsgiref.handlers.CGIHandler().run(wsgi_app)

ちなみに

% easy_install --prefix=~/local wsgiref

なんて文明の利器使ってるので忘れずに(wsgirefはver. 2.5以上で標準装備、らしい)。

あ、CGIで動かしたのはいいものの、速度は悲惨です(通りでやり方書いてあるところないわけだ)。以上夏休みの宿題終わり。

▲top

投稿者 ただ : 23:17 | トラックバック (0) カテゴリー ; プログラミング単語帳 , プログラミングとか

2008/08 | 2008/09 | 2008/10