きぬろぐ
antでのProxy設定メモ
投稿者: kinusati, カテゴリー: Java
Proxy配下で直接外部に接続できない環境下でantを利用してjarのダウンロードを行うためのメモ。
jmeterのソースファイルをビルドする際にant download_jarsが通るようになりました。楽ちん楽ちん。
Unicode正規化
投稿者: kinusati, カテゴリー: コンピュータ
Unicode正規化について調べることがあったので、メモ。
- http://homepage1.nifty.com/nomenclator/unicode/normalization.htm
- http://www.lr.pi.titech.ac.jp/~abekawa/perl/perl_unicode.html
Unicodeと一言に言っても色々あるんですね。今後は濁点が分かれた文字を見ても動揺しないようにします
久しぶりにProFTPdの設定を行ったときに調べたことをメモ。
ProFTPdではFTPクライアントからPASVコマンドが送出された際に、クライアントに返却するポート番号を特定のレンジから選択する「PassivePorts」という設定項目があります。コレを使うことでクライアントに返却するポートを49152-65534に絞ることも出来るというもの。
ただし、設定したポート範囲でポートオープン出来ない場合は、Kernelでポート選択をしてもらった上でログに書き出すとのこと。実用性を考慮すればまぁこうなりますか・・と思った次第です。
液晶ディスプレイの搬送
投稿者: kinusati, カテゴリー: コンピュータ
宅急便を利用して、液晶ディスプレイ(21インチ)を輸送する手段を探していたのだが、なかなか無いんですよね。私が見つけたのは以下。
- ヤマト運輸 : パソコン宅急便
- 日通航空 : パソコンピックパックサービス(パソコンポ)
私が輸送したいものは富士通製のVL-201VH(450mm×206mm×398mm)なので、コレのサイズに該当する箱を選択すれば問題なし・・ということですね。
今回はヤマト運輸のパソコン宅急便を利用し、BOX E(50cm×50cm×24cm)で行くことにしました。BOX Eは「17、19インチ液晶モニタ、インクジェット複合機」という指定ですが、サイズを伝えて問題なしと言うことがわかったので、大ジョブでしょう。サイズが合うならヤマト運輸の方が日通のパソコンポよりも安くすむし・・(運送時の安全性や保証の程度までは考えていない発言ですが・・)
Javaの逆コンパイラ “jad”
投稿者: kinusati, カテゴリー: Java
以前作成したJARファイルの中身が待ったくわからなかったのでjadを利用してclassファイルから逆コンパイルしたのですが、あまりの簡単さ、およびソースコードのきれいさにびっくりしました。こんな便利なツールが普通に使えるって感動ですな。と今更ですが。。。
JADについては以下のページがよくまとまっています。
FreeBSD 7.3 から 8.1にバージョンアップ
投稿者: kinusati, カテゴリー: freebsd
当サイトはFreeBSD(amd64) 7.3 で運営しているのですが、そろそろFreeBSDの8系にバージョンアップしようかなと思って7.3から8.1にバージョンアップしました。
以前当ブログで書いたのですが、バージョンアップ、大変面倒でした・・・。ただ以下ようにやれば、時間はかかるものの楽にバージョンアップ出来ることはわかったので、そこは収穫かな。
下準備
バージョンアップを行う前に、以下の点を確認および変更します。
- /usr/local/bin/bash等のログインシェルを持っているユーザがいるかどうかの確認。存在した場合はvipwコマンドを利用し/bin/tcshに変更しましょう。
- portsのmisc/compat7xは事前にダウンロードしましょう。
- portsのportupgradeはインストールしておきましょう。
FreeBSD 8系からライブラリの仕様変更が入っていて、↑の対応を行っていないとバージョンアップ作業中にシェルが使えなくなるとか、portsの再構築作業が出来ない等が発生して致命的なダメージを受けます。
なおmisc/compat7xは以下のようにダウンロードしました。
# fetch ftp://ftp.jp.freebsd.org/pub/FreeBSD/ports/amd64/packages-8.1-release/misc/compat7x-amd64-7.2.702000.200906.1.tbz
バージョンアップ作業
以下のようにやればOKです。
まず最初に、バージョンアップのためのデータを一式ダウンロードします。
# portsnap fetch update # freebsd-update upgrade -r 8.1-RELEASE
続いて、Kernelをインストールします。再起動が必要です。なおportsの再構築を行うためサービスは自動再起動しない方がいいでしょう。
# freebsd-update install # shutdown -r now
さて、ここからが本番。再起動後に8.1系のバイナリ一式をインストールしますが、くれぐれも手順は間違えないように・・。portsの再構築はホント時間かかる・・
# freebsd-update install # pkg_add compat7x-amd64-7.2.702000.200906.1.tbz # portupgrade -rf "lang/ruby*" # portupgrade -raf -x "misc/compat*" -x "lang/ruby*" # freebsd-update install # shutdown -r now
1. misc/compat7x -> 2. rubyのrebuild -> 3. misc/compat*, lang/ruby*以外のportsを再構築 -> 7系のライブラリ等を削除(freebsd-update install)という手順を踏まないと再構築に失敗します・・・
最後にcompat7xを削除します。なおゴミが残るのでそこは手動で削除。
# pkg_delete compat7x-amd64-7.2.702000.200906.1 # rm -rf rm -rf /usr/local/lib/compat/pkg
当サイトは上記で対応できました。やれやれ。
EXCELを利用していて、SUMIFで集計するケースがよくあると思います(店舗が東京の物だけサマリする等)。
ただ、SUMIFだと条件が一つしかとれないので「店舗が東京」かつ「営業が佐藤」の物をサマリするという事は出来ませんでした。
そこで使えるのがSUMPRODUCT関数。
これを使えば一発ですみます。楽ちん楽ちん。またExcelについて賢くなりました。
jmap/jhatについて
投稿者: kinusati, カテゴリー: Java
Javaでメモリリークを調査するため、hprofを利用してメモリプロファイルを行うことがある。
hprofはJVMの起動オプションを指定してプロファイルをとる代物であるが、若干もさっとするし、何よりよく落ちる・・・Tomcatを起動していたらTomcatもろとも道連れになり実用に耐えません・・・
HPROF ERROR: Cannot allocate malloc memory [hprof_util.c:160] HPROF TERMINATED PROCESS
これでは使い物にならんと思って調べていたら、jmapというツールが存在することを発見。jmapはJVMのPIDを指定することでヒープデータを取得することが可能なツール。これを使えば↑の用にhprofが落ちて困ることは回避可能となる。jmapはJDKに付属している(JREには付属していない)。以下使い方。
# jmap -dump:format=b,file=<ダンプファイル> <pid>
heapダンプを取得後は、jhatで解析。jhatについては「Java SE 6完全攻略」 第5回 プロファイラ hprofとよき相棒 jhatの説明が詳しいので割愛するが、heapダンプサイズが大きい場合、java.lang.OutOfMemoryError: Java heap spaceが出ます。。heapサイズを調整して起動すればいいんですけどね。
# jhat -J-Xmx1024m <ダンプファイル>
なれてくるとJavaって便利ですね。
当サイトはWordPressで運営しているが、コメントスパムが最近ひどいので、コメントスパム対策としてAkismetを導入した。
効果はこれからわかるだろう・・・
phpがcore dumpするようになったので・・・
投稿者: kinusati, カテゴリー: freebsd
phpのバージョンを5.3.3にバージョンアップしたらcore dumpする用になりました。
dmesgコマンドを実行すると以下のエラーが・・・
pid 66980 (php), uid 107: exited on signal 11 pid 66974 (php), uid 107: exited on signal 11 pid 66964 (php), uid 107: exited on signal 11
cactiユーザのcron実行時にcore dumpしている模様。なぜと思ったら、そもそもphpを実行したとき全部でcore dumpが発生している。
# php -v PHP 5.3.3 with Suhosin-Patch (cli) (built: Aug 1 2010 11:11:50) Copyright (c) 1997-2009 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies Segmentation fault: 11 (コアダンプ)
なんでだろう・・と思っていたら、MySQLのextensionを組み込むと具合が悪い。/usr/local/etc/php/extensions.iniからextension=mysql.soの行を外すと正常動作する。。。
そういえば!php5.3.3にバージョンアップするときにMySQLも5.5.4から5.5.5にバージョンアップしたなと思いだし、mysql55-clientを再度インストールし直したら、core dumpが出ないようになりました。
原因はわからないが動くようになったので、よしとしよう。