2009年8月26日水曜日

crontabからのログとメールが文字化け!

crontabから実行するJavaアプリケーションで発行する
UTF-8のログやメールなどが文字化けになってしまう。

crontabの先頭に

LC_ALL=ja_JP.UTF-8

を追加する。
参照したサイトは http://h50146.www5.hp.com/products/software/oe/tru64unix/manual/v51a_ref/HTML/MAN/MAN1/0257____.HTM



Google Calendar APIを使ってみた。

RESTfulでJSON形式を利用してみた。
これはAndroidで使える。

alt=jsonを付けないとXML形式(デフォールト)になる。

gsessionidを取得するのは最初一回やる必要がある。登録、変更処理で必要。


1.認証
[URL]
POST https://www.google.com/accounts/ClientLogin

[Parameters]
Email=BABUKUMATEST@gmail.com
Passwd=XXXXXXXXX
source=BABUKUMAAPP
service=cl

[Http Request]
POST /accounts/ClientLogin HTTP/1.1
Content-Type: application/x-www-form-urlencoded
User-Agent: http4e/1.5.4
Host: www.google.com
Content-Length: 73

Email=BABUKUMATEST@gmail.com&Passwd=XXXXXXXXX&source=BABUKUMAAPP&service=cl&

[Http Response]
HTTP/1.1 200 OK
Content-Type: text/plain
Cache-control: no-cache, no-store
Pragma: no-cache
Expires: Mon, 01-Jan-1990 00:00:00 GMT
Date: Wed, 26 Aug 2009 04:48:07 GMT
X-Content-Type-Options: nosniff
Content-Length: 563
Server: GFE/2.0

SID=BABUKUMABABUKUMABABUKUMABABUKUMABABUKUMABABUKUMA
LSID=BABUKUMABABUKUMABABUKUMABABUKUMABABUKUMABABUKUMA
Auth=「ごごにGoogleLogin auth Tokenが」


2. カレンダーリスト取得
[URL]
GET http://www.google.com/calendar/feeds/default/allcalendars/full
[Headers]
Content-Type=application/x-www-form-urlencoded
Authorization: GoogleLogin auth=「GoogleLogin auth Token」

[Parameters]
alt=json

[Http Request]
GET /calendar/feeds/default/allcalendars/full?alt=json& HTTP/1.1
Authorization: GoogleLogin auth=「GoogleLogin auth Token」
Content-Type: application/x-www-form-urlencoded
User-Agent: http4e/1.5.4
Host: www.google.com

GET /calendar/feeds/default/allcalendars/full?alt=json&&gsessionid=BABUKUMABAB HTTP/1.1
Authorization: GoogleLogin auth=「GoogleLogin auth Token」
Content-Type: application/x-www-form-urlencoded
User-Agent: http4e/1.5.4
Host: www.google.com
Cookie: $Version=0; S=calendar=BABUKUMABABUKUMA

[Http Response]
HTTP/1.1 200 OK
Expires: Wed, 26 Aug 2009 05:20:27 GMT
Date: Wed, 26 Aug 2009 05:20:27 GMT
Content-Type: application/json; charset=UTF-8
Cache-Control: private, max-age=0, must-revalidate, no-transform
Vary: Accept, X-GData-Authorization, GData-Version
GData-Version: 1.0
Last-Modified: Wed, 26 Aug 2009 05:20:27 GMT
Transfer-Encoding: chunked
X-Content-Type-Options: nosniff
Server: GFE/2.0

{"version":"1.0","encoding":"UTF-8","feed":{"xmlns":"http://www.w3.org/2005/Atom","xmlns$openSearch":"http://a9.com/-/spec/opensearchrss/1.0/","xmlns$gCal":"http://schemas.google.com/gCal/2005","xmlns$gd":"http://schemas.google.com/g/2005","id":{"$t":"http://www.google.com/calendar/feeds/default/allcalendars/full"},"updated":{"$t":"2009-08-26T05:20:27.500Z"},"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/gCal/2005#calendarmeta"}],".....................................................................}


3. gsessionid取得

一回登録処理をするとレスポンスのLocation部分にgsessionidが入ってる。これを保存する。


4. 予定登録
[URL]
POST http://www.google.com/calendar/feeds/「User_ID」/private/full?alt=json&gsessionid=「取得したgsessionid」

[Headers]
Content-Type=application/atom+xml
Authorization: GoogleLogin auth=「GoogleLogin auth Token」

[Body]
<entry xmlns='http://www.w3.org/2005/Atom'
xmlns:gd='http://schemas.google.com/g/2005'>
<category scheme='http://schemas.google.com/g/2005#kind'
term='http://schemas.google.com/g/2005#event'></category>
<title type='text'>Babukuma Test 2</title>
<content type='text'>日本語 Test Test</content>
<gd:transparency
value='http://schemas.google.com/g/2005#event.opaque'>
</gd:transparency>
<gd:eventStatus
value='http://schemas.google.com/g/2005#event.confirmed'>
</gd:eventStatus>
<gd:where valueString='神田'></gd:where>
<gd:when startTime='2009-08-26T15:00:00.000Z'
endTime='2009-08-26T23:00:00.000Z'></gd:when>
</entry>

