Express+Jade+mongooseでつくるWiki

shizudevつくる会#2お疲れ様でした。相変わらずjavascript度は高めだったけど、node.jsでブログエンジン作るはずが、wordpressのダークサイドに堕ちた上に、文字化けのカルマにトラップされてたヒトもいましたな(終了後のコメダで浄化されたんだろうか?)。

あとは作りたいけどネタがない人のためにオモシロアイデアをストックしておいていつでも引き出せるようにする仕組みが必要かなぁと思った。

私の成果はこんな感じでWikiをつくっていたんですが、中途半端だったのでもう少しやってみた。

fjkwというwikiです(Express製なので)。ちなみに僕自身の鉄分は低め(というかほとんどありません)

fjkw

  • pathがタイトルになっていてGETでdataがあれば表示、なければ新規登録のフォーム
  • postでデータがあれば上書き、なければ新規データの追加
  • バックエンドはmongodbをmongooseを使って
  • in-place-editorはjeditableでクリックすると編集画面に

という感じ。

markdownを入れたいんだけどjadeのfilterだと変数に適用できないし、これを参考にやってみたらin-place-editorでタグまで一緒に編集画面に入ってくるしで、どうしたもんかと思案中。

Couldn't import standard bz2ってでてmercurialがインストール出来ない場合

さくらのVPSにmercurialをインストールしようとしたら

Setup script exited with Couldn't import standard bz2 (incomplete Python install).

っていうエラーが出てなんでかなぁと、インストールメモを見たらbzip2-develを入れてなかった。

yum install bzip2-devel

ついでにPython-2.7.2にバージョンをあげてからmercurial入れた。

Node.js製のブログエンジン

自分は出来合いのものよりも、ちまちまと自分の欲しい機能だけを実装してマイブログエンジンを作るほうが好きだけど、職場でつかうには公開されて継続されて開発されている安定感のあるやつのほうがいいので幾つか調べた。

calipso

drupalのようなものを目指しているらしい。Node製のCMSが欲しかったら最初に検討するかなぁ。

Calipso is a simple content management system, built along similar themes to Drupal and Wordpress, that is designed to be fast, flexible and simple ... and of course this site is running on Calipso!

Wheat

Git+Node.jsのブログエンジン。How To Nodeで使われている。 文章はmarkdown記法でGitで管理するっていうスタイルは結構好み。

Wheat is a blogging engine that reads a git repo full of markdown articles and presents them as a website.

Reed

markdown記法でredisでデータ管理。ブログエンジンのコアを提供するものであり、入れたら即使えるというものではない。

Reed is a (very) lightweight blogging core that turns markdown files in a directory into a blog. It is not a fully featured blogging system. If you are looking for that, check out Wheat or another blog engine.

Reed is intended for developers who want to integrate simple blogging functionality into their node.js website or application. It makes as little assumptions as possible about your environment in order to give maximum flexibility.

月3万円ビジネス

この本は相当面白いです。

マーケティングにあるような、差別化戦略とかポジショニングは結局価格競争とか、過剰サービス競争に巻き込まれないように、ニッチな市場を複数開拓する。

「月三万円ビジネス」ではインターネット向きの商品はなるべく避けます。インターネット向きというのは、極端に言うと「売り飛ばし」ができる商品です。得る人と買う人の人間関係は離れていればいるほどいい

つまり、人間関係が近くなるようなビジネスを目指す。ワークショップ形式とかの体験を売るようなビジネスとかね。

いくつかのビジネスが載っていますが、かなり参考になった部分が多い。筆者の住んでいる所が実家の近くなのでビジネスと顧客のイメージがなんとなくわくというのもあるかもしれないが。

ProductName 月3万円ビジネス
藤村靖之
晶文社 / 1575円 ( 2011-07-02 )


  • 手足を使い技を磨くことは楽しい
  • 場所とテーマは広範囲から選び、変化を促すビジネスを考える
  • 道具、材料、ノウハウ、きっかけ、仲間
  • 愉しさの演出を忘れない

とちぎ四日目

娘が釣りをしたいとずっと言っていたので、入院中のばあさんのススメにしたがい金精川のマス池に行ってきた。

のどかな風景

1313402230 1313402214

釣りは無料で楽しめるが、釣った魚は買い取って持ち帰るか、調理して食べないといけないというシステム。投げ入れた瞬間アタルという、釣り的にはさっぱり面白くないシチュエーションだが、娘と息子は大興奮してたのでよかった。

1313402217 1313402219

大きいマスは唐揚げで、小さいのは塩焼きがいいそうです。唐揚げ超うまい、おすすめ。

尚、調理に時間がかかるため、40分くらいは待つのでのんびり待ちましょう。

1313402226 1313402228

食事処に男性器をかたどった色々があって、金精神社と関係あるらしい。右側は古ぼけた写真だが川にある岩らしい。

1313402222 1313402224

興味があったので、帰ってきてからググった。

金精神信仰っていうのがあるのか。

亀泉 純米吟醸

高知らしい味わい。スパッと切れて余韻があまり残らない感じ。とはいえ美丈夫なんかと比べると味がある。

1313580246

