Archive for the ‘ Uncategorized ’ Category

[Java]antでtomcatにdeployする

ということで、antを使ってtomcatにデプロイを行う。

準備:
 catalina-ant.jarを”antlib”に設置。

以下をbuild.xmlに追加。

<property file="build.properties"/>

<!-- define tomcat task -->
<path id="tomcat.tasks.classpath" path="antlib/catalina-ant.jar"/>
<taskdef name="undeploy"
		classname="org.apache.catalina.ant.UndeployTask"
		classpathref="tomcat.tasks.classpath"/>
<taskdef name="deploy"
		classname="org.apache.catalina.ant.DeployTask"
		classpathref="tomcat.tasks.classpath"/>

<!-- redeploy -->
<target name="deploy">
	<deploy url="${manager.url}"
			username="${manager.username}"
			password="${manager.password}"
			path="${app.path}"
			war="${war.name}"/>
</target>

以下をbuild.propertiesに追加。

# setting
app.path="/hogehoge"
war.name="hoge.war"

# tomcat setting
manager.url=http://hoge:8080/manager
manager.username=hoge
manager.password=hoge

Popularity: 23% [?]

  • Digg
  • Google Bookmarks
  • Google Reader
  • Facebook
  • Delicious
  • FriendFeed
  • Evernote
  • Twitter
  • Share/Bookmark

[Java]Freemarkerで「~」が文字化けしたら(Shift_JIS)

携帯向けサイトを作る時、HTMLは「Shift_JIS」を表示することになると思う。

Shift_JISには、Windows用に拡張された「Windows-31J」というのがあり、これがたまに悪さをして、
「~」などという文字が化けてしまう。

今回も、Freemarkerを使ったテンプレートで、Actionからアサインした文字「~」が文字化けしてしまったので、
その対策を。

以下をテンプレートの先頭に記述する。

<#ftl encoding="Windows-31J">

Popularity: 9% [?]

  • Digg
  • Google Bookmarks
  • Google Reader
  • Facebook
  • Delicious
  • FriendFeed
  • Evernote
  • Twitter
  • Share/Bookmark

[OS]Chrome OSをParallels上で動かしてみた

ということで、Chrome OSをParalles上で動かしてみたので、そのときのメモ。

今回、Chrome OSを動かすにあたって、Parallels上で動かそうと思ったのだが、

Paralles用のイメージは存在していなかった。

仕方がないので、VMware用のイメージをParalles Transporterを使って変換

することにした。

 

まずは、VMware用のイメージを以下からダウンロード。

http://gdgt.com/google/chrome-os/download/

 

回答後に、Parallels Transporterを使って変換を行う。

Read more

Popularity: 3% [?]

  • Digg
  • Google Bookmarks
  • Google Reader
  • Facebook
  • Delicious
  • FriendFeed
  • Evernote
  • Twitter
  • Share/Bookmark

Airで作るアプリケーション!PHPと通信してみる。

ということで、Airで何かアプリケーションを作ってみようと言うことで、
取りあえず作ってみた。

といっても、せっかくなので外部と通信をしなくてはつまらない。
そんなわけで、まずは実験的な意味を含めて自作のPHPとAirで作った
プログラムを通信させようというのが今回の目標。

まずは、PHPの方については・・・。
まずは、簡単なサンプルを作成するということで、引数2個を受け取り、
その合計値を返すというプログラムを作ることにした。

もちろん、返却はXMLで行う。

と、ソースはこんな感じ。
特に難しいこともなく、ぐっちゃりとハードコーディング・・・。
1年ぶりのPHPでよくわからなかった。まぁいいか。

<?php

  $arg1 = $_REQUEST['arg1'];
  $arg2 = $_REQUEST['arg2'];

  if(is_null($arg1) || is_null($arg2) || !is_numeric($arg1) || !is_numeric($arg2)) {
    $error = true;
  } else {
    $error = false;
    $value = $arg1 + $arg2;
  }
  header("Content-Type: text/xml");
?>
<?xml version="1.0" encoding="UTF-8"?>
<Response>
  <Header>
    <Args>
      <?php if(!is_null($arg1) && is_numeric($arg1)) { ?>
        <Arg name="arg1"><?php print($arg1); ?></Arg>
      <?php } ?>
      <?php if(!is_null($arg2) && is_numeric($arg2)) { ?>
        <Arg name="arg2"><?php print($arg2); ?></Arg>
      <?php } ?>
    </Args>
    <?php if(!$error) { ?>
      <Result><?php print($value); ?></Result>
    <?php } ?>
    <Status><?php if($error){ print("error"); } else { print("ok"); } ?></Status>
  </Header>
