2010-05-22

Web上のファイルの一部の取得

HTTP には,
Range と呼ばれるデータの一部分だけを取得する機能があります.
これを Python3 で試してみました.


>>> import http.client
>>> conn = http.client.HTTPConnection("www.google.co.jp")
>>> conn.putrequest('GET', '/')
>>> conn.putheader('Range', 'bytes=0-10')
>>> conn.endheaders()
>>> res = conn.getresponse()
>>> print(res.status, res.reason)
200 OK
>>> data = res.read()
>>> print(len(data))
14486
>>> conn = http.client.HTTPConnection("www.python.org")
>>> conn.putrequest('GET', '/')
>>> conn.putheader('Range', 'bytes=0-3')
>>> conn.endheaders()
>>> res = conn.getresponse()
>>> print(res.status, res.reason)
206 Partial Content
>>> data = res.read()
>>> print(len(data))
4

2010-05-17

Android アプリケーションのビルド

Android のアプリケーションは,
オープンソースのものが多くあります.
ソースコードをダウンロードして, ビルドする方法をまとめてみました.
なお, 署名するためのキーの作成方法については省略します.

ここでは,
メールクライアントである k9mail を例にとって, 説明してゆきます.
  1. ソースをダウンロード
    git svn clone http://k9mail.googlecode.com/svn
  2. プロジェクトの設定をアップデート
    android update project --name k9 --target android-7 --path $PWD
    (build.propertiesの編集が必要かも; 「android-6」を「android-7」に書き換える.)
  3. プロジェクトをビルド
    ant release
  4. 署名
    jarsigner -verbose -keystore キーストアのファイル名 bin/k9-unsigned.apk キー名
    jarsigner -verbose -verify bin/k9-unsigned.apk

  5. ZIPのアライン
    zipalign -v 4 bin/k9-unsigned.apk bin/k9.apk
  6. 端末へインストール

    sudo $(which adb) start-server
    sudo $(which adb) install -r bin/k9.apk

2010-05-07

分散ファイルシステム coda をビルド

まず以下のパッケージを coda のページからダウンロード,
ビルドしてインストール. ( ./configure ; make ; make install)
  1. lwp
  2. rpc2 - portable and extensible remote procedure call
  3. rvm - Recoverable Virtual Memory
  4. coda
CentOS 5.4 ではとくに問題なくビルド/インストールできました.