2008/08/31

[java]jarファイルの作成方法

classファイルをjarファイルでまとめるのですが、方法がわからなかったので、調べました。

JAR ファイルへの圧縮
ディレクトリ pack を pack.jar に圧縮するためには、次のコマンドを発行します。
>jar cvf pack.jar pack

via:JARファイル

これで、jarファイルの作成にこまらないぞと

2008/08/30

[java]javaコマンドを調べる

dosからjavaを起動する上で今まで、

javac hoge.java
java hoge

しか使ったことがなかったので、使い方がわからないかなと思ったら、こちらにヘルプの呼び出し方法が書いてありました。

●javaコマンドの使い方を表示する
“-?”または“-help”

via:Javaプログラミングの前提知識

というわけでさっそく試してみると、確かにヘルプが表示されました。

Photobucket

他にもコマンドが書かれているページないかなと思ったら、totonの日記さんにコマンドオプションの参照先が紹介されていました。

こんなところにあったとは。。。

2008/08/29

[java][SOAP]axis2のAPI集みぃ~け

ここにいたな~♪♪

[java][SOAP]DOSでクライアントのjavaバージョンの確認

axis2は、JDKのバージョンが1.4以上でないと動かないみたいです。

Java Development Kit (JDK)
1.4 or later

via:System Requirements

ということで、クライアントにインストールされているjavaのバージョンの確認方法を調べてみると、、、

コマンドラインを開いて、コマンド "java -version" を入力して Enter ボタンを押下してください。

via:Java 環境のセットアップ

と書いてありました。

さっそく試しました。

Photobucket
oh-、でたー♪

[java][SOAP]Axis2をゲット

クライアントでsoapができたらと思い、Axis2をダウンロードしました。

ダウンロード先は、ここでしました。

2008/08/28

[oracle][java]oracle9iのJDKのバージョンに注意

oracle8では、どうかわかりませんが、oracle9ではjavaをサポートしていて、DBからクラスファイルを実行することができます。

で、問題となるのは、JDKのバージョンが1.3.1なので、これ以上のバージョンではないと動かないクラスファイルを実行する際に注意が必要です。

詳しいバージョン情報に関しては、ここに書いてあります。

2008/08/27

[ColdFusion]セッション変数

マッシュアップアワードに作品を出展する際に、セッション変数がほしかったので、その設定方法について

<cfapplication name="test" sessionManagement="yes"
sessionTimeout="#CreateTimeSpan(0,0,1,0)#"
>

<cfif Not IsDefined("Session.hoge")>
<!--- セッション変数に値をセット --->
<cflock timeout="10" scope="session" type="Exclusive">
<cfset Session.hoge = "foo">
</cflock>
</cfif>

<cfoutput>
#Session.hoge#
</cfoutput>

まず、cfapplicationタグで、セッション変数を使えるようにします。

アプリケーションのタイトルと、セッション変数のタイムアウトを設定すれば使えるようになります。
sessionManagement属性をyesにする必要もあります。

設定後、cflockで、セッション変数にロックをかけた後、変数に値をセットします。

セットした後は、Session構造体で表示を行うことができます。

このとき注意なのは、cfapplicationタグよりも上でセッション変数をセットできないところ。

下のような場合、アプリケーションエラーが発生します。

<!--- セッション変数に値をセット --->
<cflock timeout="10" scope="session" type="Exclusive">
<cfset Session.hoge = "foo">
</cflock>


<cfapplication name="test" sessionManagement="yes"
sessionTimeout="#CreateTimeSpan(0,0,1,0)#"
>

<cfoutput>
#Session.hoge#
</cfoutput>

セッション変数を使いたいときに注意したいです。

2008/08/26

[ColdFusion]年齢計算

CFで年齢計算を行う処理について考えてみました。

<cfset a1ymd = "19821123">
<cfset a2ymd = "20080827">

<cfset age = Left(a2ymd,4) - Left(a1ymd,4)>
<cfif Right(a2ymd,4) lt Right(a1ymd,4)>
<cfset age = age -1>
</cfif>

a1ymdを生年月日とし、a2ymdを算出したい日としました。

「0808」と「0112」といった文字列同士の比較をすることができるので楽だなー。

2008/08/25

[java]メソッド、クラスの書き方に注意

