「ホームページ復活 眠っているホームページを甦らせる「7つの法則」」を読んだ

沼津往復で読みきった。内容的には、知らない人向けにわかり易く説明した感じ。読み終わって7つの法則がイマイチ。復活というよりはホームページ世代の人達に今時の状況を説明しました(7章に分けて)みたいな。

  • Unique Sales Proposition (UPS)
  • 買う理由がないから買えない
  • Lead Exchange

Haskellでルービックキューブ

プログラム・プロムナードRubicキューブと置換の乗算を読んで2X2のソルバーを書いていたんだけど、巡回とねじりを覚えれば基本的に解けるのでリアルのほうを揃える方に夢中になってしまった

1264245450

*Main> prodPerm [e,t,t,e,s',b,b,s,e',t,t,e,s',b,b,s,e',e']
[[TSW,WTS,SWT],[TES,EST,STE]]
*Main> prodPerm [e,e,s,s,e',n',e,s,s,e',n,e']
[[STE,WTS,ETN],[EST,SWT,NET],[TES,TSW,TNE]]

ProductName ルービックの2×2 キューブ(CUBE)

メガハウス / ¥ 1,260 (2002-03-20)
在庫あり。

キャトルエピス

久々のキャトルエピス。

図書館帰りに不意に寄りたくなった。

1264245456 1264245462

1264245468

美味!

Haskellで文字のローテーション

プログラム・プロムナードRubicキューブと置換の乗算を読んでいたら、文字のローテションをしたいときにcycleを使っているのを見つけた。

import List

shift n c xs = case elemIndex c xs of
                 Nothing -> c
                 Just i  -> cycle xs !! (i + n) 

こんな感じ。

*Main> shift 1 'y' ['a'.. 'z']
'z'
*Main> shift 1 'z' ['a'.. 'z']
'a'
*Main> shift 1 ' ' ['a'.. 'z']
' '

これを使えばプログラミングHaskellのシーザー暗号は次のように書ける

import List

chrs = ['a'..'z']

shift n c xs = case elemIndex c xs of
                 Nothing -> c
                 Just i  -> cycle xs !! (i + n)   

encode n xs = [shift n x chrs | x <- xs]

実行

*Main> encode 3 "haskell is fun"
"kdvnhoo lv ixq"

ProductName プログラミングHaskell
Graham Hutton
オーム社 / ¥ 2,940 ()
在庫あり。

「BCG流 非連続思考法」を読んだ

創造は個人のステップ、イノベーションは集団としてのプロセス

ProductName BCG流 非連続思考法 アイデアがひらめく脳の運転技術
リュック・ド・ブラバンデール,森澤 篤
ダイヤモンド社 / ¥ 1,890 ()
在庫あり。

  • イノベーションは行動であり、創造は考えることだ
  • 我々は現実をありのままに見ているわけではない。自分なりの方法でしか見られない
  • 新しいアイデアを生み出すプロセスとアイデアを優れたものにしていくプロセスは異なる
  • 経営者は答えを探し求める人よりも、答えを出す人を高く評価しがち
  • アイデアの寿命はずっと短くなってしまったので、アイデアを生み出し続ける能力が重要
  • 事故が起きたときに問われるべきは「誰がその管理プロセスをつくったのか」
  • 労働と非労働の区別も曖昧になっている

Real World Haskell 27章

UDPとTCPでsyslogサーバとクライアント作って通信させる。

ProductName Real World Haskell―実戦で学ぶ関数型言語プログラミング
Bryan O'Sullivan,John Goerzen,Don Stewart
オライリージャパン / ¥ 3,990 ()
在庫あり。

28章はSTMだけどこれはJava並行処理プログラミング読んでからにしよう。

ProductName Java並行処理プログラミング ―その「基盤」と「最新API」を究める―
Brian Goetz,Joshua Bloch,Doug Lea
ソフトバンククリエイティブ / ¥ 3,990 ()


これで一通り読んだので、そのうちもう一度読む。二周目は練習問題解きながら。

「新世代日本酒が旨い」を読んだ

はじめて日本酒を飲むヒトのための本として書かれているが、最近の日本酒ガイドとしても良い。フレッシュでフルーティーさの強い日本酒を選んでいる。

入手しにくい銘柄もあるけど、日本酒リストとしての価値を考えるとお買い得感はある。

ProductName 新世代日本酒が旨い 角川SSC新書 いま飲むべき全国の36銘柄
かざま りんぺい
角川グループパブリッシング / ¥ 819 ()
在庫あり。

この先には燗をつける楽しみが待っているけど、燗つけて楽しいお酒とかは又違ってくるので続編をいま燗で飲むべき全国の36銘柄とかやって欲しいなぁ。

呑み飽きしない度で銘柄探したりとか、2000円以内で美味しい銘柄とか、入り口さえ超えてしまえば世界は広いと思う。

Real World Haskell 22章

HaXmlとHDBCを使ってXMLの構文解析とSQLiteのデータベース操作を組み合わせてpodcastのダウンローダーをつくるというなかなか楽しい章だが、このまえSQLAlchemyの本読んでたから、SQL文を直接埋め込むのはなんか面倒くさかった。

ProductName Real World Haskell―実戦で学ぶ関数型言語プログラミング
Bryan O'Sullivan,John Goerzen,Don Stewart
オライリージャパン / ¥ 3,990 ()
在庫あり。

順調に消化するはずだったがHaXmlを使ったパーサーが文句を言う

PodParser.hs:40:11:
    `CFilter' is not applied to enough type arguments
    Expected kind `?', but `CFilter' has kind `* -> *'
    In the type signature for `channel':
      channel :: CFilter

んー?型が悪いの?

Prelude Text.XML.HaXml> :i CFilter
type CFilter i = Content i -> [Content i] -- Defined in Text.XML.HaXml.Combinators

あれ?type CFilter = Content -> [Content]じゃない。

多分これだな

「医薬品クライシス」を読んだ

風邪でノドが痛いので休んで読書の日。

ふたメルさん(笑)

ProductName 医薬品クライシス―78兆円市場の激震 (新潮新書)
佐藤 健太郎
新潮社 / 735円 ( 2010-01 )


製薬業界のことを大雑把につかむためにもおすすめの良書だと思う。 製薬業界の中の人だったら5章6章は面白いと思う。

成果主義とか危険だよね、つけが回ってくるのは確実だもん。あと、パラダイムシフトはあるよね多分。でもみんな割とのほほんとしてるよね、受け皿ないのに。

でも、オープンイノベーション的な事には触れてなかった気がする。もうちょっと技術に特化したかたちのベンチャーの垂直統合的なモデルはもうちょっと盛り上がってもいいと思っているのだけども、難しいのかな。SBDDとかアウトソースでいいような、自分でやっててアレだけど「これってコンサルだよなぁ」といつも思うもん。

Write Yourself a Scheme in 48 HoursComments (4章)

効率のよいエラーの仕組みを導入。

type ThrowsError = Either LispError

みたいなのが慣れない。Either a bがaとbの両方をとるみたいに感じちゃうからか。実際に下のようにしてみると納得出来るんだけど。

ここにあった例を

int_sqrt :: Int -> (Either Int Double)
int_sqrt x | fsdx * fsdx == x  = Left fsdx  
           | otherwise = Right sdx
 where sdx = sqrt $ fromIntegral x
       fsdx = floor sdx

このように変えてみた

type Leftint = Either Int

int_sqrt :: Int -> (Leftint Double)
int_sqrt x | fsdx * fsdx == x  = Left fsdx  
           | otherwise = Right sdx
 where sdx = sqrt $ fromIntegral x
       fsdx = floor sdx

まぁそうだよなと思う。