Haskell

Servant に Experimental モジュールとして追加された認証の仕組み

はじめに 久しぶりに Haskell に戻って Servant を触ってみたら,いつの間にか認証周りの仕組みが実験的に追加されていました. 興味がわいたため,Authentication in Servant とコードを読みながら少しだけ仕組みをのぞいてみました. バージョン情報 lts-7…

Haskell で書いた Web サービスにおける IO 部分の自動テスト

Haskell で書いた Web サービスの自動テストを考えたとき,IO の部分が問題になる場合があります. KVS や DBMS を利用する部分は CI サービス上で必要なものを起動すれば問題ないのですが,外部サービスと連携する部分は問題として残ります. またデグレす…

OpenID Connect 1.0 Relying Party を実装するための Haskell 用ライブラリ

タイトルの通り,OpenID Connect 1.0 のクライアントライブラリを作りました.Hackage に上げてありますので cabal install で導入できます. 背景 Web サービスを作成するにあたって認証をどうするかは悩ましいところです.先々の展望を考慮して自前で実装…

haskell-servant の利用例とちょっとだけ仕組みの調査

はじめに Haskell には大小様々な Web フレームワークがあります.(yesod, scotty, spock, apiary, rest, 等々) API サーバを作りたいときは scotty を利用することが多かったのですが,つい最近 haskell-servant というパッケージ群を知りました. 小さな A…

haskell-relational-record の MySQL driver

こちらの記事 で作者の方が haskell-relational-record の解説をされています. MySQL からも使いたいなぁと思ったので,他の RDBMS driver をまねて MySQL driver を書いてみました. haskell-relational-record-driver-mysql 少しずつブラッシュアップして…

Haskell の machines に入門してみた,というお話

はじめに io-streams パッケージがリリースされた折にふと「conduit,pipes,io-streams 以外の streaming data を扱うライブラリには何があるんだろうか?」と疑問に思いつぶやいてみたところ, machines がある ということを教えていただきました. 気にな…

LTSV format parser in Haskell

はじめに 少し前から LTSV が話題になっています.ログ出力データの処理がやりやすそうです. http://ltsv.org/ 上記サイトに載っているとおり仕様がシンプルですから,パーサの練習問題としてもってこいな気がしました. attoparsec による実装 ByteString …

cassy: Cassandra client for Haskell

最近 Cassandra を利用する機会がありまして,今回はその絡みで調べてみたことです. そういえば最近になって 1.2 がリリースされましたね.atomic_batch とか気になります. はじめに cassy は Haskell で書かれた Cassandra クライアントです.ClientOptio…

resourcet パッケージのコードを読んでみた

久しぶりに時間を確保できたため,Resource モナドのあたりを調査してみました.結果としてはよくわからない部分*1 が残っているのですが,ごちゃごちゃを一旦整理する目的で書き出してみました. 見出し はじめに 基本的な使い方 リソース解放 例外安全性 m…

Conduit で Twitter Streaming API を扱う

忙しいときほど他のことをやりたくなるのは人の性なのか...というわけで今回も Haskell 関連の内容です. はじめに Twitter の Streamimg API から取得した内容を Conduit で処理する,という内容です.Streaming API は Source として利用するのに最適な…

超単純 HTTP サーバ (練習)

去年から,仕事の合間に時間を見つけてはちまちまと Haskell の勉強をしていました. でも本を読むだけでは今一なので,ここら辺で一回まとまったものを書いてみようかと.初心者なのは承知の上でコードをさらそうかと. あと Haskell 良いですね.まだうま…