第二回Haskell読書会開催

来週の土曜日に第二回Haskell読書会が静岡であります。

プログラミングHaskellの3章を読みます。

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

次の日は朝から簿記試験なので、懇親会にはまたもやでられない。残念。

tweepyでOAuthを試してみた

PythonでOAuthを試したかったのでtweepyを使ってみた。

easy_installじゃなくてgitから

git clone git://github.com/joshthecoder/tweepy.git

まずはBasic認証

>>> import tweepy
>>> auth = tweepy.BasicAuthHandler("user", "password")
>>> api = tweepy.API(auth)
>>> api.update_status('hello from tweepy(Basic)')
<tweepy.models.Status object at 0x13c8db0>

http://twitter.com/kzfm/status/9330123865

続いてOAuth。consumer_token,consumer_secretはあらかじめtwitterから取得しておく。

>>> import tweepy
>>> consumer_token = "xxxxxxxxxxxxxx"
>>> consumer_secret = "xxxxxxxxxxxxxxxx"
>>> auth = tweepy.OAuthHandler(consumer_token, consumer_secret)
>>> redirect_url = auth.get_authorization_url()
>>> redirect_url

redirect_urlのURLにブラウザでアクセスして許可すると7桁の数字が表示されるのでそれを入力

>>> verifier = '1234567'
>>> auth.get_access_token(verifier)
<tweepy.oauth.OAuthToken object at 0x1393510>
>>> key = auth.access_token.key
>>> secret = auth.access_token.secret
>>> auth = tweepy.OAuthHandler(consumer_token, consumer_secret)
>>> auth.set_access_token(key, secret)
>>> oauthapi = tweepy.API(auth)
>>> oauthapi.update_status('hello from tweepy(OAuth)')
<tweepy.models.Status object at 0x1397b50>

http://twitter.com/kzfm/status/9330367673

wsgioauthもいいかもとか思い始めたでござる。

ProductName エキスパートPythonプログラミング
Tarek Ziade
アスキー・メディアワークス / 3780円 ( 2010-05-28 )


ふわシュー

娘の誕生日ということで。

期待度の割にはげんなり感がでかかったらしい。

  • やたら時間がかかる。
  • 生地がまざらなくて、物理的に難しいのではないか?とのこと

まぁ、僕は見てないので分からないが、レビューにも似たことが書いてあった。辛口な評価のほうが参考になる感じ。

ProductName シュークリームの本 (マイライフシリーズ 709 特集版)
飯田 順子
グラフ社 / ¥ 1,000 ()
在庫あり。

シュークリーム作りは割とがんばれるかもしれん。

ScalaでXML

ScalaそのままXMLを取り込める。ダブルクォーテーションで囲むと文字列として認識する。

scala> val a = <p><name>kzfm</name><address>fuji</address></p>
a: scala.xml.Elem = <p><name>kzfm</name><address>fuji</address></p>

scala> val b = "<p><name>kzfm</name><address>fuji</address></p>"
b: java.lang.String = <p><name>kzfm</name><address>fuji</address></p>

これは、さらにXPath風のメソッドが使える

scala> a \ "name"
res1: scala.xml.NodeSeq = <name>kzfm</name>

型を変換したり、要素の中身を取り出してみる。

scala> a \ "name" toString                                      
res2: String = <name>kzfm</name>

scala> a \ "name" text    
res3: String = kzfm

ProductName Scalaスケーラブルプログラミング[コンセプト&コーディング] (Programming in Scala)
Martin Odersky,Lex Spoon、Bill Venners
インプレスジャパン / ¥ 4,830 ()
在庫あり。

ゼロから学ぶOAuth

ゼロから学ぶOAuthの第二回のサンプルを試した。

tcpflowはifconfigで適切なインターフェースを調べてから

sudo tcpflow -c -i en1

とかやった。

pythonのOAuthのモジュールはoauthoauth2ってのがあって、どっちがよいんだかわからん。

あとで読む

Scalaのzipが

なんか慣れない。

scala> Array(1,2,3) zip Array(4,5,6)
res1: Array[(Int, Int)] = Array((1,4), (2,5), (3,6))

Haskellだとこんな感じでしょ。

Prelude> [1,2,3] `zip` [4,5,6]
[(1,4),(2,5),(3,6)]

Pythonだと

[1,2,3].zip([4,5,6])

とはできない。

>>> zip([1,2,3],[4,5,6])
[(1, 4), (2, 5), (3, 6)]

Monads in Scala

Scalaスケーラブルプログラミングを11章まで読んで、構文を多少理解したので、Monads in Scalaを読んだ。

要するにモナドはforに宿るってことでいいのかな。

bind [e1] (\v1 -> bind [e2] (\v2 -> unit(v1 + v2)))

というbindが出てきてこれはScalaのforだと。

for {v1 <- e1; v2 <- e2} yield v1 + v2

みたいな。

なるほどと思ったのであった。

ProductName Scalaスケーラブルプログラミング[コンセプト&コーディング] (Programming in Scala)
Martin Odersky,Lex Spoon、Bill Venners
インプレスジャパン / ¥ 4,830 ()
在庫あり。

Scalaはインタプリタが遅いのがたまに気になる。

「いかにして問題をとくか」を読んだ

名著ですな。なぜ今まで読まなかったのだろう。娘には早い時期に読ます。

ProductName いかにして問題をとくか
G. ポリア
丸善 / ¥ 1,575 ()
在庫あり。

  • ある問題を解くときに我々は同じような問題を解いた経験に頼りつつ
  • サカナを釣ることは針にひっかけることではなく捕まえることである
  • 他のものよりも内容の多い記号を含みが多い
  • 未知のものをよく見よ。結論をよく見よ
  • 発見的推論は何も証明することはできないけれども、それにも関わらず重要である
    • アブダクション
  • 目先がきくということはたちまちのうちに物事の本質的な関連を見ぬいてしまうことである
  • 枕に相談せよ
  • 予想は当たっているかもしれないが、予想を真実と考えることほどばからしいことはない

「日本で最も人材を育成する会社」のテキスト

「7割は課長にさえなれません」と一緒に注文した。両者とも読みやすいが、課長のほうは社会的な構造のほうに焦点を当てているのに対し、人材のほうは、どういう組織を作っていくべきかという前向きな内容。

なので理想論というか、ちょっとリアリティに欠けるという感じはする。本書の内容は目指すべきだけど、そのためには、既存の枠組みを潰さないといけない組織の方が多いんじゃないかなぁと。どこかで一回リセットしないといけないけど、それはなかなか難しいかなぁと(今の組織にいると)思う。

ただ、近い将来の展望はどちらの本も一緒で、普通の能力のレベルから海外のアウトソースの対象になって上と下の生き方が二極化される。そのレンジは海外との賃金格差がなくなるまで落ちていくだろうというのはまぁそうだろう。

  • OJTの終焉
  • 退職していくヒトの扱い
  • ITサービス提供者がユーザー教育をするという高い志
  • バックワードチェイニング
  • どういう人とチームを組むのかが、ある人の成長の重要な部分を決めてしまう(仮説)
  • 読書とは他人が苦労して得た経験を、考えられないくらい格安で手に入れること

Linuxカーネル2.6解読室 Part III

メモリ管理

ProductName Linuxカーネル2.6解読室
高橋浩和,小田逸郎,山幡為佐久
ソフトバンククリエイティブ / ¥ 5,670 ()
在庫あり。

Linuxカーネル徹底理解も参考にしながら読んだ。