gitとsubversion
忘れないように先にメモ。
あとで続きを書く。
cd /var/lib/git git svn clone -s --prefix=svn/ file:///var/lib/svn/gitsvnrepo_subversion mkdir gitsvnrepo.git cd gitsvnrepo.git git init --bare --shared=true cd .. cd gitsvnrepo_subversion git push --all ../gitsvnrepo.git cd ../gitsvnrepo_subversion git push ../gitsvnrepo.git 'refs/remotes/svn/*:refs/heads/svn/*' cd ../gitsvnrepo.git git branch -a # gitから取り込み、svnへコミット cd /var/lib/git/gitsvnrepo_subversion git pull --rebase ../gitsvnrepo.git master git svn rebase git svn dcommit # svnから取り込み、gitへpush cd /var/lib/git/gitsvnrepo_subversion git svn rebase git push ../gitsvnrepo.git master
とりあえずこんなで動いているのだけど、書くのコマンドの意味をもう少し知りたい。
シェルのexit 1でビルド失敗、0で成功
シェルのexit 1でビルド失敗、0で成功
Ubuntu Desktop CD を使って、マシンのバックアップをしてみる
現在実行中、うまくいくかわからない。
自己責任で。
Ubuntu 10.10 の Desktop CD をダウンロードしてきて、焼く。
立ち上がった後、以下のコマンドを全部 sudo つけて実行中
apt-get update apt-get install smbfs qemu-kvm # sambaをマウント mount -t cifs //windowssamba/share /mnt/smb -o username=guest,codepage=cp932,iocharset=utf8,defaults # 移動 cd /mnt/smb # イメージ作成 qemu-img create newdisk.img -f raw 100G # nbd を読み込む modprobe nbd # qemu-nbd -c /dev/nbd0 newdisk.img # パーティションを切る fdisk /dev/nbd0 ## n ## を押して、新しいパーティション作って ## w ## 押して書き込み # 今ここ、今回はwindowsなんで、ntfsclone ntfsclone -O /dev/nbd0p1 /dev/sda1 # 終了 qemu-nbd -d /dev/nbd0
mysql-proxy mysql-proxyとmysql sandbox
mkdir libs cp plugins/proxy/.libs/libproxy* libs cp plugins/admin/.libs/libadmin* libs
src/mysql-proxy --admin-address=127.0.0.1:4041 --proxy-backend-addresses=192.168.1.24:5154 --plugin-dir=/home/hogehoge/mysql-proxy/libs --admin-username=admin --admin-password=admin --admin-lua-script=/home/hogehoge/mysql-proxy/lib/admin.lua --proxy-lua-script=/home/hogehoge/mysql-proxy/mysql-proxy/example.lua
必要があれば LUA_PATH を追加する
LUA_PATH="/usr/share/lua/5.1/?.lua:lib/?.lua" mysql-proxy ....
いろいろ追加したかったので、
--lua-path="./?.lua;/usr/local/share/lua/5.1/?.lua;/usr/local/share/lua/5.1/?/init.lua;/usr/local/lib/lua/5.1/?.lua;/usr/local/lib/lua/5.1/?/init.lua;/usr/share/lua/5.1/?.lua;/usr/share/lua/5.1/?/init.lua;/home/manabu/work/mysql-proxy/mysql-proxy/lib/?.lua;" --lua-cpath="./?.so;/usr/local/lib/lua/5.1/?.so;/usr/lib/lua/5.1/?.so;/usr/local/lib/lua/5.1/loadall.so"
WebService::Solr を使った追加と検索のサンプル。
WebService::Solr 0.11
localhost:8983
でsolrをうごかしているとき。
solr 1.4.1 のサンプルとか。
#!/usr/bin/perl use WebService::Solr; use WebService::Solr::Query; my $solr = WebService::Solr->new; my @fields; my $id_field = WebService::Solr::Field->new( id => 'foobar' ); my $price_field = WebService::Solr::Field->new( price => 10000 ); push(@fields, $id_field); push(@fields, $price_field); my $doc = WebService::Solr::Document->new; $doc->add_fields( @fields ); $doc->boost( 2.0 ); my $id = $doc->value_for( 'id' ); print $doc->to_xml()."\n"; my @docs; push(@docs, $doc); $solr->add( @docs ); my $query = WebService::Solr::Query->new( { id => 'foobar' } ); my $response = $solr->search( $query ); for my $doc ( $response->docs ) { print $doc->value_for( 'id' )."\n"; }
実行結果
<doc boost="2"><field name="id">foobar</field><field name="price">10000</field></doc> foobar
luke で lucene 3.x で compress でstoreしたデータをみるパッチ
lucene 3.x(3.0.2だったり3.1devだったり) でCompressionTools.compressStringで格納したfieldのデータを
lukeでみようとしたんだけど、luke 1.0.1 では見れなかった。
Show Full Textしたあと、Show Contents AsでCompressという選択肢を追加するようにした。
lukeのサイト
http://code.google.com/p/luke/
から、
subversionをチェックアウトしたものにあてる。
documentの画面でみれたらいいなぁとおもったり、
選択肢は、Compressじゃなくて、Decompressなんじゃないかなぁとか、
そもそも自分の日本語がおかしいなぁとかいろいろあるが
とりあえず。
Index: src/org/getopt/luke/Luke.java =================================================================== --- src/org/getopt/luke/Luke.java (revision 39) +++ src/org/getopt/luke/Luke.java (working copy) @@ -31,6 +31,7 @@ import java.text.NumberFormat; import java.util.*; import java.util.Map.Entry; +import java.util.zip.DataFormatException; import java.util.zip.GZIPOutputStream; import javax.swing.JFileChooser; @@ -40,6 +41,7 @@ import org.apache.lucene.analysis.*; import org.apache.lucene.analysis.payloads.PayloadHelper; import org.apache.lucene.analysis.standard.StandardAnalyzer; +import org.apache.lucene.document.CompressionTools; import org.apache.lucene.document.DateTools; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; @@ -2871,6 +2873,14 @@ setString(find(dialog, "unit"), "text", " bytes"); value = Util.bytesToHex(data, 0, data.length, true); len = data.length; + } else if (enc.equals("cbCompress")){ + try { + value = CompressionTools.decompressString(data); + len = value.length(); + } catch (DataFormatException e) { + warn = true; + value = Util.bytesToHex(data, 0, data.length, true); + } } else if (enc.equals("cbUtf")) { setString(find(dialog, "unit"), "text", " UTF-8 characters"); value = f.stringValue(); Index: src/xml/positions.xml =================================================================== --- src/xml/positions.xml (revision 39) +++ src/xml/positions.xml (working copy) @@ -19,6 +19,7 @@ <choice name="cbHex" text="Hex dump"/> <choice name="cbInt" text="Array of int"/> <choice name="cbFloat" text="Array of float"/> + <choice name="cbCompress" text="Compress"/> </combobox> </panel> <table colspan="3" name="pTable" halign="fill" valign="fill" weightx="1" weighty="1"> Index: src/xml/field.xml =================================================================== --- src/xml/field.xml (revision 39) +++ src/xml/field.xml (working copy) @@ -19,6 +19,7 @@ <choice name="cbNum" text="Number"/> <choice name="cbInt" text="Array of int"/> <choice name="cbFloat" text="Array of float"/> + <choice name="cbCompress" text="Compress"/> </combobox> </panel> <textarea colspan="2" font="courier" width="370" height="150" wrap="false" weightx="1" weighty="1" halign="fill" valign="fill" editable="false" border="true" name="fDataText"/>
Bio::Das::Lite 2.04を試す。その後
そもそも、テストが通らない原因は、
http statusで302が返ってきたときに、次の場所をみにいかないようになっていたためのようだった。
http://www.ensembl.org/das/Homo_sapiens.NCBI36.reference
にアクセスすると
http://uswest.ensembl.org/das/Homo_sapiens.NCBI36.reference
こちらをみるように 302 で伝えられるが、そこをみにいかないので
そもそもダメだったようだ。
とりあえずおいかけられるようにしたら、07-singledsn-multiseg.tこれは通るようになった。
あてたパッチ
--- ./lib/Bio/Das/Lite.pm.orig 2010-09-01 22:23:12.984429549 +0900 +++ ./lib/Bio/Das/Lite.pm 2010-09-01 22:25:58.540430294 +0900 @@ -841,6 +841,7 @@ $curl->setopt( CURLOPT_NOPROGRESS, 1 ); $curl->setopt( CURLOPT_USERAGENT, $self->user_agent ); $curl->setopt( CURLOPT_URL, $url ); + $curl->setopt( CURLOPT_FOLLOWLOCATION, 1 ); if (scalar @headers) { $curl->setopt( CURLOPT_HTTPHEADER, \@headers ); @@ -931,6 +932,7 @@ my $req = $reqs->{$id}; my $uri = $req->{'uri'}; my $head = ${ $req->{'head'} } || q(); + $head = substr($head,rindex($head,"HTTP")); my $body = ${ $req->{'body'} } || q(); # We got a response from the server:
ただこれを適用すると 01-general.t で
DASのないページにアクセスするところで www.google.com にアクセスしているが、
すべてのデータをとれず、うまくいっていないようだった。
www.example.com に変更したらうまくいった。
{ ######### # test single http fetch (on a non-DAS page!) # my $str = q(); my $urls = { 'http://www.google.com/' => sub { $str .= $_[0]; return; } }; my $das = Bio::Das::Lite->new(); $das->_fetch($urls); ok($str =~ m|<html.*/html>|smix, 'plain http fetch'); }
残すは、次の2つだが
- 05-singledsn.t
- 10-multidsn.t
これらはどうも
http://das.ensembl.org/das/dsn
ここをみているのだけど、ここがそもそもサービスをしていないようだ。
This site "das.ensembl.org" is not currently being served by the Sanger Institute.
とりあえず生きているサイトで、リダイレクトはできるようになったとおもう。