</Response>

 プログラムとしてはとっても簡単だ。
arg1とarg2をGETから受け取り、計算を行いあとは、XMLで返すという
だけの簡単なプログラム。

試しに、サーバーに設置を行い確認してみる。
http://hoge.com/api/plus.php?arg1=10&arg2=2

とこのような感じだ

 

 次は、Airのほうだ。
まずはソースを・・・ 

 <?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
  <mx:Button x="130" y="13" label="=" id="exeButton" width="34" click="plainRPC.send();" />
  <mx:Text x="172" y="15" width="54" id="ansText"/>
  <mx:TextInput x="10" y="13" width="45" id="arg1Text"/>
  <mx:TextInput x="77" y="13" width="45" id="arg2Text"/>
  <mx:Text x="59" y="17" text="+"/>
  <mx:Script>
    <![CDATA[
    import mx.rpc.events.ResultEvent;
    import mx.rpc.events.FaultEvent;
    import mx.controls.Alert;

    public function handlePlain(event:ResultEvent):void
    {
      ansText.text = event.result.Header.Result;
    }

    public function handleFault(event:FaultEvent):void
    {
      Alert.show(event.fault.faultString, "Error");
    }
    ]]>
  </mx:Script>

  <mx:HTTPService result="handlePlain(event);" fault="handleFault(event);" id="plainRPC" resultFormat="e4x"
    url="http://labs.zsrv.net/api/plus.php"
    useProxy="false">
    <mx:request xmlns="">
      <arg1>{arg1Text.text}</arg1>
      <arg2>{arg2Text.text}</arg2>
    </mx:request>
  </mx:HTTPService>  
</mx:WindowedApplication>

 とこのような感じとなった。
注意したい点をとりあえず抜粋してみる。

まずは、後半部分のHTTPリクエストを投げる部分について。

<mx:HTTPService result="handlePlain(event);" fault="handleFault(event);" id="plainRPC" resultFormat="e4x"
  url="http://hoge.com/api/plus.php"
  useProxy="false">
  <mx:request xmlns="">
   <arg1>{arg1Text.text}</arg1>
   <arg2>{arg2Text.text}</arg2>
  </mx:request>
 </mx:HTTPService> 

 

ここだ。
まずは、<mx:HTTPService>の要素についてだ。

 

result="handlePlain(event);" 

これについては、リクエストを投げた後にレスポンスが返ってきた場合に
呼ばれる。つまりはコールバック関数だ。
ソースの上部分に、handlePlain(event)というメソッドが定義されているが、
このメソッドが呼び出される。

また、リクエストについては非同期で処理される。

fault="handleFault(event);" 

については、リクエストを投げる処理が失敗したときに呼び出される。
これもまたコールバック関数だ。

id="plainRPC" 

これは、このリクエストに対するIDだ。
実際にボタンイベントが発生したときにこのIDを使いHTTPリクエストを
起動している。

<mx:Button x="130" y="13" label="=" id="exeButton" width="34" click="plainRPC.send();" /> 

 

resultFormat="e4x" 

これは、リクエスト結果をどのようなフォーマットで受け取るかの定義だ。
e4xというのに設定しておくと、返ってきた結果のXMLを「.」でつなぐことで、
値を取得出来るのでとっても楽だ。
(値の取得方法については後述)

urlやproxyについては解説なしで想像つくとおもうので省略。

 

<mx:request xmlns="">
   <arg1>{arg1Text.text}</arg1>
   <arg2>{arg2Text.text}</arg2>
 </mx:request> 

これについては、つまりはリクエストを投げる際の引数となる。
つまり、arg1Textとarg2Text(二つともテキストボックス)に設定された
値を引数とし、この引数をURLとくっつけリクエスト投げることになる。

少し上の方に戻る。次は、
 

public function handlePlain(event:ResultEvent):void
  {
   ansText.text = event.result.Header.Result;
  } 

についてだ。
ここが、リクエストの処理が返ってきたときに呼ばれるコールバック関数
の実態となる。
ここで、結果を受けている。

どのように取得しているかというと引数のeventから、

event.result.Header.Result; 

