A brief list of observed meanings of the word “port”

port (v):

  1. Reindent and reformat.

    empathy-time: port to TP coding style

  2. Update to compile against a backwards-incompatible version of an API.

    <ocrete> twi: I’m porting farstream to [GStreamer] 0.11 this week

  3. Rewrite to use a different widget set and network library.

    You should port Sojourner to Qt4!

  4. Reimplement in an entirely different programming language.

    Zeitgeist has been ported from Python to Vala.

  5. Translate into a different data format.

    Using Semantics3’s web crawlers, we were able to get hold of the data within a half hour, after which we spent a further half hour cleaning up the data and porting it to SQL.

Yesod web application dependencies

I have been experimenting with using Yesod to throw together a web application or two. My experience so far has been broadly positive—if you like computers to check things for you, I recommend it. ((assuming you like deciphering compiler error messages when the computer says no, that is)) That said, watching the full chain of dependencies fly past was moderately entertaining: ((for a quiet Wednesday morning…))

parsec-3.1.2

An excellent parser-combinator library, widely imitated. This wouldn’t be funny, except…

attoparsec-0.10.1.0

Another excellent parser-combinator library, inspired by parsec.

base-unicode-symbols-0.2.2.3

This defines a bunch of Unicode aliases for standard functions with boring ASCII names. Why write:

x `elem` xs

when you could write:

x ∈ xs

Invaluable!

utf8-light-0.4.0.1 and utf8-string-0.3.7

Two UTF-8 encoding libraries!

semigroups-0.8

“In mathematics, a semigroup is an algebraic structure consisting of a set together with an associative binary operation. A semigroup generalizes a monoid in that there might not exist an identity element. It also (originally) generalized a group (a monoid with all inverses) to a type where every element did not have to have an inverse, thus the name semigroup.”