スポンサーサイト
Javaでの半角カナ⇒全角カナ変換
Javaで半角カナから全角カナに変換する必要があったため調べてみた。
Javaって、いろいろ便利なクラス・メソッドがあるけど、
半角⇔全角変換をサポートしていないようですね。
自前で作る必要があるみたい。
で、見つけたのがこれ↓
半角全角変換(電脳世代)
こちらは
> 本ソースコードはフリーソフトウェアですので、アーカイブの転載・配布は、
> 自由に行っていただいてかまいません。
> ソースコードの修正についても自由に行ってもらって結構です。
> 商用利用についての制限もありません。
とのことですので、少し勉強のため、使わせていただきました。
実システムに利用するかは検討中ですが、こういう応援してもらえると助かりますね。
処理としては、濁点・半濁点の場合を考慮しないといけないけど、
結局やっていることは、マップを用意して半角カナから全角カナを検索する
という単純なもの。だけど、分かり易い。
Javaって、いろいろ便利なクラス・メソッドがあるけど、
半角⇔全角変換をサポートしていないようですね。
自前で作る必要があるみたい。
で、見つけたのがこれ↓
半角全角変換(電脳世代)
こちらは
> 本ソースコードはフリーソフトウェアですので、アーカイブの転載・配布は、
> 自由に行っていただいてかまいません。
> ソースコードの修正についても自由に行ってもらって結構です。
> 商用利用についての制限もありません。
とのことですので、少し勉強のため、使わせていただきました。
実システムに利用するかは検討中ですが、こういう応援してもらえると助かりますね。
処理としては、濁点・半濁点の場合を考慮しないといけないけど、
結局やっていることは、マップを用意して半角カナから全角カナを検索する
という単純なもの。だけど、分かり易い。
rpmを誤ってアンインストールしてしまったときの対処方法
ファイルサーバーにしているLinux(CentOS 5.5)にて
rpmパッケージシステム(rpmコマンド)を誤ってアンインストールしてしまったので、
その際の復活方法をメモ。
誤って削除してしまったのはrpmだけでなく、yumもなので、
rpmと、yumを復活させる。
手順としては
[別PCで作業]
1.インストールディスクからrpmパッケージファイル(*.rpm)を取得する。
2.rpmパッケージファイル(*.rpm)を展開する。(rpm2cpio)
3.展開したファイルのアーカイブを作成する。
[対象PCで作業]
4.作成したアーカイブを展開する。
【まずは別PCで作業を行う】
別PCで作業するのはrpm2cpioコマンドを使いたいからなのだが、対象のLinuxではrpm2cpioが使えなかった。
おそらく、誤ってアンインストールした際に一緒にアンインストールされたらしい。
作業したのはFedora11環境。
1.インストールディスクからrpmパッケージファイル(*.rpm)を取得する。
インストールディスクをドライブにセットし、マウント
インストールディスクからrpmパッケージを取得する。
2.rpmパッケージファイル(*.rpm)を展開する。(rpm2cpio)
作業ディレクトリを作成
rpmパッケージを展開
3.展開したファイルのアーカイブを作成する。
作業ディレクトリ削除
※ 依存関係のrpm-libs-4.4.2.3-18.el5.i386.rpmも同様に行う。
作成したアーカイブを転送する。
(自分の場合はFTPで転送)
4.作成したアーカイブを展開する。
ルート(/)ディレクトリで展開する。
これでrpmコマンドが使えるようになった。
念のため、再度rpmパッケージファイルからrpmコマンドをインストール
最後にyumも復活
rpmデータベースもいちおリビルド。
めでたく、元に戻りました(^^)
rpmパッケージシステム(rpmコマンド)を誤ってアンインストールしてしまったので、
その際の復活方法をメモ。
誤って削除してしまったのはrpmだけでなく、yumもなので、
rpmと、yumを復活させる。
手順としては
[別PCで作業]
1.インストールディスクからrpmパッケージファイル(*.rpm)を取得する。
2.rpmパッケージファイル(*.rpm)を展開する。(rpm2cpio)
3.展開したファイルのアーカイブを作成する。
[対象PCで作業]
4.作成したアーカイブを展開する。
【まずは別PCで作業を行う】
別PCで作業するのはrpm2cpioコマンドを使いたいからなのだが、対象のLinuxではrpm2cpioが使えなかった。
おそらく、誤ってアンインストールした際に一緒にアンインストールされたらしい。
作業したのはFedora11環境。
1.インストールディスクからrpmパッケージファイル(*.rpm)を取得する。
インストールディスクをドライブにセットし、マウント
| [root@smbserver ~]# mount /dev/cdrom /media [root@smbserver ~]# cd /root |
インストールディスクからrpmパッケージを取得する。
| [root@smbserver ~]# cp /media/CentOSxx/CentOS/rpm-4.4.2.3-18.el5.i386.rpm /root [root@smbserver ~]# cp /media/CentOSxx/CentOS/rpm-libs-4.4.2.3-18.el5.i386.rpm /root |
2.rpmパッケージファイル(*.rpm)を展開する。(rpm2cpio)
作業ディレクトリを作成
| [root@smbserver ~]# mkdir tmp [root@smbserver ~]# cd tmp |
rpmパッケージを展開
| [root@smbserver ~]# rpm2cpio ../rpm-4.4.2.3-18.el5.i386.rpm | cpio -id |
3.展開したファイルのアーカイブを作成する。
| [root@smbserver ~]# tar zcvf ../rpm-4.4.2.3-18.el5.i386.tar.gz * |
作業ディレクトリ削除
| [root@smbserver ~]# rm -rf * |
※ 依存関係のrpm-libs-4.4.2.3-18.el5.i386.rpmも同様に行う。
作成したアーカイブを転送する。
(自分の場合はFTPで転送)
4.作成したアーカイブを展開する。
ルート(/)ディレクトリで展開する。
| [root@smbserver ~]# cd / [root@smbserver ~]# tar zxvf rpm-4.4.2.3-18.el5.i386.tar.gz [root@smbserver ~]# tar zxvf rpm-libs-4.4.2.3-18.el5.i386.tar.gz |
これでrpmコマンドが使えるようになった。
念のため、再度rpmパッケージファイルからrpmコマンドをインストール
| [root@smbserver ~]# rpm -ivh /media/CentOSxx/CentOS/rpm-4.4.2.3-18.el5.i386.rpm / /media/CentOSxx/CentOS/rpm-libs-4.4.2.3-18.el5.i386.rpm |
最後にyumも復活
| [root@smbserver ~]# rpm -ivh /media/CentOSxx/CentOS/yum-3.2.22-26.el5.centos.noarch.rpm |
rpmデータベースもいちおリビルド。
| [root@smbserver ~]# rpm --rebuilddb |
めでたく、元に戻りました(^^)
MacBook Proが充電できない。

