2008年12月31日水曜日

今日のブックマーク 12/31/2008


Posted from Diigo. The rest of my favorite links are here.

2008年12月30日火曜日

StrutsのアクションからServletContextを利用

スズキです。

実は、あまり経験のないStrutsネタです。

Java(Servlet)のファイルのアップロード/ダウンロードで
ServletContextのgetRealPathを使う場面は多いと思います。

そのためにはStrutsのActionクラスで、
ServletContextを取得する必要があるのですが、
下記コードにて実現できます。

--------【Java】--------
ServletContext context = this.getServlet().getServletContext();
String context = getRealPath("/WEB-INF/");
--------

IOUtilsが強力すぎる。

--
http://suz-lab.blogspot.com/

2008年12月29日月曜日

Java(Servlet)でファイルダウンロード

スズキです。

表記、すぐに忘れてしまうので...(自分メモです)

--------【Java】--------
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment; filename=download.zip");
OutputStream stream = response.getOutputStream();
// streamに対して書き出し処理
stream.close();
--------
※responseはHttpServletResponseです。

「まとめてZIPにしてダウンロード」も、整理しなければ...

--
http://suz-lab.blogspot.com/

今日のブックマーク 12/29/2008


Posted from Diigo. The rest of my favorite links are here.

2008年12月27日土曜日

OpenLDAPのインストールスクリプト

スズキです。

表記、下記のように作ってみました。

--------【Shell】--------
#!/bin/sh
VERSION=2.4.13
URL=ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release
export CPPFLAGS="-I$HOME/sbin/bdb/default/include"
export LDFLAGS="-L$HOME/sbin/bdb/default/lib"
export LD_LIBRARY_PATH="$HOME/sbin/bdb/default/lib"
if [ ! -d $HOME/tmp ]; then
mkdir -p $HOME/tmp
fi
pushd $HOME/tmp
wget $URL/openldap-$VERSION.tgz
tar xvzf openldap-$VERSION.tgz
pushd openldap-$VERSION
./configure \
--prefix=$HOME/sbin/openldap/$VERSION
make
if [ ! -d $HOME/sbin/openldap ]; then
mkdir -p $HOME/sbin/openldap
fi
if [ -d $HOME/sbin/openldap/$VERSION ]; then
rm -rf $HOME/sbin/openldap/$VERSION
fi
make install
popd
rm -rf openldap-$VERSION
rm openldap-$VERSION.tgz
popd
--------
http://code.google.com/p/suz-lab/source/browse/trunk/suz-env-server/build/openldap.sh

ポイントは、下記の"Berkeley DB"のライブラリのリンク関係です。
(かなり、はまりました…)

export CPPFLAGS="-I$HOME/sbin/bdb/default/include"
export LDFLAGS="-L$HOME/sbin/bdb/default/lib"
export LD_LIBRARY_PATH="$HOME/sbin/bdb/default/lib"

ようやく、OpenLDAPの設定に入れるぞ…

--
http://suz-lab.blogspot.com/

2008年12月26日金曜日

PHPのfile_get_contentsでWARNINGメッセージの抑制

スズキです。

よく、PHPで"Web API"など使うとき、
下記のように、file_get_contentsを使います。

--------【PHP】--------
$url = "http://suz-lab.blogspot.com";
$contents = file_get_contents($url);
--------

で、"WEB API"によっては、エラーのときに、
エラーコードなどを返して、PHP側でもWARNINGだしたりと、
結構、うざったいです。

こういうときは下記のように、
関数の前に@をつけると解決します。

$contents = @file_get_contents($url);

まだ、PHPは母国語にならないなー...

--
http://suz-lab.blogspot.com/

2008年12月25日木曜日

Pidgin Portable 2.5.3 リリース

スズキです。

表記の通りです。
http://portableapps.com/news/2008-12-22_-_pidgin_portable_2.5.3

早速アップデートしましたが、
今までの設定も、一緒にどっかいっちゃいました...
(ま、大した設定してないから、いいか...)

そろそろQQはちゃんと動くようになったのかなー?

--
http://suz-lab.blogspot.com/

MySQLにCSVデータをインポート

スズキです。

表記のやり方を、
今後、都道府県マスタが5分で作れることも目指しつつ、
まとめてみました。

ポイントは、下記となります。

--------【MySQL】--------
LOAD DATA INFILE "S:/tmp/pref.csv"
INTO TABLE pref
FIELDS TERMINATED BY ','
ENCLOSED BY '"';
--------

当然、データを入れる下記のような器(テーブル)が
予め必要となります。

