クッキー焼いた

U隊長が土曜日に働きにいくようになったので、週末は子供の面倒をみたりとか。

娘がクッキーを焼きたいと言い出したので焼くことにした。オーソドックスにチョコチップ。蕎麦打つよりは楽ですな。

1286195344 1286195356

近所のスーパーに行ってキラキラアイテムを追加した。

1286195363 1286195350

まぁまぁの出来。

「クッキーじゃなくて肉饅つくろうよ」って言ってみたところ「また今度ね」と軽く流されたが、次回こそは肉饅だな。

「Google API Expertが解説するHTML5ガイドブック」を読んだ

5章のほかに7,8,9も興味があったのだけど、7,8,9は内容が薄いというかサンプルがそそられなかった。一応押さえておけば、なんかすごい例が出てきたときにすぐに取り入れられていいのかも。

あと、ありがちなデザイナー向けな本ではなくてプログラマー向けなのでよかったが、そのわりにはプログラマー向けの記述、例えばCommetとWebsocketってどう違うのよ?とかそういうあたりがちょっとしか触れられてなくて、どこがどう違ってどういう利点があるのよとかそういうことが知りたかった。あとWeb Workers 8pageって端折り過ぎじゃね?

ProductName Google API Expertが解説するHTML5ガイドブック
羽田野 太巳,白石 俊平,古籏 一浩,太田 昌吾
インプレスジャパン / ¥ 2,940 ()
在庫あり。

  • 第1章 イントロダクション [羽田野 太巳]
  • 第2章 Canvas [羽田野 太巳]
  • 第3章 SVG [太田 昌吾]
  • 第4章 Video & Audio [古籏 一浩]
  • 第5章 ドラッグ&ドロップ [羽田野 太巳]
  • 第6章 オフラインWebアプリケーション [白石 俊平]
  • 第7章 WebSocket [白石 俊平]
  • 第8章 Web Workers [白石 俊平]
  • 第9章 Geolocation [古籏 一浩]

ドラッグアンドドロップのサンプルは実際にやってみた。これはいい。

drag and drop sample

今日届いた本

両方面白そう!

ProductName Google API Expertが解説するHTML5ガイドブック
羽田野 太巳,白石 俊平,古籏 一浩,太田 昌吾
インプレスジャパン / ¥ 2,940 ()
在庫あり。

ProductName セマンティックWeb プログラミング
Toby Segaran,Colin Evans,Jamie Taylor
オライリージャパン / ¥ 3,360 ()
在庫あり。

「日本は世界5位の農業大国」を読んだ

ちょっと極端すぎる持論を展開する場面が多々あるが、自給率の話は読んでいて勉強になった。自給率っていうのは率の話であって、国民が必要とする量を100%に置いているわけではないのね。

  • 発展途上国は軒並み自給率が高いが、それは海外から食料を買うお金がないからだ
  • 貧困にあえぎ、栄養失調に苦しむ国民が大いに関わらず自給率は高い
  • 農業をビジネスとして捉えていない農家を擬似農家
    • 趣味の家庭菜園的な僕らも擬似農家
  • ほとんどの零細農家は帳簿など付けておらず、コストがどうなっているかなど自分たちでもわからない
    • だめじゃん
  • 耕作放棄地が増えているのは日本だけでなく、フランス、イタリア、アメリカでも同様。にも関わらず生産量は増えている
  • 農業は顧客が起点の商売。供給者主導でマーケットはコントロール出来ない。
    • 日本のコメは?
  • 日本のように自給率の数合わせばかりにこだわり、マーケット評価の低い麦、大豆や需要のない飼料米を税金で増産しても農業の成長にはつながらず、国民の負担を増やすだけ
  • 商品は絶対的に正直なものなので、国産品でも質が悪く、コストも高ければ外国産に太刀打ち出来ない

読み比べるならここらへんか?

ProductName 食料自給率100%を目ざさない国に未来はない (集英社新書)
島崎 治道
集英社 / ¥ 714 ()
在庫あり。

「ソーシャルライフログ」を読んだ

出張ホストの話とか日常を綴ったとかそんな感じかなと思ってたら最後に小飼弾さんが出てきた。それが本を贈るといういい話だった。

ProductName ソーシャルライフログ 電子小説家の自分さらし
内藤みか
朝日新聞出版 / ¥ 1,050 ()
在庫あり。