最近MacBook Airに夢中で、Proをほったらかしてました。
久しぶりに電源を入れると、バッテリー表示に「充電できていません」と表示されていて、
バッテリー残量が0%でした。完全に放電してましたね。
状態としては、「充電できていません」と表示されるほかに、
電源(MagSafe 電源アダプタ)のLEDは緑に点灯してました。
再起動しても治りません。
壊れた!?
と思ったのですが、解決方法がありました。
・Intel-based Macs:SMC (システム管理コントローラ) のリセット
に記載されている「ご自身で取り外しできないバッテリーを使用するポータブル Mac で SMC をリセットする」を
試したら、治りました。
完全にバッテリーを使いきってしまったので、コントローラが狂ってしまったんですかね。
なんともなくて良かったです。
衝動買いが止まらない。笑
久しぶりの更新になってしまいました。
最近、忙しくて...
そして、衝動買いが激しいです。
破産しそう...汗
とりあえず、今日は買ったものの羅列だけ。
使用感など報告できればいいかなぁ。
8月頭には買ってたもの。笑
【MacBook Air 11インチ】
・1.6GHzデュアルコアIntel Core i5
・4GB 1333MHz DDR3 SDRAM
・128GBのフラッシュストレージ
・キーボード (US)

今日買ったもの。笑
【Pocket Wifi(GP02)】
買うつもりはなかったのですが、在庫なしの状態が続いていて、
ちょうど、EMに寄ったらあったのでつい。笑