でも、この酒はすぐに酔ってしまうが、相性かな。

こっち系のお酒は燗つけたほうが好きかな。

blohg - Mercurial+Flaskのブログシステム

blohgってのが面白そうだったのでコードを読みつつ手元のmacbookにインストールして触ってみた。

sudo easy_install-2.7 blohg
mkdir myblohg
cd myblohg/
blohg initrepo
hg commit -Am 'initial commit'
blohg runserver

エントリを追加する場合にはcontent/post/にあたらしくrstファイルを追加してaddしてコミットする。

blohg

で、コード読んでたら

from werkzeug.contrib.atom import AtomFeed, FeedEntry

ってあって、werkzeugにフィード生成用の仕組みが用意されていることを知った。自分のブログ(Flask製)ではfeedgeneratorを使っているのだけど、こっちでもいいかなと思った。

おまけ

fujinismもblohgベースに変えようかなぁ

創薬系における知識管理というもの

創薬系ももっときちんとログをとって定期的に振り返る、それを細かいサイクルでおこなったほうがいいんじゃなかろうかという意味合いも込めてSAR Newsに寄稿したのが去年のことだけど、もっと知識管理全体をどうするのがいいだろうかと、ここ数ヶ月考えていたので、お盆休みを利用して少しまとめてみる。(なぜ数カ月考えていたかというと、4月にITサポートの部署に異動になったという大人な事情ですねw)

今回移った部署が管理しているインフラ自体は僕らが昔作ったものだが(ITっていう名前がついててもシステム開発できたり、まともなプログラミングができるわけではない。)異動後何回か面談してみても、現在の上司に最近の手法であるアジャイルを創薬システムに応用してみようとか、PDCA(創薬だとDesign-Make-Test-Analysisかな)とかそういう話をしても理解出来なかったし、だからといっていまさら勉強する気もないだろうからなぁ。

とはいえ誰かがそろそろ前進させないとまずいと思うので、異動した記念にでも夏の終わりにでも(2,3個役職飛ばして)振るだけ振ってみる予定なんだけど、他のヒトの役にも立つかもしれないのでエントリとしてまとめておきます。

Data, Information and Knowledge

Data, Information and Knowledgeに従って考えていくと都合がいい。というのは割とスパッと切り分けがしやすいから。図ではwisdomが頂上に君臨しているのだけど、よく見るのはData,Information,Knowledgeの三層構造なので、そっちで考えていく。

Data

まぁ、どこの会社もデータのインテグレーションはやるでしょう。とくに実験データのトレーサビリティをどうするかは問題になると思いますができるだけロボットデータにタイムスタンプを付与するくらいはやっといたほうがいいですね。あと実験者に電卓を叩かせないでIC50とかそういう値まで自動的に計算するようにしたほうがよいですね。(実験者は意外にタイポが多い)でもこういった話は今回はどうでもいいので略します。データのインテグレーションは適切に行われているという前提なので最下段のピラミッドはクリアーですな。

Information

データがインテグレーションされたら、次にやるのは分析ですね。分析は別にRでもなんでもいいけど、情報管理という意味では分析のスナップショットが取れる奴がよいですね。 Spotfireとか使うと分析の共有化(情報の共有化)ができます。

Information can be considered as an aggregation of data (processed data) which makes decision making easier.

Data, Information and Knowledge

なぜ情報が必要かというと、それは意思決定がしたいからです。確かにInformationの層をきちんとすれば意思決定は効率的に行えるでしょう。

ところで、意思決定とはなんであろうか?なぜ我々は意思決定をしたいのだろうか?

意思決定をするために必要なものは情報とあと何であろうか?を考えてみます。

合成した化合物が活性あったよバンザーイ(さくせん:ガンガンいこうぜ)とか、頑張って難しい合成こなしてみたけど活性なかったよショボーン(さくせん:いのちをだいじに)

これは意思決定をしているわけではないですね。

ある仮説を立ててそれが正しかった正しくなかったか、正しい場合より角度の高い仮説はどうなのか、仮説が正しくなかった場合どこに問題があって、それを証明するにはどうしたら良いか、つぎはどういう方向で攻めるべきか

そういう継続的な改善作業をコントロールする仕組みが必要なんだと思います。でも、これはInformationの層では管理できないので、Knowledgeの層になにか、(とても大切な何か)が必要なんでしょう。

Knowledge

Knowledge is usually based on learning, thinking, and proper understanding of the problem area.

It can be considered as the integration of human perceptive processes that helps them to draw meaningful conclusions.

Data, Information and Knowledge

知識も簡単に検索できてすぐに理解できるような必要があるが、慣習的に報告書の打ち出しやPPTの資料が必須のとこも多いと思うんだけど、探索コストのかかるフォーマットはどうなのかなぁと思うが。誰の得になるんだろうか?wikiでイイじゃんとも思うが。自分は実験報告書をwikiで管理してて、職場のwordのフォーマットでいつでもexportできるようにしてるので、便利だし昔やった仕事もパパッと探せて快適ですね。

知識管理システム

