コンパイル済みのクラスの動作を、バイトコードを書き換えることによって変更することが可能になる。既存のクラスの実装をハンドリングする事もできるため、AOP の実現のために用いられる。JBoss, Bugdel が利用している。
http://www.javassist.org/
– Javassist 公式(JBoss.com)
http://www.csg.is.titech.ac.jp/~chiba/notes/javapress03/
– Javassist 入門
http://muimi.com/j/aop/javassist/
– Javassist にさわる
投稿者: editor
ActionScript での変数のスコープの扱い
少しはまったのでメモ。
– 宣言無しでローカル変数のように(つまり this とかを使わず)変数に代入すると、その変数はグローバル変数になる。
– var 宣言した時だけ現在のスコープに限られたローカル変数になる。
Flash でオブジェクト指向プログラミング
http://www.fumiononaka.com/TechNotes/Flash/index.html#OOP
– fumiononaka.com: Macromedia Flash 非公式テクニカルノート.
オブジェクト指向まわりの情報が多くてよさげ。他にも、トラブルシューティング、ユーティリティ関数、Tips など色々。
PHP でランダム文字列を生成
JavaScriptでランダムなパスワードを生成する の PHP 版
<?php
/**
* ランダムな文字列を生成する。
* @param int $nLengthRequired 必要な文字列長。省略すると 10 文字
* @return String ランダムな文字列
*/
function getRandomString($nLengthRequired = 10){
$sCharList = “abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_”;
$sRes = “”;
for($i = 0; $i < $nLengthRequired; $i++)
$sRes .= $sCharList[mt_rand(0, strlen($sCharList) – 1)];
return $sRes;
}
// 使ってみる
echo getRandomString() . “\n”;
?>
JavaScript で継承
– これがまだスマート。
SubClass.prototype = new SuperClass();
JavaScript で ActiveX を使う
– ActiveXObject というクラスがあった。これを直接インスタンス化する方法と、Object タグを使って id 属性の名前で参照する方法の2通りがある。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/script56/html/js56jsobjactivexobject.asp
– MSDN Japan Home – MSDN Library Japan – Windows スクリプトテクノロジ – JScript – リファレンス – オブジェクト – ActiveXObject
JDBC の PreparedStatement で ? で置き換えられない箇所
– 次のようなコードで SQLException が出て, クエリのどこがおかしいのか数分悩んでしまった。
final int nLimit = 10;
final int nOffset = 20;
Connection con = getConnection();
try{
PreparedStatement ps = con.prepareStatement(
“select id from user limit ? offset ?”); // ここで例外
try {
ps.setInt(1, nLimit);
ps.setInt(2, nOffset);
// ….
} finally { ps.close(); }
} finally { con.close(); }
パラメータマーカー “?” は limit, offset には使えないというのが答え(com.mysql.jdbc(mysql-connector-java) 3.1.6 で確認)。次のようにするしかないのかな…
“select id from user limit ” + nLimit + ” offset ” + nOffset
オフセットや表示数を外部から受け取る場合はもちろん int に変換してからにすること。
着うた制限解除
– 音携闊歩 – 自作着うた登録
携帯の音楽まわりの情報がいいですね。
と、ここによると、次の条件で FOMA 携帯で再生できるそう。
・ファイルフォーマット 3GPP(Mobile MP4)
・オーディオ AAC-LC
・データレート 80kbs
・チャンネル ステレオ
・出力のサンプルレート 16.000kHz
ファイルサイズは300kb以下に収まるようにします(700i/901iは500kbでも可)。
(901iや700iはビットレート/サンプリングレート = 320kbs/48kHzが標準)
で、着うたに指定できるようにするにはバイナリを直接触る。
できあがった3gpファイルをバイナリエディタで開きます。文字列「dcmd」を探しておきます。
ファイルサイズ(右クリック→プロパティ)を調べて以下のように書き換えます。
・偶数 dcmd以下2バイト目を「0E」(64 63 6D 64 00 00 → 64 63 6D 64 00 0E)
・奇数 dcmd以下2バイト目を「0A」(64 63 6D 64 00 00 → 64 63 6D 64 00 0A)
(奇数のとき「0A」で登録不可の場合は「0C」)
HTML で空白文字列がデザインを崩す
– ソース整形で空白文字(空白、改行、タブ)をいれてたらデザインが微妙に崩れ、原因究明に手間取ってしまった。
<td>
<a href=’foo.html’
alt=”foo”>
foo
</a>
</td>
– TD タグや A タグなど、子要素でなくデータをとる系のタグでは、空白文字は無視されず、表示されてしまう。
– SGML では、全ての空白文字は無視されず、解釈の対象になるのが基本。ただ、全てが解釈されてしまうとコード整形ができなくなるので不便ということで、タグ、要素、属性間で部分的、意図的に無視するようになっている。開始タグの途中の改行も、親がデータ系なら表示されてしまう事になる。データを持つタグの中で無理に整形したいならコメントタグを使って、コメントとして改行するとか工夫しないとだめ。スマートに済ませるなら、データを持たないタグだけで改行する。
<!– コメントを使って無理矢理(見目悪っ) –>
<tr>
<td><!–
–><a href=’foo.html’ alt=”foo”><!–
–>foo<!–
–></a><!–
–></td>
</tr>
<!– または –>
<tr>
<td><a href=’foo.html’ alt=”foo”>foo</a></td>
</tr>
<!– これは不要な空白が表示されるパターン –>
<tr>
<td>
<a href=’foo.html’>foo</a>
</td>
</tr>
<!– これも –>
<tr>
<td><a
href=”foo.html”>foo</a>
</td>
</tr>
<!– これは多分大丈夫?? –>
<tr>
<td
align=”center”
border=”1″
><a href=”foo.html”>foo</a></td>
</tr>
長い開始タグとかをコメントしたくて…
Postfix + Cyrus SASL で Outlook でも SMTP Auth
– broken なメールクライアントであるところの Outlook で SMTP Auth を使うには、 postfix の main.cf で次の記述が必要。
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $mydomain
ただし LOGIN しか使えないので POP before SMTP のほうがまだマシ。
http://uniunix.net/contents/postfix.html
– Linux Lovers -Fedora Coreで始めるサーバ構築-: Postfix の設定