大山の冷たいラーメン

暖簾が新しくなって綺麗になってた。

1344124812

冷し大坦麵

1344124808

つけ大麺

1344124811

久々に大山でラーメン食べた。

そろそろ娘にScratchを教えようかなと思っている

Yummy Ice cream makerってのが良く出来てておもしろい。

娘と息子が交代でアイス作りに励んでる。あいつら31大好きだからなー

icecream

娘は遊ぶ側よりも自分で作ってみたいようなので、僕の休暇中にでも少し教えてやるかなぁと思っている。

でもそうすると娘にmacbookが必要だから今持ってるのを娘にあげて、僕はMBAでも買わないといけないなぁと。

ProductName APPLE MacBook Air 1.8GHz Core i5/13.3/4GB/256GB MD232J/A

アップル / 112173円 ( 2012-06-13 )


散布図を密度の情報からグラフに変換する

複数のパラメータが相互作用しあっている状態で最適なパラメーターセットを探索する際に、あまり精度の高いフィードバックが得られないと最適解の近傍の密度が高くなり、さらに準最適解があちこちに散らばるようなことがおこる。

それはPCAとかICAで空間を適当にとってあげることが出来て、特に第一主成分と第二主成分を平面にとってプロットしてやると、散布図として表現できる。

さてこれを、グラフにしてやればCytoscapeで扱えて便利だろうと思ったことがあったのでやり方を考えてみた。

アルゴリズム

  1. 任意の点から非類似度Tの距離にある点の数をすべての点について数える
  2. 最も点を含むものが多い点をrootとし、含まれる点との間で親子関係をつくる
  3. 2の点を除いて1を行い新たな親子を決める。その際に親から非類似度T内にある既存の子のうち一番近いものを結ぶ(階層ができる)
  4. これをすべての点がなくなるまで繰り返す。

以下の様な散布図を考える。

nnplot1

総当りで近傍の数をかぞえると、次の5つの点が含まれる空間が一番密度が高いことが分かる。

nnplot2

中心と含まれる点に対して親子関係をつくる(P1, C1-C4)。

nnplot3

これらを除いて、近傍の数をかぞえると次に密度が高いのが右側で3つの点を含んでいる。

nnplot4

これらに関しても先ほどと同様に親子関係をつくっておくが、新しくできた親に関しては既存の子とつなげられないかをチェックする。

するとC2 -> P2をつなげるのが良いことがわかる。

nnplot5

同様に行う(図の左側)。

nnplot6

これもC4 -> P3とつなげることができる。

nnplot7

最終的に全部つなげることができた。

nnplot8

実際に階層型の木を描くと以下のようになる。

nnplot

単純だけど、全体の構造を保ったままCytoscapeで眺められていいかなーと思うんだけど。

もっといい方法あったら教えてもらえると嬉しいです。

JekyllかHydeかHakyllかはたまたObrazか

GitHub Pagesを管理するのに、Jekyllっぽいstatic site generatorを探している。ついでに、さくっと開発するためのボイラープレートとかTipsとかも知りたいんだけど、僕の観測範囲では見つけることができなかった。

やっぱ、Siteのデザイン眺めて、ヨサゲなサイトのデザインとかCSSとかを参考にして自分用テンプレートを作って管理するしかないのかなぁ。

twitter bootstrapは便利なんだけど、twitter bootstrap臭が消えないよね(モバイルで見やすいので気に入っているんだけど)。もう少しミニマルなtwitter bootstrapの作り方みたいなのも知りたいなぁ。

Jekyll

JekyllはRuby製で日本語の情報も結構ある。

来月GitHubのハンズオンやるから、Jekyllってその後のハンズオンネタとしてちょうどいいんじゃないか?と思って色々調べてたんだけど、結局HTMLとかCSSにいっちゃうみたいなんで、最初の方に書いたような感じになっている。

Hyde or Obraz

HydeはDjangoのテンプレートエンジンとか使っているらしいんだけど、僕はJinja派なのでちょっと避けた。

最近、ObrazっていうテンプレートエンジンにJinja2を使っているstatic site generatorを見つけたので、こっち使ってみようかなぁと思っている。コードも500行未満らしいので一度読んでみようっと。

Hakyll

Haskell製のstatic site generator

Hakyll is a Haskell library for generating static sites, mostly aimed at small-to-medium sites and personal blogs. It is written in a very configurable way and uses an xmonad-like DSL for configuration.

