デッドライン仕事術

いろいろ手厳しい

ProductName デッドライン仕事術 (祥伝社新書)
吉越 浩一郎
祥伝社 / 777円 ( 2007-12-15 )


  • 仕事というのは、それが発生したときが一番興味を持って取り組める
  • 仕事の効率が悪くて残業ばかりする人間は「一日の始動が遅い」という共通点がある
  • 判断の前提となる知識レベルが高ければ高いほど、それを共有している人間は「難しい話」を「当たり前の顔」で議論できる
  • もつれた糸はほどく
  • プロセスまでふくめて「情報を共有化」することで、現場の判断力をあげる
  • 世の中には「一人ひとりでは何もできなくても、会社というチームを作って集まれば何とかなるのではないか」とタカをくくているとしか思えない人が多い

PyCon APAC 2013で発表することになった

PyCon APAC 2013でpythonを使ったdocx,xlsx,pptx作成の話をさせていただけることになりました。

というのは宣伝で、応募に至るまでの経緯をちょっと書いておきます。

僕は製薬業界にいる関係でchemoinformaticsとかbioinformaticsとかmolecular docking simulationをずっとやっていたので、ライフサイエンス系でのpythonの適用事例くらいなら50分くらい余裕でしゃべり続けられるなぁということで当初はそういう応募をしようかなぁと考えていたんだけど、science with pythonのほうでも似たようなトークを応募するみたいだったんで、やっぱやーめた、放置。締め切りみたいな流れで6月は終わったわけです。

で、7/9まで締め切り延長になったけど別に応募する気ないしー参加するだけでいいやーと思って過ごしていたのだけど、締め切り延長4日前に行われたShizuoka.py #2@aodagさんが急遽参加されて、懇親会の時に「なんか応募しないのー?しないのー?」というようなことを言われて、じゃぁなんかしとこうかなーという気分になって次の日勢いに任せて応募したという経緯。

で、採用されたと(嬉しい)。

というわけでパーフェクトPython書いましょう。

ProductName パーフェクトPython (PERFECT SERIES 5)
Pythonサポーターズ
技術評論社 / 3360円 ( 2013-03-05 )


YAPCのスピーカーすごいす!、PyConのスピーカーすごいす!と参加者側でずっと過ごしてたけど、今回初めて発表するので、少しは皆さんの心に残るようなお話が出来たらいいなぁと思っています。

注1)高いところが苦手なので懇親会は躊躇している
注2)製薬業界以外の仕事にも興味があったりする

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なんだよ、どこから来るんだよ?となる。