Insufficiently Advanced Technology

Month

June 2011

9 posts

instance Monad m => Monad (Iteratee a m) where
	return x = yield x (Chunks [])

	m0 >>= f = ($ m0) $ fix $
		\bind m -> Iteratee $ runIteratee m >>= \r1 ->
			case r1 of
				Continue k -> return (Continue (bind . k))
				Error err -> return (Error err)
				Yield x (Chunks []) -> runIteratee (f x)
				Yield x extra -> runIteratee (f x) >>= \r2 ->
					case r2 of
						Continue k -> runIteratee (k extra)
						Error err -> return (Error err)
						Yield x' _ -> return (Yield x' extra)

What the fuck is this shit

Jun 20, 20114 notes
#haskell #enumerator
Sleep sort in Haskell

Obviously “inspired” by this post on 4chan which has been making the rounds around hn and reddit and so on all day.

import Control.Monad
import Control.Concurrent
import Control.Concurrent.Chan
import System.IO
import System.Environment

main = do
  nums <- fmap (map read) getArgs :: IO [Int]
  chan <- newChan
  forM_ nums $ \n -> forkIO $ do
    threadDelay (n * 100000)
    writeChan chan n
  replicateM (length nums) (readChan chan >>= print)
Jun 15, 2011
#haskell
“Hah, this code is hardcore C++ so it’s probably got a GC in the templates :P” —Anthony Cowley, #haskell
Jun 9, 20111 note
#haskell #irc
Dramatic reading of (part of) the iTunes EULA

I have no idea who Richard Dreyfuss is, but it turns out he owns.

(via cnet)

Jun 9, 20111 note
#apple
“

Lake Nyos, located in the Northwest Region of Cameroon, Africa, carried a folklore of danger, and tales were spoken of an evil spirit which emerged from the lake to kill all those who lived near it.

[…] Villages nearby the lake had almost no chance of survival, and in the nearby Nyos only six out of 800 survived. (Those that did survive usually did so by quickly escaping to higher ground on motorcycles.) […] every flame and fire was immediately extinguished, a sign of the doom descending all around Lake Nyos.

[…] Nearby villagers who came out of their houses to find out what the sound they had heard was […] fell dead at their doorsteps. People taking naps were killed without their relatives even realizing anything had happened

[…] In all, 1,746 people were killed. The villages of Nyos, Kam, Cha, and Subum were left all but wiped out. And, more than 3,500 livestock perished in a matter of minutes. The lake itself turned from a clear blue to a deep red

[…] Also worrying is nearby Lake Kivu, a lake over 1,000 times larger than Nyos and in a much more populous area, which has been shown to have a historical record of causing creatures in the lake to go extinct approximately every thousand years.

”
—Lake Nyos, Atlas Obscura
Jun 9, 20111 note
There's a clock ticking in my background now

This was a good use of my time.

Jun 8, 20115 notes
#javascript #svg
“So if a very powerful alien offered you one of two objects, either a halting oracle or a non-deteriministic turing machine, which one would you take?” —Leon P. Smith, #haskell
Jun 7, 2011
#haskell #irc
Here's a haskell program so no one gets any illusions

about what kind of pointless bullshit is going to appear in this space, if anything.

import Control.Monad.ST
import Data.Char
import Data.STRef
import System.Environment
import qualified Data.Map as M

count s = runST $ go s M.empty >>= flatten
  where
    flatten = mapM readPair . M.toList
    readPair (c, ref) = readSTRef ref >>= \v -> return (c, v)
    go [] acc = return acc
    go ((toUpper -> c):cs) acc
      | not (isAlpha c)            = go cs acc
      | Just ref <- M.lookup c acc = readSTRef ref >>= (writeSTRef ref $!) . succ >> go cs acc
      | otherwise                  = newSTRef 1 >>= go cs . flip (M.insert c) acc


main = do
  [file] <- getArgs
  text <- readFile file
  print (count text)
Jun 7, 2011
#haskell
“