Shizudevつくる会のgithub organizationsのサイトはこれを使ってみようと思っている。なぜなら、静岡東部にはHaskellerが3人以上存在するからだ。これは人口比率から考えてもそこそこ高いのではないかと思っているがどうなんだろ?

それから「静岡県の形は世界的にも有名なプログラム言語Haskellのロゴマークである「λ(ラムダ)」に似ているからね。

というわけで、いまはHakyllを使ってみようかなぁと考えている。誰か今度のつくる会で黙々してみませんか?

Photoshop Elements 10を買った

OSX 10.7にしたら、BambooについてたPhotoshop Elements 4が動かなくなって不便だったのでPhotoshop Elements 10を購入。

僕はたまにしか使わないんだけど、娘がお絵描きにつかっているからまぁいいかな。

ついでにScratch教えろって言われてるから、明日あたり一緒にやるかな。

数当てゲームでもつくれば喜んでもらえるんじゃなかろうか?

なんか小学生低学年が喜びそうなサンプルはないだろうか?

よくわかる「プル生産とプッシュ生産」の本

プルプッシュはMapReduceとかをイメージしたほうがわかりやすいのでそっちから生産管理のイメージにつなげていく。

  • 「プッシュ」スタイルはHadoopがmap関数に1行分のレコードを渡してくれるが、複数行に対しての処理ができない。
  • 「プル」スタイルは複数行に対しての処理が可能だが、map関数のレコードのフェッチを制御する必要がある。

  • お客様は常にプル
  • 後工程は前工程に必要な物をとりにいく
  • プル生産がチェーンシステムとよばれるのは、鎖を引っ張ればピンと張ってスムーズに動き、止めると全体がさっと止まるから
  • 生産リードタイムの長い製品をプッシュで流すと異常や変更があった場合のフォローが大変

個人的にはプルプッシュの話は色々参考になることが多くて、お願いします脳なんてプッシュ方式についてまわる弊害の1つなんじゃないかなと思いながら読んでた。

アッセイ系を依頼書方式(つまりプッシュ)で回していくと、後工程はお願いされる立場になるので

お願いされたらやる -> お願いされたことしかやらない -> お願いされなきゃやらない

ってマインドになっていって、保守化したのち、考えることをやめる。そういう人達と話すと頭がクラクラして精神衛生上よくないのでなんとかしたい。

例えばプル方式にして常にMAXまでアッセイ系をまわすのを奨励するようにすれば、生産性は上がるんじゃないかなぁと思うんだけど。

トヨタ生産方式にもとづく「モノ」と「情報」の流れ図で現場の見方を変えよう!!

私にとっては生産管理力強化の夏です。

大きな観点で理解するには、この本が一番良かった。上にプレゼンする時には本書を参考に大きな視点から個々の案件に持っていくのがよいかな。

バリューストリームの視点から見るということは、個々のプロセスではなく、大きな絵のもとに取り組むということであり、また、部分最適ではなく、全体を改善するということを意味します。

モノと情報の流れとは、一枚のコインの表裏です

バリューストリームマネージャー

機能別分業から脱却するためには、製品ファミリー毎のバリューストリームの流れを理解し、それを改善することに対して責任を持つ人が必要です

バリューストリームに責任をもっているヒトのことであり、創薬系でいえばプロジェクトリーダーにあたるのかな。でも、バリューストリームは工程をまたいだ生産性のことだから結果にしか責任を負わないプロジェクトリーダーはちょっと違うかな。そういう役は見当たらない。

幾つかのリーン指標

  • サイクルタイム
  • VAタイム: お客様が喜んでお金を払ってくれるような付加価値を実際に製品につけている作業時間
  • リードタイム

一般に

VAタイム<サイクルタイム<リードタイム

VAタイムっていうのがピンと来ないが、サイクルタイムの作業時間のうち、製品として役に立った価値を付加した時間のことらしい。

創薬系だと定義されたクライテリアを超えた(価値のある製品をつくった)時間を割り当てればいいのかな?そうすれば無駄なものばっかり作っているプロジェクトはVAタイムが下がるからね。

本書の初めの部分で述べたように、バリューストリームの改善は、本来、マネジメントの責任です

これは正論だけど、研究者をマネジメントにあげるような今の製薬会社の方式だとこういうあたりを学ぶフェーズなんかないからなぁ。難しいですね。

よくわかる「ライン生産とセル生産」の本

