忙しいときほど他のことをやりたくなるのは人の性なのか...というわけで今回も Haskell 関連の内容です. はじめに Twitter の Streamimg API から取得した内容を Conduit で処理する,という内容です.Streaming API は Source として利用するのに最適な気がしたのです. 環境 ubuntu 10.04 32bit ghc 7.0.4 cabal-install 0.10.2 *1 using version 1.10.2.0 of the Cabal library 利用パッケージ 主な利用パッケージは以下の通りです. (具体的な import については「リポジトリ」のところに載せたコードを参照) http-conduit-1.4.1.3 http://hackage.haskell.org/package/http-conduit-1.
{-# LANGUAGE OverloadedStrings #-} import Web.Authenticate.OAuth as OAuth -- authenticate-oauth-1.4.0.4 import qualified Data.Aeson as JSON -- aeson-0.6.1.0 import Data.Conduit -- conduit-1.0.0 import Network.HTTP.Conduit -- http-conduit-1.9.0 import Network.HTTP.Types -- http-types-0.8.0 import Network (withSocketsDo) oauth :: OAuth.OAuth oauth = OAuth.newOAuth { OAuth.oauthServerName = "twitter"
例によってお酒を飲みながら書いているので文章が冗長です。御託はいいって人は本題まで飛ばしましょう。 枕っていうか前置き プログラミング言語選択の理由というのは結局のところライブラリだったり環境にインストールされてるのがそれしかなかったりとか、言語自体がどうこうというのとは関係ない部分で決まったりして。 だからメジャーな言語はひと通りやってると意外な時に役に立ったりすることもあります。Perl, PHP, Ruby, Pythonあたりは2つ3つくらい覚えておくとなにかの役に立つかも。いや「何かの役に立つかも」ってレベルですが、少なくとも私は運が良いのか悪いのか、役立つシーンに遭遇したことがある。 で、 私は最近趣味でプログラミングする時はネットワーク環境が無いところでやる事が多いんです。適当にそこら辺のカフェとかで遊んでいるし、モバイルルータとかも持ってないし。 外で開発してて困ることと言
hoauth があるけどこれまた使いにくい,というか自分には使い方がわからなかったので自分で書いた. HTTP の Request_String を作るのでこんなかんじに使える. import Control.Applicative ((<$>)) import Network.URI import Network.HTTP import qualified Text.JSON as J import Data.IntSet (IntSet) import qualified Data.IntSet as S import OAuth getFollowerIds :: OAuth -> IO (Either String IntSet) getFollowerIds oauth = J.resultToEither . J.decode <$> (genOAuthRequest oaut
Haskell触り始めて三ヶ月ほど経ったー プログラミング自体を始めて, 一年半くらいー (だいたい 3日前, こんな夢を見たんだ せんぱーいwww プログラム書いててwww OAuth触れないのってwww 笑ってませんよ?wwww ちょ、ちょっとごめんなさいwww あはははwww …ぷっw (*´pq`) ってことで, Haskellで, Twitterに投稿するだけのクライアントを書いてみたよ Haskellでリクエストトークンを拾ったりそういうところのコードが, あまりネットで探しても無い気がするので... 再利用なんてなかった!!! ←おいっ 参考文献 HaskellでOAuthとTwitter API [Haskell] Haskell で OAuth 偉大なるid:eagletmt, id:kenkov両氏に感謝! というか, コードの大半は両者のブログに載ってたもの... O
Twitter風URL自動リンクの話(関連: Kazuho@Cybozu Labs: (Twitter の XSS 脆弱性に関連して) 構造化テキストの正しいエスケープ手法について)。 あの問題では、関数のシグネチャを expandString(String):String 、「文字列を受け取って文字列を返す関数」としているが、これはあくまで実装上の都合。実際には「プレインテキストを受け取ってHTMLを返す関数」であって、引数と帰り値のドメインはまったく異なっている。ということを踏まえると以下のコードがどれだけひどいのかわかろうというもの。 module Twitter module AutoLink # (snip) def auto_link(text, options = {}) auto_link_usernames_or_lists( auto_link_urls_custom(
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く