Redmineに手を入れたくなったのでRuby on Rails 3を学んでみることにした

Ruby on Rails製のソフトウェアはいくつか利用しているけど、自分でつくったことはないし、コードのそれっぽいところを探して手を入れたりするくらいなので、RoRの規約とかよくわかってない。

最近Redmineに手を入れたくなってきたので、ソースコードリーディングするついでにさわりくらいはRoRを学んでおこうかなと思ったので、本を読み始めた。

ProductName Ruby on Rails 3 アプリケーションプログラミング
山田 祥寛
技術評論社 / 3675円 ( 2011-05-12 )


rubyもrbenvで入れなおすのがよいのか?

11月の静岡はクライアントサイドの開発の勉強会が盛り沢山だ

来月の勉強会はやたらと盛りだくさんだ。

Titanium MobileはjavascriptでiPhone,Androidアプリを開発したい人にとってはよいソリューションだと思います。で、独りで開発しようと思ったらデザインとか配色とか習っておきたいのでTalkNoteは役に立ちそう。

もう少しゆるい感じのjQueryとかそっち方面に興味があれば静岡javaScript勉強会に参加すればいいいと思います。

そして、あなたが本物のプログラマならば「三島Haskell無名関数の会」が第一選択肢になるはず(ですよね?)。

(ATNDできた。)

YesodというHaskellのウェブアプリケーションフレームワークが熱く語られるという噂です。僕は「Stateモナドで理解するモナドというパターン」という話でもしようかなと思っているが、みんなモナド理解しているかもしれないから、「Haskellでつくる人工無脳」にするかもしれない。

ProductName すごいHaskellたのしく学ぼう!
Miran Lipovača
オーム社 / 2940円 ( 2012-05-23 )


次の週にはJAWS静岡 #2があるのか、、、

創薬プロジェクト版Git(Chemit)を思いついたので実装してみるかな

redmineはGitのようなVCSをセットにして使うのが当たり前なので、創薬系でもそのようなバージョン管理システムがあればいいなぁと思っている。

現状の化合物管理データベースは履歴管理をしないし、コミットログに対応するものも記録できないので、単なる構造データ管理としてしか機能しないが、化合物管理データベースのフロントにwikiかそれをモディファイしてコミットログとか履歴管理に対応する機能をもたせたものを用意すればやりたいことができそうだ。さらにAPIを用意してcliのラッパーとかpython,rubyバインディングを用意すればredmineと連携させやすいだろう。

logでログとかコミットツリーが出て

$ chemit log
commit C0000123
Author: ChemistA <XXXXX>
Date:   Sun Aug 19 10:05:53 2012 +0900

    improve solubility

commit C0000122
Author: ChemistB <YYYYY>
Date:   Sun Aug 19 10:04:58 2012 +0900

    reduce clogp  fixes #24

commit C0000121
Author: ChemistA <XXXXX>
Date:   Sat Feb 4 09:02:58 2012 +0900

代謝安定性を改善 fixes #23

それから

$ chemit diff C0000121 C000123

と打つと構造の差分とMCSが表示されようなものを作ってredmineと連携できれば素敵じゃないかなと思ったので、実証用のコードを書いてみようかな。

ProductName Redmineによるタスクマネジメント実践技法
小川 明彦
翔泳社 / 3444円 ( 2010-10-13 )


Haskellの幽霊型(Phantom Type)

yesodの本を読んでたら出てきたのでググった

Phantom typeによると、

class Sanitise a where
  sanitise :: FormData a -> FormData Validated

-- do nothing to data that is already validated
instance Sanitise Validated where
  sanitise = id

-- sanitise untrusted data
instance Sanitise Unvalidated where
  sanitise (FormData str) = FormData (filter isAlpha str)

ラベル付けするためにあるのかな。うまく使えれば便利そう。

How wonderful to be (statically) typed 〜型が付くってスバラシイ〜というスライドがわかりやすくて面白かった。

他にはFFIにも出てくるみたい。

ProductName Developing Web Applications With Haskell and Yesod
Michael Snoyman
Oreilly & Associates Inc / 2805円 ( 2012-05-04 )


ひなたでランチ

富士のラフォーレの二階

混んでいたのかどうかは分からんが、結構待たされた。

子供用のお子様セット。フライドポテトがうまい。

1350513438

和風のオムライス。

1350513440

なかなか美味しかったので満足

今日のテクノ

★つけてないものの中からなんとなくかけたかったものを適当に選んで流したので、流れ的にイマイチな部分があった。

しかし、Beneath / Hatikvahは★5であることに気づいたため埋もれてた名曲を掘り出せて満足であった。フロア鳴りする曲聴くとクラブ行きたくなるんだけどねー。