Rocheのやつは経験の共有化に重点をおいてるっぽいような気がする。であれば、構造のハンドリングできるようにしたwikiにタグつけたり、検索エンジンを強力にすればいいような気がする。文章自体構造化してあるんだから、みんな大好きPPTとかWORDでもPDFでも出力は気にならないでしょう。あとはバージョン管理システムのいいやつ入れておけば良いんじゃないかなぁ。でもやっぱ文化醸成の努力が素晴らしかったんだろう。

GSKのほうはHDD(仮説駆動型ドラッグデザイン)を推進するようなものだったと思う。合成案を相互レビューできるようにしてあったかな。合成のヒトは合成案を否定すると人格否定と捉えるヒトが結構いるから、こういう仕組みっていいよなぁと思った記憶がある。

こういったタイプの経験管理というのは、ノウハウを共有化して、プロジェクトを効率化するとともに、個人に張り付いた知識を引き剥がし、職場全体の財産にすることができるのでよいのだが、あまりインスパイアされないのでやっててあまり楽しくはない。

問題管理システム

ソフィーの世界の作者が別の著作で良い事書いてたので、よく引用してます。知識ベースっていうのはまさに前者ですね。

An answer is always the stretch of road that's behind you. Only a question can point the way forward.

Hello? / Jostein Gaarder

stackoverflowっていうプログラマのためのQAサイトが良くできていて、クローンが幾つか作られています(OSQA,shapado)

うちではshapado入れてみて半年くらいたつのだけど、ユーザーはまだまだ少ないが質問も70を超えてきて結構楽しい。良い質問にインスパイアされると、より楽しいアイデアが浮かんだりするし、複数のプロジェクトで同じような問題抱えてると、部署で何とかすべき課題なんじゃないの?なんてわかったりするし。

結局、知識管理をも内包したプロジェクトを前進するための全てをきちんと管理し、知識が属人的になりすぎないようにしつつ、柔軟にリソースをコントロールするための全体的な仕組みを考えていきたいが、そのためにはプロトタイプを幾つか作ってみて反応を見ながら進めないといけないなぁと。

論文管理

読書情報は属人的なものであるが、どういう論文を読んだか、それでどうインスパイアされたか、(自分の持っている情報と照らし合わせて)どこを否定したかといったblogっぽいブックマークサービスがあると便利です。ポイントは目録じゃなくて、それを読んでどう考えたかを記す部分です。ちょっと前に新しいのをつくろうとしつつ開発が止まっているが、なかなかモチベーションを保つのが辛い。

自分でつくってみて、音楽は曲のつなぎかた自体に意味がある(DJing楽しい)から曲名リストは意味があるけど、論文目録眺めても大して面白くない。リファレンスをたどっていきつつサマライズするようなサービスは面白いかもしれないが。

どういうツナガリに意味を持たすかだなーと思う。

技術

Express+ChemDoodleというjavascriptライブラリ同士の組み合わせなんかもコンセプト的にも技術的にも面白そうな気がするが。あとHTML5とタブレットで色々変わりそうな気もしている。

参考書籍

こういったアプローチはソフトウェア開発業界の方が断然進んでいるので、そういった本を幾つか。できるだけ概念を説明しているようなのを選んでみました。

Redmineによるタスクマネジメント実践技法

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


継続的インテグレーション入門 開発プロセスを自動化する47の作法

ProductName 継続的インテグレーション入門 開発プロセスを自動化する47の作法
ポール・M・デュバル
日経BP社 / 3360円 ( 2009-08-06 )


入門Git

ProductName 入門Git
濱野 純(Junio C Hamano)
秀和システム / 2310円 ( 2009-09-19 )


アブダクション

ProductName アブダクション―仮説と発見の論理
米盛 裕二
勁草書房 / 2940円 ( 2007-09-20 )


とちぎ三日目

鬼怒グリーンパークに遊びに行った。

1313402660 1313402662

幼児向けのアスレチックもあって楽しい

1313402665 1313402667

夜は、曾祖母さんの89歳の誕生日祝いをした。一方バアさんは急性の肝機能障害で入院していたのであった。つまり、実家に帰ったのは見舞いがメインなわけだが。

あおい亭ってとこに行った。息子はエビフライが食べたいってずっと言ってたのでエビフライを注文。右は僕のロースのステーキ

1313402669 1313402672

曾祖母さんは生中を飲み干し、フィレステーキを完食していた。恐るべし食欲。

1313402674

家に帰ってから花火をした。ちょっとした手持ち花火でも中々楽しかった。

1313402676 1313402678

その後、酒を飲みながらベランダでぼーっとしてみたが、田舎はやはり田舎であった。秋の夜長の虫の鳴く音はノスタルジックだなぁ。

「地産地消」と「地方再生」

3次から攻めつつというか、庄内という地にタレントがうまく揃ったというのがうまく言った秘訣か。

本書を読んで、種とりの大切さと地場野菜を育てる必要性をなんとなく感じたので、自分の家庭菜園も種とりを積極的にしようと思ったが、種の選抜のコツとかよくわからんな。今度隣のおじさんに聞こう。

地産地消っていうのはフードマイレージを下げるっていうよりも、その土地ならではの食文化を大切にするといったほうが個人的にはしっくりくるなぁ。