という形で受け取っている。
ここで、わかりやすいように先ほど作ったPHPの結果のXMLを下記に書いておく。

<?xml version="1.0" encoding="UTF-8"?>
<Response>
  <Header>
    <Args>
      <Arg name="arg1">10</Arg>
      <Arg name="arg2">5</Arg>
    </Args>
    <Result>15</Result>
    <Status>ok</Status>
  </Header>
</Response> 

となっている。
つまり、結果としては<Result>15</Result>を取得したいわけだ。
XPathで表記すると以下のようになると思う。

/Response/Header/Result 

これを、Airでは、先ほど書いたとおり<Response>をのぞいた、

event.result.Header.Result; 

で取得出来ることになる。「event.result」までがAirとしての構文。
「Header.Result」が、XMLの取得先となる。

以上で無事に、AirからPHPのアクセスを行い足し算結果を取得する
事が出来た。

 

Read more

Popularity: 7% [?]

  • Digg
  • Google Bookmarks
  • Google Reader
  • Facebook
  • Delicious
  • FriendFeed
  • Evernote
  • Twitter
  • Share/Bookmark

VineLinux4.0にWordPressをインストールしてみた

ブログを始めよう!ということで、WordPressをインストールしてみた。
WordPressとはオープンソースで開発が進められているブログで、
自分のサーバーにインストールして使うことが出来る。

今回、これをVineLinux4.0にインストールしてみた。

[WordPress]
http://wordpress.xwd.jp/

まずはダウンロード。

# wget http://osdn.dl.sourceforge.jp/wordpress/27093/wordpress-me223.zip

展開。

# unzip wordpress-me223.zip

解答ファイルを公開ディレクトリにコピー。

# cp -fr wordpress-me223/* ../public_html
# chmod 777 ../public_html
(ウィザードで設定ファイルを書き出してくれるので、パーミッションを 変更しておく)

データベースの設定。

# mysql -u root
# create database wk
(今回データベース「wk」で作成)

# GRANT ALL PRIVILEGES ON *.* TO user@localhost IDENTIFIED BY 'password' WITH GRANT OPTION
(ユーザの作成)

ここまで終わったら、公開ディレクトリにアクセスしてみる。

http://hoge.hoge.com/wordpress/
(あくまで自分の設置したパスへアクセスすること)

あとはウィザードに沿って進めるだけ。簡単!!

ここで、自分の環境だと文字化けが起こってしまった。
ということで、念のために回避策を。

公開ディレクトリ直下で、「.htaccess」ファイルを作成

# vim .htaccess
(以下記述内容)

php_value default_charset UTF-8
php_value mbstring.language neutral
php_value mbstring.internal_encoding UTF-8
php_flag mbstring.encoding_translation OFF
php_value mbstring.http_input auto
php_value mbstring.http_output pass

以上で無事設置することができた。

Read more

Popularity: 1% [?]

  • Digg
  • Google Bookmarks
  • Google Reader
  • Facebook
  • Delicious
  • FriendFeed
  • Evernote
  • Twitter
  • Share/Bookmark

VineLinux4.0でSambaを使ってWindowsからアクセスしてみる

WindowsからLinuxマシンのハードディスクに簡単にアクセスしたい!

ということで、Sambaを使ってファイルを共有を実現してみる。

Sambaを使うとWindowsの「マイネットワーク」からLinuxのハードディスク内を

参照することが出来るのでとっても簡単。 

 

まず最初にSambaのインストール

 # apt-get install samba

これでインストール完了。

その次にサンバの設定を行う。今回はとりあえずWindowsの「マイネットワーク」から、

観れることを目標にする。

ということで・・・簡単に設定を

 

 # vim /etc/samba/smb.conf

(以下変更箇所のみを抜粋)

 workgroup = WORKGROUP

(お使いのWindowsマシンのワークグループ名に合わせる)

 と設定はこれだけ。

この後に、Sambaの起動と、Linux起動時に立ち上がるように登録を行う。

# /etc/rc.d/init.d/smb start
# /sbin/chkconfig smb on

 

以上で完了。

あと、Sambaに対して、アクセスしたいユーザを登録する必要がある。

 

仮に、hogehogeというユーザ(Linux上に既に存在するユーザと仮定)のディレクトリ

にアクセスできるようにしたい場合は、以下のコマンドを使ってパスワードを設定する。

 

# smbpasswd -a hogehoge

