pep8はもう古いのでpycodestyleを使おう

Pythonのコーディング規約をチェックするツールにpep8があるのだけど、pycodestyleっていう名前に変わったので今後はこちらをつかえということらしい。

つらつらと眺めていたらプロジェクトの統計を取るオプションが面白そうだったのでこのブログのCMSで実行してみた。

$ pycodestyle --statistics -qq .
1       E128 continuation line under-indented for visual indent
1       E203 whitespace before ':'
5       E231 missing whitespace after ','
2       E265 block comment should start with '# '
5       E271 multiple spaces after keyword
1       E302 expected 2 blank lines, found 1
11      E402 module level import not at top of file
29      E501 line too long (115 > 79 characters)
14      E711 comparison to None should be 'if cond is None:'
1       W291 trailing whitespace

一行のコードの文字数多すぎるんだよっていうエラーが一番多いけど、SQLAlchemyのクエリって長くなりがちだから しょうがないじゃん。 \で改行すると読みにくくなるから嫌いなんだよなぁ。

Emacs+flymakeでコード書いているのでpep8をpycodestyleに変更するだけでOK

Fastladder入れてる仮想環境のHDDの容量が足りなくなったので拡張した

もともと10GのHDDで仮想環境(KVM)作ったけど溢れてしまったので拡張した。

ほぼまるごと「KVMでVMにHDD追加」を参考にした

あとは色々調べるのはvgscan, lvscan, pvscanとscan系のコマンドを使えばいい。最近(4,5年前)のFedoraはデフォルトがLVMなので容量追加とか簡単で助かる。

PyData2016で Deep Learning for QSARという発表があった

slideもあったけど肝心な部分が抜けているので動画を見たほうが面白いです。

10分ぐらい

部分構造の高次表現としてpharmacophoreとして記述されるみたいな感じのスライドがあったけどpharmacophoreは特徴間の距離が非常に重要なのでBoW的な特徴ベクトルでは表現出来ないと思う。n-gram的な考え方を取り入れないと難しいと思っている。でもそれって5-10word離れている単語の関係を評価していくってことだからコスト高なんだよね

22分くらい

chemoinformaticsで目玉焼き


深いニューラルネットワークで特徴抽出っていうのが、chemoinformaticsの文脈だと「フラグメントからファーマコフフォア構築」というのはその通りだと思うんだけど、それがBoW的なECFP4みたいなフィンガープリントでいいのだろうか?pharmacophoreとかCoMFA,CoMSIAみたいな表現に向かうような記述子で出発しないといけないんじゃないかなーと思う。

あとタンパク質とリガンドの相互作用、特に電荷の移動という特徴を持たせられないのも今の記述子の問題ではあると思う。

画像認識と分子認識は色々違うからね。

Mishima.syk #8やりました

発表者のみなさん、参加者のみなさんお疲れ様でした。そして急遽幹事を引き受けてくださった@no85jさんありがとうございました。

今回は日程決定後に僕の都合が悪くなってしまったり、前日にハンズオンの発表者が入院したりとバタバタでしたがw 次回はハンズオンの続きをやる予定です。

懇親会はバルイベントに。もともとのサイトが失効して怪しいサイトになってたり、バルといいつつ、チケットで下着(74)とかサンダル(67)が買えたりと「パンツを肴に飲めっていう深いメッセージか?」みたいなごちゃごちゃ感のあるバルだったけど。かなり楽しめたので良しとしよう。

途中ご当地アイドルとそれに群がるファンみたいなのが居て、ほうこれがヲタ芸ってやつかと感心していたら、あれは動きが全然足らないからヲタ芸未満だと詳しいヒトがバッサリ切り捨てていた。ご当地ヲタ芸が認められるようにヲタの人達もっと頑張ってくださいと思った(余談)。

参加したお店

一軒目 とりう(69)

とり天とビール。美味しかった

1464481110

二軒目 Vanzo

なかなか洒落た店内。ワインと肉

1464481111 1464481113

三軒目 半蔵2

白隠ハイボールと海豚ベーコン。海豚は本当に癖のある匂いだった。これは好き嫌い激しいと思う。海豚刺しはもっと強烈に臭いらしい。二次会のネタになったので良しとしよう。もう一回食べるかと言われたら遠慮する。

