2012-05

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書く事で広告が消せます。

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)を取得する。
インストールディスクをドライブにセットし、マウント
[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が充電できない。

MacBookPro_20110905.jpg

最近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)
MacBookAir


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


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




Kオープン(Copenコペン)に買い替えた

6年近く乗ったKei worksに別れを告げて、

コペン(Copen)になりました。

Copen.jpg

グレードは標準アクディブトップ。

オプションはCD、スピーカー、ETC、リアスポイラーのみ追加。

(スピーカーぐらい標準にしてほしい...)

しばらくはノーマルのまま乗りたいと思います。

ホイールは変えたいかな。

java.lang.OutOfMemoryError: Java heap space の対策

Tomcat上でWEBアプリケーションを開発していると、

java.lang.OutOfMemoryError: Java heap space

なんてエラーが出た。

「メモリーが足りないよ〜」ってことですね。

JavaはVMで動いてるので、このメモリーを増やしてやればよいか?

ここに書いてあるように、Eclipseの

ウィンドウ→設定→Tomcat→JVM設定を選択し、 「JVMパラメータへ追加」

-Xmx512m

を追加したら解決した。


OutOfMemoryError_Eclipse.png

S2JDBCからPostgreSQLのストアドファンクションを呼び出す。(複数パラメータの場合)

前回はパラメータが1つの場合だったけど、今回は2つの場合。

以下は
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)

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」となります。

参考:ストアドファンクションの呼び出し

PostgreSQLでPL/pgSQLを使うための準備

PostgreSQLでストアドプロシージャ(PL/pgSQL)を使う場合は

plpgsqlが使えるようになっている必要がある。

使えるようになっているかは、以下のSQLで確認できる。
select * from pg_language;

plpgsqlがあれば使用できる。
plsql


ない場合は以下のSQLを実行する。
CREATE LANGUAGE plpgsql;



「残念な人の思考法」読みました。

残念な人の思考法
山崎将志

- 頭は悪くない、でも仕事ができない。 -

残念な人の思考法


一言で言ってしまえば、大事なのはプライオリティ(優先度)と ストーリーですかね。

この手の教養本はなぜか好きです。

洗脳されるつもりはありませんが、新しいものの見方を知ること出来ますね。





東北地方太平洋沖地震(東日本大地震)

3月11日(金)に東北地方太平洋沖地震が発生し、いろいろな支援、報道がされてますが、

被災地の方の「たくましさ」には頭が下がる思いです。

都内は、直接の影響はないものの、計画停電、まとめ買いで混乱しております。

みなさん、「まとめ買いは控えて、必要なものだけにしましょう。」

自分には支援と言うほどのことは出来ませんが、少しばかりの「募金」と、

「節電」で貢献出来ればと思います。まずは自分の出来ることから。

iTunesをアップデートしたら英語版になった。

iTunesのアップデートが出ていたので、アップデートしたらメニューが英語に

なってました。あせって、言語設定確認しても「Japanese」になってます。

調べてみると、アップデート後にインストーラが作成したアイコン以外から起動すると

この現象になるようです。(自分で作ったショートカットとか、iPodを接続して自動起動

したりすると)

解決するには、

コントロールパネル → プログラムの追加と削除 → iTunes → 変更 → 修復する

デスクトップのアイコンかスタートメニューから起動しましょう。

ソーシャル・ネットワークを見てきた。



CMで見て気になってたのと、映画館のポイント期限が近づいていたので見てきましたw

世界最大のSNS、Facebook創設のお話です。

発端が、女の子ランキングサイトとか、アイディア盗みとかビックリする内容でしたが、

事実、Facebookは世界最大のユーザ数であり、やっぱりスゴイなぁと思いました。

途中、Apachやら、wgetコマンドやら、Perlやら、その世界の人しか分からない

言葉が出てきますが、その辺は流して雰囲気で感じてくさだい。

個人的には、起業について、プログラマーのあり方、人間関係の難しさを

考えさせられる作品だと思いました。

PostgreSQL管理ツールpgadmin3をインストール

pgAdmin3.png

前回PostgreSQLをインストールしたので管理ツールをインストール。
コマンドからでも出きるのですが、やっぱりツールを使った方が簡単。

(インストールはrootにて行う)
# yum install pgadmin3


使い方は「pgadmin3 使い方」とかでググると沢山出てくるのでそちらを参照してくださいw
(人任せですみません)

PostgreSQLをFedora 10 にインストール

■ インストール 
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

«  | ホーム |  »

About

yuuk

Author:yuuk
SE、プログラマー。

MacBook Air(11inch) New
MacBook Pro(13inch)
iPhone 3GS(32GB Black)
iPad(32GB Wi-Fi)
REGZA Phone
NEX-5
Copen

当ブログはリンクフリーです。
リンクしていただけたら、Twitterかコメント欄でお教えください。
こちらからもリンクさせていただきます。

Twitterボタン

Recent Entries

Category

PC (20)
Mac (2)
Windows (2)
Linux (1)
iPhone (4)
Android (6)
WiMAX (3)
データベース (3)
カメラ (2)
車 (2)
Copen (1)
Kei (1)
プログラム (4)
本 (2)
映画 (1)
自炊 (2)
相互リンク (1)
日記 (18)

Search

Links

Counter

Amazon