(パスワードを入力)

 

これで完了。

あとは、Windowsから「マイネットワーク」を開き、「ワークグループのコンピュータを

表示する」をクリックする。

「Samba Server on….」というのが表示されるはずなので、それを開く。

ここで、ユーザ名とパスワードを聞かれるので、先ほどの「hogehoge」と設定した

パスワードを入力する。

 

これで、無事にLinux上のハードディスクにアクセスできるはずだ。 

Read more

Popularity: 2% [?]

  • Digg
  • Google Bookmarks
  • Google Reader
  • Facebook
  • Delicious
  • FriendFeed
  • Evernote
  • Twitter
  • Share/Bookmark

VineLinux4.0のSSHDをRSA認証のみ許可するようにする

設定

SSHDの設定ファイルの修正を行う。

パスワード認証を不可にし、RSA認証のみを許可するように
するために以下のように修正を行う。

$ vim /etc/ssh/sshd_config
(修正ポイントのみ抜粋)

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile>-.ssh/authorized_keys

PermitRootLogin no
ChallengeResponseAuthentication no

RhostsRSAAuthentication no
PasswordAuthentication no
PermitEmptyPasswords no

認証鍵の作成

SSHDにログインするユーザにて認証キーの作成を行う。

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/ogi/.ssh/id_rsa): [Enter]
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/ogi/.ssh/id_rsa.
Your public key has been saved in /home/ogi/.ssh/id_rsa.pub.
The key fingerprint is:
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx xxx@xxxx.xxx

認証鍵の設定

作成した認証鍵(公開鍵)をホームディレクトリ配下の「.ssh」に配置する。

$ cd .ssh
$ mv id_rsa.pub authorized_keys
$ chmod 600 authorized_keys

再起動

$ service sshd restart 

以上で、完了である。
これからの設定を行うことで、パスワード認証ではログイン出来なくなる。
作成した、「id_rsa」を使ってログインを行うことになる。

以下のような感じ。

$ ssh -i id_rsa [user name]@[server] 

 

Read more

Popularity: 1% [?]

  • Digg
  • Google Bookmarks
  • Google Reader
  • Facebook
  • Delicious
  • FriendFeed
  • Evernote
  • Twitter
  • Share/Bookmark

TiddlyWikiをとIt’s All Textで快適テキスト管理

今まで、色々なメモ(TODOやHPにアップする前のたたき台など)
は全てテキストファイルで管理していた。

管理していたといっても、実際はファイルとして保存して
あるだけだったので、そろそろ凄い量になってきてしまった。

そんなときにたまたま、見かけたのがTiddlyWikiというやつだ。

何でもPukiwikiとかと違い、サーバサイドのプログラム上で
動くわけではなくJavaScript単体で動くらしいのだ。

っていうことで、メモ書きに使えるのではないかということで、
インストール?してみることにする

Read more

Popularity: 4% [?]

  • Digg
  • Google Bookmarks
  • Google Reader
  • Facebook
  • Delicious
  • FriendFeed
  • Evernote
  • Twitter
  • Share/Bookmark

xfy Blog Editorで簡単投稿!!ジャストシステムブログを使ってみた

ここまでは、まぁ普通のブログだった。(前回 の続き)
早速、ジャストシステムブログの目玉であるエディタを入れてみる。

<xfy Blog Editor>
http://www.xfy.com/jp/blog/

Read more

Popularity: 1% [?]

  • Digg
  • Google Bookmarks
  • Google Reader
  • Facebook
  • Delicious
  • FriendFeed
  • Evernote
  • Twitter
  • Share/Bookmark

ブログ初心者にお勧め?!ジャストシステムブログを使ってみた

普通のブログは恐らくWebブラウザから記事を投稿する。

このブログも勿論Webブラウザから投稿は出来るが、
「xfy Blog Editor」なるソフトを使ってパソコン上で編集、
投稿が出来るらしい。

なんでも「xfy Blog Editor」が割と使いやすくて、高機能
らしい(?)ということで取りあえず確かめるべく使ってみる
ことにした。

訂正:
xfy Blog Editorは他のブログでも(MovableTypeとか)でも
使えるみたい。

Read more

Popularity: 1% [?]

  • Digg
  • Google Bookmarks
  • Google Reader
  • Facebook
  • Delicious
  • FriendFeed
  • Evernote
  • Twitter
  • Share/Bookmark
Page 1 of 41234