GitHub版Fastladderをインストールしてみた

5年くらい動かしているオープンソース版Fastladderだけど、この5年のうちにヒトの異動なんかでゴミユーザーが溜まりまくったり、メンテも大変だったり(今はsupervisordで動かしている)と、そろそろ新しくしたくなったので、昨日今日で仮想環境から稼働までさせた。

尚OSはFedora17で、FastladderはGithub版です。

Rubyのインストール

2.0.0-p247を入れたんだけど、OS側のライブラリのヘッダファイルが足りなくて何度もコンパイルしなおしたのでストレスフルだった。ちなみにrbenvは使ってない。

yum install sqlite sqlite-devel
yum install zlib zlib-devel
yum install openssl openssl-devel
yum install libxml2 libxml2-devel
yum install libxslt libxslt-devel
yum install libcurl libcurl-devel
yum install gcc-c++ gcc-c++-devel
yum install mysql mysql-devel
yum install readline readline-devel

くらいはやっておく必要があった。それからnode.jsも必要なので入れておきましょう。

Fastladderを動かすまで

Fastladder を VPS の CentOS5.8 に入れてみた。を参考にすればよいです。

イントラもインターネットもきちんと巡回させる

クローラーはオープンソース版もGithub版もそのままではイントラの巡回をうまくやってくれないです。environment.rbのあたりにプロキシを使わない設定があるのだけどそれを書くとエラーで止まるので、

fastladder.rb(だったかな)に直接正規表現を書き込んだ。

Fastladder.const_set(:HTTP_PROXY_EXCEPT_HOSTS, ["XXXXXXX"]) 
#Fastladder.const_set(:HTTP_PROXY_EXCEPT_HOSTS, []) unless defined? (Fastladder::HTTP_PROXY_EXCEPT_HOST)

プロキシのとこも何故かコメントアウトされているので、ドキュメントを参考に書き換えておいた

@@ -58,13 +59,13 @@ module Fastladder
   def fetch(link, options = {})
     uri = link.kind_of?(URI) ? link : URI.parse(link)

-    http_class = Net::HTTP
-    #if proxy = uri.find_proxy || Fastladder::HTTP_PROXY
-    #  unless Fastladder::HTTP_PROXY_EXCEPT_HOSTS.any? { |pettern| uri.host =~ pettern }
-    #    http_class = Net::HTTP.Proxy(proxy.host, proxy.port, proxy.user, proxy.password)
-    #  end
-    #end
-    http = http_class.new(uri.host, uri.port)
+    if proxy = uri.find_proxy || Fastladder::HTTP_PROXY
+      if Fastladder::HTTP_PROXY_EXCEPT_HOSTS.any? { |pettern| uri.host =~ pettern }
+        http = Net::HTTP.new(uri.host, uri.port, nil, nil, nil, nil)
+      else
+        http = Net::HTTP.new(uri.host, uri.port, proxy.host, proxy.port, proxy.user, proxy.password)
+      end
+    end
     http.open_timeout = options[:open_timeout] || Fastladder::HTTP_OPEN_TIMEOUT
     http.read_timeout = options[:read_timeout] || Fastladder::HTTP_READ_TIMEOUT

OPMLの移行

オープンソース版Fastladderにはフォルダに入ってないとフィードがエクスポート出来ないというバグがあるのだけどすっかり忘れていた。少しハマった後思い出して解決。

今後やりたいこと

  • ログインをOpenIDにしたい(社内OpenIDサーバー立ててあるので)
  • ブックマークサービスとかtwitter系の社内SNSみたいなものとの連携をさせたい

まぁ社内ブックマークサービスも社内SNS(しゃべる)も一度か二度ほどコケてるけどね。

富士で子供向けのプログラミングワークショップをやります

子供向けのプログラミングワークショップをやります。既に空きがほとんど残ってないようですが、僕もちょっとお手伝いしていますので、お時間ある方は是非。

使用言語は定番のScratchです。

新大阪に行ってきた

ソフトウェアのワークショップに参加してきた、というより発表してきた。

発表は全て面白かったし、懇親会でも色々とフィードバックをいただけたので満足。

私のスライドから

それからMMPのカットのやり方が気に入らないという質問を受けたのでメモっておく。この時もちょっと考えさせられたけど、あそこの会社のヒト結構おもろい。

  • PPの切り方はナイーブすぎて気に入らない
  • RECAP等のメディシナルケミストフレンドリーな切り方をしたい
  • RDKitだったらもう少し柔軟に対応できるはず

