2011年11月21日月曜日

【Python】入門ソーシャルデータ その2

前回に引き続き、オライリーの入門ソーシャルデータに関して。

前回は、p6の例1−3で不具合があったので、修正した。
修正箇所は、easy_installしたtwitterのAPIラッパーの、api.pyの121行目あたりにちょろっと手を加えた。
夜も遅かったし、そこで寝てしまったんだけど、次の日、更に進めて行く上で、そのすぐしたの例1−4ですぐにこの手を加えた場所でエラーが起きた。。。

原因はsearch_.twitter.comとapi.twitter.comに投げるリクエストURIの形が違うから、前のをapi.twitter.comだけに都合のよいように書き換えたら、search.twitter.comの方にリクエストを投げるときに不具合が発生するためのよう。。。


そんなわけで、api.pyの121行目あたり、uri = '/'.join(uriparts) の後に次のように継ぎ足す。

uri = '/'.join(uriparts)
if self.domain == "api.twitter.com":
uri = uri + '/1'


これで一応、本で期待している通りには今のところ動く。

また書き直しがあるかな。。。??

【Python】入門ソーシャルデータ

オライリーの「入門ソーシャルデータ」を購入。



早速、第1章を読んで楽しもう!
。。。って思ったところ、1.2.1のtwitter ウェブAPIのラッパーを取得して、「Twitterの検索トレンドの取得」ってとこではまった。。。w

ターミナルで、

>>> import twitter
>>> twitter_api = twitter.Twitter(domain="api.twitter.com", api_version='1')
>>> trends = twitter_api.trends()

って本では入れるようになってるけど、どうにも

Traceback (most recent call last):
File "", line 1, in
File "/Library/Python/2.7/site-packages/twitter-1.7.1-py2.7.egg/twitter/api.py", line 155, in __call__
File "/Library/Python/2.7/site-packages/twitter-1.7.1-py2.7.egg/twitter/api.py", line 170, in _handle_response
twitter.api.TwitterHTTPError: Twitter sent status 404 for URL: 1/trends.json using parameters: ()
details:

ってエラーを吐いてるよ。。。orz

ってか「status 404 for URL:」って書いてあるよ?
あれ??
そんなわけで、Twitter本家のサイトを見に行くと、


うん、リクエストURL違うね?w

ラッパーだと、1/trends.json
でも、公式ガイドだと、1/trends/1.json

www


ってことで、仕方なく、easy_installしたtwitterのラッパーの「api.py」を見に行き、該当箇所を修正。
まぁ「api.py」の121行目の「uri = '/'.join(uriparts)」の後に改行いれて、122行目に「uri = uri + '/1'」っていれてあげるだけなんだけどね。

これで
(略)
>>> trends = twitter_api.trends()
っていれてもエラーはかなくなった!うん、よし!

で、続けて本にある通り、
>>> [ trend['name'] for trend in trends['trends'] ]
とリスト内包表記で、Go!!

。。。っと??またエラーだよ?w

>>> [trend['name'] for trend in trends['trends']]
Traceback (most recent call last):
File "", line 1, in
TypeError: list indices must be integers, not str

んーー??
インデックスエラー??

そんなわけで、さっき代入したtrendsの中を見てみる。

