May
Sub-archives
May 31, 2009
今日のトレーニング
猿投神社のところをぐるっと。
人に勧められたので行ってみた。6kmで300m登るぐらい。まあまあの負荷かな。踏み込んでガンガン登っていく予定なんだが、体がまだ駄目。つらいなあ…。
道は結構荒れていて登りはいいけど下りが恐いね。家から1時間で行けるのはいいけど本格的なトレーニング目的では疑問が残る。
さっさと県道33を登ってこようや。
Quills-1.7に向けて
Quills-1.7rc1をインストールしてテスト。
ああ、原因がわかった。WeblogArchiveのtypeが消えているにもかかわらずWeblogArchiveの中にWeblogEntryがあるからcatalogで発見されないのでmigrationの対象になってない。多分。こんなところか。WeblogArchiveをためしに作ればいいのか?
とごちゃごちゃした話が続いて…。
結局Weblogのインスタンスを別に作ってコピー&ペーストをする。trackbackがあるとエラーになるので全部削除する。そのためにmechanizeを使ってスクリプトを書く。portal_workflowを修正してコピーしたあとにQuillsをアンインストールしてインストールしたりとかやっていたらなんとか動くようになった。ふーむ、目処は立ったというところだろうか。Plone-3.3が出たら移行しようかね。
python-mechanizeでcheckbox
python-mechanizeを使ってcheckboxを操作する方法がわからない
br['checkboxname'] に何を代入すればいいんだろう?
unittestのコードを読んだらわかった。valueを渡せばよいということだ <input type="checkbox" name="hoge" value="fuga" />なら ['fuga']を代入すればいい。
debugモードでcatalogから情報を取り出す
Zopeをdebugモードで動かしてcatalogから情報を取り出すことをやった。
debugモードで起動する。appがトップに割り当てられている。
portal=app['theportal']
とやってから
wes = p.portal_catalog(meta_type='WeblogEntry')
とやればcatalogからWeblogEntryが全て取り出せる。 あとは
for w in wes: print w.getObject().absolute_url_path()
ととかやる。
AsteriskNOW-1.5.0にソフトフォンをつなぐ
やっと実験してみた。
クライアントにはX-Liteを使用してみる。
FreePBXにログインして、ExtensionsからGeneric SIP Deviceを追加する。User Extensionが電話番号。DisplayNameがログインIDなのか?よくわからんけど適当にやってみた。
むしろX-Liteのほうが問題か。Domain ProxyのRegister with domain...にチェックを入れていたらつながらなかった。
May 16, 2009
GNOMEでCD焼き
久しぶりにCD-Rを作ってみた。
なんと、ツールを起動してコピペでぴっぽこぴーで出来上がりとは恐れいった。
May 14, 2009
tinyca
認証局を運営するツール
up2dateのダウンロード元の設定
自分で設定ファイルを書かなきゃいけないのね。
/etc/sysconfig/rhn/sourceを編集する。
yum centos4-Base http://ftp.riken.jp/Linux/centos/4/os/$ARCH/
のように変更した。ミラーサイトはCentOSのウェブから探す。
yumはミラーサイトから選択するが遠いところから選ばれたりもするらしい。yum-plugin-fasterstmirror を入れるとよいらしい。
Oracle Buys Virtual Iron
へぇ。
OrcaleVMとどう統一していくかって話になるのかな…。
ブランドはどちらを残すのだろう。
そして価格設定はどうするのかな。OracleVMは無料配布しているけどVirtualIronは違う。
あとこの前買収したSunMicrosystemsのxVMとの関係は?
May 12, 2009
sid地雷爆発(dbusらしい)
sidで地雷を踏んづけた。
halがこけて二進も三進もいかなくなった。halにそれらしきbugは出てない。single userで起動させて/etc/init.d/hal startをやろうとするとdbusの起動が必要ですと。じゃあdbusを調べると #528145ということだった。とりあえずダウングレードして15分で片付けた。
ImageMagickのconvertにびっくり
convertにいつのまにこんな機能が!
% convert http://www.example.com/sample.jpg sample.gif
とかできるようになっている。
May 11, 2009
live-helper
Debian Live build scripts
Live CDを作成するツール。とりあえず動けばいいやは非常に簡単。
% lh_config
# lh_build
# kvm -cdrom binary.iso
とここまでで起動する。簡単だった。
haxe
Web-oriented universal programming language
JavaScriptに似た雰囲気のある言語。一つのソースからJavaScriptやFlashやPHPなんかが生成できるとのこと。チュートリアルをちょっとやってみたところなかなか面白い感じ。Ajaxのコードがあんな素直に書けるのは面白い。
wkhtmltopdf
Command line utility to convert html to pdf using WebKit
WebKitを使ってウェブページのスナップショットをPDFで作成してくれる。これは便利だ。
May 07, 2009
modelformset_factoryのこと
modelformset_factoryを作ってフォームの一括処理をしようとしたらどうも挙動がおかしい。
ModelFormSetを作って新規のフォームを初期データ付きで作成しようとした。しかし新規にデータを挿入しているつもりなのに既存のデータが上書きされる。なぜだなぜだと考えていたがそもそもそういう挙動だった。
TheModelFormSet = modelformset_factory(TheModel)
print TheModelFormSet(inital=init_data)
だいたいこのような記述になるがほっておくとフォームの雛形をTheModel.objects.all() 相当から作ることになる。そこから初期値が、特にidが作成されてしまう。idがフォームのパラメータに含まれるということはinsertではなくてupdateの挙動になる。まいった。
完全にデータの入ってないフォームを作成しようと思ったらできる。例えばhttp://code.djangoproject.com/ticket/9538にあるようにすればできる。ただ、これにinitialを引数で与えるとエラーになる。initialはquerysetで作成したModelのインスタンスに対して適用しようとするので、当然数が合わずにエラー。initialのパラメータに {'id':None}を渡してやれば id が空のフォームはできるが必要のないquerysetを内部で実行することになる。それも気持が悪い。
自分でTheModelFormを作成してから TheModelFormSet を作成すればもちろん問題ないがめんどくさい。はてさて、簡単な方法がないものか。
May 01, 2009
darcs-buildpackageを使ってみる
意外に簡単。
debian/とupstreamをまとめてdarcsで管理するツール。
準備。~/.darcs-buildpackgeを設定。リポジトリをどこに展開するか設定する。
repobase = /home/takaki/dbp
upstreamrepo = %(repobase)s/%(package)s.upstream
debianrepo = %(repobase)s/%(package)s
まず最初のリポジトリを作成する。
$ dbp-importdsc tokyocabinet-haskell_0.0.2-1~1.dsc
VCSCMD: darcs
LOGTEXT Imported tokyocabinet-haskell-0.0.2
into Darcs repository
Finished recording patch 'Imported tokyocabinet-haskell-0.0.2'
Finished tagging patch 'TAG UPSTREAM_tokyocabinet-haskell_0.0.2'
Finished pulling and applying.
dpkg-source: warning: extracting unsigned source package (/home/takaki/deb/htc/tokyocabinet-haskell_0.0.2-1~1.dsc)
dpkg-source: extracting tokyocabinet-haskell in tokyocabinet-haskell-0.0.2
dpkg-source: info: unpacking tokyocabinet-haskell_0.0.2.orig.tar.gz
dpkg-source: info: applying tokyocabinet-haskell_0.0.2-1~1.diff.gz
VCSCMD: darcs
LOGTEXT Imported tokyocabinet-haskell-0.0.2
into Darcs repository
Finished recording patch 'Imported tokyocabinet-haskell-0.0.2'
Finished tagging patch 'TAG DEBIAN_tokyocabinet-haskell_0.0.2-1~1'
$
これで ~/dbpにtokyocabinet-haskellとtokyocabinet-haskell.upstreamという二つのリポジトリが作成される。debをbuildする作業はtokyocabinet-haskellのほうで行う。_darcsディレクトリが存在するのでそのままdebuildをやっても駄目である。darcs-buildpackageを利用する。
buildの風景は省略。
さて、新しいupstreamができたとき、uupdateを今までは使ったが変わりにdbp-importorigを使う。
$ dbp-importorig ~/Desktop/tokyocabinet-haskell-0.0.4.tar.gz tokyocabinet-haskell 0.0.4
VCSCMD: darcs
LOGTEXT Imported tokyocabinet-haskell-0.0.4
into Darcs repository
Finished recording patch 'Imported tokyocabinet-haskell-0.0.4'
Finished tagging patch 'TAG UPSTREAM_tokyocabinet-haskell_0.0.4'
$
という具合になる。
debの作業用リポジトリで darcs pull を実行すると upstreamの変更がmergeされる。
~/dbp/tokyocabinet-haskell$ darcs pull
Pulling from "/misc/home/takaki/dbp/tokyocabinet-haskell.upstream"...
Thu Apr 30 16:59:35 JST 2009 takaki@asis.media-as.org
* Imported tokyocabinet-haskell-0.0.4
into Darcs repository
Shall I pull this patch? (1/2) [ynWvplxdaqjk], or ? for help: y
Thu Apr 30 16:59:36 JST 2009 takaki@asis.media-as.org
tagged UPSTREAM_tokyocabinet-haskell_0.0.4
Shall I pull this patch? (2/2) [ynWvplxdaqjk], or ? for help: y
Finished pulling and applying.
~/dbp/tokyocabinet-haskell$
さて、このままでは deb としての変更は認識されていないので dch -v 0.0.4-1として新しいdebian/changelogのエントリーを追加する。dbp-buildpackageを実行したりしてパッケージのbuildのテストをしたりする。作業したあとにdarcs recordを適宜実行する。debのリビジョンとして区切りだなと思ったら darcs record と dbm-markdebを実行してtagを打つ。その繰り返しで進めていく。思ったより簡単だった。
メモ
間違えてdbp-markdebをやってしまったときにはdarcsのtagを削除するやりかたで普通にできる。
~/dbp/tokyocabinet-haskell$ darcs unrecord -t 'DEBIAN_tokyocabinet-haskell_0.0.4-1~2'
Thu Apr 30 17:11:37 JST 2009 takaki@asis.media-as.org
tagged DEBIAN_tokyocabinet-haskell_0.0.4-1~2
Shall I unrecord this patch? (1/1) [ynWvplxdaqjk], or ? for help: y
Finished unrecording.
~/dbp/tokyocabinet-haskell$
# いろいろ作業
~/dbp/tokyocabinet-haskell$ dbp-markdeb
Finished tagging patch 'TAG DEBIAN_tokyocabinet-haskell_0.0.4-1~2'
~/dbp/tokyocabinet-haskell$
FusionForgeって?
Developer Newsを読んでいたらaliothがgforgeからFusionForgeに変更したという記述が。
gforgeのfree版という位置付けのようだ。GForge, L.L.C.がfrom scratchでgforge-5.0を作って今までのようなフリーソフトウェアとは違う取り扱いになったので、4.xからGPL forkを作って名称変更しました…ということか。