セル生産は多能工化してないといけないとか、環境がそろってないとうまくいかないのは明白なので、そういう環境になっている場合にチャレンジするやり方。

そういう意味では、創薬のプロジェクトチームのメンバーも多能工化していたほうが好ましいだろうなぁ。

トラベルタイム

  • ラインの先頭に部品、原料を投入し、ラインの催行日で製品が完成するまでの時間

リードタイムのことか。

ラインバランス

  • 100 * 各工程の正味作業時間の合計 / (最大時間の工程の作業時間 * 工程数)

これは、創薬プロジェクトだと何に対応すんのかなぁ。DMTAの一回あたりの時間をプロジェクト間で比較するとかかな。

どの工程に在庫を置くか?

在庫とは一体に何に対比させるべきか?コンパウンドライブラリじゃないよなぁ。中間体かな?

よくわかる「見える化」の本

見える化とはなにか?

「見る」が意識してみるのに対し、「見える」は意識しなくても自然に目にはいるということである

見えるのはいつか?

見えるというのは人の意志、意識に関わらず見えるということだ

ProductName よくわかる「見える化」の本 (ナットク現場改善シリーズ)
越前 行夫
日刊工業新聞社 / 1890円 ( 2008-02 )


見えない化というもののデメリットを考えれば見える化のメリットがみえてくる。

  • 探す
  • イライラする
  • 危ない
  • 美しくない
  • 楽しくない
  • 間違える
  • 管理サイクルが回らない

最後が重要かな。

取り入れたらよさそうかなと思っている、具体例

  • 現場状況の見える化
  • 多能工マップ(人財の見える化)

ゲノム言語ATGC

プログラムとして実行できるfasta形式のプログラミング言語を作ってみた。いちおうチューリング完全(なはず)。

>HELLO_WORLD
ccggaccgcg gggcaccgcc ggcggaccgc cgccggaccg cccggcgacc gccgccccac
cgcccgccca ccgcggggga ccgccgcccc accgccgccg gaccgccgcc ggaccgccgg
cgcaccgcgg cgggaaccga cacatccata ccacagaacc caaaa

これはatgcというコマンドで解釈して実行します。

$ bin/atgc hello_world.fasta 
Hello world!

ゲノム的にGCリッチなほうがいいだろうということで0と1にg,cをそれぞれ割り当てて数字を表現するようにしてる。exitコマンドには終止コドンを割り当てようかとも思ったが、なんとなくaaaにしてみた(polyA)。

しかも(というか当たり前だけど)blastでホモロジーサーチがかけられるし、multifastaにしておけばソース管理もできるうえに、データベース化してインデックスはっておけば、NCBIのツール群でコマンド一発で取り出せる。

ただ今回作ったHELLO_WORLDの配列はblastnだといい感じにヒットしなくて悲しかったので、blastxかけたらブラックコットンウッドからなんかひっかかった。

>gb|ABK94795.1|  unknown [Populus trichocarpa]
Length=229

 Score = 33.5 bits (75),  Expect = 5.9
 Identities = 14/21 (66%), Positives = 15/21 (71%), Gaps = 0/21 (0%)
 Frame = +1

Query  100  GPPPDRRRTAAGTDTSIPQNP  162
            GPPPDRRRT  GT  S P +P
Sbjct  209  GPPPDRRRTRQGTTKSEPASP  22

VMとかは特にいじってないのでEsotericの本を参照のこと。

ProductName Rubyで作る奇妙なプログラミング言語 ~Esoteric Language~
原 悠
毎日コミュニケーションズ / ?円 ( 2008-12-20 )


VMを使った中間言語方式の強力さを理解した。

追記 2012.07.31

ソースをGitHubに移した

$ ./bin/atgc examples/shizuoka.fasta

                                                  **
                                                 **
                                              ****
                                              ******
                                              ******
                                            ********
                                              ****                  ******
                                            ********              ******      ************
                                          ********              **************************
                                     ****************            **********************
                              **********************        **********************
                          **************************      ************************
                        **************************          **********************
                        **********************************************************
                    ******************************************   ******************
                  ****************************************                ************
                  **************************************                ****************
                ************************************                    ****************
              **************************************               ********************
           **************************************                ************************
        ************************************                      ************************
        **************************************                    **********************
  ******************************************                    ********************
************************************************                  ********************
****      ********************************                        ********************
****     **************** **************                              ****************
**************************************                              **************
                 ****************************                                ******
                                          **********