August 2011 Blog Posts

Upcoming September 2011 course has been moved to 1 November 2011

Just a quick note to say that my upcoming “Beginning F#” course has been moved to 1st & 2nd November to tie it in with the “Progressive F#” tutorials. Participants will receive a free ticket to the “Progressive F#” tutorials as well as a free copy of my Beginning F# book. Book this week and save over £100!

Towards a Better Taxonomy of Programming Languages

I think the term “Object Oriented” is somewhat over used these days, in fact I’d go so far as to say it’s been applied to such a wide variety of different languages that the term has become somewhat meaningless. Java and C# are object oriented languages and although these languages are fairly similar they are quite different from Javascript which also claims to be an object oriented language. Some might say that Javascript and Python are similar as they are both dynamically typed languages and they are both object oriented yet the way in which they are object oriented differs....

F# Compiler IL Optimizations

Yesterday’s blog post contains a glaring error. Thanks to Eamon Nerbonne for point this out, his comments are very insightful so rather than reiterating them its best you read them for yourself. The basic problem was that the measurements of the speed of + - * operators was wrong since the compiler had spotted that the results of the operation was not used and therefore had not generated code for the loop. I was a little suspicious that the loops were happening too fast, but didn’t investigate further assumed that no optimization was happening as the loop that tested the...

Modulus & Integer Division are “Slow”

I recently read the “Disruptor: High performance alternative to bounded queues for exchanging data between concurrent threads” by the people at LMax. Some deeper thoughts on this are coming later. One interesting little tip-bit I learned is “On most processors there is a very high cost for the remainder calculation”, in other words calculating a modulus is slow. The paper goes on to say “This cost can be greatly reduced by making the ring size a power of 2. A bit mask of size minus one can be used to perform the remainder operation efficiently.” In other words: ...

Post-it note art

Post-it note art like the below example seems to be popping up all over la Defense. Is this phenomenon limited to la Defense are they just copying what’s popped up elsewhere?

Blog Comments

I’ve just noticed blog comments haven’t been working since my upgrade to the latest version of Subtext (about 10 days ago). This seems to be fixed now. Apologies to anyone who had left a comment, feel free to leave it again. I‘ll try and keep a closer eye on this in the future.

$100 Discount When Registering at Stack Overflow Dev days

As I’ve mentioned before I’m very happy that I’ve been invited to speak at Stack Overflow’s Dev days. Since I first mentioned it the schedule has really been filled and is looking very good. I’m really looking forward to seeing the talks by Julian Browne and Andrew Pattinson on “NoSQL in the Enterprise” (as you might have guessed after yesterday’s post), Mark Levy on “Algorithms on Hadoop” and Michael Barker on “Performance & Technology Folklore”. I’m especially looking forward to Michael Barker’s talk as I’ve been reading about the “Magic Ring Buffer” and also having a look at its source....

Mental Shortcuts and Relational Databases

Today’s world is a confusing place. There are literally 1000 of choices available to us, in almost every domain. To take a mundane example there must be about 40 or 50 places to get lunch within easy walking distance of where I work, one could waste a lot of mental energy weighing up the merits or each restaurant and sandwich bar or you could do as I do and eat at the same place most days. It’s a mental shortcut, rather that weighing up the merits or each place and choosing the best I simple take one that I know...

I’m on FPish!

Just a quick note to say the guys at IntelliFactory have created a great little site called “FPish” dedicated to Functional Programming training material and course. My profile can be found here. The sites is completely written in F# using there WebSharper development tools, it’s a great example of the sort of very dynamic websites you can create with WebSharper.

Chinese Chess: An Exercise in Upgrading

Way back in 2005 Nguyen Van Thien and Dinh Thi Thuy Nga, two computer science students from Vietnam, got in contact asking me to help them share the “Chinese Chess” computer game they’d written in F#. The game plays well and has nice graphics and sounds, quite an achievement given that F# was still in its infancy back in those days. Naturally I want to help them so I gave it a place on my website. Recently I had a couple of emails saying the link was broken (which I never got round to replying too, sorry guys!) so...

Small Revamp to strangelights.com and Free Chapter of Beginning F#

I’ve been neglecting strangelights.com a bit lately, mainly due to lack of time. So, today I finally got round to fixing a few things that had been bugging me and clean away some of the old and out of data material, especially in the F# resources section. I’ve also upgraded to the latest version of subtext as a few people have reports some minor bugs with the comments system to me, so hopefully this will fix them. To celebrate this revamp I’m giving away chapter 3 of my book “Beginning F#”. This is the chapter that describes how functional...

Speaking at Stack Overflow Dev Days and Progressive F# in autumn 2011

November is going to be a very busy month for me as I’m very happy to announce I’ll be speaking at Stack Overflow Dev Days at London’s ExCeL conference center on the 14th-15th November and the Progressive F# Tutorials at the Skills Matter eXchange on 3rd-4th November. Both events have a great line up of speakers (who wouldn’t be excited to speak on the same program as the legendary Jon Skeet?) and both will be lots of fun and very educational. At Stack Overflow Dev Days I’ll be giving a 50 minute talk about combinators, one of my...