Those of you unfortunate enough not to be reading or hearing this in Marain may well be using a language without the requisite number or type of personal pronouns, so I’d better explain that bit of the translation.

Marain, the Culture’s quintessentially wonderful language (so the Culture will tell you), has, as any schoolkid knows, one personal pronoun to cover females, males, in-betweens, neuters, children, drones, Minds, other sentient machines, and every life-form capable of scraping together anything remotely resembling a nervous system and the rudiments of language (or a good excuse for not having either). Naturally, there are ways of specifying a person’s sex in Marain, but they’re not used in everyday conversation; in the archetypal language-as-moral-weapon-and-proud-of-it, the message is that it’s brains that matter, kids; gonads are hardly worth making a distinction over.

So, in what follows, Gurgeh is quite happily thinking about the Azadians just as he’d think about any other (see list above)… But what of you, O unlucky, possibly brutish, probably ephemeral and undoubtedly disadvantaged citizen of some unCultured society, especially those unfairly (and the Azadians would say under-) endowed with only the mean number of genders?!

How shall we refer to the triumvirate of Azadian sexes without resorting to funny-looking alien terms or gratingly awkward phrases not-words?

… Rest at ease; I have chosen to use the natural and obvious pronouns for male and female, and to represent the intermediates - or apices - with whatever pronominal term best indicates their place in their society, relative to the existing sexual power-balance of yours. In other words, the precise translation depends on whether your own civilisation (for let us err on the side of terminological generosity) is male or female dominated.

(Those which can fairly claim to be neither will of course have their own suitable term.)

Anyway, enough of that.

”
—Iain M. Banks, The Player of Games
Jun 5, 2011
#Culture #sci-fi
Next page →
2012 2013
  • January 22
  • February 100
  • March 119
  • April 53
  • May 138
  • June 26
  • July
  • August
  • September
  • October
  • November
  • December
2011 2012 2013
  • January 1
  • February 3
  • March 2
  • April
  • May
  • June 99
  • July 309
  • August 250
  • September 120
  • October 169
  • November 176
  • December 30
2010 2011 2012
  • January
  • February
  • March
  • April
  • May
  • June 9
  • July
  • August
  • September 2
  • October 3
  • November
  • December 1
2009 2010 2011
  • January
  • February
  • March
  • April
  • May
  • June
  • July
  • August
  • September
  • October
  • November
  • December
2008 2009 2010
  • January
  • February
  • March
  • April
  • May
  • June
  • July
  • August
  • September
  • October
  • November
  • December
2007 2008 2009
  • January
  • February
  • March
  • April
  • May
  • June
  • July
  • August
  • September
  • October
  • November
  • December
2006 2007 2008
  • January
  • February
  • March
  • April
  • May
  • June
  • July
  • August
  • September
  • October
  • November
  • December
2005 2006 2007
  • January
  • February
  • March
  • April
  • May
  • June
  • July
  • August
  • September
  • October
  • November
  • December
2004 2005 2006
  • January
  • February
  • March
  • April
  • May
  • June
  • July
  • August
  • September
  • October
  • November
  • December
2003 2004 2005
  • January
  • February
  • March
  • April
  • May
  • June
  • July
  • August
  • September
  • October
  • November
  • December
2002 2003 2004
  • January
  • February
  • March
  • April
  • May
  • June
  • July
  • August
  • September
  • October
  • November
  • December
2001 2002 2003
  • January
  • February
  • March
  • April
  • May
  • June
  • July
  • August
  • September
  • October
  • November
  • December
2000 2001 2002
  • January
  • February
  • March
  • April
  • May
  • June
  • July
  • August
  • September
  • October
  • November
  • December
1999 2000 2001
  • January
  • February
  • March
  • April
  • May
  • June
  • July
  • August
  • September
  • October
  • November
  • December
1998 1999 2000
  • January
  • February
  • March
  • April
  • May
  • June
  • July
  • August
  • September
  • October
  • November
  • December
1997 1998 1999
  • January
  • February
  • March
  • April
  • May
  • June
  • July
  • August
  • September
  • October
  • November
  • December