なんかついてきたもの。笑
【H11T】
Pocket Wifi(GP02)を買ったらついてきました。
なんでも、2台目無料というキャンペーンで、
基本料など、一切かからない。
もってても(寝かしてても?)損にはならないので、頂きました。

最近、忙しくて...
そして、衝動買いが激しいです。
破産しそう...汗
とりあえず、今日は買ったものの羅列だけ。
使用感など報告できればいいかなぁ。
8月頭には買ってたもの。笑
【MacBook Air 11インチ】
・1.6GHzデュアルコアIntel Core i5
・4GB 1333MHz DDR3 SDRAM
・128GBのフラッシュストレージ
・キーボード (US)

今日買ったもの。笑
【Pocket Wifi(GP02)】
買うつもりはなかったのですが、在庫なしの状態が続いていて、
ちょうど、EMに寄ったらあったのでつい。笑

なんかついてきたもの。笑
【H11T】
Pocket Wifi(GP02)を買ったらついてきました。
なんでも、2台目無料というキャンペーンで、
基本料など、一切かからない。
もってても(寝かしてても?)損にはならないので、頂きました。

java.lang.OutOfMemoryError: Java heap space の対策
Tomcat上でWEBアプリケーションを開発していると、
java.lang.OutOfMemoryError: Java heap space
なんてエラーが出た。
「メモリーが足りないよ〜」ってことですね。
JavaはVMで動いてるので、このメモリーを増やしてやればよいか?
ここに書いてあるように、Eclipseの
ウィンドウ→設定→Tomcat→JVM設定を選択し、 「JVMパラメータへ追加」
-Xmx512m
を追加したら解決した。

java.lang.OutOfMemoryError: Java heap space
なんてエラーが出た。
「メモリーが足りないよ〜」ってことですね。
JavaはVMで動いてるので、このメモリーを増やしてやればよいか?
ここに書いてあるように、Eclipseの
ウィンドウ→設定→Tomcat→JVM設定を選択し、 「JVMパラメータへ追加」
-Xmx512m
を追加したら解決した。

