DNSSECの基本的な検証機能とその実装

DNSSEC - RRset の署名検証 - RRSIG(Resource Record Signature) DNSSEC は RRset( RR(リソースレコード)のセット ) の内容を、利用者から検証可能にするための仕組みです. DNSKEY RRには、そのゾーンで利用する公開鍵が登録され、RRSIG RR には RRset のタ…

DNS の反復的な名前解決の仕組みとフルリゾルバの実装

ドメイン名の階層 DNS ではドメイン名に対する情報を管理します. ドメイン名には階層があり、ドットで区切られたラベルの列の接尾辞がより上位の名前です. 最上位のドメイン名は "." です. 通常利用されているホスト名では、最上位の "." が省略されています…

DNS の否定応答とフルリゾルバへのネガティブキャッシュの組み込み

DNSのリソースレコードと名前解決 DNS ではドメイン名に関する情報としてリソースレコード(RR) を管理します. RR には ドメイン名、タイプ、クラス、生存期間を示す TTL、RDATA と呼ばれるタイプに応じた目的のデータが含まれています. 名前解決では問い合わ…

GHC Generic Programming と代数的データ型

Haskell Advent Calendar 2016 の 12日目のエントリーです。 代数的データ型と Functor Generic Programming は代数的データ型の構造を Functor の直積と直和のネスト構造に対応付けることで、 任意の代数的データ型に対する操作の記述を可能にする仕組みで…

OverloadedLabels と Haskell Relational Record

Haskell (その2) Advent Calendar 2017 の 18日目のエントリーです。 OverloadedLabels のレコードでの利用 GHC 8.0.1 以降では OverloadedLabels 拡張がサポートされたことにより、 適切な定義を追加しておくことで、レコードのフィールド名の衝突を気にせ…

Haskell Relational Record を PostgreSQL アンカンファレンスで宣伝してきました

Haskell Advent Calendar 2015 の15日目のエントリーです。 以前から、 Haskell Relational Record (HRR) [ http://khibino.github.io/haskell-relational-record/ ] を RDBMS のユーザーのコミュニティーにも紹介してみたいと考えていました。 ( HRR 自体に…

計算の合成

Haskell Advent Calendar 2014 の22日目のエントリーです。 導入 Haskell では計算を持った値であることを型で表わすことができる。 とくに計算を持っていない型は Int や a のような形をしている。 しかし例えば Maybe Int ならば、結果の型 Int の値は得ら…

Extending Query, Relational, Typeful, Composable

Haskell Advent Calendar 2013 の19日目のエントリーです。Haskell で SQL の複雑な検索式を記述するための、Relational Record というライブラリ(以下HRR)(https://github.com/khibino/haskell-relational-record) を作ったので紹介します。このライブラリ…

HaskellDB と Template Haskell

Haskell Advent Calendar 2012の6日目のエントリです。今回は複雑な SQL Queryを型安全に書くためのライブラリ HaskellDB を紹介します。 Queryの記述例 さっそくですが簡単な Query を HaskellDB で書いてみます。簡単のために疑似コードにしてありますが、…

GHCi debugger を使ってみた

Haskell Advent Calendar 2011 のためのエントリです。最近、会社でも Haskell を開発のメンバーで使っていくことに正式に決まりました。Haskell のプログラムをデバッグするときにデバッガーのようなツールを使うことが できるのか社内で質問されたので調べ…

HaskellのLanguage.Java.*を試してみた

Haskell Advent Calendar のためのエントリです。Haskellのライブラリでlanguage-javaというものを見つけたのでご紹介です。 仕事のプログラムでJavaのコード生成を行なっているものがあり、現状ではテンプレートを穴埋めするような処理をPerlで行なっていま…