Procedural invaders are space invader like characters generated as 5 x 5 pixel characters from just 15 bits using symmetry. The earliest post on procedural invaders appears to be from a J Tarbell in 2003. Thanks go to Ross McKinlay for suggesting having a look.
Below are some sheets of randomly generated invaders with generated names that you can click on to generate a tweet with F# code that generates the invader as ASCII art when sent to Mathias Brandewinder’s @fsibot.
The sheets of invaders are drawn on to a bitmap image and saved as a png file (see invader bitmap generation F# snippet), with the bit pattern for each invader generated from the hash code of it’s generated name (see pseudoword generation F# snippet). At the same time a matching HTML image-map is generated with the coordinates of each invader with a link that generates a tweet for the specified name.
Just like last year and the
before, I wanted to participate in the
event, where someone writes a blog post about something they did with F# during December.
Thanks to Sergey Tihon for the organization of the English
version and the Japanese F# community for coming up with the
idea a few years ago!
As my blog post ended up on 31 December, I wanted to do something that would fit well with the
theme of ending of 2015 and starting of the new year 2016 and so I decided to write a little
interactive web site that tracks the “Happy New Year” tweets live across the globe. This is
partly inspired by Happy New Year Tweets
from Twitter in 2014, but rather than analyzing data in retrospect, you can watch 2016 come live!
Every blog post I’ve read about using F# with SQL CLR involves turning off SQL CLR security for the entire database like so: alter database mydatabase set trustworthy on This is because there is not currently a “safe” FSharp.Core, and so even when building with –standalone you must load the assemblies in to SQL as […]
Generic classes and functions are one way to create flexible, reusable classes and functions. But before you start creating your own generic functions, you should be clear on when they’re your best choice.
This holiday season my brief indulgence was solving the Advent of Code puzzles. One was about the look-and-say sequence. It starts with “1” and grows as follows: 1 is read off as “one 1” or 11. 11 is read off as “two 1s” or 21. 21 is read off as “one 2, then one 1” […]