19022010 Haskell
来週の土曜日に第二回Haskell読書会が静岡であります。
プログラミングHaskellの3章を読みます。
次の日は朝から簿記試験なので、懇親会にはまたもやでられない。残念。
19022010 Haskell
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もいいかもとか思い始めたでござる。
18022010 life
娘の誕生日ということで。
期待度の割にはげんなり感がでかかったらしい。
まぁ、僕は見てないので分からないが、レビューにも似たことが書いてあった。辛口な評価のほうが参考になる感じ。
シュークリーム作りは割とがんばれるかもしれん。
18022010 Scala
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
Scalaスケーラブルプログラミング[コンセプト&コーディング] (Programming in Scala)なんか慣れない。
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)]
16022010 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
みたいな。
なるほどと思ったのであった。
Scalaスケーラブルプログラミング[コンセプト&コーディング] (Programming in Scala)Scalaはインタプリタが遅いのがたまに気になる。
名著ですな。なぜ今まで読まなかったのだろう。娘には早い時期に読ます。
15022010 work
「7割は課長にさえなれません」と一緒に注文した。両者とも読みやすいが、課長のほうは社会的な構造のほうに焦点を当てているのに対し、人材のほうは、どういう組織を作っていくべきかという前向きな内容。
なので理想論というか、ちょっとリアリティに欠けるという感じはする。本書の内容は目指すべきだけど、そのためには、既存の枠組みを潰さないといけない組織の方が多いんじゃないかなぁと。どこかで一回リセットしないといけないけど、それはなかなか難しいかなぁと(今の組織にいると)思う。
ただ、近い将来の展望はどちらの本も一緒で、普通の能力のレベルから海外のアウトソースの対象になって上と下の生き方が二極化される。そのレンジは海外との賃金格差がなくなるまで落ちていくだろうというのはまぁそうだろう。
14022010 Linux
メモリ管理
Linuxカーネル徹底理解も参考にしながら読んだ。