This is not a tutoral on monads, nor will I use any math terms here. This is for people who have learned enough about monads to use them, but want to get a better picture of what they’re doing and why they exist. Functions One way to develop a first intuition about monads is to follow the progression of abstractions [...]
The artice on Git that I wrote a couple years back, Git From the Bottom Up, has been translated into Japanese by Noriyuki Komatsuzaki. Thank you so much, Noriyuki! [...]
The following is an amalgam of several letters I sent to Richard Stallman,
founder of the free software movement, expressing my concern about the
direction GPL licensing is taking, and why I disagree with some of the
objectives of the Free Software Foundation.
[...]
After spending a good while trying to understand monads in Haskell, and why
the Haskell world is so fascinated by them, I finally understand why they
aren’t as exciting to other languages, or why they are completely missing from
languages like C++: because they’re mostly already there.
At its simplest, a monad is an abstraction of a value which knows how to apply
functions to that value, returning a new monad. In other words, it’s a way to
turn values into little packages that wrap additional functionality around
that value. Sounds a lot like what an object does…
[...]
I’ve seen this issue mentioned in some random and hard to reach places on the
Net, so I thought I’d re-express it here for those who find Google sending
them this way.
UPDATE: According to the discussion at https://trac.macports.org/ticket/27237,
the real problem here is not fully dynamic string, but the use of
GLIBCXXDEBUG. So I recommend ignoring what follows, as it will help you on
Snow Leopard or Lion with gcc 4.6 and above.
[...]
I’ve been managing my Ledger project with Git for some time now, and I’ve
finally settled into a comfortable groove concerning branches and where to
commit stuff.
[...]