--------【SQL】--------
CREATE TABLE pref (
  pref_id INTEGER NOT NULL AUTO_INCREMENT,
  pref_cd INTEGER NOT NULL,
  pref_name TEXT NOT NULL,
  PRIMARY KEY (pref_id),
  UNIQUE (pref_cd)
)
--------

実際のCSVデータは下記です。
(次は、MySQLの都道府県マスタ、5分で作ります)

--------【CSV】--------
1,1,"北海道"
2,2,"青森県"
3,3,"岩手県"
4,4,"宮城県"
5,5,"秋田県"
6,6,"山形県"
7,7,"福島県"
8,8,"茨城県"
9,9,"栃木県"
10,10,"群馬県"
11,11,"埼玉県"
12,12,"千葉県"
13,13,"東京都"
14,14,"神奈川県"
15,15,"新潟県"
16,16,"富山県"
17,17,"石川県"
18,18,"福井県"
19,19,"山梨県"
20,20,"長野県"
21,21,"岐阜県"
22,22,"静岡県"
23,23,"愛知県"
24,24,"三重県"
25,25,"滋賀県"
26,26,"京都府"
27,27,"大阪府"
28,28,"兵庫県"
29,29,"奈良県"
30,30,"和歌山県"
31,31,"鳥取県"
32,32,"島根県"
33,33,"岡山県"
34,34,"広島県"
35,35,"山口県"
36,36,"徳島県"
37,37,"香川県"
38,38,"愛媛県"
39,39,"高知県"
40,40,"福岡県"
41,41,"佐賀県"
42,42,"長崎県"
43,43,"熊本県"
44,44,"大分県"
45,45,"宮崎県"
46,46,"鹿児島県"
47,47,"沖縄県"
--
http://suz-lab.blogspot.com/

今日のブックマーク 12/25/2008

  • SNAPSHOTバージョンを依存ライブラリに指定した場合、Mavenは通常のバージョン指定とは異なる動きをします。
    通常のバージョン指定の場合、一旦ローカルリポジトリに指定されたバージョンのライブラリがダウンロードされると、ずっとそれが参照されます。
    一方、SNAPSHOTは開発が現在進行形で進められているので、その内容は日々アップデートされていきます。Mavenは一旦ローカルリポジトリに取り込んだ後でも、もしもリモートリポジトリにあるライブラリのファイル更新日付がローカルよりも新しい場合、ローカルのライブラリファイルをリモートのもので上書きします。

    tags: maven

  • ●ひとつ以上の機能の開発中(どんどん新しくなる状態)には
    バージョンナンバーの後ろにSNAPSHOTが付く
    (例)0.0.3-SNAPSHOT

    ●機能の開発に区切りが付いた時点でSNAPSHOTが取れる
    (例)0.0.3-SNAPSHOT ⇒ 0.0.3

    tags: maven


Posted from Diigo. The rest of my favorite links are here.

"Berkeley DB"のインストールスクリプト

スズキです。

"suz-env-server"の一環で作っときました。こんな感じです。

--------【Shell】--------
#!/bin/sh
VERSION=4.7.25
URL=http://download.oracle.com/berkeley-db
if [ ! -d $HOME/tmp ]; then
  mkdir -p $HOME/tmp
fi
pushd $HOME/tmp
wget $URL/db-$VERSION.tar.gz
tar xvzf db-$VERSION.tar.gz
pushd db-$VERSION/build_unix/
../dist/configure \
--prefix=$HOME/sbin/bdb/$VERSION
make
if [ ! -d $HOME/sbin/bdb ]; then
  mkdir -p $HOME/sbin/bdb
fi
if [ -d $HOME/sbin/bdb/$VERSION ]; then
  rm -rf $HOME/sbin/bdb/$VERSION
fi
make install
popd
rm -rf db-$VERSION
rm db-$VERSION.tar.gz
popd
--------
http://code.google.com/p/suz-lab/source/browse/trunk/suz-env-server/build/bdb.sh

次こそは、OpenLDAP...

--
http://suz-lab.blogspot.com/

2008年12月24日水曜日

"Berkeley DB"がOracleの製品になってた…

スズキです。

"Berkeley DB"をtarballからインストールする必要があり、
探していたら、Oracleの製品になってた…

> 2006年2月にオラクルがSleepycat Softwareを買収したのちは、
> Oracle Berkeley DBとブランド名を変えオラクルの製品群の
> 一部を成している。

とのことらしい…
http://ja.wikipedia.org/wiki/Berkeley_DB

ま、MySQLもSUNだし、びっくりすることでもないか…

ちなみに直接tarballを取得する場合は、下記URLとなります。
http://download.oracle.com/berkeley-db/db-4.7.25.tar.gz

