• Tacit Programming in Racket, Part 2

    I’ve learned a bit more about tacit programming since last time. What I will attempt to do today is re-create the higher-order forms called hooks and forks in the J programming language in Racket. Monadic Forks Last time, I defined a function I called -<: What it does is best explained by an example: I…

  • Review – PLT Games February 2013

    A relatively new addition to the existing 423439 programming competitions on the web is PLT Games, a monthly programming language programming competition. (Though I don’t really know where the “competition” part is – one can rate languages but there seems to be no page for the results.) I’ve thought about taking part a number of…

  • Syntax Parameters: Usage

    This is just a short note, because I know I’ll forget it if I don’t write it down somewhere: Racket’s syntax parameters can be used to safely break hygiene in macros. As an example, say we want to create a macro define/return that makes an exit-continuation named return available in the function body – so…

  • Ping Turtle

    This is a graph of the ping responses of the www sub-domain of all 2-char DNS names for .com, .org, and .net (i.e. www.aa.com, www.ab.com, etc.). The color and angle of each line is a function of the IP-address, the length is proportional to the response time. (here’s the script that painted it) That’s a…

  • todo: do

    I’m not a big fan of anything in list form, really, but I do keep TODO lists. I’m currently using Trello for that. Trello is great, but it invites one (well, me) to play with it. That is, to create new lists and re-order stuff and label it and re-label it, and so on. The…

  • Make FRP Mainstream!

    I’m currently playing around with functional reactive programming, specifically Racket’s FrTime language/library. I haven’t done that much with it, yet – I’ve just thrown together some small scripts, playing with the concept. But I can say this: if you haven’t programmed anything in a reactive style yet, drop everything you’re doing, get to your machine,…

  • A Graphical Forever Project, Part 2

    (part 1) My first idea of how we could simplify creating graphical user interfaces was to just take a unix pipe and to either render something graphical for each component, or only one input-element and one output element. That is, for example find ./ -name *.c | xargs grep -n “[^f]gets” | vi – would…

  • A Graphical Forever Project

    A month ago, a nice little blog post made rounds on the internet. It describes the joys of having a Forever Project, a project that can’t be completed but that you also can’t stop to think about. Needless to say, I quite liked it. I used to think that I was just not productive enough,…

  • You’ve picked the wrong repository

    Apparently, recruiting spammers are making progress – they now have a perl script that parses github user profiles: Subject: Data mining project Date: Thu, 7 Feb 2013 10:44:06 -0000 From: “Tanya Kotwall” <tanya.kotwall@njfeurope.com> To: <richard@r-wos.org> Hi Richard, Notice your github online.. (was trying to understand the my_brain_hurts repositories) A contact of mine founded trustyou.com in…

  • Multiple Dispatch in Racket

    Some months ago, Racket 5.3 introduced a new generics library. As you would expect, it’s basically a convenient way to implement generic interfaces for related type-specific operations (for example generic queue operations for different queue implementations). That’s all fine and works well, but it doesn’t (as of now) support dispatching for more than one function…