Dust Ballad II (12" Mix) / Silicone Soul
Papua New Guinea (12" Version) / The Future Sound Of London
After Hours / Harvey McKay
El Perro (Cesar Martinez Remix) / Alex Under
Disturb The Bird (Gary Beck Remix)  / Harvey McKay
Bring A Friend / Gary Beck
Beneath / Hatikvah
Dublin / Ryo Murakami
Before The Crash / Gary Beck
Jelle / Mark Broom & Mihalis Safras
I Read About You / Gary Beck
Persona / Alex Smoke
Master Of One / Sei A
Melodies and Memory (Marquez Ill Mix) / Vector Lovers
Introduce Me / Hatikvah

ProductName SYNCHRONICITY
ハティクヴァ
SOMA QUALITY RECORDINGS/OCTAVE-LAB / 2365円 ( 2010-10-06 )


Titanium Mobileで計算カードアプリをつくってみたわけだが娘に不評だった

IT技術の教育応用は最近興味がある分野です、というよりも自分の技術適用の動機付けとしてちょうどいい。

例えば、けいさんかあどなど、シャッフルするのが面倒くさいし、隣でストップウォッチ構えて張り付いてあげないといけない。

これはTitanium Mobileでつくる動機としては正当なのでプロトタイプをつくってみた。

calc_cards

が、これは不評だった。電卓っぽいボタンだと数字の位置を知らないので探して押すのに時間がかかる。娘はイライラしだして途中で投げ出してしまった。

結局、シャッフル機能と、カード送りする機能(正解の時のみ次に進むのは要らない)、計測する機能があればいいだけということを理解したので、CoffeeScriptで書きなおすことにした。

応答の早いsiriがあれば面白いのにと思ったが。

かんたんティッシュ工作は簡単だ

クロワッサンとか奥が深い。フンワリ感を出しつつ、曲げてこよってリアルな形にするのがなかなかハマる。

ProductName かんたん ティッシュ工作 (はじめてでもできる)
駒宮 洋
学研マーケティング / 980円 ( 2012-09-11 )


後半の上級のページは折り紙のドラゴンとかと大差ないんじゃないか?

ProductName Mythological Creatures and the Chinese Zodiac Origami (Dover Origami Papercraft)
John Montroll
Dover Publications / 1340円 ( 2010-10-18 )


ティッシュよりは折り紙のほうが楽しいかな。ティッシュは制約が少ない(丸めたりできる)ので中途半端な粘土みたいな位置づけになってしまうよね。

Google Driveで別刷りを管理するというアイデア

既にFacebookでつながっているのであれば文書共有はDropboxを利用するのが便利だろうけど、ポスターの別刷りの配布みたいな用途にはGoogleアカウント経由で認証できるGoogle Driveのほうがいいよなと思った。

ポスターの端のほうにでもアクセス用のURLをQRコードにして印刷しておけばいいだけだしね。

Nexus7を買ってから、電子書籍購入率が急激に上がったのだけど、epubの管理にGoogle Driveを使っていて便利さを実感しているので、Sphinxでつくった文書はEpubでもダウンロードできるようにしておくのがいいだろうなと。

MMPは表層的

Hit Finding -> Lead Finding(H2L) -> Lead Optimization まで全て経験するとMMPは表層的というか現象論的だよなぁと思う。SBDDみたいな分子認識ベースを土台にしている人にとってはMMPは受け入れがたいほど荒いモデルだなぁと感じるだろうしねぇ。

MMPとFBDDの関係とかLEとMMP(activity cliff)の関係をよく考えてみると視点が開けると思うのだけど。

例えば

  • MMPに関してはフラグメントの大きさがどこまで肥大したらFBDDにコンテクストスイッチするのか?
  • LEが分子量の増大に対して非連続なジャンプをするのはcliffじゃないか?だとしたらMMPの文脈で捉えることは可能ではないか?
  • LEという指標がLead Optimizationの過程でどうなるか?またはどういう変動を示すのだろうか?

といったあたりを考えればいいと思う。

MMPが表層的であると理解できれば、外れ値(つまりcliff)はインシデントとして周知されるべきであり、インシデント駆動開発として回すことができるんじゃないかなと思っているし、分析する側としても自動的に予想外の出来事が収集されて楽しいだろう。

ProductName Redmineによるタスクマネジメント実践技法
小川 明彦
翔泳社 / 3444円 ( 2010-10-13 )


Redmineを創薬向けにカスタマイズすれば色々面白いことができると思うんだけど、興味ある人いないかな。