ひでっぷの技術メモ

はてなダイアリーから移行しました

Debian(lenny)KDEでの日本語入力

インストールしたそのままの状態ではブラウザやGeditでは日本語入力ができてもKeditなどでは日本語入力ができない。 解決方法として、uim-qtとuim-ximをインストールする。 uim-qtはすでに最新バージョンが入っていたのでuim-ximだけインストールした。 apt-…

Debian(lenny)にKDEをインストールする

apt-get install kde では英語環境のみとなりメニューが英語になってしまう。 kde-i18n-jaもインストールすること。 apt-get install kde-i18n-ja

.NETのconfigファイルが変?

久々にVB.NETをやった。あるシステムの修正。 で、無事に終わって客先のプログラム入替の時に変なことが起こった。 DB接続先などをconfigファイルに書いてあるんだけど、修正したプログラムを起動すると・・・なぜか会社のサーバーに接続しようとする! conf…

Javaでシリアルポートを制御するDebian(lenny)編[2009.11.16追記あり]

Javaでシリアルポートを使用する場合はRXTXComm.jarを使用しますが、Debianの場合、なんとapt-getできてしまう! apt-get install librxtx-java Debian(lenny)ならばこれでRXTXComm.jarは/usr/share/java/の中に、librxtxSerial.soその他もろもろは/usr/lib/…

mysql3.23→mysql5.0のmy.cnf設定注意点

/etc/mysql/my.cnfの設定で以下の設定をコメントアウトしないと他IPアドレスから接続できない。bind-address 127.0.0.1これをしてあげないとGRANT構文で他IPアドレスから接続するためのユーザーを作ってもうまく接続できません。 mysql3.23までではなかった…

mysqlでもStatement,PreparedStatement,ResultSetのclose()は必要

mysql5.0の接続テストをするためにmysqlのJDBCコネクタを2.0.14から5.0.8に変更しました。 その後既存のシステムのテストをしていると、なんとOutOfMemoryErrorで落ちてしまうようになった。 どうやら2.0.14の頃はStatement,PreparedStatement,ResultSetのcl…

YAMAHA RTX1100(動的IP)とNetScreen SSG5(固定IP)のVPN設定メモ

時間があれば細かいところも書こうと思うけど、とりあえずYAMAHAのWebUIで設定できないところだけメモ書き。動的IP−固定IPでのVPNの場合、動的IP側がUserIDを固定IP側に送る必要があるが、YAMAHA RTX1100だとwebUIで設定したUserIDはID_KEY_IDとなってしまう…

Runtime.exec()にてprocess.getInputStream().close()だけではだめ?

Javaで外部スレッドを起動する時はProcessの標準入力、標準出力とエラー出力のstreamをclose()してあげないと「Too many open files」というIOExceptionが出てしまう。 また、標準出力やエラー出力が多くてstreamのバッファ容量を超えるとProcessがデッドロ…

phoneMEでスレッドダンプを取得する

LinuxでJavaを動かしている場合、各スレッドのスレッドダンプを取得することができる。 Javaの親スレッドを pstree -p | grep java*1 で探し出して、 kill -3 プロセス番号 とするとJavaの標準出力に各スレッドのスレッドダンプが表示される。phoneMEではデ…

無線LANが遅い原因は電子レンジ

ハンディ端末を使ったうちの会社のwebシステム。 前々から「すごい遅くなることがある。」と言われていたけど原因がずっとわからなかった。 で、最近わかったのが無線LANへの電子レンジの影響。電子レンジのノイズで無線LANが遅くなる!?客先は健康ランドで厨…

phoneMEのコンパイルオプションとCPU負荷

makeのオプションにCVM_DEBUG=trueをつけると詳細なデバッグ情報を見ることができる。 Exceptionの発生行数とか、もっと細かいところだとエラーが出たCVMのソースの行数までわかる。 GDBと組み合わせるとCVMのデバッグもできるみたいだ。 ただし、CPU負荷が…

phoneMEのバグ?

Armadillo-9+phoneMEを使用して定期的に複数スレッドでpingをうつプログラムをずっと動かしているとOSからsignal 11を受けてプログラムが止まってしまうという現象に悩まされている。 現象発生は不定期。どうもスレッド数が多くて複数スレッドで同時にping…

Runtime.exec()でLinuxのパイプ使用(追記)

以前Runtime.exec()を使用してのLinuxでのパイプ使用について書いたが、どうもRuntime.exec(String command)だとうまくパイプ使用ができないようだ。 試したのはgrepだけど、パイプ以降が無効になってるかのようにgrepせずにすべての結果を出してくる。 悩ん…

Armadillo-9で使用するphoneMEのコンパイル方法

phoneMEのコンパイル方法を書いておこうと思いながらずっとほったらかしていました。 phoneMEのコンパイルで検索してここにたどりついた方もいるようなので残しておきます。 ただし、Armadillo-9で使用するphoneMEのコンパイル方法です。 コンパイルにはATDE…

DebianでJBuilder2006を動かす

以前DebianをインストールしたDynabookにちまちまと開発環境をいれている。 うちのJava開発用IDEはJBuilder2006なのでJBuilder2006をインストールする。 事前にインストールを試した先輩からCDのインストーラーは動かないと教えてもらっていたので以下の方法…