S2JDBCからPostgreSQLのストアドファンクションを呼び出す。(複数パラメータの場合)
前回はパラメータが1つの場合だったけど、今回は2つの場合。
以下は
integerのパラメータを2つ
returnでintegerを返すストアドファンクション。
これをJavaのS2JDBCから呼び出し、リターン値を取る。
callBySql() の3番目の引数にJavaBeansを指定する。
ストアドファンクションを呼び出すパラメータの順番にJavaBeansのフィールドを定義する。
これを実行すると、結果は「4」となります。
以下は
integerのパラメータを2つ
returnでintegerを返すストアドファンクション。
CREATE OR REPLACE FUNCTION sp_test(integer,integer)
RETURNS integer AS
$BODY$
DECLARE
in_num1 alias for $1; /* パラメータへのエイリアス*/
in_num2 alias for $2; /* パラメータへのエイリアス*/
add int := 1; /* 変数 int 初期値 */
BEGIN
return in_num1 + in_num1 + add;
end;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION sp_test(integer,integer) OWNER TO postgres;
これをJavaのS2JDBCから呼び出し、リターン値を取る。
public class TestDto
{
public int in_num1; // 第1引数 (IN)
public int in_num2; // 第2引数 (IN)
}
import javax.annotation.Resource;
import org.seasar.extension.jdbc.JdbcManager;
public class CallTestService {
@Resource
protected JdbcManager jdbcManager;
public int call()
{
TestDto dto = new TestDto();
dto.in_num1 = 1;
dto.in_num2 = 2;
int ret =
jdbcManager
.callBySql(
Integer.class,
"{? = call sp_test(?,?)}",
dto)
.getSingleResult();
System.out.print(ret);
return ret;
}
}
callBySql() の3番目の引数にJavaBeansを指定する。
ストアドファンクションを呼び出すパラメータの順番にJavaBeansのフィールドを定義する。
これを実行すると、結果は「4」となります。
S2JDBCからPostgreSQLのストアドファンクションを呼び出す。
S2JDBCからPostgreSQLのストアドファンクションを呼び出す方法
をテストしたのでメモ。
以下は
integerのパラメータを1つ
returnでintegerを返すストアドファンクション。
(大文字、小文字は気にしないw)
これをJavaのS2JDBCから呼び出し、リターン値を取る。
1番目の引数でストアドファンクションの戻り値の型
2番目の引数でストアドファンクションを呼び出すSQL
INのパラメータが1つだけで、そのパラメータが null にならない場合は、
callBySql() の3番目の引数で値を直接指定します。(この場合は1)
これを実行すると、結果は「2」となります。
参考:ストアドファンクションの呼び出し
をテストしたのでメモ。
以下は
integerのパラメータを1つ
returnでintegerを返すストアドファンクション。
(大文字、小文字は気にしないw)
CREATE OR REPLACE FUNCTION sp_test(integer)
RETURNS integer AS
$BODY$
DECLARE
in_num alias for $1; /* パラメータへのエイリアス*/
add int := 1; /* 変数 int 初期値 */
BEGIN
return in_num + add;
end;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION sp_test(integer) OWNER TO postgres;
これをJavaのS2JDBCから呼び出し、リターン値を取る。
import javax.annotation.Resource;
import org.seasar.extension.jdbc.JdbcManager;
public class CallTestService {
@Resource
protected JdbcManager jdbcManager;
public int call()
{
int ret =
jdbcManager
.callBySql(
Integer.class,
"{? = call sp_test(?)}",
1)
.getSingleResult();
System.out.print(ret);
return ret;
}
}
1番目の引数でストアドファンクションの戻り値の型
2番目の引数でストアドファンクションを呼び出すSQL
INのパラメータが1つだけで、そのパラメータが null にならない場合は、
callBySql() の3番目の引数で値を直接指定します。(この場合は1)
これを実行すると、結果は「2」となります。
参考:ストアドファンクションの呼び出し
東北地方太平洋沖地震(東日本大地震)
3月11日(金)に東北地方太平洋沖地震が発生し、いろいろな支援、報道がされてますが、
被災地の方の「たくましさ」には頭が下がる思いです。
都内は、直接の影響はないものの、計画停電、まとめ買いで混乱しております。
みなさん、「まとめ買いは控えて、必要なものだけにしましょう。」
自分には支援と言うほどのことは出来ませんが、少しばかりの「募金」と、
「節電」で貢献出来ればと思います。まずは自分の出来ることから。
被災地の方の「たくましさ」には頭が下がる思いです。
都内は、直接の影響はないものの、計画停電、まとめ買いで混乱しております。
みなさん、「まとめ買いは控えて、必要なものだけにしましょう。」
自分には支援と言うほどのことは出来ませんが、少しばかりの「募金」と、
「節電」で貢献出来ればと思います。まずは自分の出来ることから。
iTunesをアップデートしたら英語版になった。
iTunesのアップデートが出ていたので、アップデートしたらメニューが英語に
なってました。あせって、言語設定確認しても「Japanese」になってます。
調べてみると、アップデート後にインストーラが作成したアイコン以外から起動すると
この現象になるようです。(自分で作ったショートカットとか、iPodを接続して自動起動
したりすると)
解決するには、
コントロールパネル → プログラムの追加と削除 → iTunes → 変更 → 修復する
デスクトップのアイコンかスタートメニューから起動しましょう。
なってました。あせって、言語設定確認しても「Japanese」になってます。
調べてみると、アップデート後にインストーラが作成したアイコン以外から起動すると
この現象になるようです。(自分で作ったショートカットとか、iPodを接続して自動起動
したりすると)
解決するには、
コントロールパネル → プログラムの追加と削除 → iTunes → 変更 → 修復する
デスクトップのアイコンかスタートメニューから起動しましょう。
ソーシャル・ネットワークを見てきた。
CMで見て気になってたのと、映画館のポイント期限が近づいていたので見てきましたw
世界最大のSNS、Facebook創設のお話です。
発端が、女の子ランキングサイトとか、アイディア盗みとかビックリする内容でしたが、
事実、Facebookは世界最大のユーザ数であり、やっぱりスゴイなぁと思いました。
途中、Apachやら、wgetコマンドやら、Perlやら、その世界の人しか分からない
言葉が出てきますが、その辺は流して雰囲気で感じてくさだい。
個人的には、起業について、プログラマーのあり方、人間関係の難しさを
考えさせられる作品だと思いました。
PostgreSQL管理ツールpgadmin3をインストール

