Ubuntuのリポジトリから、すでにlp-solveと liblisolve55-devはインストールしているから、あとはpythonのextension/moduleをインストールすればいいと思っていた。http://sourceforge.net/projects/lpsolve/files/から、lp_solve_5.5.0.15_Python_source.tar.gzをダウンロードして展開、sudo python setup.py installとやるだけだと思ったら、エラーが出てしまう。エラー表示が膨大なので、最初の方がどうなっているのかよく判らないほどだ。
そこで、lp_solve_5.5.0.15_source.tar.gzもダウンロードして展開の後、その中にextra/Pythonという形で先ほどダウンロードしたPython用ドライバのフォルダを入れた。 lp_solve_5.5に戻って、lp_solveとlpsolve55の中でそれぞれbash cccとやると、binディレクトリの中にそれぞれ実効ファイルが生成される。次に先のextra/Pythonに入って、sudo python setup.py installとやったら今度はインストールされた。やれやれと思って、
>>> from lpsolve55 import *としたら、今度はliblpsolve55.soがない! と云われるのだ。でも、/usr/lib/lp_solveの中に入っているじゃないか。よく判らないけれど、/usr/libにおいて、sudo ln -s lp_solve/liblpsolve55.so . といった具合にシンボリックリンクを張ってみた(あとで説明を読んだら、/usr/lib/lp_solveの中では認識されないという注意書きがあった)。今度は、
>>> from lpsolve55 import * >>> lpsolve() lpsolve Python Interface version 5.5.0.8 using lpsolve version 5.5.0.13 Usage: ret = lpsolve('functionname', arg1, arg2, ...)と表示されたから、ようやく使えるようになったみたいだ。これに二日悩んだ。その間、Rで使えばいいかとか、OpenOptを使えばいいかとか、いろいろインストールしたり、試用したりしたのである。やれやれ。
Finalfolderというスイスのオンラインストレージである。netzwertig.comで知った。だから、始めはドイツ語でよく判らなかった。どうやらオンラインストレージだろうってことくらゐしか判らなかった。
サイトを見に行ってみれば英語の説明があるので大丈夫だ。英語が嫌ならドイツ語が選べる。
ユーザ登録するとアカウントができたよというメールが来る。登録は無料でできる。専用のアプリケーションはないし、デスクトップにマウントできるとかいうこともない。WWWブラウザでファイルを見たり、アップロードしたり、ダウンロードしたりできる。
しかし、Finalfolderのアップロードはそんなことを想定して作られてはゐない。メールに添付して送ってくれというのである。パスワードの設定などはない。何でもkeep@finalfolder.comに送ればいいのだ。もちろん、登録したメールアドレスを送信者にしなければならないだろう。メール本文を送って保存することも可能。(少なくとも今は)無料版だけで、特に制限もない。それで、会社としてどうやって収益を上げるのかは私が心配することではないだろう。
とにかく、何でもメールで送れるので、パソコンだけでなく、スマートフォンとか携帯電話、ネットブックでも簡単に送信して保存できる。私のやうにWindowsでもMacOSXでもないOSが不利になることもないのも嬉しい。メールで送ればいいのだから。ただ、私の場合、メールで送るのそんなに嬉しいことでもない。なぜなら出かけることがあまりないからである。どれだけ活用するかはまだ判らないが、状況によっては使ひやすいオンラインストレージだということになろうかと思う。
KuroboxProに固定IPアドレスを設定する方法に関する情報をネットで検索をしても、Debian化(あるいは Fedora、Vine、Ubuntu化)しているものばかりで、もともと組み込まれているlinuxを使っている情報が意外に少ない。そのまま使う人はほとんどいないのだろうか。とりあえず、私はこのまま使うのである。理由は面倒くさいからだ。
固定IPアドレスは/etc/netinfoに書く。
my_ipaddress=192.168.0.100 my_subnetmask=255.255.255.0 my_dgw=192.168.0.1といった具合に。これは『玄箱PROの本』(毎日コミュニケーション)で知った。この本には、ネームサーバの設定は、/etc/resolv.confに書くと書いてある。nameserver 192.168.0.1みたいに。みんなはこれで問題ないようだ。ところが、私の場合、何度書いても再起動すると消えてしまうのだ(そういう例を一件見つけたが、今度どうしようかな……という感じで記事が終わっていたのだ)。こうなる理由は、/etc/init.d/networking.shが起動時に書き換えてしまうからである。だから、変更したネットワーク設定を反映させようとして、/etc/init.d/networking.sh restartとやった時点で、元に戻ってしまうというわけだ。networking.shの中身をじっと睨んで何を元に書き換えているかを見てみたら、これも/etc/netinfoから読んで書き換えるようなのだ。そこで、/etc/netinfoに
my_dns1=192.168.0.1なんて書いておく。そうすると起動時に/etc/init.d/networking.shが/etc/resolv.confにnameserver 192.168.0.1というように書いてくれる。 /etc /hostsにホスト名を書きたいとき、やはりこれも起動時に書き換えられてしまうので、いくらここに書き込んでも無駄なのだ。これは、/etc /host.infoに書いておく。すると起動時に/etc/hostsに書き込まれるというわけだ。
次に、/etc/nsswitch.confに
hosts: files dnsというように「 dns」を追加しておくと、DNSを参照してくれるようになるらしい。これは『玄箱PROの本』に書いてあるとおりだった。
以上のことが判るのに何時間もかかってしまった。まあ、そういうものだけど。
半年以上前に買っていたのに、放置していた玄箱pro。そろそろ何とかしなければという気になって、何とかすることにした。そもそも玄箱proが何かということは他所で調べてもらうことにして、結局のところ、今回も自分のための備忘録でしかないのだが、どうやって使い始めるかという手順を書いておくのである。
cp ./usr/local/sbin sshd /usr/local/sbin/ cp ./etc/ssh* /etc
PermitRootLogin yes PasswordAuthentication yes
# mknod -m 644 /dev/random c 1 8 # mknod -m 644 /dev/urandom c 1 9 # chown root:0 /dev/random /dev/urandomとやってみるのだけど、一行目では「もう/dev/randomは存在する!」と口答えされる。二行目、三行目と進んでsshdとやると、今度はエラーも出ない。再起動して、sshでログインできることを確認する。
cd /bin chmod +s busyboxとする。chmodの前後でls -la busyboxとやって比較してみれば、-rwxr-xr-xが-rwsr-sr-xに変わっていることが確認できる。これで、一般ユーザでログインしてからsuで管理者権限を取得できるようになった。ここで、rootでsshにログインできるようにした設定は元に戻しておく。Telnetも止めてしまう。
Caribreで電子書籍を管理閲覧する方法を覚えた今日この頃なのだが、肝心の電子書籍は一向に読まず、アプリケーションの使い方ばかり調べている。使い方を間違えたままライブラリに登録する本を増やし続けると、あとで困ったことになったりするかも知れないから、これでいいのだ。最初はまあ、そんなものだろう。CaribreはホームディレクトリにCalibre Libraryというォルダを作り、そこにファイルを保存する仕組みになっている。この場所はPreferencesで変更できる。これをDropboxの中に置けば、ネットにつながっていさえすればどこでも同じ電子書籍を読めるんじゃないかと思ったのだ。そう思ってちょっと検索してみると、いくつも報告例があるので、私が思いつくことくらい誰でも思いつくのだと判ると同時に、安心して試せるというわけだ。ところが……
私が使いたいのは、MacとUbuntu Linuxの組合せである。この組合せの報告は少ない(少なくとも私は目にしていない)。問題は、ubuntuの方だった。まずはMacOSXで「Location of ebooks」の場所をDropbox内に作ったeBooksLibraryというフォルダに変更した。次に(翌日)、ubuntuのCalibreで Preferencesボタンを押し、「Location of ebooks」という項目を変更した。すると、昨日Macで設定した電子図書と同じものが表示されるようになった。ここまでは、思惑通りである。今度は、 ubuntuのCalibreから新しい電子書籍を登録しようとしたら、こんなエラーが表示され、追加できないのだ。
なぜ? 「Location of ebooks」を前の場所(~/Calibre Library)に戻すと、追加できるようになる。理由は判らない。もう一つのMacOSXにもCalibreをインストールし、「Location of ebooks」の場所をさきほどのDropbox内のフォルダに設定する。今度は電子書籍を追加できる。追加できないものの、ubuntuでも読むことはできるようだから、まあいいか(あまりよくないけど)。しかし、よくよく書籍一覧ウィンドウを見てみると、表紙画像が間違って表示されている。フォルダを変更する前の記憶が混ざっているようだ。 上のスクリーンショットでは、Tails of Wonder and Imaginationが選ばれているのに、表示は一つ下のF&SF January-February 2010である。まあ、本文は読めるからいいということにしようか(あまりよくないけど)。梵寿綱の建築物を見て回ったときに、人間の腕が支えている照明や人間椅子を見て狼狽えながらも目が離せなかったわけだが、当然のことながら、自分もそんな照明や椅子が欲しいなと思ったのである。私だけではないはずだ。
インテリアハックの「不思議の国に迷い込んでしまったかのような収納家具」という記事に、Human furniture collectionという、人間が支える家具のデザインが紹介されていて、目が釘付けになったのだった。
ずいぶん生々しい足である。脚が好きなのかな、このデザイナーは。私は腕が支える照明が欲しいのだが。椅子もないのはなぜだろう。
これなら一つ買って部屋に置いてみたいと思うのだが、市販されているわけではないのが残念だ。運んでいるときに足でも踏んだら思わず謝ってしまいそうだが。もっと怖いのは、運んでいるときに足を踏んだら「痛いっ!」って声がしたときだろう。走って逃げられるとか。でも、二人は向かい合っているから走るのは難しいだろう。一人は後ろ向きに走らなくてはならないから。そうやって見ると、上の写真の右端のテーブルはちょっと気持ち悪いな。
「肩や首のコリがひどい人にオススメな画期的ワークチェアー」って書いてあって、実は私は肩や首や背中が痛くて痛くてたまらない日々を送っているということもあり、これは一体どんな素敵な椅子なんだと思い、場合によっては購入したいかも知れないなどと期待に震える指でマウスをクリックして読んでみたのがインテリアハックの記事である。
これ? これなのか。元の記事はTwist Chair (Behance Network)のようだ。説明を読んでも「肩凝り」という言葉はないような気がするのだが。まあ、そういう言葉がなくても、長時間机に向かって本を読んだりコンピュータを使ったりする人のための椅子ということだから、内容として間違っているわけではないと思う。
机に向かって熱心に何かに取り組んでいるときは背もたれなんか使わず、大抵の人が前かがみになっているはずだという。だったら、体を背中で支える必要なんかないのだから、前で支えればいいじゃないかという考えに基づいているようだ。胸の上部と額で支えるのだという。もちろん、尻から上胸部の高さ、額までの高さは人それぞれだから、この椅子はそういった長さを調節できるようになっている。
そういえば、一昨日まで出張で三日間ほどパソコンで作業をする仕事をしてきたのだが、日頃の自分の机ではないので、実につらかった。私は普通の人よりも若干椅子を高めにして、肘が机のめんよりも3〜4センチメートル上に位置するように調整しないと、肩や首が発狂しそうになるほど痛くなるのである。そこでは、肘がちょうど机の面と同じかわずかに低くなるくらいの高さになっていて。標準的な高さだと思うが私にとっては拷問である。椅子の高さを勝手に調整してしまえと思ったが、捻子が固くて動かせなかった。マウスはケーブル類をまとめているバンドを外して左側に配置できて助かったが、Windows VistaでMicrosoft Officeを使わなくてならないのはまた別の意味で拷問だったが、Ubuntu用意してくれというわけにもいかない。
そんなとき、この椅子を持参して、「私はこれでないと仕事ができませんので」と云って作業すれば肩が痛くなって発狂しそうになることもなくなるわけだ。が、できるか? この椅子を使う姿を人に見られてもいいと思えるだろうか。
そんなことを恥ずかしいなんて云えるあいだは、まだまだ肩凝りも大したことないねと云われたら、反論はできない。しかし、会社にこの椅子を使っている人たちがたくさん働いている姿があったら、かなり怖い。大学や高校のコンピュータ教室で学生が皆この椅子を使っていたら、怖いというより、はっきりいって大爆笑である。かなり勇気を要求する椅子だと思う。でも、市販されていたら試したみたいと思うほど肩凝りに苦しむこの頃である。
BLASTをスタンドアローンで動かすことにする。数千のBLAST解析をWWWサーバを使って解析するのはあまり現実的な方法ではないことがよく判ったからだ。前にMacOSXでは動かしていたことがあるのだが、Ubuntuでは初めてである。Ubuntuの場合、なんとncbiblastがリポジトリに入っているのだ。Synaptic(あるいはapt-get install)で、一発でインストールできるのだ。blast2をSynapticで選んでインストールすれば、libncbi6, ncbi-dataとともにインストールされる。/usr/binに、bl2seq、blast2、blastall、blastall_old、blastcl3、blastclust、blastpgp、formatdb、impala、megablast、rpsblast、seedtopなどが入っていることが判る。/etc/ncbiができているが、中身は空っぽである。そこをどう使ったらいいのかよく判らない。
ホームディレクトリに.ncbiというフォルダを作り、そこにdataとblastというフォルダを作る。さらにblastの中にdbを作る。もちろん、こうしなければならないという訳ではなく、たまたま私がそうしただけだ。.ncbiフォルダにncbircというファイルを作ってみた。
[NCBI] Data=/home/ynakano/.ncbi/data [BLAST] BLASTDB=/home/ynakano/.ncbi/blast/db今回は16S rRNA配列だけに限ったBLAST検索をしたいので、専用のデータベースを作るために、http://rdp.cme.msu.edu/misc/resources.jspから、release10_18_unaligned.fa.gzをダウンロード。105MB。展開してrdp10_18.fastaという名前で保存。1.27GB。これから、formatdbコマンドでBLAST用データベースを作るのである。
formatdb -i rdp10_18.fasta -p F -o Tこれで、以下のようなファイルが生成する。
formatdb.log rdp10_18.fasta.nhr rdp10_18.fasta.nsd rdp10_18.fasta.nsq rdp10_18.fasta.nin rdp10_18.fasta.nsi試しに以下のような16S rRNA配列を含むファイルを作り、test.fastaという名前で保存する。
> test1.seq AGAGTTTGATTATGGCTCAGATTG..... > test2.seq AGAGTTTGATCATGGCTCAGGACG..... > test3.seq AGAGTTTGACCTGGCTCAGGACGA.....次に、以下のようなコマンドで解析を実行する。
blastall -p blastn -d rdp10_18.fasta -i test.fasta -o test.out結果がtest.outに保存される。こんな内容である。
BLASTN 2.2.20 [Feb-08-2009] Reference: Altschul, Stephen F., Thomas L. Madden, Alejandro A. Schaffer, Jinghui Zhang, Zheng Zhang, Webb Miller, and David J. Lipman (1997), "Gapped BLAST and PSI-BLAST: a new generation of protein database search programs", Nucleic Acids Res. 25:3389-3402. Query= test1.seq length=251 xy=3909_1517 region=4 run=R_2010_02_08_17_57_12_ (251 letters) Database: rdp10_18.fasta 1,358,427 sequences; 1,177,075,220 total letters Searching..................................................done Score E Sequences producing significant alignments: (bits) Value S000944605 uncultured Neisseria sp.; 501C06(oral); AM420167 396 e-109 S000921397 uncultured Neisseria sp.; EHFS1_S14d; EU071525 394 e-108 S000613477 Neisseria meningitidis; CMCC(B)29019; DQ201323 387 e-106 ..... >S000944605 uncultured Neisseria sp.; 501C06(oral); AM420167 Length = 1504 Score = 396 bits (200), Expect = e-109 Identities = 242/251 (96%), Gaps = 5/251 (1%) Strand = Plus / Plus Query: 1 agagtttgattatggctcagattgaacgctggcggcatgctttacacatgcaagtcggac 60 |||||||||| ||||||||||||||||||||||||||||||||||||||||||||||||| Sbjct: 1 agagtttgatcatggctcagattgaacgctggcggcatgctttacacatgcaagtcggac 60 .....これで目的のファイルを目的のデータベースで解析できることが判ったが、ちょっと使いづらい解析結果である。WWW解析のときのようにPythonで操作したいのだが、NCBIWWW.qblastのときとどうも違うのである。一日こればかりやっている訳にもいかないので、今日はこれで。もう夕方になってしまったけれど。