The Humans Are Dead

Sadly, Microsoft has decided to kill the MSR Robotics team… My last day is today.All that remains is a bunch of robots…  Since this is an MSDN blog, I believe it will have to continue somewhere else.I don’t know where yet, but follow me on Twitter @ashleyfen if you like. [View:]


F18 Variables

Variables on the F18 are not like regular Forth variables. Usually a variable is a word returning the address of its value used along with fetch (@) and store (!) words. On the F18 the idiomatic approach is to have individual variable-specific fetch and store words. Greg Bailey explains it nicely here: Constants Let’s start with constants….


Multiply-step Instruction

Fourth in a series on colorForth and GreenArrays hardware. This time, how the multiply-step instruction works on the F18. Bit Twiddling is Fun! Here’s a bit-twiddly interview question for you: Design an algorithm to multiply fixnum integers in O(log n) time using only addition. This may come in handy given that the F18 doesn’t have…


The Beautiful Simplicity of colorForth

colorForth As much fun as hand packing instructions was in the last post, that was tedious. Let’s move on to colorForth. Don’t worry too much about what the code above does (prints “colorForth rocks!”). It compiles to this: Isn’t the source beautiful? So colorful! The colors are not merely syntax highlighting. They drive the semantics! They are…


Programming the F18

Programming the F18 As we saw in the last post, the GA144 chip is an array of 144 tiny computers or “nodes”. We tend not to call them “cores” because they are really more independent than that. Programming these interconnected nodes is something like working with agents or CSP. Each is an instance of the…


Chuck Moore’s Creations

This is the beginning of a series: Programming the F18 Beautiful Simplicity of colorForth Multiply-step Instruction Simple Variables When I heard that Chuck Moore was speaking at Strange Loop this year I just had to go. His talk yesterday was excellent! I’m not going to summarize it here. The talk will be online soon enough….


Speech Grammars in F#

People say that Vim keys are a grammar for talking to your editor and that’s exactly what they are. One weekend some time back I had fun making VimSpeak to see how well mapping English words to Vim keys would work. It turned out quite nice and some pieces of how it was built (in particular the…



Don Syme blogged this quite some years ago but it just came up in a design review on my team this afternoon and it bears repeating. let memoize f =     let cache = new Dictionary<_,_>()     (fun x ->         match cache.TryGetValue x with         | true, res -> res        |…



I switched to Colemak a couple of years ago. I love it. Never going back. Not really any faster than QWERTY, but so much more comfortable. One issue though is whenever I jump on someone else’s machine or remote into some server. I want to switch the layout but I don’t really want to install…


If you can’t beat ‘em, join ‘em

I’ve had fun making the little DCPU emulator (past couple of posts: 1, 2), but sadly, I’ve had no time to make a Forth for it. But hey, Matt Hellige has already done it! I just took his GoForth and got it up and going. Just grab the image from here and load it up:…