前回PostgreSQLをインストールしたので管理ツールをインストール。
コマンドからでも出きるのですが、やっぱりツールを使った方が簡単。
(インストールはrootにて行う)
| # yum install pgadmin3 |
使い方は「pgadmin3 使い方」とかでググると沢山出てくるのでそちらを参照してくださいw
(人任せですみません)
PostgreSQLをFedora 10 にインストール
■ インストール
Fedora 10 にPostgreSQLをyumでインストールします。
コマンドはroot権限で実行します。
インストール!
う〜ん。簡単です。w
インストール時に、postgresユーザが自動で追加されます。
PostgreSQLの起動、終了はrootで行いますが、データベースの操作はこのユーザを使用します。
■ 初期設定
インストールが完了したら、
まずpostgresユーザに移行します。
以下のコマンドを実行して初期化します。
--encoding=UTF8 は使用する文字コードを設定します。
--no-locale はロケールを使用しないことを設定するオプションです。
ロケールはソートなどで言語に応じた処理をするらしいが、日本語環境では特に必要ない。
逆に --no-locale を指定しないとバグがあるらしいので指定しておく。
完了すると、/var/lib/pgsql/data にデータベースクラスタが作成されます。
されにデフォルトだとローカルからしかアクセスできないので、
/var/lib/pgsql/data/postgresql.conf を編集します。
外部アクセスの設定。
/var/lib/pgsql/data/pg_hba.conf
192.168.1.XXXの端末からアクセスできる。
■ 起動と終了
スクリプトもyumでインストールすると作成されるので、
以下コマンドて起動、終了できます。
<追記>
OS起動時に、起動するようにする。
Fedora 10 にPostgreSQLをyumでインストールします。
コマンドはroot権限で実行します。
| # su パスワード: |
インストール!
| # yum install postgresql-server |
う〜ん。簡単です。w
インストール時に、postgresユーザが自動で追加されます。
PostgreSQLの起動、終了はrootで行いますが、データベースの操作はこのユーザを使用します。
■ 初期設定
インストールが完了したら、
まずpostgresユーザに移行します。
| # su - postgres |
以下のコマンドを実行して初期化します。
| # initdb --encoding=UTF8 --no-locale |
--encoding=UTF8 は使用する文字コードを設定します。
--no-locale はロケールを使用しないことを設定するオプションです。
ロケールはソートなどで言語に応じた処理をするらしいが、日本語環境では特に必要ない。
逆に --no-locale を指定しないとバグがあるらしいので指定しておく。
完了すると、/var/lib/pgsql/data にデータベースクラスタが作成されます。
されにデフォルトだとローカルからしかアクセスできないので、
/var/lib/pgsql/data/postgresql.conf を編集します。
| # vi /var/lib/pgsql/data/postgresql.conf listen_addresses = '*' port = 5432 |
外部アクセスの設定。
/var/lib/pgsql/data/pg_hba.conf
| # vi /var/lib/pgsql/data/pg_hba.conf TYPE DATABASE USER CIDR-ADDRESS METHOD host all all 192.168.1.0./24 password |
192.168.1.XXXの端末からアクセスできる。
■ 起動と終了
スクリプトもyumでインストールすると作成されるので、
以下コマンドて起動、終了できます。
| # service postgresql start postgresql サービスを開始中: [ OK ] # service postgresql stop postgresql サービスを停止中: [ OK ] |
<追記>
OS起動時に、起動するようにする。
| # chkconfig postgresql on |



