Archives
Months
Categories
Articles
-
New Years resolutions for PyTorch in 2025
(January 9, 2025)
-
Ways to use torch.export
(December 23, 2024)
-
Ways to use torch.compile
(November 5, 2024)
-
Tensor programming for databases, with first class dimensions
(October 14, 2024)
-
What’s different this time? LLM edition
(October 4, 2024)
-
Interactive scraping with Jupyter and Puppeteer
(November 23, 2021)
-
PyTorch Developer Podcast
(May 5, 2021)
-
Rage bug reporting
(April 25, 2021)
-
The PyTorch open source process
(January 6, 2021)
-
The hidden problem(?) with basic block procedures in SSA
(October 24, 2020)
-
Idiomatic algebraic data types in Python with dataclasses and Union
(October 14, 2020)
-
Let’s talk about the PyTorch dispatcher
(September 10, 2020)
-
Dynamic scoping is an effect, implicit parameters are a coeffect
(August 27, 2020)
-
A brief taxonomy of PyTorch operators by shape behavior
(May 6, 2020)
-
vmap in Haskell
(January 29, 2020)
-
PyTorch internals
(May 16, 2019)
-
A short note about functional linear maps
(May 15, 2019)
-
Microsoft Surface Book 2
(March 17, 2019)
-
HIW’18: Let’s Go Mainstream with Eta!
(September 23, 2018)
-
A year into Backpack
(July 14, 2018)
-
A compile-time debugger that helps you write tensor shape checks
(April 6, 2018)
-
Online/offline continuous integration
(March 12, 2018)
-
Semantic Import Versioning in the wild
(February 23, 2018)
-
Systems ML workshop panel
(December 8, 2017)
-
Accelerating Persistent Neural Networks at Datacenter Scale (Daniel Lo)
(December 8, 2017)
-
MOCHA: Federated Multi-Tasks Learning (Virginia Smith)
(December 8, 2017)
-
A Machine Learning Approach to Database Indexes (Alex Beutel)
(December 8, 2017)
-
Ray: A Distributed Execution Framework for Emerging AI Applications (Ion Stoica)
(December 8, 2017)
-
Backpack for deep learning
(August 17, 2017)
-
Proposal: Suggest explicit type application for Foldable length and friends
(March 21, 2017)
-
Prio: Private, Robust, and Scalable Computation of Aggregate Statistics
(March 17, 2017)
-
Designing the Backpack signature ecosystem
(March 11, 2017)
-
How to integrate GHC API programs with Cabal
(February 8, 2017)
-
Try Backpack: Cabal packages
(January 17, 2017)
-
A tale of backwards compatibility in ASTs
(December 31, 2016)
-
Backpack and the PVP
(December 30, 2016)
-
Left-recursive parsing of Haskell imports and declarations
(December 21, 2016)
-
The problem of reusable and composable specifications
(December 17, 2016)
-
Thoughts about Spec-ulation (Rich Hickey)
(December 16, 2016)
-
Try Backpack:
ghc --backpack
(October 10, 2016)
-
Seize the Means of Production (of APIs)
(September 13, 2016)
-
The Base of a String Theory for Haskell
(September 7, 2016)
-
The Edit-Recompile Manager
(September 2, 2016)
-
Backpack and separate compilation
(September 1, 2016)
-
cabal new-build is a package manager
(August 29, 2016)
-
Optimizing incremental compilation
(August 27, 2016)
-
What Template Haskell gets wrong and Racket gets right
(July 18, 2016)
-
Debugging tcIfaceGlobal errors in GHC: a study in interpreting trace output
(May 15, 2016)
-
Announcing cabal new-build: Nix-style local builds
(May 2, 2016)
-
Hindley-Milner with top-level existentials
(April 24, 2016)
-
ghc-shake: Reimplementing ghc --make
(January 7, 2016)
-
The convergence of compilers, build systems and package managers
(December 7, 2015)
-
What is Stateless User Interface?
(November 27, 2015)
-
Is no-reinstall Cabal coming to GHC 8.0?
(September 18, 2015)
-
Help us beta test “no-reinstall Cabal”
(August 29, 2015)
-
Ubuntu Vivid upgrade (Xmonad)
(May 29, 2015)
-
Width-adaptive XMonad layout
(May 2, 2015)
-
An Eq instance for non de Bruijn terms
(January 30, 2015)
-
Unintended consequences: Bound threads and unsafe FFI calls
(December 8, 2014)
-
Ubuntu Utopic upgrade (Xmonad)
(December 4, 2014)
-
Tomatoes are a subtype of vegetables
(November 14, 2014)
-
Haskell Implementor’s Workshop ’14
(September 7, 2014)
-
Open type families are not modular
(September 4, 2014)
-
A taste of Cabalized Backpack
(August 26, 2014)
-
The fundamental problem of programming language package management
(August 21, 2014)
-
What’s a module system good for anyway?
(August 9, 2014)
-
New theme!
(July 26, 2014)
-
Type classes: confluence, coherence and global uniqueness
(July 11, 2014)
-
Parsec: “try a <|> b” considered harmful
(May 17, 2014)
-
GHC and mutable arrays: a DIRTY little secret
(May 9, 2014)
-
Elimination with a Motive (in Coq)
(May 7, 2014)
-
The cost of weak pointers and finalizers in GHC
(May 4, 2014)
-
Calculating Shanten in Mahjong
(April 1, 2014)
-
Haskell for Coq programmers
(March 17, 2014)
-
Equality, roughly speaking
(January 30, 2014)
-
How to maintain a pristine copy of your configuration files
(January 20, 2014)
-
PEPM’14: The HERMIT in the Stream
(January 17, 2014)
-
Ott ⇔ PLT Redex
(January 13, 2014)
-
When a lock is better than an MVar
(January 7, 2014)
-
So you want to add a new concurrency primitive to GHC…
(January 1, 2014)
-
Two bugs in the borrow checker every Rust developer should know about
(December 17, 2013)
-
Visualizing a block allocator
(October 30, 2013)
-
Xmonad and media keys on Saucy
(October 27, 2013)
-
If you’re using lift, you’re doing it wrong (probably)
(September 26, 2013)
-
Of Monadic Fixpoints and Heap Offsets
(September 24, 2013)
-
Induction and logical relations
(September 18, 2013)
-
Cost semantics for STG in modern GHC
(September 7, 2013)
-
Blame Trees
(August 12, 2013)
-
OPLSS lecture notes
(July 29, 2013)
-
No grammar? No problem!
(July 2, 2013)
-
HoTT exercises in Coq (in progress)
(July 1, 2013)
-
(Homotopy) Type Theory: Chapter One
(June 24, 2013)
-
The AST Typing Problem
(May 28, 2013)
-
Anatomy of an MVar operation
(May 19, 2013)
-
HotOS “Unconference” report:
Verifying Systems
(May 14, 2013)
-
Category theory for loop optimizations
(May 12, 2013)
-
The Difference between Recursion & Induction
(April 27, 2013)
-
Kindle is not good for textbooks
(April 15, 2013)
-
A Zerocoin puzzle
(April 11, 2013)
-
A classical logic fairy tale
(April 7, 2013)
-
NDSEG
(April 5, 2013)
-
Resource limits for Haskell
(April 2, 2013)
-
The single export pattern
(March 31, 2013)
-
The duality of weak maps and private symbols
(March 19, 2013)
-
What is a membrane?
(March 15, 2013)
-
Kindle Paperwhite notes
(January 30, 2013)
-
The GHC scheduler
(January 28, 2013)
-
NLP: the missing framework
(January 2, 2013)
-
Google Nexus 7 setup notes
(December 31, 2012)
-
Metro Maps of the News
(December 13, 2012)
-
Maildir synchronizing Sup
(December 1, 2012)
-
Why can’t I just be a little lazy?
(November 26, 2012)
-
Functional Encryption
(November 25, 2012)
-
Extremist Programming
(November 20, 2012)
-
Plan 9 mounts and dependency injection
(November 8, 2012)
-
hp/D3.js: an interactive heap profile viewer
(November 2, 2012)
-
Ubuntu Quantal upgrade (Thinkpad/Xmonad)
(October 24, 2012)
-
ACM XRDS: Jeff Dean profile
(October 22, 2012)
-
Duality for Haskellers
(October 19, 2012)
-
Hails: Protecting Data Privacy in Untrusted Web Applications
(October 16, 2012)
-
Visualizing satisfiability, validity & entailment
(October 15, 2012)
-
GET /browser.exe
(October 12, 2012)
-
Generalizing the programmable semicolon
(October 3, 2012)
-
Template project for GHC plugins
(September 28, 2012)
-
“This is really the End.”
(September 24, 2012)
-
Unintuitive facts about Safe Haskell
(September 17, 2012)
-
The Y Combinator and strict positivity
(September 12, 2012)
-
So you want to hack on IMAP…
(August 31, 2012)
-
OfflineIMAP sucks
(August 30, 2012)
-
How OfflineIMAP works
(August 27, 2012)
-
The Monad Reader: Issue 20
(August 25, 2012)
-
Applicative functors
(August 16, 2012)
-
Practical Foundations for Programming Languages (first impressions)
(August 15, 2012)
-
Is Haskell liberal or conservative?
(August 10, 2012)
-
Two ways of representing perfect binary trees
(August 4, 2012)
-
Polymorphic variants in Ur/Web
(July 29, 2012)
-
Managing the server/client split in Ur/Web
(July 25, 2012)
-
Secure multiparty Bitcoin anonymization
(July 20, 2012)
-
Why verification results in higher quality code
(June 23, 2012)
-
Thoughts on gamifying textbooks
(May 24, 2012)
-
An Interactive Tutorial of the Sequent Calculus
(May 22, 2012)
-
Ubuntu Precise upgrade (Thinkpad/Xmonad)
(May 18, 2012)
-
What happens when you mix three research programming languages together
(May 16, 2012)
-
Some thoughts about literature review
(May 13, 2012)
-
How Ur/Web records work and what it might mean for Haskell
(April 20, 2012)
-
Use the source, don’t read it
(April 17, 2012)
-
Reduce Ubuntu latency by disabling mDNS
(March 24, 2012)
-
Visit month: Princeton
(March 20, 2012)
-
Is it better to teach formalism or intuition?
(March 18, 2012)
-
Visit month: University of Pennsylvania
(March 16, 2012)
-
You could have invented fractional cascading
(March 5, 2012)
-
Visualizing range trees
(February 26, 2012)
-
Anatomy of “You could have invented…”
(February 23, 2012)
-
Transcript of “Inventing on Principle”
(February 20, 2012)
-
Travel: Spring 2012 Edition
(February 18, 2012)
-
How to build DRM you can trust
(February 15, 2012)
-
POPL
(January 28, 2012)
-
Modelling IO: MonadIO and beyond
(January 24, 2012)
-
monad-control is tricky
(January 23, 2012)
-
Mystery Hunt and the Scientific Endeavour
(January 16, 2012)
-
Problem Set: The Codensity Transformation
(January 7, 2012)
-
Why iteratees are hard to understand
(January 4, 2012)
-
Bugs and Battleships
(December 19, 2011)
-
How to build i686 glibc on Ubuntu
(December 18, 2011)
-
Interactive Demo of Zero-Knowledge Proofs
(December 17, 2011)
-
Accessing lazy structures from C
(December 15, 2011)
-
Transparent xmobar
(November 28, 2011)
-
Ubuntu Oneiric upgrade (Thinkpad/Xmonad)
(November 24, 2011)
-
How to read Haskell like Python
(November 14, 2011)
-
The new Reflections on Trusting Trust
(October 28, 2011)
-
Obviously Correct
(October 24, 2011)
-
Polyglot programming
(October 12, 2011)
-
Why you shouldn’t do a PhD in systems
(September 26, 2011)
-
Let’s play a game
(September 5, 2011)
-
8 ways to report errors in Haskell revisited
(August 29, 2011)
-
Joseph and the Amazing Technicolor Box
(August 23, 2011)
-
Diskless Paxos crash recovery
(August 14, 2011)
-
First impressions of module programming
(August 5, 2011)
-
In-program GC stats redux
(August 3, 2011)
-
Changes to IntMap
(August 1, 2011)
-
Food-related functional humor
(July 29, 2011)
-
BlockedIndefinitelyOnMVar
(July 27, 2011)
-
From data type definitions to code
(July 25, 2011)
-
Variant types and GADTs
(July 22, 2011)
-
In-program GC stats for GHC
(July 20, 2011)
-
Synthetic Git merges
(July 18, 2011)
-
Parallelism to plug space leaks
(July 15, 2011)
-
Facebook support for BarnOwl
(July 13, 2011)
-
Grad School, Oh My
(July 11, 2011)
-
Cambridge retrospective: History and Philosophy of Science
(July 8, 2011)
-
A new vision for Mendeley
(July 6, 2011)
-
IVar leaks
(July 4, 2011)
-
Scheduling IVars
(July 1, 2011)
-
The IVar monad
(June 29, 2011)
-
Debugging compilers with optimization fuel
(June 27, 2011)
-
Multi-monitor xmobar placement on Gnome
(June 24, 2011)
-
A Year of Notebooking (Part 2)
(June 22, 2011)
-
A Year of Notebooking (Part 1)
(June 20, 2011)
-
A pattern for increasing sharing
(June 17, 2011)
-
On type synonyms
(June 15, 2011)
-
A Taxonomy of Socialization on the Internet
(June 13, 2011)
-
Pinpointing space leaks in big programs
(June 10, 2011)
-
Measurement, quantification and reduction
(June 8, 2011)
-
What Philosophy of Science Can Say for Software Engineers
(June 6, 2011)
-
The Cryptography of Bitcoin
(June 3, 2011)
-
Bitcoin is not decentralized
(June 1, 2011)
-
Chain Rule + Dynamic Programming
= Neural Networks
(May 30, 2011)
-
An insufficiently lazy map
(May 27, 2011)
-
If it has lots of comments, it’s probably buggy
(May 25, 2011)
-
Tail recursion makes your loops cleaner
(May 23, 2011)
-
Computing function composition
(May 20, 2011)
-
Anatomy of a thunk leak
(May 18, 2011)
-
Space leak zoo
(May 16, 2011)
-
Reified laziness
(May 13, 2011)
-
Calling all space leaks
(May 11, 2011)
-
Bindings and CAFs on the Haskell Heap
(May 9, 2011)
-
How Aristotle got it Wrong
On the importance of conceptual frameworks
(May 6, 2011)
-
Unraveling the mystery of the IO monad
(May 4, 2011)
-
Haskell: Not pure enough?
(May 2, 2011)
-
How the Grinch stole the Haskell Heap
(April 29, 2011)
-
Functions produce the Haskell Heap
(April 27, 2011)
-
Implementing the Haskell Heap in Python, v1
(April 25, 2011)
-
IO evaluates the Haskell Heap
(April 24, 2011)
-
Evaluation on the Haskell Heap
(April 20, 2011)
-
The Haskell Heap
(April 18, 2011)
-
Mailbox: Advice for a sup first-timer
(April 16, 2011)
-
Tracing the compilation of Hello Factorial!
(April 13, 2011)
-
Bugs from using the wrong variable
(April 11, 2011)
-
Hoopl: Dataflow analysis
(April 8, 2011)
-
Type Kata: Local data type
(April 5, 2011)
-
Hoopl: Dataflow lattices
(April 4, 2011)
-
Hoopl guided tour: Base system
(April 1, 2011)
-
GHC migrating to Git
(March 30, 2011)
-
HTML Purifier 4.3.0 released
(March 28, 2011)
-
Ely Cycles
(March 25, 2011)
-
Interleaving stream processors
(March 23, 2011)
-
The return of Hellenistic reasoning
(March 21, 2011)
-
Spring Reading: 2011 edition
(March 18, 2011)
-
On expressivity
(March 16, 2011)
-
Someone is wrong on the Internet
(March 14, 2011)
-
Many-valued logics and bottom
(March 11, 2011)
-
Killer mutants attack (mutation gone wrong)
(March 9, 2011)
-
Type Technology Tree
(March 7, 2011)
-
Petri net concurrency
(March 4, 2011)
-
The creation of a statically-typed functional programmer
(March 2, 2011)
-
On cargo culting and hacking
(February 28, 2011)
-
Multi-day debugging
(February 25, 2011)
-
Ad hoc approximations
(February 23, 2011)
-
Semi-automatic testing
(February 21, 2011)
-
Two short tips for FFI bindings
(February 20, 2011)
-
On checked exceptions and proof obligations
(February 18, 2011)
-
Picturing Hoopl transfer/rewrite functions
(February 16, 2011)
-
Picturing binomial coefficient identities
(February 14, 2011)
-
Android 2.x Sensor Simulator
(February 11, 2011)
-
A suggestion for indent/php.vim
(February 9, 2011)
-
Lav’net is watching you
(February 7, 2011)
-
OCaml gotchas
(February 4, 2011)
-
All about MVars
(February 2, 2011)
-
A year of blogging
(December 31, 2010)
-
Greetings from Switzerland
(December 29, 2010)
-
No one expects the Scott induction!
(December 27, 2010)
-
Thriller: Doing it for the thrills
(December 24, 2010)
-
Travel advisory
(December 21, 2010)
-
Generalization and vagueness in specifications
(December 20, 2010)
-
Tourist by day, Blogger by night
(December 17, 2010)
-
ω: I’m lubbin’ it
(December 15, 2010)
-
Getting a fix on fixpoints
(December 13, 2010)
-
Errata for gin and monotonic
(December 10, 2010)
-
Gin and monotonic
(December 8, 2010)
-
Hussling Haskell types into Hasse diagrams
(December 6, 2010)
-
Talk Friday
(December 3, 2010)
-
How I Learned to Stop Worrying and Love the ⊥
(December 1, 2010)
-
My first proof in Isabelle
(November 29, 2010)
-
Reflexivity. Qed.
(November 26, 2010)
-
Integer sequences every computer scientist should know?
(November 24, 2010)
-
Is multiply-carry strongly universal?
(November 22, 2010)
-
Cambridge potpourri
(November 19, 2010)
-
Haskell.org committee
(November 17, 2010)
-
It’s just a longjmp to the left
(November 15, 2010)
-
You are in a maze of twisty little passages, all alike… (a GHC hacking post)
(November 12, 2010)
-
mod_fcgid 2.3 is broken (fixed in 2.3.6)
(November 10, 2010)
-
Medieval medicine and computers
(November 8, 2010)
-
DP Zoo Tour
(November 5, 2010)
-
Dead Edward Day
(November 3, 2010)
-
DP Zoo
(November 1, 2010)
-
Intelligence is the ability to make finer distinctions: Another Haskell Advocacy Post
(October 29, 2010)
-
Blog name changed…
(October 27, 2010)
-
OCaml for Haskellers
(October 25, 2010)
-
Don’t Repeat Yourself is context dependent
(October 22, 2010)
-
Purpose of proof: semi-formal methods
(October 20, 2010)
-
Rapidly prototyping scripts in Haskell
(October 18, 2010)
-
Existential type-curry
(October 15, 2010)
-
Quote Day
(October 13, 2010)
-
Why being a sysadmin will help you do Science!
(October 11, 2010)
-
The HTML purification manifesto
(October 8, 2010)
-
Abstraction without a concrete concept
(October 6, 2010)
-
Why I am in Cambridge
(October 4, 2010)
-
Tips for running a hackathon
(October 1, 2010)
-
How to get answers from busy maintainers
(September 29, 2010)
-
So long America!
(September 27, 2010)
-
High performance monads
(September 24, 2010)
-
Data is Code
(September 22, 2010)
-
Tension of patch and tree version control
(September 20, 2010)
-
Session types, subtyping and dependent types
(September 17, 2010)
-
Evolution of a Shared Web Host
(September 15, 2010)
-
Keyword arguments in Haskell
(September 13, 2010)
-
Towards platform-agnostic interruptibility
(September 10, 2010)
-
pthread_cancel on Windows
(September 8, 2010)
-
Embracing Windows
(September 6, 2010)
-
Annotating slides
(September 3, 2010)
-
My type signature overfloweth
(September 1, 2010)
-
Defining “Haskelly”
(August 30, 2010)
-
Interrupting GHC
(August 27, 2010)
-
abcBridge: Functional interfaces for AIGs and SAT solving
(August 25, 2010)
-
Type Kata: Distinguishing different data with the same underlying representation
(August 23, 2010)
-
Day in the life of a Galois intern
(August 20, 2010)
-
Type kata: Controlled sharing of references
(August 18, 2010)
-
What high school Algebra quizzes and NP-complete problems have in common
(August 16, 2010)
-
Generalizing APIs
(August 13, 2010)
-
A radical Hackage social experiment
(August 11, 2010)
-
Paper Monday
(August 9, 2010)
-
The Gateway Drug to Type Programming
(August 6, 2010)
-
Tour of a distributed Erlang application
(August 5, 2010)
-
Buffered streams and iteratees
(August 4, 2010)
-
How to pick your string library in Haskell
(August 2, 2010)
-
Suggestion box
(July 30, 2010)
-
Delaying implicit parameter binding
(July 28, 2010)
-
Reader monad and implicit parameters
(July 26, 2010)
-
Managing foreign pointers effectively
(July 23, 2010)
-
Pipelines and continuations
(July 21, 2010)
-
System.Posix.Redirect
(July 19, 2010)
-
Maximum matching deadlock solution
(July 16, 2010)
-
Flipping arrows in coBurger King
(July 14, 2010)
-
Graphs not grids: How caches are corrupting young algorithms designers and how to fix it
(July 12, 2010)
-
Safety first: FFI and threading
(July 9, 2010)
-
Groom: human readable Show for Haskell
(July 7, 2010)
-
Little’s law
(July 5, 2010)
-
MVC and Purity
(July 2, 2010)
-
Call and fun: marshalling redux
(June 30, 2010)
-
Thinking about talk
(June 28, 2010)
-
Marshalling with get and set
(June 25, 2010)
-
First steps in c2hs
(June 23, 2010)
-
The secret to successful autogenerated docs
(June 21, 2010)
-
Principles of FFI API design
(June 18, 2010)
-
Well-founded recursion in Agda
(June 16, 2010)
-
Setting up Cabal, the FFI and c2hs
(June 14, 2010)
-
The Haskell Preprocessor Hierarchy
(June 11, 2010)
-
Static Analysis for everyday (not-PhD) man
(June 9, 2010)
-
AP Physics: Stuck in the concrete
(June 7, 2010)
-
Databases are categories
(June 4, 2010)
-
Bug boogie: Git and symlinks
(June 2, 2010)
-
Punt the Prelude
(May 31, 2010)
-
Use The Monoid: A worked example
(May 28, 2010)
-
Bananas, Lenses, Envelopes and Barbed Wire
A Translation Guide
(May 26, 2010)
-
Lazy exceptions and IO
(May 24, 2010)
-
Upgrading to Ubuntu Lucid
(May 21, 2010)
-
Class Reflections
(May 19, 2010)
-
I Hate Patches:
Confessions of an Open-Source Developer
(May 17, 2010)
-
Spring 2010: A Random Walk
(May 14, 2010)
-
Refactoring Haskell code?
(May 12, 2010)
-
Nested Data Parallelism versus Creative Catamorphisms
(May 10, 2010)
-
Omnipresent Cabal
(May 7, 2010)
-
Name conflicts on Hackage
(May 5, 2010)
-
Design Patterns in Haskell
(May 3, 2010)
-
Art. Code. Math. (And mit-scheme)
(April 30, 2010)
-
Inessential guide to fclabels
(April 28, 2010)
-
The Problem with xUnit
(April 26, 2010)
-
Creative catamorphisms
(April 23, 2010)
-
Association maps in mit-scheme
(April 21, 2010)
-
Thoughts on discussion
(April 19, 2010)
-
Dudamel visits MIT
(April 16, 2010)
-
Inessential Guide to data-accessor
(April 14, 2010)
-
Later Impressions of the VX-8R
(April 12, 2010)
-
Diagramming in Xournal and Gimp
(April 9, 2010)
-
You could have invented zippers
(April 7, 2010)
-
Cup of FP with a Java twist
(April 5, 2010)
-
Summer internship at Galois
(April 2, 2010)
-
More fun with Futamura projections
(March 31, 2010)
-
The case of the Hash Array Mapped Trie
(March 29, 2010)
-
Ad hoc wireless
(March 24, 2010)
-
Hunting for abstractions in mathematics
(March 22, 2010)
-
Mutation sleuthing in Python
(March 19, 2010)
-
Haskell, The Hard Sell
(March 17, 2010)
-
Straitjacket programming
(March 15, 2010)
-
Five tips for maintainable shell scripts
(March 12, 2010)
-
Replacing small C programs with Haskell
(March 10, 2010)
-
Being an expert considered harmful
(March 8, 2010)
-
How to use Vim’s textwidth like a pro
(March 5, 2010)
-
Third-party unattended upgrades in three steps
(March 3, 2010)
-
Writing generator friendly code
(March 1, 2010)
-
History as documentation
(February 26, 2010)
-
The Art of Posing a Problem
(February 24, 2010)
-
Comonads and Convolutions
(February 22, 2010)
-
Type manipulation: Tricks of the trade
(February 19, 2010)
-
Why we stay up late
(February 17, 2010)
-
Hunting for constraints
(February 15, 2010)
-
Scheming environments
(February 12, 2010)
-
Sources of music
(February 10, 2010)
-
Nested loops and exceptions (Oleg Kiselyov)
(February 8, 2010)
-
Nested loops and continuations
(February 5, 2010)
-
Classes begin
(February 3, 2010)
-
Cute macro tricks in the kernel
(February 1, 2010)
-
Workflows in Git: Single-user style
(January 29, 2010)
-
Arcadia Rising posters
(January 27, 2010)
-
To the right! Autocompletable names
(January 25, 2010)
-
Hacking git-rerere
(January 22, 2010)
-
Too many leftovers!
(January 20, 2010)
-
Five advanced Git merge techniques
(January 18, 2010)
-
Typeclasses matter
(January 15, 2010)
-
Sup: Mail for Nerds
(January 13, 2010)
-
First impressions of the VX-8R
(January 11, 2010)
-
Why Haskell? The big question
(January 8, 2010)
-
rxvt-unicode for gnome-terminal refugees
(January 6, 2010)
-
Audio connectors and radios
(January 4, 2010)
-
Adventures in Three Monads
(January 1, 2010)
-
2010: A Roadmap
(December 31, 2009)
-
Iron Blogger
(December 28, 2009)