WindowsXPとDebianのデュアルブート

Armadillo-9を使用した仕事はとてもLinuxに依存したシステムになっている。 たとえばJavaからpingコマンドをうったりifconfigをうったりしている。 Javaの開発はWindowsでもLinuxでもできるけど、いざデバッグとなるとLinuxマシンじゃないとできない。 会社…

Runtime.exec()でLinuxのパイプやリダイレクト使用

RuntimeクラスのRuntime.getRuntime().exec(String command)にてLinuxのパイプやリダイレクトを使用する場合はシェルスクリプト経由にしないとうまく動かない。 × Runtime.getRuntime().exec("ps -A | grep syslogd"); ○ Runtime.getRuntime().exec("/bin/sh…

Jakarta Commons Net FtpClientのタイムアウト設定

FtpClientの接続タイムアウト設定はsetDefaultTimeout(int timeout)メソッドで行う。timeoutの単位は(ms)。 これをやっておかないとftp接続時にネットが切断されたりした場合ずーっと待ってる気がする。 ちなみに接続後のタイムアウト設定はsetSoTimeout(int…

バッファロー製ルーターのrootパスワードには文字数制限がある

自宅で使ってる無線LANルーターWHR-G。 先日、無線LANの暗号化方法をWEPからWPA2-PSKに変更しようとルーターにアクセスするもパスワードエラーでルーターに入れない・・・。 思いつくパスワードを入れてみたが結局入れずルーターを初期化することに・・・。 …

SableVM1.13のバグ?

どうもSableVM1.13のGCにはバグがあるようです。 public class ThreadTest { public ThreadTest() { super(); } public static void main(String args) { ThreadTest threadtest = new ThreadTest(); threadtest.start(); } public void start(){ int no = 0…

phoneME使用上の注意メモ

Armadillo-9+Javaで開発をしています。 最初はオープンソースのSableVM1.13を使用しようと思っていましたが、致命的なバグがあり使用を断念しました。 (バグについては後日落ち着いてから記事にしたいと思います。) SableVMの代わりに使用するのがphoneME…

FTPクライアントの作成(Jakarta Commons Net編)

前回のFTPクライアントの作成(Socket編)だとユーザー/パスワードが間違っていたりFTPサーバー自体が動いていなかったりした場合のエラー処理が全くしてありません。 FTPサーバーからの受信内容を解析して処理をすればいいんですが面倒くさい。 で、そんなこ…

FTPクライアントの作成(Socket編)

JavaでのFTPクライアントの作成方法。 まずはべたなSocketを使った方法。参考にしたのはFTPの仕組みとJavaでHello World FTP編 private Socket ctrlSocket; private OutputStream ctrlOutput; private InputStream ctrlInput; /** * FTPへuploadする * @para…

Armadillo-9でメール送信の落とし穴

以前、Armadillo-9でメール送信について書きましたが今日試してみて気づいたことが。メール送信をするJavaプログラムを作成、起動して何げにTopコマンドを眺めていると・・・ メモリめっちゃ食ってる!Swapしまくり! どうやらオプションの-Dgnu.classpath.n…

SimpleDateFormatクラスparseメソッドのLocaleに注意

SimpleDateFormatクラスのJavaDocに以下の例が書いてあります。 次の例に、U.S. ロケールで日付/時刻パターンがどのように解釈されるかを示します。指定された日付と時刻は U.S. Pacific Time タイムゾーンのローカルタイム 2001 年 7 月 4 日 12 時 8 分 56…

文キャッシュの使用方法

ある客先で作成したアプリがメモリ・リークするとのことで色々調べていると以下のような情報があった。 Oracle JDBC Drivers README 大きいCHAR列またはVARCHAR列を含む表でPreparedStatementを使用すると、 メモリー・リークが発生します。 この問題は、文…

ojdbc14.jarはJ2SE1.4のためのもの

J2SE5.0はサポート外だそうで・・・。 J2SE5.0の場合はojdbc5.jar J2SE6.0の場合はojdbc6.jar を使用するようにとのことでした。 1.4で使えるんだから5.0でも当然・・・と思ってました。 実際ほとんど問題なく使えてるんですが、致命的なバグがあるみたいで…

Armadillo-9でメール送信

PCと一緒でJavaMailを使用するだけ。 mail.jarとactivation.jarを/usr/lib/sablevm/jre/lib/extにコピー。 ただし"iso-2022-jp"のエンコードを使用するためにjavaのオプションで java -Dgnu.classpath.nio.charset.provider.iconv -jar hogehoge.jar が必要。…

Armadillo-9で構築した環境のコピー

構築に苦労をしても一度構築してしまえばあとは簡単。 CFカードの中身をごっそりコピーしてとっておいて新しいCFカードにコピーするだけ。 コピーする時は所有者情報を残してコピーするために-pオプションをつけること。

Armadillo-9のカーネル再コンパイル方法

Armadillo-9で色々な機能を有効にする時にカーネルの再コンパイルが必要になります。 最初にカーネルの再コンパイルが必要になったのはpppを有効にする時でした。 最初は自分のLinuxマシンに環境を構築しようとしましたが構築がうまくいっているかもわからな…