早く、OpenLDAPインストールしなくきゃ…

--
http://suz-lab.blogspot.com/

2008年12月23日火曜日

Hudsonのインストールスクリプトと起動スクリプト

スズキです。

"suz-env-server"にHudsonのインストールスクリプトと
起動スクリプトを用意しました。

まずインストールスクリプトは下記となります。
ダウンロードURLとバージョンの関連性がないので、
とにかく、最新を取得するようになっています。

--------【Shell】--------
#!/bin/sh

VERSION=1.266
URL=http://hudson.gotdns.com/latest/hudson.war

if [ ! -d $HOME/tmp ]; then
  mkdir -p $HOME/tmp
fi

pushd $HOME/tmp

wget $URL

if [ ! -d $HOME/sbin/hudson ]; then
  mkdir -p $HOME/sbin/hudson
fi

mv hudson.war $HOME/sbin/hudson/$VERSION.war

popd

if [ ! -d $HOME/var/hudson ]; then
  mkdir -p $HOME/var/hudson
fi

if [ ! -d $HOME/var/log/hudson ]; then
  mkdir -p $HOME/var/log/hudson
fi
--------
http://code.google.com/p/suz-lab/source/browse/trunk/suz-env-server/build/hudson.sh

次は起動スクリプトです。
Winstoneで起動するようにしています。
Winstoneの起動パラメータは、まだまだ調整したいところです。
http://winstone.sourceforge.net/#commandLine

--------【Shell】--------
#!/bin/sh

JAVA_HOME=$HOME/sbin/java/default
HUDSON_WAR=$HOME/sbin/hudson/default.war
HUDSON_LOG=$HOME/var/log/hudson/hudson.log
HUDSON_PID=$HOME/var/run/hudson.pid

export HUDSON_HOME=$HOME/var/hudson

case "$1" in
  start)
    $JAVA_HOME/bin/java -jar $HUDSON_WAR >$HUDSON_LOG 2>&1 &
    echo $! > $HUDSON_PID
    exit $?
    ;;
stop)
    kill `cat $HUDSON_PID`
    rm $HUDSON_PID
    exit $?
    ;;
  *)
    echo "Usage tomcat.sh start/stop"
    exit 1;;
esac
--------
http://code.google.com/p/suz-lab/source/browse/trunk/suz-env-server/rc/hudson.sh

まあ、それっぽくなったので、次はHudsonのLDAP認証のための、
OpenLDAPの調整です。(苦手なんだよなー)

--
http://suz-lab.blogspot.com/

2008年12月20日土曜日

今日のブックマーク 12/20/2008


Posted from Diigo. The rest of my favorite links are here.

OpenOffice.org Portable 3.0 リリース

スズキです。

ついに、"OpenOffice.org 3.0"のポータブル版が現れました。
http://portableapps.com/news/2008-12-18_-_openoffice.org_portable_3.0

早速アップデートして、適当なExcelファイル起動したら、
起動スピードがずっと速くなってました。

"OpenOffice.org 3.0"は日ごろの作業の効率アップのため、
本気で調査・研究しようと思っています。

--
http://suz-lab.blogspot.com/

Puttyでデフォルトの設定を変更

スズキです。

表記、特に文字コードは、
今やUTF-8をデフォルトにしておきたいところです。

やり方は下記記事にて詳しく書かれています。
http://it.kndb.jp/entry/show/id/727

ポイントは、
「変更した設定を"Default Settings"というセッション名で保存」
です。

もっと早く調べておくべきだった…

--
http://suz-lab.blogspot.com/

VLC Media Player Portable 0.9.8a リリース

スズキです。

表記の通りです。
http://portableapps.com/news/2008-12-18_-_vlc_media_player_portable_0.9.8a

早速アップデートしました。
(いつもの通り、何がよくなったかは、わかってません…)

近頃VLCは自宅のBGM再生アプリケーションとなってます…

--
http://suz-lab.blogspot.com/

2008年12月19日金曜日

WinstoneでHudson

スズキです。

ずっと前にWinstoneという軽量"Servlet Container"を紹介しました。
http://suz-lab.blogspot.com/2008/05/embedding-winstone.html

ダウンロードできるhudson.warの中には、

winstone.jarが含まれており、
https://hudson.dev.java.net/servlets/ProjectDocumentList?folderID=2761&expandFolder=2761&folderID=0

# java - jar hudson.war

で、WinstoneにてHudsonを立ち上げることができます。

Winstoneはもっと研究しておこう。

--
http://suz-lab.blogspot.com/

2008年12月18日木曜日

MySQLでランダムに10件SELECT