開発をしているときに陥りがちなのですが、あるクラス、メソッドを使うときに、文字を正しくかかないとコンパイルエラーになってしまいます。

geoapを使ったプログラムの修正をしていたところ、CourseDistanceOfAdrToStationというメソッドを使う際に、最初の大文字の「C」を小文字「c」で書いてしまい、「シンボルを解決できません」というコンパイルエラーが起こしてしまったんですね。

最初、このエラーが発生したとき、「シンボルを解決できません。」といわれてしまい、何がなんだか全然わからなかったので、ぐぐってみると、
Javaの部屋

このエラーはこの指定方法で綴りを間違った場合に発生します。

via:シンボルを解決できません

と書かれていて、もしかしてと思って、よーくメソッドの綴りを見てみると、確かに綴りが違っていたので、そっこーで治してコンパイルエラーを取り除きました。

ColdFusionだったら絶対おきないエラー。

気をつけたいと思いました。

2008/08/24

[coldfusion][ぐるなび]お店情報の取得

ぐるなびのwebサービスを使った解説も最後かもしれない。

今回は、お店の情報を取得する方法について

<cfparam name="requrl"
default="http://api.gnavi.co.jp/ver1/RestSearchAPI/?keyid=取得したAPIキー">
<cfparam name="hit_per_page" default=500>
<cfparam name="ret" default="">
<cfset store="和民">
<cfset requrl = requrl&"&hit_per_page="&hit_per_page>
<cfset requrl = requrl&"&name="&URLEncodedFormat(store,"utf-8")>

<cfhttp url="#requrl#" method="get"/>
<cfoutput>var data ="";</cfoutput>

<!--- xmlの解析 --->
<cfset ret = XmlParse(cfhttp.fileContent)>

<!--- 問合わせがエラーを返した場合 --->
<cfif XmlChildPos(ret,"gnavi",1) neq -1>

  <!--- コードの値を取得 --->
  <cfset retCode = ret.gnavi.error.code.xmlText>
  <cfoutput>
  <!--- コードが600の場合、呼び出し元に検索結果(0件)を返す --->
  <cfif retCode eq "600">
    data = {"error":null,"total":0};
  <!--- エラーコードを返す --->
  <cfelse>
    data = {"error":"#ret.gnavi.error.code.xmlText#"};
  </cfif>
  </cfoutput>

<!--- 問合わせ結果が、正常な場合 --->
<cfelse>
  <!--- 検索結果の合計数 --->
  <cfset TotalCnt = ret.response.total_hit_count.XmlText>
  
  <!--- responseタグまで取得 --->
  <cfset Response = ret.response>

  <!--- JSON形式でリターン --->
  <cfoutput>
    date = {
     "error":null
    <!--- 検索結果の合計数 --->
     , "total":#totalCnt#
    <cfloop index="i" from="1" to="#totalCnt#">
      <cfset Ret_rest = Response.rest[i]>
     , #i#:{
      <!--- 店舗ID --->
     "id":"#Ret_rest.id.XmlText#"
      <!--- 店舗名 --->
     , "name":"#Ret_rest.name.XmlText#"
      <!--- PCサイトURL --->
     , "url":"#Ret_rest.url.XmlText#"
      <!--- 店舗画像画像1がある場合 --->
      <cfif Ret_rest.image_url.shop_image1.XmlText neq "">
        <!--- 店舗画像画像1のURL --->
     , "shop_image1":"#Ret_rest.image_url.shop_image1.XmlText#"
      <!--- 店舗画像画像1がない場合 --->
      <cfelse>
     , "shop_image1":null
      </cfif>
      <!--- 店舗画像画像2がある場合 --->
      <cfif Ret_rest.image_url.shop_image2.XmlText neq "">
        <!--- 店舗画像画像2のURL --->
     , "shop_image2":"#Ret_rest.image_url.shop_image2.XmlText#"
      <!--- 店舗画像画像2がない場合 --->
      <cfelse>
     , "shop_image2":null
      </cfif>
      <!--- QRコード画像のURLがある場合 --->
      <cfif Ret_rest.image_url.qrcode.XmlText neq "">
        <!--- QRコード画像のURL --->
     , "qrcode":"#Ret_rest.image_url.qrcode.XmlText#"
      <!--- QRコード画像のURLがない場合 --->
      <cfelse>
     , "qrcode":null
      </cfif>
        <!--- 住所 --->
     , "address":"#Ret_rest.address.XmlText#"
        <!--- 電話番号 --->
     , "tel":"#Ret_rest.tel.XmlText#"
        <!--- 緯度(度分秒十進数) --->
     , "latitude":#Ret_rest.latitude.XmlText#
        <!--- 経度(度分秒十進数) --->
     , "longitude":#Ret_rest.longitude.XmlText#
     }
    </cfloop>
    };
  </cfoutput>