プロジェクトで使うにはカットのやり方こだわったほうがいいかもしれない、あと置換ルールとして持っておきたいもそのほうがいいでしょうね。

というわけでRDKitのコード追いかけようと思ったら先行者がいたので、エントリ待ちで。

(2013.07.28追記) エントリきた

メディシナルケミストのredmineの使い方をちょっと聞いたんだけど面白くて勉強になりそうなので、今度話してもらおうかなと思っている。帰ったら日にちを調整しようっと。おおっぴらに公開しないでライフサイエンス系限定みたいなATNDないかな。

handson

ここから駄文

(お前が言うなと自分で自分に突っ込みをいれつつも)志は高く持ったほうがいいよねとは思う。それから大きな挫折を味わないために小さな挫折をくり返すってのも大切かなと。結局は自分というスタートアップをマネジメントする感覚ですね。

それから、ヒトにフォーカスするとイライラするのでもっとカルチャーにフォーカスするように心がけています。以前の上司がPから移られた優秀なメディシナルケミストの方で、よく文化の醸成ということを口にされていたのでなんとなく背中を見て学んだ感じです。意識高い感じで書いておくとヒトとの出会いは大切ですねw

第4回入門機械学習読書会を開催しました

お疲れ様でした。

正則化はちょっとむずかしいかもしれませんね。次回は回帰ではなくクラスタリングなので、面白いと思います。しかも掛川開催です。掛川初めて。

懇親会は金の字本店、清水といえばもつカレー

1374998338 1374998339

もつカレーも美味しいが、焼き鳥がうまい。左はあか焼といって脾臓だそうです。右はタン塩

1374998341 1374998342

ミノはコリコリしていて美味い、最初は静岡麦酒をのんでいたのだけど、やっぱビールはいいわってことで日本酒にスイッチ。

1374998344 1374998345

ねぎまとなんかわからん。

1374998347 1374998348

豚焼

1374998350

前日大阪に行っていたので、僕だけ早めに退散。お疲れ様でした。

SLAMで踊ったことあったわ

僕は96頃から既に駄文をネットにまき散らしておりまして(98から01くらいにブランクがある)、そのうち書き始めた初期から97の後半までと02の駄文をロストしているが、ちょっとあさってたら

97年に

:::: 1104 :::::
こんちわ、土曜はKARMAに行って来ました。んでSOMASLAMかっこよかった。 night stalkerとかかかって狂った。んでまぁそのままお友達の家に泊まった。 家に競馬新聞が落ちていたので競馬話で盛り上がる、でも競馬は辞めたので 僕はもうやらないとか言っておく。(次の日僕の予想がキタラシイ、 38.6倍。7万位損した気分、やっときゃよかった。)

という、SLAMで踊りに行ってたんじゃんという驚きの記述を発見。で、night stalkerって何よ?と思って調べたらこれだった。

聴こうと思ってiTunes調べたけどなかったので、多分ダンボールに入っているはず。出すの面倒くさいので諦めた。代わりに色々届いたのでそっちを聴く。

マルチサイトのMMP

先週の自分の発表の時、Hさんに複数のMMPを同時にふるようなやり方はうまくいくのか聞かれて、難しいのではないかと直感的に答えたのだけど、お昼寝しながらあの答えで正しかったのかなぁと考えていた。

というより、ゴロゴロしながら考えていたら寝てしまったのだけど。

MMPでコアの構造を考えなくて良いとした場合には再帰的にフラグメントの置換が可能になってしまうので、ちょっとこまる。メチル基3つつけたら3倍の効果がでるかと言われればそれは難しいんじゃないのと。

クラシカルなQSARやれるような場合はそれぞれのフラグメントの効果は独立だからうまくいくんだろうなと思う。

つまりフラグメント-フラグメント相互作用とかフラグメント-コア相互作用なんかを考慮しなくていい場合にはうまくいく感じがする。

FBDDやる場合にはフラグメント-コア相互作用として歪のエネルギーを考慮していますね。

井田海水浴場でシュノーケリングをしてきた

なんとなく勢いだけでシュノーケリングデビューした。

1374750257

初めてなので透明度は比較できないけど、魚が沢山いて心地よかった。というより、波に揺られる海藻がミニマル感を醸し出していて素敵だった。潜るとこまでいかずにプカプカ浮いていただけだが、潜ると超気持ちいいんだろうなということは感じたので、そこまでは頑張ろうかなと思う。

