« 2006年7月 | トップページ | 2006年9月 »

2006年8月29日 (火)

SNS的広がり方に期待(ソフトウェア)

うちの会社が全社員に指令を出す時はメール(支店に1アド)かIDパスワードで保護されたHPかどちらか(両方の時もあり)。この基準は最初ははっきりさせて。という事でしたが、今では全くよく分かりません。メールの場合は基本的に残るので、後から読み返す可能性があるもの。サイトは管理者が消したり、記事量で自然に消えて行ったりするため、いま旬のネタ。そういう感じだったのですが。
HPは入り口こそ全社員固有のIDパスワードですが。中に入ると全く同じ。だから誰かが誰かのIDで入れば済むのです。グループウェアのように個人のスペースがあり、メールや連絡もピンポイントに来るなら定期的に見ようと思うかもしれませんが。
そこで会社からの連絡掲示板の更新を確認するものを作りました。CGIで生成しているので、生成されたページのMD5を比較して違っていたら、知らせてくれるというものです。
そのお知らせメッセージからログインしないと何度でも同じ更新を知らせると言うところが非常にうっとうしいのですが、それは時間を見つけて知らせた時点でMD5元データを更新するようにしましょう。それでもいちいちログインして見に行くことを思えば勝手に知らせてくれる分楽だと思うのですが、うちの本社経由になるといつになるかわかりません。
そこで、実験。SNSのように紹介でうまく広がっていくか、噂はヒトのつながりで広がっていくのですが(すばらしいスピードで私は置いてかれてます)、仕事の道具についてはどうなのか。便利だから教えてあげよう。ということになって回りまわって私のところに戻ってきたりしたらうれしいですね。

| | コメント (0) | トラックバック (0)

2006年8月23日 (水)

MSSQLServer=osql?

Excelじゃ、ちょっと不便。でもAccessは無い、高いし。OpenOfficeBaseがいつの間にか日本語使えるようになってますが、なんとなく使った感触が見た目Accessと似てますが、なんか違う。
MySQLとか入れるかぁ。と思っていたら、思わぬところにDBソフト入っていることを思い出しました。出退勤の管理をPCで(これまでは準専用機)やるようになったときにMSSQLServerが入っていたのです。タスクトレイに燦然と輝くMSSQLServerのアイコン、、金額的に眩しい。
で、MySQLとかPostgreSQLとか使ったことがあるからSQL文自体はなんとなく判るし、似たようなものかな。と思いながら、調べてみるとDOSからosqlでMSSQLServerに接続できるらしい。さらに調べると、DBファイルがあるディレクトリからDOSでosql -E とやったら良いらしい。と発見。

http://www.ki.rim.or.jp/~kuro/MSDE/index.html とかhttp://32key.com/cs/sql/msde.htmとか

さっそくやってみました。
ちゃんと入れました。1>って出るんです。ソコからはselect文でDB名を調べて、さらにその中身を見てみたところ、何の問題もなし。編集は怖くて、、ね。

出退勤時刻以外にPCの電源切った時刻まで保存してました。何のため??

とりあえず使えそうな(insertとかupdateは判らないけど)ので、exitしてから、恐ろしいこと発見。なんとログファイルの存在を忘れてました。中身は見てませんがファイルの更新時間はバッチシ今です。だれもログファイルなんて見てませんよ~に、と祈りながら。

自分で追加したDBファイルならログ取られても大丈夫なので、MSSQLServer自体の操作ログを取ってないのか今から確認します。

| | コメント (0) | トラックバック (0)

ついに開放!Gmail

Googleが以前からやってたサービスGmail。mixiのように招待制で広がっていたのですが、ついに招待無しでも利用できるようです。

GoogleCalendarを使っていると、Gmailと連携して○○なんてのがいくつか在ったので、それを試してみたいと思います。
いろんな無料フリーメール使いましたが
Yahooのは転送とPOP受信のどちらか一方しかできない点
Gooは本文転送できない点
この2社はi-appliがありますが、微妙な感じです。
Livedoorは先行き怪しそうな点
HotMailは一時Hotmailは拒否するとか届かないとかあったので、そのとき以来利用しなくなりました。
Gmailは転送とPOP受信の両方使えそうなので、とりあえず携帯に転送。でThunderbirdで受信。
いい感じです。(あくまで想像)
Googleお得意のAjax使っているので、
受信したらWebメールによくある「新着メールを確認」しなくても、
すぐに受信トレイに反映するのが非常に良いですね。
他社はカレンダーもメールも他のサービスも、なかなかAjax的になってくれませんね。

