Skip to content

Instantly share code, notes, and snippets.

@thoughtpolice
thoughtpolice / CoYoOperational.hs
Last active Dec 17, 2017
Free (CoYoneda f) ~ Operational
View CoYoOperational.hs
{-# LANGUAGE GADTs, LambdaCase, MultiParamTypeClasses, FlexibleInstances #-}
-- |
-- Module : Control.Operational.Monad
-- Copyright : (c) Austin Seipp 2013
-- License : BSD3
--
-- Maintainer : aseipp@pobox.com
-- Stability : experimental
-- Portability : unportable (GADTs, MPTCs, etc)
--
@nebuta
nebuta / haskell_advent_2012_26.md
Last active Feb 28, 2021
HaskellでWebスクレイピング - Haskell Advent Calendar 2012
View haskell_advent_2012_26.md

HaskellでWebスクレイピング

この記事はHaskell Advent Calendar 2012の26日目の記事です。Haskell Advent Calendar初参加です。コメントなどお待ちしております。

前提知識 - Haskellでの文字列処理

HaskellではString([Char]の別名)が文字列の基本型で、これはリストであるためにパターンマッチ・再帰やPreludeやData.Listにあるリスト用の関数を使って処理ができるという利点があります。ただし、実用上はパフォーマンスが低いため、TextByteStringが代わりに用いられます。Textはいわゆるユニコード文字列、ByteStringはバイト列という区別です。この使い分けに関してはちょうどAdvent Calendarの@brain_appleさんのこの記事で解説されました。StackOverflowでの質問も参考になります。

HaskellでのHTMLパーシング用ライブラリの概観

Hackageを見ると、

@seizans
seizans / BATCH.md
Created Dec 16, 2012
DB batch job by Haskell
View BATCH.md

HaskellでDBバッチ処理

概要

これは [Haskell Advent Calendar 2012][] の11日目の記事、その2です。
Haskell で DBを使うバッチ処理を書くための記事です。
基本的な文法を把握したらバッチ処理を書くのは簡単だと示すのが目的です。
主な対象読者は [プログラミングHaskell][] か [すごいHaskellたのしく学ぼう!][] を読み、Haskell をより使いたい人です。

@seizans
seizans / persistent.md
Created Dec 10, 2012
Haskellで便利にデータ設計
View persistent.md

Haskellで便利にデータ設計

概要

これは [Haskell Advent Calendar 2012][] の11日目の記事です。
Haskell でデータ設計を便利に行う発想・方法について書きました。
[persistent][] というライブラリを活用します。
Haskell を知らなくても読めます。
主な対象読者は [プログラミングHaskell][] か [すごいHaskellたのしく学ぼう!][] を読み、Haskell をより使いたい人です。

@jboner
jboner / latency.txt
Last active May 9, 2021
Latency Numbers Every Programmer Should Know
View latency.txt
Latency Comparison Numbers (~2012)
----------------------------------
L1 cache reference 0.5 ns
Branch mispredict 5 ns
L2 cache reference 7 ns 14x L1 cache
Mutex lock/unlock 25 ns
Main memory reference 100 ns 20x L2 cache, 200x L1 cache
Compress 1K bytes with Zippy 3,000 ns 3 us
Send 1K bytes over 1 Gbps network 10,000 ns 10 us
Read 4K randomly from SSD* 150,000 ns 150 us ~1GB/sec SSD
View post-receive.rb
#!/usr/bin/env ruby
# Aside from removing Ruby on Rails specific code this is taken verbatim from
# mislav's git-deploy (http://github.com/mislav/git-deploy) and it's awesome
# - Ryan Florence (http://ryanflorence.com)
#
# Install this hook to a remote repository with a working tree, when you push
# to it, this hook will reset the head so the files are updated
if ENV['GIT_DIR'] == '.'