かなり空きましたが、投げたわけではないですよ?大学始まったので忙しいのです。 さて、何をやっていたかというと、ちょっと混沌とし始めたコードを若干整理したのと、今まで改行だけでダラーッと一つのStringをプリントするだけだったタイムライン表示を、…
タイムラインをDrawingAreaに描画する仕様に変えた際(http://hshstter.hatenablog.com/entry/2012/04/14/190927)に、ちょっとまずいことをしていたようなのでメモ。 DrawingAreaの再描画を行うのに、いままで Graphics.UI.Gtk.Gdk.DrawWindow.drawWindowCl…
前記事(http://hshstter.hatenablog.com/entry/2012/04/15/121001)でTemplate Haskellを使ってみましたが、Mainモジュールにはもっと大きなboilerplateがあるので、それを何とか出来ないかと思ってやってみました。今まで気になっていたけどどうしても直せ…
小ネタ。 Mainモジュールに次のようなコード (body, width, height) <- (,,) <$> newIORef "" <*> newIORef 300 <*> newIORef 0 (tlBody, tlWidth, tlHeight) <- (,,) <$> readIORef body <*> readIORef width <*> readIORef height があり、ふと「タプル版m…
前回(http://hshstter.hatenablog.com/entry/2012/04/12/232132)挑戦して解決しなかったDrawingArea更新の件が解決しました。 わかったことは、 (1)onExposeイベントにセットしたアクションは、drawWindowClearAreaExposeなどで再描画するとちゃんと実行され…
ちょっと現状報告。 ずいぶん間が開いてしまいましたが、別にやめたわけではないです。タイムラインにアイコンやらボタンやらを表示させたい関係で、タイムラインの表示方法をTextAreaからDrawAreaに変更することを目論んでコードを書き換えているのですが………
メインモジュールがごちゃごちゃしてきたのでリファクタリング中。 ファイル入出力に関わる部分をConduitを用いたコードに直してみました。最近Hotなので練習の意味も兼ねて。以下のPDFを参照しました。 http://mew.org/~kazu/material/2012-conduit.pdf と…
今までHTTP通信でOAuthのトークンリクエスト・API呼び出しをやっていたのをHTTPS通信に変更することを試みてみました。 今回、HTTPS通信に切り替えるにあたって、少々関数のインタフェースを変更……変更したのはOAuthモジュールのoauthRequest,apiRequest関数…
一応前回(http://hshstter.hatenablog.com/entry/2012/03/27/025504)まででクライアントとしての基本的な機能は揃ったのですが、Access Tokenを持たない(つまり初回ログイン時)にはCUIに表示されるアドレスをコピーし、CUIの標準入力にPINを打って認証………
前回GLUTを使いましたが、やっぱりこのままこれでGUI開発を続けるのは不可能な気がしたので、なんとかしてgtk2hsをインストールしました。 インストール時に出るエラーが"gtk2hsC2hsのバージョンが違います"だったので、cabalをアップデートしてからもう一度…
ちょっと気が早いかもですが、GUIの勉強をはじめました。gtk2hsを使おうと考えていたのですが、どうもうまくインストールできず断念。とりあえずGLUTを使ってみることに。こちらはcabal install GLUTで入りました。 しかし、GLUTそのものの資料はわりと見か…
API利用は前回できましたので、次はタイムラインの取得を。とは言ったものの、CUIなので見栄えはしませんが……自動更新もつけてません。 自分のアカウントのタイムラインを取得するには、home_timelineを使えばOK。パラメータはいりませんが、いろいろとオプ…
いよいよOAuth APIを使ってtweetしてみました。が、そのまえに前記事・前々記事には気づかなかった署名アルゴリズムに関する私の誤解について。 署名対象文字列生成の際、パラメータ部分を接合する時 パラメータを' & ' , ' = 'で接合→URLエンコード という…
追記)署名アルゴリズムに誤りがあったので訂正 ユーザ認証をどうすべきか悩んだのですが、あんまりいいのが思いつかなかったんで保留。とりあえず認証用URL表示→PINを手入力でアクセストークン取得まで書いた。 いろいろと型を再考しなきゃならないような気…
追記)署名アルゴリズムに誤りがあったので訂正 HTTP通信のやり方を適当に抑えた所で、いよいよHaskellでOAuthプロトコル通信をやってみました。 大体は下のサイトあたりを参考にしました。 OAuthプロトコルの中身をざっくり解説してみるよhttp://d.hatena.n…
HTTPリクエストを送信する方法を前の記事で書き忘れたけど、Request型の値をそのまま送信するには simpleHTTP :: HStream ty => Request ty -> IO (Result (Response ty)) を使えばいいようです。当然リクエスト送信なので返り値はIO型。 ty型はとりあえずSt…
HaskellでのHTTPリクエスト送信について調べたことメモ。このへんのページを参考に"HaskellでHTTP"http://d.hatena.ne.jp/kenkov/20110430/1304162021 "HaskellでOAuthとTwitter API"http://d.hatena.ne.jp/kenkov/20110503/1304441705 "Haskell で OAuth"ht…
HaskellでTwitterクライアントを作ったらどうなるだろうかという、 ただの興味によりblogを立ち上げ。 ちょっとでも関係の有りそうなこと(HaskellのTipsやOAuth関連?)を適当に書きなぐっていくだけの場所になる予定。