スズキです。

以前、"It's a Smile World"がPostgreSQLでの
表記の実現方法を紹介していました。
http://2-laps.com/mt/2008/10/sql-2.html

で、MySQL版は下記となります。

--------【SQL】--------
SELECT *
FROM hoge_table
ORDER BY RAND()
LIMIT 10
--------

微妙に違うなー...

--
http://suz-lab.blogspot.com/

MySQLでテーブルにカラムの追加

スズキです。

すぐに、Googleに頼ってしまうので...

alter table HOGE_TABLE add HOGE_COLUMN varchar(256);

--
http://suz-lab.blogspot.com/

JDBCのサンプル

スズキです。

本当に久しぶりに生JDBCプログラミングしました。

懐かしいコードです。

--------【Java】--------
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/test";
Connection connection = DriverManager.getConnection(
url, "username", "password"
);
Statement statement = connection.createStatement();
String sql = "UPDATE ...";
statement.executeUpdate(sql);
statement.close();
connection.commit();
connection.close();
--------

あとは、PHPのコマンドライン実行だ...

--
http://suz-lab.blogspot.com/

2008年12月17日水曜日

VistaでTelnet

スズキです。

デフォルトで、VistaはコマンドプロンプトでTelnetコマンドが使えません。

で、使えるようにするには下記参照です。
http://blog.heiichi.com/?eid=486815

これも、すぐに忘れてしまう...
自分メモとして。

--
http://suz-lab.blogspot.com/

IPアドレスの確認

スズキです。

NATとか使ってると、自分が外(インターネット)に出たときに、
自分がどのIPアドレスとして認識されているのか把握できないことが
多々あります。

そういう時は、下記サイトにアクセスです。
http://www.ip-checker.net/

探すのに時間がかかってしまった...

--
http://suz-lab.blogspot.com/

"Amazon EC2"に登録&まとめサイト

スズキです。

ついに、表記、登録してしまいました。
http://aws.amazon.com/ec2/
(久しぶりに、Webでクレジットカード使いました...)

登録方法は下記に詳しく紹介されています。
http://gigazine.net/index.php?/news/comments/20080609_aws1/

で、いろいろと試していくわけで、
ある程度情報がまとまったサイトをリストしておきます。

▼EC2の操作環境セットアップ
http://gigazine.net/index.php?/news/commen0080609_aws2/

▼カスタムAMI作成・登録・削除編
http://gigazine.net/index.php?/news/comments/20080609_aws3/

▼Amazon EC2/S3を使ってみた - まとめ
http://d.hatena.ne.jp/rx7/20080528/p1

▼Amazon EC2 - 近況
http://d.hatena.ne.jp/pekeq/20060926/p2

▼Amazon WebサービスのEC2を使ってみた
http://kokogiko.net/m/archives/001772.html

とりあえず、こんな感じか。

--
http://suz-lab.blogspot.com/

jQuery連載-第5回の公開

スズキです。

時間が空いてしまいましたが、"iret R&D team"による
jQuery連載の第5回が公開されました。

▼第5回 メニューを彩るプラグイン(2)
http://gihyo.jp/design/serial/01/jquery-plugin/0005

(第1回、第2回の紹介)
http://suz-lab.blogspot.com/2008/09/jquery.html
(第3回の紹介)
http://suz-lab.blogspot.com/2008/09/jquery-3.html
(第4回の紹介)
http://suz-lab.blogspot.com/2008/10/jquery-4.html

今回は、前回紹介した3点のメニューに関するプラグインで、
Kwicks以外の下記、残りの2点を紹介しています。

▼jQuery Multi Level CSS Menu
http://www.dynamicdrive.com/style/csslibrary/item/jquery_multi_level_css_menu_horizontal_blue/

▼jQuery plugin: Accordion
http://bassistance.de/jquery-plugins/jquery-plugin-accordion/

"iret R&D team"の皆様お疲れさまでした。
第6回もがんばってください。

--
http://suz-lab.blogspot.com/

"suz-env-server"再び

スズキです。

"Amazon EC2"使って、何かサービスを公開したいなー、と思い、
http://aws.amazon.com/ec2/
その準備として、"suz-env-server"プロジェクトを
http://code.google.com/p/suz-lab/source/browse/#svn/trunk/suz-env-server
整理しなおすことにしました。

ちなみに"suz-env-server"は、Linux(Unix)環境で、
サーバアプリケーションなどをroot権限なく、
簡単に導入できるようにする、シェルスクリプトセットです。