</cfif>

全部ではないのですが、JSON形式でお店の情報を返すようにしました。
返り値に、経度と緯度も追加しました。

evalをかけたあと、これを使ってgoogle mapで表示するのもいいかなと思い。

今回キーとなったのは、エラーがおきたときのタグの構成がちょい違うところ。
なので、でかいif文で、エラーかどうか確認しないといけないんですよねー。

とりあえず形になったと思います。

時間があったら、coldfusionを使ったJSON形式で返すプログラムを公開しよっかなー。

2008/08/23

[思い出]麻布十番のお祭り

ここまで、でかいお祭りは生まれて初めてかもしれない。

普通の屋台に加え、各県の名産物もあって、ものすごい人だかりができていました。

Photobucket
上は、秋田のきりたんぽ!!
めっちゃおいしかった。

Photobucket
上は、山梨の白ワインが入っていた樽。
ものすごく甘くてぶどうの味がしました。

名産物のみだけでなく、世界各地の食べ物を出している屋台もあって、ガーナのお豆の入ったビーフシチューと焼肉の入ったナンを食べて、まじ幸せでした。

食べるって本当にいいですね(故水野さんっぽく)

2008/08/22

やさしいJava 第3版

新入社員時に買った本



当時、右も左も知らなかったとき、かなりお世話になりました。

本通りにソースを入力して、実行すると感動したなぁー♪

2008/08/21

[coldfusion][ぐるなび]都道府県情報を取得

昨日に引き続き、今日もぐるなびのwebサービス

今回は、都道府県情報の取得をします。

<cfparam name="requrl_pref" default="http://api.gnavi.co.jp/ver1/PrefSearchAPI/?keyid=取得したAPIキー">

<cfhttp url="#requrl_pref#"/>

<!--- xmlの解析 --->
<cfset ret = XmlParse(cfhttp.fileContent)>

<!--- 問合わせがエラーを返した場合 --->
<cfif XmlChildPos(ret,"gnavi",1) neq -1>

 <!--- コードの値を取得 --->
 <cfset retCode = ret.gnavi.error.code.xmlText>

 <!--- エラーコードの表示 --->
 <cfoutput>#retCode#</cfoutput>

<!--- 問合わせ結果が、正常な場合 --->
<cfelse>
 
 <cfset response = ret.response>

 <cfoutput>
  <cfloop index="i" from="1" to="#ArrayLen(response.XmlChildren)#">
   <cfset res_pref = response.pref[i]>
   #res_pref.pref_code.XmlText#<br>
   #res_pref.pref_name.XmlText#<br>
   #res_pref.area_code.XmlText#
  </cfloop>
 </cfoutput>
</cfif>

昨日と同じように、これもxmlではなくて、jsonで返したほうが後々の処理が楽になっていいんじゃぁーないかなと。

2008/08/20

[coldfusion][ぐるなび]地域情報を取得

ぐるなびWebサービスを利用して、エリア情報を取得したいと思います。

<cfparam name="requrl" default="http://api.gnavi.co.jp/ver1/AreaSearchAPI/?keyid=取得したAPIキー">
<!--- httpリクエスト --->
<cfhttp url="#requrl#"/>

<!--- xmlの解析 --->
<cfset ret = XmlParse(cfhttp.fileContent)>

<!--- 問合わせがエラーを返した場合 --->
<cfif XmlChildPos(ret,"gnavi",1) neq -1>

 <!--- コードの値を取得 --->
 <cfset retCode = ret.gnavi.error.code.xmlText>

 <!--- エラーコードの表示 --->
 <cfoutput>#retCode#</cfoutput>

<!--- 問合わせ結果が、正常な場合 --->
<cfelse>
 <cfset response = ret.response>
 <cfoutput>
  <cfloop index="i" from="1" to="#ArrayLen(response.XmlChildren)#">
   <cfset res_area = response.area[i]>
   <!--- エリアコード --->
   #res_area.area_code.XmlText#<br>
   <!--- エリア名称 --->
   #res_area.area_name.XmlText#
  </cfloop>
 </cfoutput>