フォルダ振り分けなさそうなのがちょっと惜しいですが、Google的にはフォルダ分けしなくても、検索したら良いんじゃない?ってことなんでしょうね。

Gmailの新着と同じように、Googleパーソナライズドホームページのニュースがどんどん変わっていくようになったら、一日Googleだけで過ごせそうです。

| | コメント (0) | トラックバック (0)

2006年8月21日 (月)

重いページ(診療報酬情報提供サービス)

診療報酬情報提供サービスいつも非常に重たいページ。その理由はモチロン不明。
ドメイン取ってないのも気になりますが、WWWCでチェックしてもサイトは動いているはずなのに×になることありなのですが、

そんなことは置いといて、
私が、このページで実質使うのは全件マスターを取ってくることと、とりあえず数件調べる時に検索すること。
なぜかこのサイト。どのページを見ても最終的にアドレスバーに表示されているのはhttp://202.214.127.148/。もちろんリンクやフォームのsubmitを見るとそれぞれ別のファイルだということはわかりますが。
で、タダでさえ重いページに関わるのはちょっとでも少ないほうがよいので、検索用に必要な部分を調べてみました。と言っても検索ページのソースコード見れば済みますけどね、、
で、結論は
http://202.214.127.148/guest/plsql/SeShowControlYP?zaikei=00460&kname=
この状態でブックマークに入れておきます。
で、検索する時はこのブックマークを呼ぶ。さっさとエラーが出ます、、。
それでいいのです。
で、kname=の後に調べたい薬品名を入れます。そうすると検索ページを見なくて済む分早いかな(モチロン全角でカタカナ変換はF7)
HTML多少でも判るならFrameで一方に薬品名入れるだけのForm<input type=text name=kname><input type=hidden name=zaikei value=00460>作って、別フレームに結果を表示するように作っておいたら、この遅いサイトに繋ぐ時間が少しでも減ってストレスも減るかも。
でも、こんな小手先のことをするよりは。マスター全件を手元に保存しておいて、ソコから探すようにしたほうが早いのは間違いないのですが

| | コメント (0) | トラックバック (0)

2006年8月19日 (土)

knoppix5.0.1から投稿です

前回に続きknoppix。ガリガリ使ってみましたが、初期状態だからなのか、何かするたびにCDを読みにいく。もちろん当り前の事ですが、その度に引っかかったようになりちょっとイライラ。ガリガリ使うにはちょっと不向きな感じです。それでも緊急用やお試し用と考えたらずいぶん敷居が低くなったものだと実感します。
で、今日はCD起動したknoppix上Firefoxから投稿。漢字変換とかカーソル移動が結構イラッとしますが、日本語もまったく問題なく。使い慣れたfirefox(アプリレベルになるとOSがWIndowsでもLinuxでもおんなじで)なので、違和感ないですね。
とりあえずCDから起動する前に事前に↓↓のページは一度読んでおいて印刷とかしておいてもいいかもしれません。画面とネットが立ち上がれば後はなんの心配もありません。
http://www.alpha.co.jp/biz/products/knoppix/faq/
わたしの場合はPHSからダイアルアップで繋いでいるので、電話番号やらIDパスワードをメモしました。でも今どきのADSLとか光ならそういう情報は要らないんでしょう。数年前はWindowsから各デバイスの情報を印刷してインストールでトラブったときに備えておきましょうって当り前でしたが、インストールしないというのはその点では楽ですね。CD抜いて再起動したら何もなかったように元通り。
Windowsで使ってるフロッピーもちゃんと読めます。なんのためにWindowsを使うのか?と考えてみたところ、Windowsが使いたいわけじゃなく、その上で動くアプリケーションを使いたいのであって、OpenOfficeとMSOfficeの互換性がもっとあがって、他人とのファイルのやりとりに支障がないようになれば、セットアップがこれだけ簡単になれば、Officeファイルやネットみたりメールやりとりについては、Windowsにこだわる必要もなくなりそうです。

| | コメント (0) | トラックバック (0)

2006年8月17日 (木)

Win95でWinnyあきらめました