みりん干しとかちゃんと匂い消しをしたものは美味しいらしいです。三島に住んでた頃はスーパーによく並んでたけど、富士の方ではみかけないなぁ。

1464481114

二次会はうさぎの木

一次会の感想戦とか色々楽しくおしゃべり出来て満足。

1464481115 1464481117

ここでも肉とかアヒージョを堪能した。

1464481118 1464481119

1464481120

肉の流れで反省会は鈴木屋に決定しましたw

TDnet? 強いよね…

TDnet? 強いよね…右クリック禁止,jsでHTML組み立て、iframeつかいまくり、button要素でクリック阻止とすきがないね。でも俺は負けないよ。どm、DOMたちが躍動する俺のseleniumを皆さんに見せたいね

というわけで 東証のサービスをスクレイピングしたい案件が発生したのだけど、あのサイトあれだった。一応個人でRSS化しているヒトはいたのだけど、今回は色々あって自分で頑張ってみた。

  • input要素ではなくbutton要素でクリックしてsubmitする感じになっていたのでsend_keys(Keys.RETURN)
  • iframeの内部には普通にはアクセス出来ないのでswitch_to_frameで移動する必要がある

コードを一部抜粋

def access(self, code):
    url = "https://www.release.tdnet.info/index.html"
    self.driver.get(url)
    iframe = self.driver.find_element_by_tag_name("iframe")
    self.driver.switch_to_frame(iframe)
    self.driver.find_element_by_name("q").send_keys("{}0".format(code))
    self.driver.find_element_by_name("q").send_keys(Keys.RETURN)
    time.sleep(2)
    results = []
    try:                                                                                                                                                          
        result_frame = self.driver.find_element_by_name("mainlist")
        self.driver.switch_to_frame(result_frame)
        main_table = self.driver.find_element_by_id("maintable")
        for tr in main_table.find_elements_by_tag_name("tr"):
            company_name = tr.find_element_by_class_name("companyname").text
            published = tr.find_element_by_class_name("time").text
            t = tr.find_element_by_class_name("title")
            title = t.find_element_by_tag_name("a").text
            url = t.find_element_by_tag_name("a").get_attribute("href")
            results.append({"company_name": company_name,
                            "published": published,
                            "title": title,
                            "url": url})
        return results
    except WebDriverException:
        logging.debug("{} not found".format(code))
        return results

相振りで大駒交換しまくるの気を使う

相手は2級

途中で交換するの嫌になってグダグダやってたら猛攻を食らった上に王手飛車とか… 

32手目の2三角打ちに同馬と取って、同銀に2一飛車とおろせばよいらしいんだけどなんか3二角と守られるのが嫌だったんだよね。

でもそれだと攻撃に角使えなくなるからこっちが有利になるのか。

捨て垢で舐めプして接続切れ勝ち

捨て垢だったけど、穴角からの接続切れ…

舐めプで負けるとムキーってなるけど、こういう勝ち方は時間の無駄だからあんまりうれしくないね。お互い得るものないしなぁ

作戦負けだったけど粘った

相手は二級。久々にノーマル四間飛車にしたら全然わからんかった。

19手目1六歩に1四歩と受けたので穴熊はないだろうと楽観したら組まれたので、作戦負けを覚悟した…

銀冠で耐えて、嫌らしく端攻めをして103手目の1三歩を取らなかったので、この後の猛攻を耐えたら勝ちだなと確信した。金が欲しかったけどそれは相手も分かっていたのでそれの攻防だった。

飲みながら指すと簡単な詰みも見逃すという好例

相手は一級のヒト。角交換四間飛車

84手目金打って落として銀打ちで詰みなのに、銀打つか金打つか悩んで、「よしいける!」と何故か銀打ちした。

アホすぎる。

でも逆棒銀決まったのは久しぶりなのでそれは嬉しいw

ACOCHILLに行ってきた

同僚に誘われて久しぶりにフェスってきた。

富士は晴天、御殿場も晴天

1463576995

ファミリー率が7~8割(主催者発表)のゆるいフェスだった。

1463576997 1463576998

あまり演奏聞かずに大道芸みたりアスレチックを堪能したりしていた。

それからかき氷に30分以上並んだw

1463577000

そんな感じで子供は楽しかったようだ。

僕はテントでゴロゴロしながら将棋の本読んだりウォーズで3切れしてた(うちにいるのとたいして変わらんw)