[Http Request]
HTTP/1.1 201 Created
Expires: Wed, 26 Aug 2009 05:37:13 GMT
Date: Wed, 26 Aug 2009 05:37:13 GMT
Content-Type: application/json; charset=UTF-8
Cache-Control: private, max-age=0, must-revalidate, no-transform
Vary: Accept, X-GData-Authorization, GData-Version
GData-Version: 1.0
Location: http://www.google.com/calendar/feeds/「User_ID」/private/full/babukumababukuma/63386948233
Content-Location: http://www.google.com/calendar/feeds/「User_ID」/private/full/babukumababukuma/63386948233
Transfer-Encoding: chunked
X-Content-Type-Options: nosniff
Server: GFE/2.0

{"version":"1.0","encoding":"UTF-8","entry":{"xmlns":"http://www.w3.org/2005/Atom","xmlns$gml":"http://www.opengis.net/gml","xmlns$georss":"http://www.georss.org/georss","xmlns$batch":"http://schemas.google.com/gdata/batch","xmlns$gCal":"http://schemas.google.com/gCal/2005","xmlns$gd":"http://schemas.google.com/g/2005","id":.....................................................................}



5. 予定取得
[URL]
GET http://www.google.com/calendar/feeds/「User_ID」/private/full?alt=json

[Headers]
Content-Type=application/x-www-form-urlencoded
Authorization: GoogleLogin auth=「GoogleLogin auth Token」

[Parameters]
alt=json
max-results=15
singleevents=true
sortorder=ascending
futureevents=true

[Http Request]
GET /calendar/feeds/「User_ID」/private/full?alt=json&max-results=15&singleevents=true&sortorder=ascending&futureevents=true& HTTP/1.1
Authorization: GoogleLogin auth=「GoogleLogin auth Token」
Content-Type: application/x-www-form-urlencoded
User-Agent: http4e/1.5.4
Host: www.google.com

GET /calendar/feeds/「User_ID」/private/full?alt=json&max-results=15&singleevents=true&sortorder=ascending&futureevents=true&&gsessionid=「取得したgsessionid」 HTTP/1.1
Authorization: GoogleLogin auth=「GoogleLogin auth Token」
Content-Type: application/x-www-form-urlencoded
User-Agent: http4e/1.5.4
Host: www.google.com
Cookie: $Version=0; S=calendar=babukumababukuma


[Http Response]
HTTP/1.1 200 OK
Expires: Wed, 26 Aug 2009 05:34:39 GMT
Date: Wed, 26 Aug 2009 05:34:39 GMT
Content-Type: application/json; charset=UTF-8
Cache-Control: private, max-age=0, must-revalidate, no-transform
Vary: Accept, X-GData-Authorization, GData-Version
GData-Version: 1.0
Last-Modified: Wed, 26 Aug 2009 05:30:27 GMT
Transfer-Encoding: chunked
X-Content-Type-Options: nosniff
Server: GFE/2.0

{"version":"1.0","encoding":"UTF-8","feed":{"xmlns":"http://www.w3.org/2005/Atom","xmlns$openSearch":"http://a9.com/-/spec/opensearchrss/1.0/","xmlns$gml":"http://www.opengis.net/gml","xmlns$georss":"http://www.georss.org/georss","xmlns$batch":"http://schemas.google.com/gdata/batch","xmlns$gC.....................................................................}


2009年8月25日火曜日

Ubuntu + Emobile「D11LC」を認識させる。

新しいイー・モバイル(Emobile「D11LC」)を彼女からもらったので、Ubuntuに認識させてみた。

参照したサイトはこちら
 http://www.randynetwork.com/blog/279
http://www.draisberghof.de/usb_modeswitch/#download

1。 usb_modeswitch-1.0.4.tar.bz2 をダウンロード

2。解除

3。> make install

4。/etc/usb_modeswitch.conf 編集
  OT-X020をコメント外す。
  以外は全部コメント。。にした。


5。> sudo modprobe usbserial vendor=0x1c9e product=0x6061
USBドライバ設定。。
 これを参照サイトに書いてるとおりに「/etc/rc.local」に書いておく


6。再起動
  
7。D11LCをさして
  「> sudo usb_modeswitch」実行すると「/dev/ttyUSB0」が出てきた。

8。GNOME PPPからイー・モバイル接続。


2009年8月14日金曜日

Chromeにテーマが適用

気づくのが遅かったけど、いつの間にかChromeにテーマが適用された。



不思議な感じがする。(´∀`)

2009年8月13日木曜日

「bad interpreter」エラーでシェルが動かない現象。

ウィンドウから編集してアップしたシェルファイルが

: bad interpreter: そのようなファイルやディレクトリはありません
このようなエラーで動かない。

これは改行の問題らしい。

解決方法は

cp shellfile.sh shellfile.sh.org perl -pe 's/¥r¥n/¥n/' shellfile.sh.org > shellfile.sh rm shellfile.sh.org 

これらしい。

ちょっとはまったな。。( ´д`)


2009年8月12日水曜日

【Android】 ゴロゴロしたい。

簡単に作ってみたAndroidゲーム。( ゜∀゜)ヤッター

ずっとタッチするとクマがロゴロゴして何時間ゴロゴロしたかがわかる。。。
それだけ。。(;^_^A





やっぱり画像を作るのが一番難しい。。。
ネットで自分の時間を保存できるようにしようかな。。
ランキングも。。(´∀`) 
( ゚∀゚)ァハハ八八ノヽノヽノヽノ \ノ \ / \ / \



2009年8月11日火曜日

「maven-assembly-plugin」を利用して配信用ZIPファイル作成

「maven-assembly-plugin」を利用して配信用ZIPファイル作成する方法


「pom.xml」に「maven-assembly-plugin」を追加する。


<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <configuration>
        <descriptors>
            <descriptor>src/main/assembly/assembly.xml</descriptor>
        </descriptors>
    </configuration>
</plugin>


「descriptor(assembly.xml)」を作成。


<assembly>
    <id>distribution</id>
    <formats>
        <format>zip</format>
    </formats>
    <moduleSets>
        <moduleSet>
            <binaries>
            </binaries>
        </moduleSet>
    </moduleSets>
    <fileSets>
        <fileSet>
            <directory>target</directory>
            <outputDirectory>/</outputDirectory>
            <includes>
                <include>**/*.jar</include>
            </includes>
        </fileSet>
        <fileSet>
            <directory>src/main/sh</directory>
            <outputDirectory>/sh</outputDirectory>
            <includes>
                <include>**/*.sh</include>
            </includes>
        </fileSet>
    </fileSets>
    <dependencySets>
        <dependencySet>
            <unpack>false</unpack>
            <scope>runtime</scope>
            <outputDirectory>/lib</outputDirectory>
        </dependencySet>
    </dependencySets>
</assembly>


- <fileSet>の設定で必要なファイルの追加ができる。

- <dependencySet>の設定で依存するライブラリの追加ができる。

- <dependencySet>の「scope」を「runtime」にすれば必須依存ライブラリのみを含む事ができる。


面白いね。。(ё(エ)ё)

maven-jar-pluginを利用してMANIFEST作成

maven-jar-pluginを利用してMANIFEST作成方法

実行可能なJARを作成するとき便利。


<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <configuration>
        <archive>
            <manifest>
                <addClasspath>true</addClasspath>
                <classpathPrefix>lib/</classpathPrefix>
                <mainClass>com.babukuma.test.Main</mainClass>
            </manifest>
        </archive>
    </configuration>
</plugin>


作ったMANIFESTは


Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Created-By: Apache Maven
Built-By: BABUKUMA
Build-Jdk: 1.6.0_14
Main-Class: com.babukuma.test.Main
Class-Path: lib/postgresql-8.3-603.jdbc4.jar lib/WisCommon-0.9.16.jar
lib/jsonic-1.1.0.jar lib/log4j-1.2.8.jar lib/s2-framework-2.4.39.jar
lib/aopalliance-1.0.jar lib/javassist-3.4.ga.jar lib/ognl-2.6.9-patch
-20090427.jar lib/commons-logging-1.1.jar lib/s2-extension-2.4.39.jar
lib/poi-3.0-FINAL.jar lib/s2-tiger-2.4.39.jar lib/easymock-2.2.jar l
ib/s2-dao-1.0.50.jar lib/s2-dao-tiger-1.0.50.jar lib/commons-lang-2.4
.jar lib/geronimo-jta_1.1_spec-1.1.1.jar lib/geronimo-jpa_3.0_spec-1.
1.1.jar lib/commons-email-1.1.jar lib/mail-1.4.jar lib/activation-1.1
.jar lib/commons-cli-1.2.jar

2009年8月5日水曜日

IEでAJAXファイルアップロードするとき「multipart/form-data」がきかなかった。

本当にはまった。

AJAXでファイルアップロードするときに

なぜか、

$(form).attr("enctype", "multipart/form-data");

これだけでは、IEではコンテントタイプが「multipart/form-data」にならなかった。


http://www.bennadel.com/blog/1273-Setting-Form-EncType-Dynamically-To-Multipart-Form-Data-In-IE-Internet-Explorer-.htm

このサイトに書いてある方法で解決。

$(form)
.attr( "enctype", "multipart/form-data" )
.attr( "encoding", "multipart/form-data" )


はまる。。。絶対。。( ´д`)