エクセルで編集をしているときに、ファイルが大きくなると、定期的に起こる自動保存処理にかなりの時間が喰われてしまうときがあります。
どーにか、自動保存の間隔をあけたいなと思ったら、「ツール」→「オプション」→「自動保存」の順で時間間隔を編集することができることがわかりました。
うーん、これでもっと作業効率があがりそうです。
エクセルが重たくなってきたら是非、お勧めするハックです
2008/07/31
[Excel]自動保存の間隔を編集する
2008/07/30
バグだよ1 in firefox
firefoxでポーカーガジェットを使うと、レイアウト崩れてしまう不具合がでています。
(報告ありがとうございます)
IE 6.0だと正常に稼動します。
ホント、マルチブラウザ対応どうにかしたい。。。
というか、IEやめたい。。。
2008/07/29
2008/07/28
[思い出]マリオット・バケーションクラブの説明会出席
昨日、ROOKIESの最終回を見る前に、東京ミッドタウンにあるリッツカールトンにて、マリオット・バケーションクラブの説明会に参加しました。
実は、リッツって、マリオットグループに買収されていたんですね。
昨日まで知らなかった。
クラブの内容だけど、日本を含め海外にあるマリオットグループが所有しているコンドミニアムに泊まれるシステムでめっちゃ入りたくなったんだけど、部屋の写真を見たときに、普通にキッチン、洗濯機などがあって(コンドミニアムなので、当然といえば当然なのですが。。。)、嫁に家事を「ヤレ」といわれそうで、断りしました。
嫁曰く、「来た瞬間に現実逃避できるのだから、キッチンとかあっても気にならないと思うよ。」とレスしたのですが、でも何か気になってしまう。
きっと自分が変わらない限り厳しいだろうなー。
2008/07/27
[思い出]ROOKIES、最終回!!
さっきまで、ビデオに撮ったROOKIESの最終回を見ました。
超泣いてしまいました。
まじ感動!!
このまま、終わってほしくないなーっと思っていたら、なんと、なんと、映画化されることがオリコンスタイルサイトに書かれていました。
ORICON STYLE:『ROOKIES』映画化決定、今秋スペシャル番組も放送
26日(土)最終回を迎えたTBS系の人気ドラマ『ROOKIES(ルーキーズ)』のエンディングで、映画化とスペシャル番組の放送が発表された。
via:ORICON STYLE:『ROOKIES』映画化決定、今秋スペシャル番組も放送
ヤターーー♪
絶対、見に行く♪
確かに、最終回途中で終わっちゃったもんな。
先がものすごく気になります。
2008/07/26
[javascript]日付チェック
特に「うるう年」チェックがネックでした。
チェック方法は、
イヌでもわかるJavaScript講座:月間カレンダーに挑戦を参考にして作成
チェック方法は、以下
/* 日付の妥当性チェック */ |
引数を年、月、日に分けてファンクションをコールすると、チェックが開始されます。
NGの場合は、false、OKの場合は、trueを返すように設定しました。
これで、日付に関するチェックはオッケーかなと
2008/07/25
[blogger]トラックバック完了
無事にさっきの記事に、前々回の記事をトラックバックすることができました。
これで他のブログサービスとなんら変わりはないぞ!!
しかも、リンクの作成も行えるから便利です♪(* ̄ー ̄)v
[blogger]トラックバックのテスト
コメントのテストは、うまくできましたが(IE6で確認、IE7、FireFoxでは未確認)、果たして、トラックバックはうまくできるのでしょうか??
この記事を使ってテストしてみたいと思います。
[blogger]トラックバックを実装
どーしても、トラックバックを使いたくて、Somewhere in a Way to Nowhere: Bloggerでトラックバックをできるようにするを参考にして、トラックバックを実装しました。
ものすごくおおまかな手順ですが、HaloScanに登録を行い、Bloggerのテンプレートを編集して追加。
果たして、うまく稼動するかな!!
2008/07/24
[scheme]painterが使えない
今、紫本のセクション2.2.4をやっているのですが、フレームワークを使わないとどーやら画像を表示できないみたいで、こちらのサイトを参考にしながら試したのですが、いまいちできませんでした。
う~~~ん、一体何が原因なのだろうか?
[scheme]pwd、cd、loadを使う
unixのコマンドで、pwd、cdがあるのですが、MIT schemeでも実行することができました。
さらにファイルを読み込みたい場合、loadプロシージャを使って実行可能。
これで、コマンド行でバグがでたとしても、ファイルで修正ができるので、超便利かなと
2008/07/23
[javascript]sliceを使って右から文字を取得
sliceメソッドを使って、左から文字を取得する方法があるのですが、逆に右から取得したい場合
Core JavaScript 1.5 Reference:Global Objects:Array:sliceによると、hoge.slice(-2)とかでいけるようです。
ちなみに、-2は、後ろから2番目までの文字を取得してくれるみたいです。
右から文字を取得したいときにパラメータをいじればいいので便利かなと。
2008/07/22
[javascript]httpリクエストをPOSTで行う場合の注意点
AJAX:Getting Startedによると、
POSTでデータを送信する際に、リクエストのMIMEタイプを変更しなければならないそうです。
その際に、
httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
via:AJAX:Getting Started
とこれを入れないと、サーバーはPOSTしたデータを破棄してしまうそうです。
注意しなくては!!
後、データを送信する際に、
ウィリアムのいたずらの開発日記:AJAXでXMLHttpRequestのopenをPOST、sendに内容を送っても送信できない時に書かれていましたが、
msg = "パラメータ名1=" + 値1+ "&パラメータ名2=" + 値2 + ・・・・ "&パラメータ名n=" + 値nと記載して、sendメソッドにmsgを入れてあげれば、データを送信することができます。
また、値が日本語の場合、encodeURIComponentか、encodeURIでエンコード変換が必要
送信先がColdFusionのサーバーだった場合、普通に、パラメータ名1で拾うことができて、url.パラメータ名1だとバグリます。
以上の注意点を踏まえて、POSTした際に処理を書いていきたいと思います。
2008/07/21
[coldfusion]Javaのコンストラクタをコール
javaのクラスをCreateObjectするときに、実は、コンストラクタがコールされません。
したがって、クラスを宣言した際に、コンストラクタをコールしたい場合、
<cfscript> hoge = CreateObject("java","クラス名"); //コンストラクタのコール hoge.init(); </cfscript> |
と、インスタンス名.init()でコンストラクタをコールすることができます。
覚えておくと便利かもしれませんね
2008/07/20
生、押切もえを見ました
今日、夏sacas08に行きました。
生まれて初めて、「押切もえ」を見ました。
テレビで見るのと、全然変わらない美人でした。
後、髭男爵と、はるな愛を見ました。
髭男爵は、炎天下の中、暑そうでした。一方で、はるな愛は、テレビでみるよりもがっちりした体つきをしていました。
局のイベントは芸能人を生でみることができるから楽しいです。
来月は、お台場冒険王に行ってきまぁーす♪
と今日は、ブログの趣旨と全然はずれたトークに。
前のブログのように、ランキングとかを意識しなくていいので気楽にかけて楽しいです。
2008/07/19
[coldfusion][SOAP]駅情報を取得
一昨日の記事に続いて、今日は、RailGoの駅情報を取得するSearchStationのコール方法を書きたいと思います。
<cfsetting enableCFoutputOnly="yes"> <cfprocessingdirective pageEncoding="utf-8" /> <cfsetting showdebugoutput="no"> <cfscript> //webサービスのオブジェクトを生成(axis上でjavaオブジェクトを生成) ws = createobject("webservice","http://wstest.railgo.jp/Expservice06.asmx?WSDL"); //セッションの維持をする ws.setMaintainSession(true); //SOAPリクエスト時にヘッダーに情報を追加する addSOAPRequestHeader(ws,"http://expart.est.co.jp/ExpService","User","mctuser4"); addSOAPRequestHeader(ws,"http://expart.est.co.jp/ExpService","Password","hnnt4zt2"); //SearchStationの呼び出し Station_Info = ws.SearchStation(StationYomi="駅名前方一致", AreaType="Japan", StationType="RailRoad" ,Date=javacast("int",日付(数字型))); </cfscript> <cfoutput> var data = {}; data = { <cfloop index="i" from="1" to="#ArrayLen(Station_Info.Station)#"> <cfif i neq 1>,</cfif> #i#:[ "#Station_Info.Station[i].Name#" , "#Station_Info.Station[i].LongName#" , "#Station_Info.Station[i].Yomi#" , "#Station_Info.Station[i].Latitude.bearing#" , "#Station_Info.Station[i].Latitude.degree#" , "#Station_Info.Station[i].Latitude.minutes#" , "#Station_Info.Station[i].Latitude.second#" , "#Station_Info.Station[i].Longitude.bearing#" , "#Station_Info.Station[i].Longitude.degree#" , "#Station_Info.Station[i].Longitude.minutes#" , "#Station_Info.Station[i].Longitude.second#" ] </cfloop> } |
レスポンスは、JSON形式で表現
駅名に関して、前方一致なので、例えば「赤坂」という名前の付く駅名を検索したい場合、「?赤坂」と検索すればオッケー。
2008/07/18
[scheme]nilでバグが発生
紫本だと、確かに、nilと書かれているのに、Dr scheme(MIT schemeでも同じくエラー)で実行するとなぜかエラーになってしまうのだが。。。
困ったなー。これができないと、先の問題すすめないよーーー。。。
orz
2008/07/17
[ColdFusion][SOAP]RailGoのポイント数を取得
RailGoというSOAPを使った経路検索サービスがあって、その中で、ポイントを取得するサービスがあるのですが、今日は、その呼び出し方を書きたいと思います。
ずばり、下のように実装しました。
<cfsetting enableCFoutputOnly="yes"> <cfprocessingdirective pageEncoding="utf-8" /> <cfsetting showdebugoutput="no"> <cfscript> //プロキシの設定を行う jo = createobject("java","java.lang.System"); jo.setProperty("http.proxyHost", "プロキシサーバーのURL"); jo.setProperty("http.proxyPort", "ポート番号"); //webサービスのオブジェクトを生成(axis上でjavaオブジェクトを生成) ws = createobject("webservice","http://wstest.railgo.jp/Expservice06.asmx?WSDL"); //セッションの維持をする ws.setMaintainSession(true); //SOAPリクエスト時にヘッダーに情報を追加する addSOAPRequestHeader(ws,"http://expart.est.co.jp/ExpService","User","取得したUserID"); addSOAPRequestHeader(ws,"http://expart.est.co.jp/ExpService","Password","取得したPassword"); //対象となる日付を生成 date = CreateDate("任意の年","任意の月","1"); //GetUserPointsの呼び出し ret = ws.GetUserPoints(Date=date); </cfscript> <!--- ポイント数の表示 ---> <cfoutput>#ret#</cfoutput> |
ここで、重要なのは、Headerにパスワードと、ユーザーIDを求めているので、リクエスト前に、addSOAPRequestHeaderを使ってパラメータを設定するところ。
後は、xmlから各パラメータの定義を見れば、ポイントを取得することが可能になります。
これさえ、あれば、一体どれだけ、ポイントを使ったのかがわかるので便利かなと。
2008/07/16
[coldfusion][soap]UnsignedByteに対応するには
GeOAPに記載されている、メソッドを使うのに、引数にunsignedByte型を必要とするものがありました。(StraightDistanceOfAdrToStationメソッドなど)
ここで問題になるのは、ColdFusionには、unsignedByteという型が存在しないということ。
なので、unsignedByte型を引数にとるメソッドは呼び出せないのかなと思うのですが、前にも書いたように、ColdFusionは、Javaで実装されているので、おそらくできるだろうと予想。
案の定、ぐぐってみると、UnsignedByte型は、javaのshort型変数に対応していると、ここに書かれていました。
上の記事は、internet.comの記事なのですが、axisのサイトを見てみると、UnsignedByte型は、javaのlong型に対応していると書かれていました。
というわけで、ColdFusionで、UnsignedByte型を引数に取るメソッドを呼び出したい場合、
<cfscript> //webserviceの呼び出しと共にオブジェクトを生成 ws = CreateObject("webservice","呼び出し先のurl"); //Longクラスをコール jo = createobject("java","java.lang.Long"); //引数をLong型にデコード jo = jo.decode("数字"); //UnsignedByteクラスをコール ju = createobject("java","org.apache.axis.types.UnsignedByte"); //Long型のjoをUnsignedByte型に変換しオブジェクト(ju)にセット ju.setValue(jo); //メソッドをコール ret = ws.メソッド(UnsignedByte型の引数 = ju); </cfscript> |
という流れでいけると思います。
これで、引数の型が、UnsignedByte型でも怖くないぞと。
うーん、時間があったら、ここのサービスの使い方とかも書いてもいいかもなー。
2008/07/15
[本]JavaScript ポケットリファレンス改訂第4版
同期のT君から、もらった、javaScriptのポケリが古くなったので、新しい版を購入しました。
改訂第4版 JavaScript ポケットリファレンス
古籏 一浩
最近、自宅で開発をする際に、マルチブラウザを意識する必要があり、前の版では、firefoxではなく、netscapeしか対応していなくて、しかも、innerHTML、innerTextなどのDOM系の解説もなかったので、そういった意味で、今回の版は、firefoxにも対応していて、さらに、DOMのボリュームも結構、増えているので、だいぶ開発が楽になるのかなと。
2008/07/14
[coldfusion]cfparam関数完成
だいぶ前に、RequestVarという関数を作成したのですが、拡張したIterVarファンクションを作成しました。
このファンクションは、宣言されていない変数に対してRequestVarを使うと空を返すのに対して、IterVarは第二引数を返すファンクションです。
ちょうど、cfparamタグに相当するものです。
わざわざ、毎度、毎度、cfparamを宣言する必要がないのが特徴的かなと。
こちらからダウンロードできます。
さらに詳しい使い方はこちらからどうぞ
2008/07/13
[ColdFusion]javaでプロキシの設定を行う
SOAPを使うにあたって、javaで、プロキシの設定をする必要があったので、方法についてまとめてみたいと思います。
まず、純粋にjavaでプロキシとポート番号の設定は、こちらのサイト書かれていましたが、setPropertyで行うようです。
System.setProperty("http.proxyHost", "proxy.example.com");
via:Java で HTTP クライアントを作ってみよう (3)
System.setProperty("http.proxyPort", "8080");
ここまでわかれば、後は、どうやってCFで実現するかということになってくるのですが、Javaパッケージに内にあるクラスを呼び出す必要があり、どうすればパッケージ内にあるクラスを呼び出せるのかなーと調べていたら、こちらのサイトにパッケージ内にあるクラスを参照する方法が書かれていました。
上を参考にすると、createObjectをjavaで作って、パッケージ名.クラス名でいけそうです。<cfset sock = createObject( "java", "java.net.Socket" )>
via:ColdFusion's Java connection
したがって、cfからプロキシとポート番号の設定方法は、
<cfscript> //javaオブジェクトを生成するとともに、java.langパッケージのSystemクラスを生成する jo = createobject("java","java.lang.System"); //プロキシ名を文字列で入力 jo.setProperty("http.proxyHost", "プロキシ名"); //ポート番号を文字列で入力 jo.setProperty("http.proxyPort", "8080"); </cfscript> |
となります。
これを使えば、cfでプロキシを経由させてwebサービスを利用したい場合に、困らないと思います。
2008/07/12
[coldfusion][javascript]jsからのhttpリクエストが遅い件
javascriptから、ActiveXObject(IEの場合)または、XMLHttpRequest(FireFoxの場合)を使ってhttpリクエストを要求するajaxがあるのですが、リクエスト先のファイル名がcfmの場合、ものすごく遅いのは、なぜかなーと思っていたのですが、やっとその謎がとけました。
実は、リクエスト先のcfmのデバッグ情報をoffにしないと、リクエスト元にデバッグ情報まで送信してしまうことになり、ものすごく負荷がかかっていました。
下のようにデバッグ情報をオフにするタグを追加すると、ものすごく処理が早くなります。
<!---utf-8で処理を行います。---> |
これでtxtファイル並みにレスポンスが早くなると思います。
だいぶ前に、XMLHTTPRequestという共通ファンクションを作成した以来、ずっと疑問に思っていたことが氷解したので、ものすごくすっきりしました。
2008/07/11
[scheme]DrSchemeのインストール完了
今、schemeの実行環境がMITでリリースされているインタプリターなのですが、プログラムにバグがあった場合、再度修正したソースを実行するのが、ものすごい大変で、もっと便利なインタプリタないのかなーと探していたら、It ProにDrSchemeの紹介されていました。
なにやら便利そうだと思い、しかも同記事に無料と書かれていたので、インストールしました。
windowsの場合、ここでダウンロードしてインストールしました。
実行環境は、下のようになっています。
しかも、うれしいことに、日本語版でも使うことができて、ラッキーみたいな!!
これで環境に困らないぞ(* ̄∇ ̄*)
2008/07/10
[oracle]カラム名の変更
業務でもともとあったカラム名を変更する必要があったので、調べました。
Web Artisan Blog - ウェブ アルチザン ブログ
ALTER TABLE テーブル名 RENAME COLUMN 変更前列名 TO 変更後列名;
via:SQL:Oracle:列名(カラム名)の変更:RENAME COLUMN
どうやらoracle9から使えるようになったそうです。
おかげで、テーブルをごっそりtruncateせずにカラム名を変更することができました。
2008/07/09
[IT用語]Apache Axisって、そもそも何?
昨日、SOAPを使ってデータの取得ができたのですが、実は、SOAP自体を完璧に把握していなくて、調べていたらなにやら、Apache Axisというのがあるみたいです。
Apache Axisが何かなと思いぐぐってみると、
WebServices - Axis
Axis は本質的には SOAP エンジン -- クライアント、サーバ、ゲートウェイなどの SOAP 処理装置を構築するためのフレームワークです。
via:Axis とは何ですか?
というわけで、Javaでできたワークフレームだったんですね。
ワークフレームということは、共通ファンクションが備わっていたり、ツールがあったりと便利なわけで、ワークフレームを使えばもっと色々なことができそうかなーと思ったりしました。
2008/07/08
[coldfusion]SOAP通信できた!!
昨日、Bugle Diary: [coldfusion]ひょっとしたらという記事で、webサービスを使えるかもしれないということを書いたのですが、なんと、なんと、SOAP通信ができたのです。(マジ超うれしい♪)
geoapという、ある特定の住所(自宅住所や会社のある場所)の最寄り駅をSOAPを使って取得できるサービスがあるのですが、呼び出せるかどうか、チャレンジ。
まずは、体験認証キーをゲット!!
SOAPといっても、httpのgetリクエストをしていることと同じなので、CreateObjectを使って通信をすることにしました。
<cfscript> ws = CreateObject("webservice","http://dev.geoap.jp/geoap_trial/geoap_trial.asmx?wsdl"); ret = ws.UserCertification(UserKey="体験認証キー",Password="hoge"); writeouput(ret); //「正常終了」を返す。 ret = ws.MapOfAdrAndScale(Address="住所", Scale=2000); writeoutput(ret.StatusMsg); //「ユーザ認証を行ってください。」を返す。 </cfscript> |
ここまで難なく書けたのですが、MapOfAdrAndScaleが正常に終了しているかどうか、返り値を出力したところ、「ユーザ認証を行ってください。」というメッセージが登場して、異常終了してしまいました。
「う~ん、なぜだろー。。。 orz」
結論からいうと、毎回、毎回、メソッドのたびに違うセッションで取りに行ってしまうため、前に認証をしても認証情報が残っていないため意味がないということがわかりました。
で、どーすれば、セッションを確保できるのかなーとぐぐっていたら、ナイスな答えがありました。
ws.setMaintainSession(true); // required so axis will do cookies
via:How to set Cookies in ColdFusion SOAP requests
この記事によると、CreateObjectで、webserviceを使った場合、できたオブジェクトは、org.apache.axis.client.Stubクラスとして扱うことができるということなんですね。
なので、セッションを保持したい場合は、上のソースを追加すればオッケーということなんだなー。
以上を踏まえて、ソースはこのようになります。
<cfscript> ws = CreateObject("webservice","http://dev.geoap.jp/geoap_trial/geoap_trial.asmx?wsdl"); ws.setMaintainSession(true); ret = ws.UserCertification(UserKey="体験認証キー",Password="hoge"); ret = ws.MapOfAdrAndScale(Address="住所", Scale=2000); </cfscript> |
これを実行してみると、無事に、リターン値を取得することができました。
今回のポイントとしては、セッションを保持したい場合は、CreateObjectでwebserviceを使った後、セッションを保持する「オブジェクト名.setMaintainSession(true)」がいるということなんですね。
2008/07/07
[coldfusion]ひょっとしたら
今、ヘテムルで、cfhttpを使って、getリクエストを要求したら、200が返ってきたので、ひょっとしたら、getやpostはできるのかもしれません。
ということは、ということは、SOAP通信もできるのかもー。
webサービスが禁止事項となっていたのは、「webサービスを使った情報の取得」ではなくて、「webサービスを使ったデータの配信」なのかもしれません。
もうちょい深く検証する必要がありそうです。
2008/07/06
cruise gadget production com開設
突然ですが、cruise gadget production comを開設しました。
自作gadgetを紹介するサイトです。
今のところ、iGoogle gadgetしか公開していないですが、徐々に開発範囲を広げたいと思っています。
gagdetを通して、少しでもitライフを満喫してくれたらという思いから開設をしました。
うーん、まだまだ課題まみれですが、頑張るぞ!!
2008/07/05
[思い出]リビエラでるねっさんすぅ
さっきまで、同僚のN君と、満喫でオール。
会社の納涼会が、池袋のリビエラで開催されました。
今年は、何かと縁があるリビエラ。
池袋は初めてだったので、ものすごく楽しみでした。
ちょっと写りが悪いけど、中は、こんな感じ。
ひたすら「るねっさんすぅー」と勢いで。
大きな地図で見る
2008/07/04
[coldfusion]もう少しサービスをしてもいいのでは??
確かに、サーバーに負荷がかかるかもしれないけど、もうちょい対応できるサービスを増やしてほしかなと思います。
Heteml:ColdFusion 禁止事項
cfexecute
via:ColdFusion 禁止事項
cfdocument
cfftp
cfpop
cfcollection
cfsearch
Verity コレクション
JSP
イベントゲートウェイ
Web Service
RDS
ってことは、サーバからpdfも発行できないし、SOAPもできないじゃん。
そんでもって、cfpopが使えないから、メールをダウンロードすることすらできない。。。
一体、これで何ができるのだというのだろうか??
確かに、DBに接続はできるんだけど。。。
2008/07/03
[scheme]関数系の言語?S式?
さっきまで、知り合いと飲み会をやっていて、そこでの会話
知り合いのTさん:「最近、maitoさん、何されています??」
maito:「schemeをやっています。」
Tさん:「schemeって何?」
maito:「関数系の言語です。」
とここまで話が進んだ時、横から、
知り合いのY氏:「schemeは、S式だから!!」
maito:「いえいえ、schemeは関数系の言語です。」
と上の2行を3回ぐらいループした後、S式ということで落ち着いたのですが、やっぱり納得いかなかったので、wikipediaで調べてみると、
Scheme(スキーム)は、ガイ・スティール(Guy Lewis Steele Jr.)とジェラルド・ジェイ・サスマン(Gerald Jay Sussman)によって開発された。LISPの方言の1つで、関数型プログラミング言語としての側面がよく知られたマルチパラダイムプログラミング言語である。
via:Scheme
ほら、やっぱり、あっているじゃん!!
しかし、LISPも調べてみると、
マッカーシーの1958年の論文は、2つのタイプの文を導入している。 S式(Symbolic Expression, シンボル式、sexp)と、S式の関数を表すM式(Meta Expression, メタ式)である。 M式には利点がなかったため、今日のほとんどすべてのLISP言語はコードとデータの両方の操作にS式のみを使用する。
via:LISP
と書かれている部分があって、結論として両方正解のような気がするのですが。。。
2008/07/02
2008/07/01
[javascript]replaceメソッドに関して
検索して見つかった文字列を、置換するreplaceメソッドですが、マッチする文字列をすべて置換したい場合
新JavaScript入門 34:replace メソッド
置換は最初にマッチした文字列にのみ行われます。
via:新JavaScript入門 34
マッチする文字列を全て置換するには Regular Expression オブジェクトの g スイッチを使います(1/8/00)。
というわけで、「g」を使えばできるみたいです。
ちょーど、電卓ガジェットの改良で、replaceメソッドを使う機会があったので、ラッキーでした。