1996 1997 1998
  • January
  • February
  • March
  • April
  • May
  • June
  • July
  • August
  • September
  • October
  • November
  • December
1995 1996 1997
  • January
  • February
  • March
  • April
  • May
  • June
  • July
  • August
  • September
  • October
  • November
  • December
1994 1995 1996
  • January
  • February
  • March
  • April
  • May
  • June
  • July
  • August
  • September
  • October
  • November
  • December
1993 1994 1995
  • January
  • February
  • March
  • April
  • May
  • June
  • July
  • August
  • September
  • October
  • November
  • December
1992 1993 1994
  • January
  • February
  • March
  • April
  • May
  • June
  • July
  • August
  • September
  • October
  • November
  • December
1991 1992 1993
  • January
  • February
  • March
  • April
  • May
  • June
  • July
  • August
  • September
  • October
  • November
  • December
1990 1991 1992
  • January
  • February
  • March
  • April
  • May
  • June
  • July
  • August
  • September
  • October
  • November
  • December
1989 1990 1991
  • January
  • February
  • March
  • April
  • May
  • June
  • July
  • August
  • September
  • October
  • November
  • December
1988 1989 1990
  • January
  • February
  • March
  • April
  • May
  • June
  • July
  • August
  • September
  • October
  • November
  • December
1987 1988 1989
  • January
  • February
  • March
  • April
  • May
  • June
  • July
  • August
  • September
  • October
  • November
  • December
1986 1987 1988
  • January
  • February
  • March
  • April
  • May
  • June
  • July
  • August
  • September
  • October
  • November
  • December
1985 1986 1987
  • January
  • February
  • March
  • April
  • May
  • June
  • July
  • August
  • September
  • October
  • November
  • December
1984 1985 1986
  • January
  • February
  • March
  • April
  • May
  • June
  • July
  • August
  • September
  • October
  • November
  • December
1983 1984 1985
  • January
  • February
  • March
  • April
  • May
  • June
  • July
  • August
  • September
  • October
  • November
  • December
1982 1983 1984
  • January
  • February
  • March
  • April
  • May
  • June
  • July
  • August
  • September
  • October
  • November
  • December
1981 1982 1983
  • January
  • February
  • March
  • April
  • May
  • June
  • July
  • August
  • September
  • October
  • November
  • December
1980 1981 1982
  • January
  • February
  • March
  • April
  • May
  • June
  • July
  • August
  • September
  • October
  • November
  • December
1979 1980 1981
  • January
  • February
  • March
  • April
  • May
  • June
  • July
  • August
  • September
  • October
  • November
  • December
1978 1979 1980
  • January
  • February
  • March
  • April
  • May
  • June
  • July
  • August
  • September
  • October
  • November
  • December
1977 1978 1979
  • January
  • February
  • March
  • April
  • May
  • June
  • July
  • August
  • September
  • October
  • November
  • December
1976 1977 1978
  • January
  • February
  • March
  • April
  • May
  • June
  • July
  • August
  • September
  • October
  • November
  • December
1975 1976 1977
  • January
  • February
  • March
  • April
  • May
  • June
  • July
  • August
  • September
  • October
  • November
  • December
1974 1975 1976
  • January
  • February
  • March
  • April
  • May
  • June
  • July
  • August
  • September
  • October
  • November
  • December
1973 1974 1975
  • January
  • February
  • March
  • April
  • May
  • June
  • July
  • August
  • September
  • October
  • November
  • December
1972 1973 1974
  • January
  • February
  • March
  • April
  • May
  • June
  • July
  • August
  • September
  • October
  • November
  • December
1971 1972 1973
  • January
  • February
  • March
  • April
  • May
  • June
  • July
  • August
  • September
  • October
  • November
  • December
1970 1971 1972
  • January
  • February
  • March
  • April
  • May
  • June
  • July
  • August
  • September
  • October
  • November
  • December
1970 1971
  • January
  • February 1
  • March
  • April
  • May
  • June
  • July
  • August
  • September
  • October
  • November
  • December