水温が低かったせいもあって早々に寒くなってしまい2時間くらいで終了したけど、かなり楽しくて満足の初シュノーケリングだった。背中を押してもらって感謝感謝

matplotlibのpylabとかpyplotとかよくわかんないんだけどという誰もが一度は通る道を何度も通る

cookbook的なものを読みながらお作法を覚えようとするとまず混乱するのだが、FAQにちゃんと書いてあることを発見した。

  • pylabはmatlabスタイルで書くよう
  • pyplotのほうがpythonっぽい

あとこれ

Pyplot provides the state-machine interface to the underlying plotting library in matplotlib. This means that figures and axes are implicitly and automatically created to achieve the desired plot. For example, calling plot from pyplot will automatically create the necessary figure and axes to achieve the desired plot.

ステートマシンだと知ってないとかなり戸惑うのと、figureなんだよ、どこから来るんだよ?となる。

pandasからmatplotlibを使う方法とバッチでハマった話

plotというメソッドが用意されているので楽ちんと思ったがバッチの処理をさせたら同じ画像ばっかり生成されて小一時間ハマった。

いつものようにsofによるとcloseが必要らしい。

for experiment in experiments:
    exp.data.plot(x="Date",
           y="Val",
           style="ro",
           )
    savefig("static/images/{}.png".format(exp.name))
    close()

ProductName Python for Data Analysis
Wes Mckinney
Oreilly & Associates Inc / 3634円 ( 2012-10-29 )


最近かけたもの

Hospitalの分類をしていたので、そっち多めで。

L.O.V.E (Hamilton Remix) / Blackout
Tonight / Wilkinson
Bounce (Feat. Nemesis) / Camo & Krooked
Cliffhanger / Camo & Krooked
The Touch (Camo & Krooked Remix) / New Zealand Shapeshifter
Tilling Fields / The Upbeats
New Infection / C.A.B.L.E
Empty Streets / Cyantific
Alibi / Spectrasoul
Wonder Where / Various Artists
Morning Light / NuLogic
One Year On (Instrumental) / BCee & Lomax
U Gotta B Crazy (Enei Remix) / London Elektricity
Crucify Me Pt. 1 / ShockOne feat. Phetsa
Is Anybody Out There (Friction & K-Tee Remix) / BCee & S.P.Y
Miss You / Echo Inada
Yikes! / London Elektricity
Shine In (feat. Natalie Williams) / NuTone
Take Over Control (Ft.Eva Simons)(Edit) / Afrojack
Planet Earth / Danny Byrd
Dream / Echo Inada
Meteorites (Danny Byrd Remix) / London Elektricity
Feel Good (The Prototypes Remix) / Modestep
25th Floor (DJ Marky & Bungle VIP Mix) / Bungle
The Strangest Secret In The World / London Elektricity
Dont Be Afraid / Maduk
Love Comes And Goes / Young Ax
Song In The Key Of Knife (VIP) / London Elektricity
All That Jazz (Vocal) / Fresh
Twilight (Utah Jazz Remix) / BMK
Stand Alone / Artificial Intelligence
Secret Place / DJ Marky & Makoto
Volume 1 (Logistics Remix) / Danny Breaks
Kaleidoscope (Spacejams LP) / Logistics
Sweet Harmony (Feat. Liquid) / Danny Byrd
Breathless / Nu:Tone
Shame (Feat Ben Westbeech) / DJ Marky & Artificial Intelligence
Yikes (Lung Remix) / London Elektricity
Be True / Commix
Fault Lines (Unquotes Snowy Remix) / London Elektricity
All Blue / Sigma
The Agony & The Ecstacy / High Contrast feat. Selah Corbin
The Plan That Cannot Fail (Logistics Remix) / London Elektricity
On My Own (D&B Mix) / Blame
One Of These Days / Fred V & Grafix
All Yours (S.P.Y Remix) / Submotion Orchestra
Our Time / Bcee
Uska_London Elektricity_320 / London Elektricity
Cry 4 U (Ft. Swervez) / Stranjah
Girl Gone / The Upbeats

曲をつなぐことで自分の心理状態を確認するのは一種の箱庭療法みたいなもんなのかなぁ。まぁフィードバックが働くところは違うと思うのだけど。