</cfif>

上は、純粋に、表示しているだけですが、JSON形式に変換することにより、javascriptからの呼び出しにも対応できるようになります。

といっても、すでに、javascriptから、httpリクエストを出して、情報を取得することができるのでが、形式がxmlのため取得後が大変になるかなと。

2008/08/19

[scheme]動いた!!

昨日の[scheme]なぜかバグるんだよなぁー。で、バグがでていたのですが、教科書とおりにやってみたら、できた!!

(define (element-of-set? x set)
(cond ((null? set) false)
((= x (car set)) true)
((< x (car set)) false)
(else (element-of-set? x (cdr set)))
)
)

でもおかしいな、「true」や「false」をつかったらバグったプログラムがあったんだよなー。

プログラムの仕様理解不足だな~。

2008/08/18

[scheme]なぜかバグるんだよなぁー。

どうして、これがバグちゃうんだろう~~~。

(define (element-of-set? x set)
(cond ( (null? set) '())
( (= x (car set)) #t)
( (< x (car set)) '())
(else (element-of-set? x (cdr set)))
)
)


まいったなぁー。。。 orz

2008/08/17

シンフォニー in ロイヤル・パーク・ホテル

東京タワーの帰りに、水天宮前駅にあるロイヤル・パーク・ホテルに宿泊しました。
(嫁のおごりです。)

晩御飯は、1Fのシンフォニーというところで、バイキング

Photobucket

今までいった中で、京王プラザホテルのバイキングが一番おいしいかなと思っていたのですが、ここも最高だった。

めっちゃうまくて、食べ過ぎて、夜中吐きそうになりました。

Photobucket

フォアグラも食べ放題で、上の写真は、シェフが焼いているところ。

Photobucket

デザートもたくさんありました。

甘党にも最高ぉ~~~。

2008/08/16

東京タワー、初の最上階、体験

今年、生誕20周年ということで、登りました。

Photobucket

下を覗くとものすごく怖かったです。

Photobucket

ちょうど、晴れていたので、ながめは最高でした。

Photobucket

Photobucket

ちょーど、今の妻と付き合うときに、東京タワーに行ったのですが、その時に最上階にはいかなかったので、懐かしいなーと思いつつ、最上階の景色を楽しみました。

夜景などうなんだろう??
やっぱキレイなのかな??

2008/08/15

さようなら、お台場冒険王

あ”-、今年で終わってしまうのかー、お台場冒険王

Photobucket

というわけで、今年もいきました♪”

今年は、めちゃいけプロデュースの海の家にいくこともできました。

最上階の展望台で、SPORTのアナウンサー体験をすることができました。

1500円で、DVDにしてくれるのですが、買っておけばよかったなーorz

あまりにも恥ずかしすぎて、買うのに躊躇しました。

コンバット2お台場冒険王スペシャルを見ました。

オバ芸最高



唯一の後悔は、ゲゲゲの鬼太郎のアトラクションにいけなかった。
朝早くから並んでおけばよかったのかも。

あと、ドラゴンアイスの量が少ないような気がします。
最初、小学生が持っているのを見て、めちゃめちゃ量があるように見えたのですが。。。

うーん、入場料、1500円は、相変わらず高いかも。

2008/08/14

the 適当!!適当教典 プロデュースBy 高田純次

だいぶ前に、妻が買った、本を読んでいます。



相談者の悩みに、高田純次が答えるという作品。

その回答が、本当に適当すぎて、お腹が痛くなってしまうほど笑いが止まりませんでした。

あまりにも適当すぎてあっという間に読み終わってしまいました。

目次
第1章 「肉・からだ」の巻
第2章 「マネー」の巻
第3章 「仕事」の巻
第4章 「家族」の巻
第5章 「青春」の巻
第6章 「哲学・社会」の巻

いくつかのテーマに沿った悩みに対して答えてくれます。

各章はつながっていないので、おもしろそうなところから読んでみるのもいいと思います。

こちらによると、発行部数が21万部突破しているという脅威の作品。

ギャグ漫画で笑うことはありますが、小説で笑わしてくれる作品はなかなかないかなと。