盆休みを費やして挑戦していた(不健康)Windows95OSR2でのWinny。結局だめでした。DLLが怪しいのかと思い、DLLをとってこれるサイトや英語版ですがブラウザの古いのを取ってこれるサイトからIE5.5を入れてみたりしたのですが、とりあえずダメでした。全然進展なし。それどころか余計なエラーが出る始末。で結局諦めてWindows2000+フレッツ光プレミアムならなんの問題も無くポート開放もでき(ルーターはファイアーウォールの設定じゃないというのに引っかかりましたが、http://nylink.jp/winny/router/ctu.htmlやhttp://www.akakagemaru.info/port/CTU.htmlに書いてあるようにするとちゃんとポート開放できました。
このままHappy!で良かったのですが、なんか、できるのが当たり前の環境に逃げたのとWindows95PCの使い道が閉ざされたのが悔しくて、今度はKnoppix(インストールしないで使える1CDLinux)でwine(WindowsEmulator)を使ってWinnyと思いましたが、そもそもWindows95プリインストールでCPUもメモリも放置しているPCではKnoppixのGUIがまともに動かないという警告がでて、ベストな状態ではないGUIで表示されました(DOS領域にスワップファイルを作っておくことで回避できるようです)。GUIにこだわりは無いのですが、それよりCDの読み込みが遅いのでキーボードから1文字入れるたびにずいぶん待たされる状態になってしまいました。なのでスワップファイルを作ってとりあえずknoppixをまともに動かす。という以前にknoppixを諦めました。
せっかく焼いたからWinny目的とは別に、knoppixってどんな感じ?とXPプリインストールしてあったPCに入れてみたところ、こちらは非常に快適に動きました。
私の場合は起動オプションも設定せずにボ~~ッと待っていたら、knoppixのデスクトップが立ち上がり、驚いたことにすぐにWindowsのファイルが読める状態でした。これならいろんなページで書かれているようにWindowsに不都合があった場合にファイルを回収するのに使えます。最近はFDドライブが無いPCがアタリマエなので前のように起動FDを作っても使えないですし、コマンドラインでは日ごろ使っていなかったらそれこそ調べながら作業をしなければいけないようなことも考えられます。

knoppixのCDを作っておくことはオススメですね。

CDorDVDへ焼く用のisoイメージファイルを準備してくれているのでそれをダウンロード(Xenと付いてないのを選ぶらしいです)して後はいろんなページにイメージファイルの焼き方が書いてあるのでそれを見れば簡単に作れます。作った後で一度立ち上げて(もちろんハードディスクより先にCDを見に行くようにBIOSの設定は変更する必要はありますが、)起動オプションが必要なのか?など調べてメモしておくと良いでしょうね。そういう設定を反映させたCD作ってもいいのかもしれませんが、そこまでしなくても個人使用なら数行のメモで事足りるでしょう。
Windows以外のOSということで抵抗があるかと思いますが、安く買ったCDを一枚捨てるつもりでやってみてもらうと意外に違和感なく使えると思いますね。いろんなことをしようとすると深く知らなければいけないのはWindowsも同じ事で。。

ファイル交換ソフトとしてはLineWireはWindows95でも動きましたが。今の時点では国際化版がダウンロードできないのと、いちいちPro版へのアップデートを言ってくるのがちょっとアレですが。

| | コメント (0) | トラックバック (0)

2006年8月15日 (火)

Win95でWinny無理ポイけど

今更Winny(以下ny)。欲しいファイルがあって別にこれじゃなくてもいいんだけど、ShareやWinMXはWindows95には対応してない!と判っているので、Windows95で動いたと書いてあるny(2ちゃんねる情報)に挑戦。動いたと書いてある一方で動かないと書いてあるので、結構手間かかるんやろなぁ。と思いながら挑戦。WinXPマシンはあるのでそれを使えばいいのですが、そこはもちろんセキュリティーを考えて(自分だけは大丈夫!んなワケないので)。ずいぶん昔にサーバー用にと中古で買ったWin95マシンそのときは「どうせBSD系OS入れるからWindowsなんてなんでもいいわ」と思ってましたが、今になって考えるとWindows98のにしとけばよかった。ほとんど使ってないけど念のためにクリーン再インストールをはじめましたが、ディスプレーとNICのドライバが無いのがまず困りました。とりあえずBSDのブート画面を見ながら大体型番近そうなドライバを入れたら動いたのでそれでヨシ。
で、まずny1とny2をダウンロードしてきてどんなエラーが出るのかな。と試したところny1はエラーは出るけど何がどうなっているのかさっぱり不明。ny2はwhile locating a DLL function と表示された。DLLをどうにかしたらいいのかな?ってことでそこからはMSサイトやIEを調べまわってWindows95って書いてあるのを手当たりしだい。IEは古いブラウザをダウンロードできるサイトから5.5(英語版だけど)入れて、念のため?Winsockのバージョンアップもやってみた。ny1の方はhttp://www.vector.co.jp/vpack/browse/person/an011389.htmlで調べたら幾つかDLLファイルがリストされるので、DLLファイル名をググってWin98初期版と同等かをそれっぽいのからいくつか見てみたけど全然だめ。それにoleacc.dllはWindows98以降しかないみたいなので、DLL配布してるところからとってきてSystemフォルダに入れてみたけど(現在使っていますと言われたらDOSモードで再起動して・・・面倒)。全くさっぱり一向にエラーメッセージが変わらない。ってところでイヤになって終了。明日も続けるかはわかりません。win2000のCD見つかったらOS入れ替えるかも。

| | コメント (0) | トラックバック (0)

2006年8月 1日 (火)

HTAついでにExcel操作

HTA(HTMLApplication)やりだしたついでに、毎日書いている日報。少し前にリニューアルオープンしたのですが、結構粗造りのままで見にくい&使いにくい。そんなのでもお上が強制するものだから使ってるけど。で、何かあったら送ってくれ。というのはいいけれど、使い勝手が悪いところをあれこれ送ったら、結局(本人は使わないからか)、その要望を満たす気も無く、トラブルじゃないからいいでしょ?だって、

あんたが作ったのは、エラー処理も満足にしてないのに、ユーザーが意図しない操作をしたらそれはユーザーが悪い。ってことにするんでしょう。そういうマクロやソフトをばら撒いて使用を強制してあれダメこれダメ。あなたがこんなことやったのが悪いんでしょ。とかって言うからPCを苦手と思う人が続出するんじゃないの?うちの会社。なじみが無いから苦手。ってのは苦手にさせたやつのいいわけじゃないの?そんな人でも電卓使うんだから、

で、マクロのパスワードを送ってきて、手を加えて作ってみろや!よかったらお上のに取り込んでやるわ。って感じのメールが来た。ムカつくので、こちらから何かすることはしていなかったけど、外部から強制的に動かしてやろうかなっと。

HTAでフォームを作って、主に使う部分、面倒な部分は前もって全部入れておいて、自動化部分が見える状態で且つユーザーがクリックしたりしたのに反応しないようにしておけば、怪しい動きをすることもないですし。

メインで使うのはCreateObject or GetObject。残念ながらファイル名をドラッグアンドドロップでとってくる部分(レジストリいじると可能らしいですが)はVBSに関数作って(VBSファイルにExcelファイルをドロップしてそのファイル名をHTAに渡すという感じです)。あとは普通にExcel操作。もちろんマクロは元々入ってるのをそのまま使うことにします。何をしてるのかわからないもの、とりあえずちゃんと動いているので下手にいじるより、そのまま使い続けるように。Excelたちあげたら、振り分けていろんなシートのセルに値を入れるとか、並べ替えるとかその程度。それでもIMEの制御ぐらいはしますよ。自分用ですが、半角全角キーを押したりなんてことは避けたいですから。
せっかくのHTAなんでHTMLで独り言を書いてみて。なかなかスパイスの効いたのを書けたら、他の方にもゼヒ読んでいただこうと思います。Excel的に簡単にできるのにやってない。ということを白日の下にさらしてみようと思います。

リニューアルオープンしたときに私があれこれコードを書いてそれをコピペしただけなのに、私の協力で。だって、、わからなかったから全面的に教えてもらいましたやろ!と思ったものですが、そこは大人なので私の名前が出てくるなんて思ってもいませんでした、恐悦至極にごじゃりますよぉぉぉと送った覚えがあります。

で、つまずいたところ調べまわったポイント↓↓

1.HTAでファイル名を調べるために(月ごとにファイル名が変わるので)
VBSファイルにD&Dしたファイル名をHTAに引数として渡すため

Set regEx = New RegExp

regEx.Pattern = "ファイル名で特定できる部分.xls"                       ' 検索文字列を検索パターンとして指定
regEx.Global = True                          ' 文字列全体を検索するように指定
regEx.IgnoreCase = True                      ' 大文字・小文字は検索に影響しない
Dim xFilePath
Set objArgs = WScript.Arguments
For I = 0 to objArgs.Count - 1
    If regEx.Test(objArgs(I)) Then
'        WScript.Echo objArgs(I)
        xFilePath=objArgs(I)
    end if
Next
ループは元のサンプルにあったのと、間違って全然関係ないファイルをD&Dしたときのため
mypath = Wscript.scriptfullname
lastpos = InStrRev(mypath,"\")
mypath= left(mypath,lastpos)
mypath=mypath & "HTAファイル名.hta"
objShell.Run chr(34) & mypath & chr(34) & "\HTAファイル名l.hta " & chr(34) + xFilePath + chr(34)


とした。
で、HTAファイル側で一番大事なのはExcelの操作をしようとするときは常にExcelが立ち上がっていてHTAから操作できる状態になっているようにすること。そのために、
グローバル変数を宣言しといて(そんなのあるのかわかりませんがちゃんと動いていることを考えたらその役目を果たしてるんでしょうか、それとも全ての変数がグローバルなのでしょうか?ま。それはおいといて)
Sub ExcelChk()
Set myXlsAPP = Nothing
Set myTEST = Nothing
    arrCommands = Split(objTestHTA.commandLine, chr(34))
'objTestHTAは<HTA:applicationタグ中idで指定した自分自身を指す。ここで引数をGET
    xFilePath= arrCommands(3)    'Hey,Scripting Guyより


'http://oshiete1.goo.ne.jp/kotaeru.php3?q=1314809
'http://www.nurs.or.jp/~ppoy/access/access/acX006.html
'を参考に
   Set xls = GetObject(, "Excel.application")
    If Err.Number <> 0 Then    'エラーが起こる=エクセルは起動してない
        Err.Clear
        Set myXlsAPP = CreateObject("Excel.Application")
        myXlsAPP.Visible = True
        Set myTEST = myXlsAPP.Workbooks.Open(xFilePath)
    Else      'エラーが起こっていない=エクセルは起動している
        Set myXlsAPP=xls
            Dim Stay    '開いていてほしいファイルが開いていればStay=1にする
            Stay=0
        For Each wkb In xls.Workbooks
            If wkb.Name = Dir(xFilePath) Then
                Set myTEST = wkb
                Stay=1
            End If
        Next
            if Stay=0 then    'エクセルは起動しているが目的のファイルは開いてない
                   Set myTEST = myXlsAPP.Workbooks.Open(xFilePath)
            End if
        myXlsAPP.Visible=True
    End If
End Sub
という関数を作って、Excelへの作業をする前には必ずこれを呼び出して、myXlsAPPとSet myTESTを使える状態にする。

Excel中の操作はやりたいことをマクロ記録して、オブジェクトブラウザ見ながら同じようにしていけば済みますが、
http://www.roy.hi-ho.ne.jp/mutaguchi/bbs/list124.shtml に

VBScriptでは、「:=」を使った指定(名前付き引数)は使えません。
この場合、
.Sort Key1:=~, Order1:=xlAscending
の部分は、
.Sort ~, xlAscending
としてください。
それから、『xlAscending』はExcelの定数ですので、
VBScriptでは未定義になっています。事前に
Const xlAscending = 1
などの定数定義を行ってください。

それと、もう一つ。
Range("C2") という表記は、Excel VBA上ならば構いませんが、

外部から制御するときには使えません。(どのシートの範囲かが曖昧なので)ExcelApp.ActiveSheet.Range("C2") などの記述を使いましょう。

というのを見つけたので、関数はExcelのオブジェクトブラウザ見ながら順番に定数で指定しました。起動時用のスクリプトは</head>と<body>の間にSub Window_onLoad という名前で指定できるようです。

結構いろんなところをググッたのですが、それ以外にHey,Scripting Guys日本語(MSのVBS講座でしょうか)がいろんな例が載っていて非常に参考になりました。

HTAもVBSのようにエラー処理がVBAより不便なのでそこらへんはこれからです

全然HTAとは関係ないですが、Ajax を使った 日本語 IME なんかすごいなぁと思ってしまいました。今までIMEってMS-IME、ATOKなど選べても(Javaでは作れるみたいですが)ブラウザ上でこういう感じってなかったように思いました。商品名など入れるときカタカナが多いので、いちいちF7押さなくてもカタカナに変える方法ないかなぁと思っていたので、Ajaxぼちぼち使っていますが、ブラウザ上で画面遷移なしにいろんな処理ができても、世間はあんまり感慨はないんですね。私は結構うれしいんですが。Web経由の常に待ち時間のあったユーザーインターフェースがやっと普通のアプリ並みになった。というところで、驚くことはないんでしょうね

| | コメント (0) | トラックバック (0)

« 2006年7月 | トップページ | 2006年9月 »