僕も娘か息子が読んでくれるといいなあと思っている本が幾つかあるヨ。

数学ガールとかね。

ProductName 数学ガール
結城 浩
ソフトバンククリエイティブ / ¥ 1,890 ()
在庫あり。

ProductName 数学ガール/フェルマーの最終定理
結城 浩
ソフトバンククリエイティブ / ¥ 1,890 ()
在庫あり。

ProductName 数学ガール/ゲーデルの不完全性定理
結城 浩
ソフトバンククリエイティブ / ¥ 1,890 ()
在庫あり。

Real World Haskell 8章

maximumは空リストを取れない

*Main> maximum [1..5]
5
*Main> maximum []
*** Exception: Prelude.maximum: empty list

そこで、ちょっと工夫する

safemaximum :: Ord a => [Maybe a]  -> Maybe a
safemaximum = maximum . (Nothing:)

使ってみる

*Main> safemaximum $ map Just [1..5]
Just 5
*Main> safemaximum []
Nothing

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

プログラミングHaskell 10章 (練習問題10-4)

練習問題10-4

バランスのとれた木をつくる。

data Tree = Leaf Int | Node Tree Tree deriving Show

balance :: [Int] -> Tree
balance [x] = Leaf x
balance xs = Node (balance ys) (balance zs)
    where (ys,zs) = splitlr xs
              where splitlr ls = splitAt (length ls `div` 2) ls

いちいちリストの長さを数えるのはあほらしいということで、長さを数えずにリスト分割する別解

要するにsplitを工夫すればいいのね。

ということでマージソートまわりを漁ってみた。

split :: [a] -> ([a],[a])
split []       = ([],[])
split [x]      = ([x],[])
split (x:y:zs) = (x:xs,y:ys)
  where 
    (xs,ys) = split zs

ってのが直感的に分かりやすいかな。

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

という感じで、静岡Haskell読書会をやっています。

Real World Haskell 7章

入出力

環境変数をmapM_を使って出力してみた。

import System.Environment
main = do env <- getEnvironment 
          mapM_ (putStrLn . show) env

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

今日の畑(100930)

最近雨ばかりで、今日も雨の予報だったのだけど、朝起きたら降ってなかったのでこのタイミングを逃すまじと。

今時は5時だとまだ暗くて、5時半にならないと日が出てこない。夜は日が落ちちゃうし、畑仕事をする時間がなくて困る。

甘長美人と茄子のレーン。両方共ほとんど終わりかけてる。

1285843646

ミョウガは、ボコボコ取れて楽しい上に、オクラみたいにすぐ成長するわけでないので、多少放っておいても収穫時期を逃すことがないのが嬉しい。

1285843640

浅葱も順調に大きくなってきて、収穫タイミングをはかっている。

1285843652

今日の収穫。ミョウガ、茄子、甘長美人

1285843658

空いてる区画が結構多くて、雑草も生えてきてるので手入れしつつ葉物でも蒔くといいんだけど、去年撒いたらアブラムシの猛攻にあったので躊躇している。

あと、来年はソラマメとジャガイモ(春)を植えたいんだけど、それらを逆算して葉物をシーケンシャルにつなげられるかとか週末に計画を立てる。

Real World Haskell 4章 練習問題4-5

takeWhileの実装

まずは再帰で

mytakeWhile :: (a  -> Bool) -> [a] -> [a]
mytakeWhile f [] = []
mytakeWhile f (x:xs) = case f x of
                       True   -> x : mytakeWhile f xs
                       False  -> [] 

続いてfoldrを使って

mytakeWhile' :: (a  -> Bool) -> [a] -> [a]
mytakeWhile' f xs = foldr step [] xs
    where step x ys | f x    = x : ys
                    | otherwise = []


-- *Main> mytakeWhile' (<3) [1,2,3,4,5,4,3,2,1]
-- [1,2]

最初書いてたときにコレって

1:2:3:[]:[]:3:2:1:[]

ってなるよなとか思ったんだけどfoldrの定義見て

-- foldr            :: (a -> b -> b) -> b -> [a] -> b
-- -- foldr _ z []     =  z
-- -- foldr f z (x:xs) =  f x (foldr f z xs)

再帰になってるから[]が返った時点で終了すんのねと。

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