>>> trends
[{u'created_at': u'2011-11-20T16:32:46Z', u'as_of': u'2011-11-20T16:38:38Z', u'trends': [{u'url': u'http://twitter.com/search/%23HappyBirthdayJaxon', u'query': u'%23HappyBirthdayJaxon', u'events': None, u'promoted_content': None, u'name': u'#HappyBirthdayJaxon'}, {u'url': u'http://twitter.com/search/%22Katy%20is%20AMAzing%22', u'query': u'%22Katy%20is%20AMAzing%22', u'name': u'Katy is AMAzing', u'promoted_content': None, u'events': None}, {u'url': u'http://twitter.com/search/%23excaz', u'query': u'%23excaz', u'events': None, u'promoted_content': None, u'name': u'#excaz'}, {u'url': u'http://twitter.com/search/%22Get%20Ariana%20On%20Ellen%22', u'query': u'%22Get%20Ariana%20On%20Ellen%22', u'events': None, u'promoted_content': None, u'name': u'Get Ariana On Ellen'}, {u'url': u'http://twitter.com/search/%23MaisFeioQueORonaldinho', u'query': u'%23MaisFeioQueORonaldinho', u'events': None, u'promoted_content': None, u'name': u'#MaisFeioQueORonaldinho'}, {u'url': u'http://twitter.com/search/%22Edgar%20Allen%20Poe%22', u'query': u'%22Edgar%20Allen%20Poe%22', u'events': None, u'promoted_content': None, u'name': u'Edgar Allen Poe'}, {u'url': u'http://twitter.com/search/%22Excelsior%20-%20AZ%22', u'query': u'%22Excelsior%20-%20AZ%22', u'name': u'Excelsior - AZ', u'promoted_content': None, u'events': None}, {u'url': u'http://twitter.com/search/Jaxon', u'query': u'Jaxon', u'events': None, u'promoted_content': None, u'name': u'Jaxon'}, {u'url': u'http://twitter.com/search/%22David%20Luiz%22', u'query': u'%22David%20Luiz%22', u'events': None, u'promoted_content': None, u'name': u'David Luiz'}, {u'url': u"http://twitter.com/search/AMA's", u'query': u"AMA's", u'events': None, u'promoted_content': None, u'name': u"AMA's"}], u'locations': [{u'woeid': 1, u'name': u'Mundial'}]}]


