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 の設定

最後に挿入したレコードの一意な ID を取得する

– LAST_INSERT_ID() を使うとよい。

INSERT INTO user_list (id,name) values (555, “foo”);
SELECT LAST_INSERT_ID();
 +——————+
 | LAST_INSERT_ID() |
 +——————+
 | 555 |
 +——————+

という感じ。コネクション単位で保持しているので、同時アクセスがあっても干渉しない。ただし、取得する ID は AUTO_INCREMENT でなければならない。
http://dev.mysql.com/doc/mysql/ja/getting-unique-id.html
– MySQL リファレンスマニュアル :: 11.1.12.3 最後に挿入したレコードの一意な ID はどのように取得するのか