SSH 経由でネットワーク共有フォルダにアクセスする

SMB over SSH
 
要するに, Microsoft Loopback Adapter ドライバをいれ、そこに実際の LAN とは別のネットマスクの LAN IPアドレスを振り、そのアダプタについてポート 139 番の LISTEN をなくした上で、その IP の 139 ポートに対しての接続を全てサーバ側 LAN の指定ポートにローカルフォワードすればよい。詳細はリンク先にあります。

Java な shell を使ってみる

OOo 2.0 で知った Java 言語シェルの BeanShell を使ってみた。

bsh% import java.util.*;
bsh% System.out.println(new Date() + “: Hello World!!”);
bsh% exit();

とか。
ちょっとしたコード書くときに面白いので

$ vi /usr/local/bin/bsh
#!/bin/sh
java -cp /usr/local/bsh/bsh-2.0b4.jar bsh.Interpreter
:wq
$ chmod 0755 /usr/local/bin/bsh

みたいにしておいた。
参考:
BeanShell(公式)
BeanShell ご紹介 – オブジェクトと遊ぶ(豆蔵)

よくある描画処理l。中心に描画する時の Tips

絵を中心に表示させたい時など、

int x = (nWidth – img.getWidth() ) / 2;

みたいなことをよくするが、人のコードを見ていて

int x = nWidth – img.getWidth() >> 1;

とかやってて、ビットシフトいいかもと思いました。優先順位が + – より低いのがミソ。使うかどうかは好み次第。

DataOutputStream 関係の仕様

– DataOutputStream.write(byte[] str, int offset, int len) は offset + len が str.length() を超えると ConnectionException が投げられる。

        try {
            DataOutputStream out = Connector
                    .openDataOutputStream(“scratchpad:///0;pos=0”);
            out.write(“Something”.getBytes(), 1, 20); // OK
out.write(“foo”.getBytes(),0,4); // Error!!
            out.close();
        } catch (IOException e) {
            e.printStackTrace();
        }

i アプリに必要なADF(.jam) 記述

– AppClass = Foo
IApplication を継承している実行クラス。必須。
– PackageURL = foo.jar
アプリを格納している jar ファイル。相対ディレクトリ指定、URL 表記ともに可能。必須。
– AppSize = 12345
PackageURL で指定したファイルのサイズをバイト単位で正確に指定する。必須。
– SPsize = 102400
確保する必要のあるスクラッチパッド領域をバイト単位で指定する。必須。
– LastModified = Mon, 07 Nov 2005 16:00:00
更新時刻。

WWW, DD MMM YYYY HH:mm:ss

という表記をとる。503i 系対応にするときは月に Apr を指定してはならない。必須。
i アプリのバージョンアップ時にチェックされる。
– UseNetwork = http
i アプリ上で Web アクセスする場合に必須
– UseBrowser = launch
i アプリ上でブラウザを立ち上げる場合に必須
– AppVer = X.X
バージョン指定。必須?
– AppTrace = On
指定すると携帯端末でデバッグ出力(トレース情報, ダウンロード元 URL 等)を表示するようになる。
トレース表示の仕方は機種によって全く異なるため、<http://www.saturn.dti.ne.jp/~npaka/ibook2/izon.html> の各バージョンについての「待ち受けボタン・トレースの表示」を参照。

i アプリのダウンロードに必要な HTML 記述

最低限必要なのは次の表記:

  <!–
    – 参照用の id(“fooId”) と jam ファイル(“foo.jam”)を結びつける。
    –>
  <object declare id=”fooId”
          data=”foo.jam”
          type=”application/x-jam”>
  </object>
  
  <!–
    – ダウンロードのためのリンク。
    – ijam に指定した ID(“fooId”) に関連づけられているアプリケーションをダウンロードする。
    – i アプリ対応していない端末からアクセスした場合は href に指定した error.html にリンクする。
    –>
  <a ijam=”#fooId” href=”error.html”>Download</a>

DoJa エミュレータでオプションとなっている API を使うと例外が出る

少し前にはまった。DoJa エミュレータのデフォルトではライブラリが不足しているので呼び出そうとすると RuntimeError になる。エミュレータ上で正しく動作させるには micro3d_v2_32.dll というファイルを DoJa の bin フォルダにいれてやる必要がある。
<http://www.mascotcapsule.com/toolkit/docomo/>
– micro3d_v2_32.dll の配布元。
– 追記 2005-12-19: ダウンロード場所がわかりにくい気がするので捕捉。現在、
DoJa 2.5oe/3.0/3.5 の Tools -> DLL micro3d_v32.dll でダウンロード可能。