あや??
u'trends': [{u'url': u'http://twitter.com/search/%23HappyBirthdayJaxon', u'query': u'%23HappyBirthdayJaxon', u'events': None, u'promoted_content': None, u'name': u'#HappyBirthdayJaxon'}, 。。。

ってなってる。

twitterの返してくる形が変わったのかな?

ということで、リスト内包表記を

>>> [ trend[u'name'] for trend in trends[0]["trends"] ]

に変えてあげると、見事、

[u'#HappyBirthdayJaxon', u'Katy is AMAzing', u'#excaz', u'Get Ariana On Ellen', u'#MaisFeioQueORonaldinho', u'Edgar Allen Poe', u'Excelsior - AZ', u'Jaxon', u'David Luiz', u"AMA's"]

本が期待してる結果になったね!!


真夜中にこんなハマるとは思わなかったw

そんなわけで、今日はここで寝ることに。

さてさて、明日もがんばるぞー!





追記:
また不具合起きたので、コードを追加しました。
こちら

2011年8月10日水曜日

ZONE TRIBUTE

限定版届きました!


さっき聴き始めたので、まだまだsecret base 〜10年後の夏〜へのアンサーソングは聴けてないけど。。。
女性ボーカルたちのカバー(disk1)はすべて聴き終わった!すてきすぎた!!


今は再結成ZONEのリセレクト(disk2)を聴いてる。
もうやばいww


明日も朝から予定あるけど、しーらない!聴きまくるww

2011年8月7日日曜日

原点回帰

新書がすごく好きで、年間結構読んでいると思う。
そして、インターネットも好き。

なんでなんだろう?と、考えてみた。

上記2つに共通していること、
「どっちも好きになりだしたのは、2007年くらいから。」
ということ。

どっちも好きになりだした2007年くらいに、一番印象的だった新書を考えてみる。

まず、2006年に読んだ、梅田さんのWeb進化論(ちくま新書)。
あれは大学の講義関係で読んだときは、正直、あんまり何も感じなかった。

で、2007年くらいに、ふと立入った本屋で発見したものが、
梅田さんと茂木さんの対談本、フューチャリスト宣言(ちくま新書)。

まぁ正直、今内容は覚えてない(笑)
でも、これにすごく衝撃を覚えた感覚は記憶にある。

アマゾンのレビューには、あまり得られるものはないとも書かれていたけれど、それまでPCやインターネットにほとんど触れてこなかった自分には、すごく収穫があったんだろう。

そう、思えばそこから。
インターネットや新書が好きになったのは。


「フューチャリスト宣言」
まさに、未来学者によって導かれた未来。

そこでまた考える。
本当に、今のまま、ここから未来へ行きたいか?と。

答えはNoだ。
もっと知識とスキルを磨いて向かいたい。
磨きながら進みたい。磨き続けたい。

でも焦ってもいいことはない。それは今までの経験からわかる。

そして、間違いなく、今はこれから進む道を決めるところにいる。
だからこそ今はちょっと立ち返ってみるトキだと思う。

そこで、このブログの一番始めの問いがでてきた。
そしてその解の一つが、「フューチャリスト宣言」だった。


さぁ原点にもどってみよう。これからインターネットの世界で生きていきたいと考える今こそ。

そんなわけで、少しの間読書に耽ろうと思う。


強く地面に突き進む雨をみて、轟渡る雷鳴をききながら。

2011年8月1日月曜日

「10年後の8月」

2011年08月。

10年後の8月がやってきました。
現在23歳。
ZONEを好きになってから、もう10年になるんだな。

この10年は、少年→青年→成年と3ステップも踏んだ10年。

いろんな人と出逢って、別れて。。。
気づけば、10年経っていたというのが本当のところ。

ここから10年は、30歳での夢に向かって突き進む10年にしようと思う。
ここまでの10年は、人格を形成する10年、
ここからの10年は、仕事を形成する10年。

少しずつ道も拓けてきた。
突き進もうと思う。


そして、ここから10年もZONEにはお世話になりそうだなw


本当にいい曲がおおい。




ZONE secret base 〜君がくれたもの〜




さてがんばろう!


memo:
secret baseのリリース日は、2001.08.08

2011年7月31日日曜日

新MacBook AirとAirDrop

約1年半ぶりの投稿。やっぱりブログは続かない。。。
ソーシャルネットワーキングのすごいところは、友人って概念を可視化してるだけで、(変な話だけど)無意識下の内に意識してしまってるとこなのか、ブログを書くという行為よりも人間に近い場所で日記やノートやつぶやきを書くって行為があるからなのか。。。いや、その二つが重なっていてこそのソーシャルだなw


まぁそんなことはいいとして、2011.07.29、ついに新MacBook Airが届いた。





かっこいい!><

13incの128GB,USキーボード。SSDもCTOしようか迷ったけど、倍で2万は高いし、前のMacBookをカスタムしたときに2週間待たされたことを考えて、今回はキーボードだけUSに変えた。。。のに!

結果、CTO扱いとなり、到着まで1週間待たされましたとさ。

まぁいいやw



ついでにケースは、AIRTEGO(エアテゴ)の白いやつ。
http://zrg-ratio.com/item/zrg-macs01.html

これもシンプルでかっこいい!!

あわせて、無印のポリプロピレンキャリアケースを買って、しばらくはこれで大学まで通おうかと。
荷物が少ないって最高です。




とりあえず、MacBookは、とにかくMacに慣れるように使い倒そうとした時代。
んで、今回のMacBook Airはとにかくプログラミングをする!という時代への突入。

がんばりますかな。


そして、Mac OS X Lionの新機能、AirDropのすばらしさに感激。

↓ファイルを送りたい側のMacで、ポチ、ポチ


↓受け取りたい側のMacで、ポチ



あと最近夜は、豆電球+ディフューザー(無印)で過ごすと最高に涼しくて作業がしやすいってことに気づいた。
そしてiPadとMacBook Airが大変に使いやすい空間にもなる!



この夏、少しずつ、お部屋をカスタムしていきーの、シンプルな生活ってのにしていこうかと。
ほんとにすてきだからね!


あー、最高!