今までは、一つのマシンでも、Tomcatを二つ立ち上げ、
クラスタリングすることを考慮していましたが、"Amazon EC2"なので、
インスタンスを増やすのは簡単なので、マシン一台での、
サーバアプリケーションの冗長構成は考えないようにすることにします。

ということで、導入の仕方のまとめなおしです。

まずは下記のように、自分のホームディレクトリに、
binディレクトリをSVNからチェックアウトします。

# cd
# svn checkout http://suz-lab.googlecode.com/svn/trunk/suz-env-server bin

(サーバ運用環境セット)
http://suz-lab.blogspot.com/2007/04/blog-post_10.html

そして、"bin/init"の下にcron.shという、
cronの初期設定スクリプトがあるので、それを実行します。
http://code.google.com/p/suz-lab/source/browse/trunk/suz-env-server/init/cron.sh

(cronとrun-parts)
http://suz-lab.blogspot.com/2007/04/cronrun-parts.html

その後、同じ場所にlogrotate.shという、
logrotateの初期設定スクリプトがあるので、それも実行します。
http://code.google.com/p/suz-lab/source/browse/trunk/suz-env-server/init/logrotate.sh

最後に、また同じ場所にbackup.shという
backupの初期設定スクリプトがあるので、それも実行します。
http://code.google.com/p/suz-lab/source/browse/trunk/suz-env-server/init/backup.sh

これで、home以下のetcとvarを定期的に
バックアップする仕組みの出来上がりです。

でも、朝、起きたらバックアップできてない...
"Amazon S3"も調べなきゃ...

--
http://suz-lab.blogspot.com/

今日のブックマーク 12/17/2008


Posted from Diigo. The rest of my favorite links are here.

2008年12月11日木曜日

今日のブックマーク 12/11/2008


Posted from Diigo. The rest of my favorite links are here.

2008年12月4日木曜日

Joda Time - Java date and time API (Java)

スズキです。

なんか、あるAPI(Java)を使うときに、日時を扱うライブラリで、
表記のものを使うのを前提としています的なことが書かれていたので、
ちょっと調べてみました。

http://joda-time.sourceforge.net/

> Joda-Time has been created to radically change date and
> time handling in Java. The JDK classes Date and Calendar
> are very badly designed, have had numerous bugs and have
> odd performance effects. Here are some of our reasons for
> developing and using Joda-Time:

以下、上記のsuz-lab訳です。

"Joda-Time"はJavaでの日時の処理をよりよくするために開発されました。
JDKの日時に関するクラスは、設計が非常に悪く、多くのバグを持っており、
パフォーマンスにも影響を与えています。これらが、我々が"Joda-Time"を
開発し使う理由です。

で、使ったのは、これだけ...
long time = DateTimeUtils.currentTimeMillis();

suz-lab訳は英語の練習になるから、続けていこう。

--
http://suz-lab.blogspot.com/

SCHOOL CHAMPION SHIP

スズキです。

今、通ってる、フットサルスクールの施設対抗戦です。
http://ameblo.jp/menomaestaff/entry-10173578492.html

惨敗でした...

知らない人とでも、会って5秒くらいで、
チームプレーできるようになりたいなー...

--
http://suz-lab.blogspot.com/

今日のブックマーク 12/04/2008


Posted from Diigo. The rest of my favorite links are here.

2008年12月3日水曜日

今日のブックマーク 12/03/2008


Posted from Diigo. The rest of my favorite links are here.

2008年12月2日火曜日

CentOS5.2にyumをrpmでインストール

スズキです。

あるCentOS5.2で下記に従い"Hyper Estraier"をインストールしようとしたら、
http://suz-lab.blogspot.com/2008/11/hyper-estraierupdate.html
gccが入っていません。yum使ってインストールしようとしたら、
yumも入っていません...

ということで、下記よりyumのrpm探して、依存しているものも探して
インストールしました。
http://www.ftp.ne.jp/Linux/packages/CentOS/5.2/os/i386/CentOS/

ちなみにこの環境で、yumを入れるために必要だったrpmは下記となります。

yum-3.2.8-9.el5.centos.1.noarch.rpm
  python-elementtree-1.2.6-5.i386.rpm
  python-iniparse-0.2.3-4.el5.noarch.rpm
  python-sqlite-1.1.7-1.2.1.i386.rpm
  rpm-python-4.4.2-48.el5.i386.rpm
  yum-metadata-parser-1.1.2-2.el5.i386.rpm
  python-urlgrabber-3.1.0-2.noarch.rpm
    m2crypto-0.16-6.el5.2.i386.rpm

rpmの依存関係は、"rpm -qR yum"で確認できます。

まだまだリズムが戻らない...

--
http://suz-lab.blogspot.com/