<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">
 
 <title>Rob Blackwell</title>
 
 <link href="http://robblackwell.org.uk/" />
 <updated>2013-01-26T17:12:26+00:00</updated>
 <id>http://robblackwell.org.uk/</id>
 <author>
   <name>Rob Blackwell</name>
   <email>rob.blackwell@aws.net</email>
 </author>

 
 <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/RobBlackwell" /><feedburner:info uri="robblackwell" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry>
   <title>Are You On My Scale Unit?</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/aKfby03X4gY/are-you-on-my-scale-unit.html" />
   <updated>2013-01-26T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2013/01/26/are-you-on-my-scale-unit</id>
   <content type="html">&lt;p&gt;Clemens Vasters has a really interesting video called &lt;a href="http://channel9.msdn.com/Blogs/Subscribe/Environments-and-Scale-Units"&gt;Environments
and Scale
Units&lt;/a&gt;
and gives some good insight into how to architect
high scale cloud services and how Service Bus works on Windows Azure.&lt;/p&gt;

&lt;p&gt;Clemens talks about the benefits of a consistent naming scheme for the
components within a scale unit and how CNAME aliases can be used to
direct subscribers to particular scale units. Here is his
whiteboard diagram showing how your service bus namespace
gets mapped to a cloudapp.net via the DNS.&lt;/p&gt;

&lt;p&gt;&lt;img src="/wp-content/uploads/2013/01/subscribe.png" alt="Clemens Vasters at the
 whiteboard." /&gt;]&lt;/p&gt;

&lt;p&gt;I wonder how many scale units exist in Windows Azure and how the
naming scheme works in practice.&lt;/p&gt;

&lt;p&gt;Obviously Clemens can't give away too many details, so I thought it
would be fun to poke around and see if I could find anything
interesting.&lt;/p&gt;

&lt;h2&gt;Service Bus&lt;/h2&gt;

&lt;p&gt;I created new Service Bus namespaces, one in each of the
datacentres and looked at the CNAME records in the DNS.&lt;/p&gt;

&lt;p&gt;E.g. if robne1 is in Northern Europe&lt;/p&gt;

&lt;pre&gt;&lt;code&gt; $ host robne1.servicebus.windows.net
 robne1.servicebus.windows.net is an alias for ns-sb2-prod-db3-001.cloudapp.net.
 ns-sb2-prod-db3-001.cloudapp.net has address 94.245.88.192
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Here is a table of my results&lt;/p&gt;

&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Region            &lt;/th&gt;
&lt;th&gt; DNS&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;East Asia         &lt;/td&gt;
&lt;td&gt; ns-sb2-prod-hkn-001.cloudapp.net&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;West Europe       &lt;/td&gt;
&lt;td&gt; ns-sb2-prod-am2-001.cloudapp.net&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;North Europe      &lt;/td&gt;
&lt;td&gt; ns-sb2-prod-db3-001.cloudapp.net&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;East US           &lt;/td&gt;
&lt;td&gt; ns-sb2-prod-bl2-001.cloudapp.net&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Southeast Asia    &lt;/td&gt;
&lt;td&gt; ns-sb2-prod-sin-001.cloudapp.net&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;North Central US  &lt;/td&gt;
&lt;td&gt; ns-sb2-prod-ch1-001.cloudapp.net&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;West US           &lt;/td&gt;
&lt;td&gt; ns-sb2-prod-by1-001.cloudapp.net&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;South Central US  &lt;/td&gt;
&lt;td&gt; ns-sb2-prod-sn1-002.cloudapp.net&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;


&lt;p&gt;What can we deduce?&lt;/p&gt;

&lt;p&gt;ns presumably means namespace?&lt;/p&gt;

&lt;p&gt;sb2 could be Service Bus version 2; we know that there has been at
least one big re-architecture / rewrite because that's also alluded to
in the video.&lt;/p&gt;

&lt;p&gt;prod = production.&lt;/p&gt;

&lt;p&gt;Presumably hk = Hong Kong, am = Amsterdam, db = Dublin, bl =
Blacksburg??, si = Singapore, ch = Chicago, by = Berkeley or Bay??, sn= San
Antonio?&lt;/p&gt;

&lt;p&gt;I have heard separately that there are three datacentres in Dublin, so
perhaps db3 means the third datacentre? This might suggest that there
are two Amsterdam datacentres and two in East US.&lt;/p&gt;

&lt;p&gt;If 001 refers to the scale unit number, then could it be that there
are only one or two scale units in each datacentre at the moment?
Perhaps the individual scale units can actually handle a large amount
of traffic?&lt;/p&gt;

&lt;h2&gt;Storage&lt;/h2&gt;

&lt;p&gt;Lets look at storage.&lt;/p&gt;

&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Region            &lt;/th&gt;
&lt;th&gt; DNS&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Southeast Asia    &lt;/td&gt;
&lt;td&gt; blob.sg1prdstr03a.store.core.windows.net&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;East Asia         &lt;/td&gt;
&lt;td&gt; blob.hknprdstr03a.store.core.windows.net&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;North Central US  &lt;/td&gt;
&lt;td&gt; blob.ch1prdstr05a.store.core.windows.net&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;North Europe      &lt;/td&gt;
&lt;td&gt; blob.db3prdstr02a.store.core.windows.net&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;West Europe       &lt;/td&gt;
&lt;td&gt; blob.am2prdstr05a.store.core.windows.net&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;West US           &lt;/td&gt;
&lt;td&gt; blob.by1prdstr02a.store.core.windows.net&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;East US           &lt;/td&gt;
&lt;td&gt; blob.bl2prdstr02a.store.core.windows.net&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;


&lt;p&gt;Storage is using a slightly different format, but it appears to be
based on similar principles; Singapore is sg not si.&lt;/p&gt;

&lt;p&gt;prd = production, str = storage?&lt;/p&gt;

&lt;p&gt;Perhaps 03a is the name of the scale unit?&lt;/p&gt;

&lt;h2&gt;Media Services&lt;/h2&gt;

&lt;p&gt;How about the newly launched Windows Azure Media Services? Probably
not many users yet, but I can see this growing pretty rapidly. It
might be fun to try tis gain in six month's time.&lt;/p&gt;

&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Region            &lt;/th&gt;
&lt;th&gt; DNS&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Southeast Asia    &lt;/td&gt;
&lt;td&gt; wamssinreg001orig-hs.cloudapp.net&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;East Asia         &lt;/td&gt;
&lt;td&gt; wamshknreg001orig-hs.cloudapp.net&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;North Europe      &lt;/td&gt;
&lt;td&gt; wamsdubreg001orig-hs.cloudapp.net&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;West Europe       &lt;/td&gt;
&lt;td&gt; wamsamsreg001orig-hs.cloudapp.net&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;West US           &lt;/td&gt;
&lt;td&gt; wamsbayreg001orig-hs.cloudapp.net&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;East US           &lt;/td&gt;
&lt;td&gt; wamsblureg001orig-hs.cloudapp.net&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;


&lt;p&gt;wams = Windows Azure Media Services&lt;/p&gt;

&lt;p&gt;sin = Singapore, hkn = Hong Kong, dub = Dublin, ams = Amsterdam, bay =
San Francisco Bay area?, blu = Blacksburg??&lt;/p&gt;

&lt;p&gt;So again, some similarities as well as inconsistencies. Assuming scale
units are being used, then this would suggest that there is just one
in each datacentre.&lt;/p&gt;

&lt;h2&gt;Conclusions&lt;/h2&gt;

&lt;p&gt;A lot of this is guesses based on public information and speculation,
so if you know better, please let me know.&lt;/p&gt;

&lt;p&gt;So how could we estimate how many scale units there are for the
various Windows Azure services?&lt;/p&gt;

&lt;p&gt;Feel free to record your scale unit DNS names in the comments below, or tweet
them with hashtag #AzureScaleUnit . Let's see how many scale units
we can find between us.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/aKfby03X4gY" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2013/01/26/are-you-on-my-scale-unit.html</feedburner:origLink></entry>
 
 <entry>
   <title>Programming Languages and Natural Languages</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/Oo1_Hx8GpSE/programming-languages-and-natural-languages.html" />
   <updated>2012-07-20T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2012/07/20/programming-languages-and-natural-languages</id>
   <content type="html">&lt;p&gt;Is choosing a programming language like choosing a natural language?&lt;/p&gt;

&lt;p&gt;Recently I've been running a series of workshops in and around
Europe. Whilst I can understand a little French and a few words of
German, sadly my monolingualism has meant that all the sessions have
had to be conducted in English.&lt;/p&gt;

&lt;p&gt;At times I've found this a little embarrassing and I've certainly
wondered about the wisdom and efficiency of a room full of Norwegians
having to speak English on my account, but it has lead me to ponder
the comparison of natural languages to programming languages.&lt;/p&gt;

&lt;p&gt;English seems to be a lowest common denominator language in the same
vein as most ALGOL like pseudo code. It's not ideal, but it seems to
be your best bet for communicating an idea to a wide variety of
people.  Most people seem to have a smattering of English and most
programmers seem to be able to understand block structured imperative
languages.  Many people have been "forced" to learn English. A bit
like students have to learn BASIC or Java perhaps?&lt;/p&gt;

&lt;p&gt;At the start of a new software project there is often a debate about
the choice of programming language. Sometimes this borders on
religious fervour. I wonder whether people argue about natural
languages in quite the same way.&lt;/p&gt;

&lt;p&gt;Natural language choice seems to be more about maximising the
understanding of the communication. People seem much more willing to
use their second language if it gives them access to new
information. Equally they seem comfortable in breaking out in their
native tongue amongst cliques if it furthers the aims of the wider
meeting. Perhaps mixing programming languages is not as much of a
problem as we might think.&lt;/p&gt;

&lt;p&gt;In general, I think it's probably best to choose computer languages
based mostly on the skills and needs of the team. It would be crazy to
bring together a group of literary authors and ask them to write a
book in an unfamiliar language, yet we do this in Computing in the
name of progress.&lt;/p&gt;

&lt;p&gt;If we'd stuck with say, FORTRAN, Common Lisp and C, instead of
pursuing the likes of Java and C#, would we be any worse off today?
What about the innovation that we have seen in languages like Haskell,
Clojure and Erlang?&lt;/p&gt;

&lt;p&gt;Just as better dictionaries and word processors have helped natural
language writers, I'm encouraged that advances in programmer tooling
such as &lt;a href="http://www.chris-granger.com/2012/04/12/light-table---a-new-ide-concept/"&gt;Light
Table&lt;/a&gt;,
will take hold in the coming years.&lt;/p&gt;

&lt;p&gt;Natural languages are borne of different cultures, so are many
programming languages; consider the origins of Ruby, Clojure and Node
for example. Consider their communities.&lt;/p&gt;

&lt;p&gt;Domain specific languages can be powerful. The Saami People have a
rich vocabulary for snow and ice that is ideal for living in the
Arctic region. Similarly the programming language R is probably a good
choice if you want to work with statistics.&lt;/p&gt;

&lt;p&gt;Japanese Haiku don't seem to translate readily into English and
programming languages have different expressive qualities. I imagine
that taking a well written Haskell program and trying to convert it to
C might similarly cause the loss of some expressive elegance. The
Rubaiyat of Omar Khayyam is a beautiful collection of poetry in
English but the original texts are in Persian. Must we learn Persian
to truly appreciate it?&lt;/p&gt;

&lt;p&gt;Truly multilingual people seem to be able to change the language in
which they think. I believe that programming languages are also
thinking tools and I often find myself designing programs in Lisp even
if they end up having to be written in C#. Of course Lisp programmers
tend to extend and change the language to suit the program. Natural
languages evolve similarly with new phrases, and new words get added
to the lexicon each year.&lt;/p&gt;

&lt;p&gt;I suppose that as you learn more programming languages, you are able
to express a wider variety of ideas and reason from different
perspectives. Perhaps your ability to communicate with other
programmers improves too?&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/Oo1_Hx8GpSE" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2012/07/20/programming-languages-and-natural-languages.html</feedburner:origLink></entry>
 
 <entry>
   <title>Getting Started with the Windows Azure Command-Line Tools on Linux</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/N4z8RM-9pyg/getting-started-with-windows-azure-command-line-tools-on-linux.html" />
   <updated>2012-06-11T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2012/06/11/getting-started-with-windows-azure-command-line-tools-on-linux</id>
   <content type="html">&lt;p&gt;Big news. Windows Azure now supports Linux Virtual Machines and you
don't need a Windows box to deploy them.&lt;/p&gt;

&lt;p&gt;The new Windows Azure Portal no longer uses Silverlight, it's all
HTML5 and works just fine from a Linux hosted web browser. Microsoft's
new command line tooling allows you to manage your cloud deployments
from a local Linux box via a Bash prompt.&lt;/p&gt;

&lt;p&gt;You can sign up for a free trial account
&lt;a href="https://www.windowsazure.com/en-us/pricing/free-trial/"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The tools are written in Node.Js so you need to have a recent Node
build to get things working. The official documentation suggests
adding the Debian Sid repository to your apt config - that sounds
pretty scary to me. Fortunately, installing Node manually isn't hard.&lt;/p&gt;

&lt;p&gt;I'm using Ubuntu Linux 12.04. Things might be slightly different for
your distro, but here goes:&lt;/p&gt;

&lt;p&gt;You can download the Node source code from the
&lt;a href="http://nodejs.org/#download"&gt;Node website&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Unpack like this&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;tar -zxvf node-v0.6.9.tar.gz
cd node-v0.6.9
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;You need to install some dependencies&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;sudo apt-get install build-essential libssl-dev
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;But then you can do the usual configure, make, make install routine:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;./configure
make
sudo make install
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Then go and grab the Azure Command Line tools from &lt;a href="https://www.windowsazure.com/en-us/manage/downloads/"&gt;Windows Azure
Downloads&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Beware, contrary to Unix etiquette, unpacking the compressed tar file
will dump it's contents directly into the current directory rather than
creating a single subdirectory, so you might wish to proceed like this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;mkdir azure
tar -zxv -C azure -f azure-2012-06.tar.gz
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;There's a configure file and a Makefile, so you're good to go.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;cd azure
./configure
sudo make install
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Now you can try it out:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;azure
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;.. and this is where you first spot that the team probably hasn't been
exposed to very much UNIX philosophy in their Microsoft careers.  The
output is very wordy and lines are prepended with tags like "info:"
and "help:" which makes it hard to pipe output to other processes.&lt;/p&gt;

&lt;p&gt;It doesn't feel very UNIXy and I am reminded of The Rule of
Silence. "When a program has nothing surprising to say, it should say
nothing."&lt;/p&gt;

&lt;p&gt;(If anybody on the team is reading this, I suggest buying a copy
of Eric Raymond's book "The Art of UNIX Programming". Actually I
think it should be required reading for &lt;em&gt;every&lt;/em&gt; programmer on
every platform).&lt;/p&gt;

&lt;p&gt;Anyway, let's get things configured with our Windows Azure credentials:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;azure account download
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This gives you a URL that you can use to download your account
publishing settings. Having logged in with your Live ID in your
favourite web browser, the file can be downloaded and imported.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;azure account import my.publishsettings 
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;If you have multiple accounts attached to your Live ID, then you'll need
to set the correct account, something like this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;azure config set subscription "My Windows Azure Subscription"
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;And from there you can explore&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;azure site list
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;It's a great pity that the output is occluded by so much unnecessary
line noise, but it's a good start. I guess the fact that it's open
source means I should delve in and fix it. Now if only there were more
hours in the day ..&lt;/p&gt;

&lt;p&gt;For more information, see&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.windowsazure.com/en-us/manage/linux/other-resources/command-line-tools/"&gt;www.windowsazure.com/en-us/manage/linux/other-resources/command-line-tools/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;and&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.meetwindowsazure.com/DigitalChalkTalks"&gt;www.meetwindowsazure.com/DigitalChalkTalks&lt;/a&gt;.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/N4z8RM-9pyg" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2012/06/11/getting-started-with-windows-azure-command-line-tools-on-linux.html</feedburner:origLink></entry>
 
 <entry>
   <title>Exploring Windows Azure Network Latency</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/ppn1GO8p9-w/exploring-windows-azure-network-latency.html" />
   <updated>2012-05-13T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2012/05/13/exploring-windows-azure-network-latency</id>
   <content type="html">&lt;p&gt;I wanted to understand the latency between the various Windows Azure
data centres, so I set up six deployments, one in in each of the
principal locations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;europe-north&lt;/li&gt;
&lt;li&gt;europe-west&lt;/li&gt;
&lt;li&gt;us-north&lt;/li&gt;
&lt;li&gt;us-south&lt;/li&gt;
&lt;li&gt;asia-east&lt;/li&gt;
&lt;li&gt;asia-southeast&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;I installed an out-of-the-box copy of
&lt;a href="https://github.com/RobBlackwell/AzureRunMe"&gt;AzureRunMe&lt;/a&gt; using a small
VM. I started IIS on each VM using:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;gt; net start w3svc
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;We can't use ping to test latency because the Windows Azure VMs don't
respond to the Internet Control Message Protocol (ICMP). Even if we
turn off the firewall on the VM, ICMP is (quite rightly) blocked at
the Windows Azure boundary.&lt;/p&gt;

&lt;p&gt;So I started to experiment with
&lt;a href="http://www.elifulkerson.com/projects/tcping.php"&gt;tcping&lt;/a&gt;, a console
app that uses TCP rather than ICMP.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;tcping -i 5 -n 12 xxx.cloudapp.net 80
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This runs twelve tests with an interval of five seconds; I took the
average.&lt;/p&gt;

&lt;p&gt;I conducted my tests during the early afternoon on Sunday 13 May 2012.&lt;/p&gt;

&lt;p&gt;On each host, I ran the following test.bat file:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;start /b tcping.exe -i 5 -n 12 europe-north.cloudapp.net 80 &amp;gt; europe-north.txt
start /b tcping.exe -i 5 -n 12 europe-west.cloudapp.net 80 &amp;gt; europe-west.txt
start /b tcping.exe -i 5 -n 12 us-north.cloudapp.net 80 &amp;gt; us-north.txt
start /b tcping.exe -i 5 -n 12 us-south.cloudapp.net 80 &amp;gt; us-south.txt
start /b tcping.exe -i 5 -n 12 asia-east.cloudapp.net 80 &amp;gt; asia-east.txt
start /b tcping.exe -i 5 -n 12 asia-southeast.cloudapp.net 80 &amp;gt; asia-southeast.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;I occasionally saw a big spike in the results (one of the timings
being about four times higher). I couldn't explain these results, so I
confess; I just ignored that data and re-ran the test.&lt;/p&gt;

&lt;p&gt;Here are my results to the nearest millisecond:&lt;/p&gt;

&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align="left"&gt;\                &lt;/th&gt;
&lt;th align="right"&gt; europe-north   &lt;/th&gt;
&lt;th align="right"&gt; europe-west   &lt;/th&gt;
&lt;th align="right"&gt; us-north   &lt;/th&gt;
&lt;th align="right"&gt; us-south   &lt;/th&gt;
&lt;th align="right"&gt; asia-east   &lt;/th&gt;
&lt;th align="right"&gt; asia-southeast   &lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td align="left"&gt;home             &lt;/td&gt;
&lt;td align="right"&gt; 45             &lt;/td&gt;
&lt;td align="right"&gt; 45            &lt;/td&gt;
&lt;td align="right"&gt; 126        &lt;/td&gt;
&lt;td align="right"&gt; 140        &lt;/td&gt;
&lt;td align="right"&gt; 311         &lt;/td&gt;
&lt;td align="right"&gt; 296              &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="left"&gt;europe-north     &lt;/td&gt;
&lt;td align="right"&gt; 16             &lt;/td&gt;
&lt;td align="right"&gt; 31            &lt;/td&gt;
&lt;td align="right"&gt; 105        &lt;/td&gt;
&lt;td align="right"&gt; 125        &lt;/td&gt;
&lt;td align="right"&gt; 311         &lt;/td&gt;
&lt;td align="right"&gt; 346              &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="left"&gt;europe-west      &lt;/td&gt;
&lt;td align="right"&gt; 32             &lt;/td&gt;
&lt;td align="right"&gt; 15            &lt;/td&gt;
&lt;td align="right"&gt; 110        &lt;/td&gt;
&lt;td align="right"&gt; 125        &lt;/td&gt;
&lt;td align="right"&gt; 313         &lt;/td&gt;
&lt;td align="right"&gt; 345              &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="left"&gt;us-north         &lt;/td&gt;
&lt;td align="right"&gt; 105            &lt;/td&gt;
&lt;td align="right"&gt; 110           &lt;/td&gt;
&lt;td align="right"&gt; 15         &lt;/td&gt;
&lt;td align="right"&gt; 46         &lt;/td&gt;
&lt;td align="right"&gt; 221         &lt;/td&gt;
&lt;td align="right"&gt; 250              &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="left"&gt;us-south         &lt;/td&gt;
&lt;td align="right"&gt; 131            &lt;/td&gt;
&lt;td align="right"&gt; 126           &lt;/td&gt;
&lt;td align="right"&gt; 47         &lt;/td&gt;
&lt;td align="right"&gt; 15         &lt;/td&gt;
&lt;td align="right"&gt; 205         &lt;/td&gt;
&lt;td align="right"&gt; 235              &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="left"&gt;asia-east        &lt;/td&gt;
&lt;td align="right"&gt; 311            &lt;/td&gt;
&lt;td align="right"&gt; 313           &lt;/td&gt;
&lt;td align="right"&gt; 220        &lt;/td&gt;
&lt;td align="right"&gt; 204        &lt;/td&gt;
&lt;td align="right"&gt; 15          &lt;/td&gt;
&lt;td align="right"&gt; 47               &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="left"&gt;asia-southeast   &lt;/td&gt;
&lt;td align="right"&gt; 333            &lt;/td&gt;
&lt;td align="right"&gt; 343           &lt;/td&gt;
&lt;td align="right"&gt; 250        &lt;/td&gt;
&lt;td align="right"&gt; 234        &lt;/td&gt;
&lt;td align="right"&gt; 47          &lt;/td&gt;
&lt;td align="right"&gt; 15               &lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;


&lt;p&gt;As you would expect, the latency between data centres within the same
region is small - 45 ms for USA and Asia, 30 ms for Europe. I wonder
why the European backbone seems fastest?&lt;/p&gt;

&lt;p&gt;The time to ping a deployment from itself seems to be about 15 ms for
all data centres. I'm seeing just less that 15 ms when I run the same
test between two machines on my own gigabit ethernet switch. That
suggests that the hyper-visor, VLAN and load balancer are not a big
overhead.&lt;/p&gt;

&lt;p&gt;My two nearest data centres are Dublin and Amsterdam; they seem to be
neck-and-neck in terms of latency.&lt;/p&gt;

&lt;p&gt;I thought it would be fun to play with tracert, but of course we soon
run into problems with blocked ICMP. Modern Unix traceroutes have TCP
and layer four options, but alas not Windows.&lt;/p&gt;

&lt;p&gt;Instead, I installed &lt;a href="http://nmap.org/"&gt;NMAP&lt;/a&gt;, which now supports TCP
based traceroute like this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt; nmap -sS -p 80 -Pn --traceroute europe-north.cloudapp.net
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;From home, I get this&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;TRACEROUTE (using port 80/tcp)
HOP RTT      ADDRESS
1   31.00 ms homeportal (192.168.1.254)
2   31.00 ms homeportal (192.168.1.254)
3   46.00 ms 213.123.107.186
4   46.00 ms 213.123.107.161
5   46.00 ms 213.1.69.66
6   46.00 ms 217.41.168.35
7   46.00 ms 217.41.168.107
8   46.00 ms 109.159.249.110
9   31.00 ms core1-te0-7-0-6.faraday.ukcore.bt.net (109.159.249.19)
10  31.00 ms 213.131.193.54
11  32.00 ms peer1-xe1-1-0.telehouse.ukcore.bt.net (109.159.254.136)
12  32.00 ms 195.99.126.42
13  32.00 ms ge-3-3-0-0.lts-64cb-1a.ntwk.msn.net (207.46.42.18)
14  32.00 ms xe-0-0-0-0.lts-96cbe-1a.ntwk.msn.net (207.46.42.168)
15  31.00 ms xe-8-2-0-0.db3-96c-1b.ntwk.msn.net (207.46.42.190)
16  ... 18
19  47.00 ms 65.52.76.146
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;But you can see that hops 16 to 18 are missing. It looks like those
clever Windows Azure administrators have configured things so that you
can't find any details about the infrastructure. Indeed this is
confirmed if you try NMAP from the Windows Azure VM itself.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;TRACEROUTE (using port 80/tcp)
HOP RTT     ADDRESS
1   ... 4
5   0.00 ms 65.52.76.146
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The details f the hops might be missing, but at least we know the number of hops:&lt;/p&gt;

&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align="left"&gt;\                &lt;/th&gt;
&lt;th align="right"&gt; europe-north   &lt;/th&gt;
&lt;th align="right"&gt; europe-west   &lt;/th&gt;
&lt;th align="right"&gt; us-north   &lt;/th&gt;
&lt;th align="right"&gt; us-south   &lt;/th&gt;
&lt;th align="right"&gt; asia-east   &lt;/th&gt;
&lt;th align="right"&gt; asia-southeast   &lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td align="left"&gt;europe-north     &lt;/td&gt;
&lt;td align="right"&gt; 5              &lt;/td&gt;
&lt;td align="right"&gt; 9             &lt;/td&gt;
&lt;td align="right"&gt; 11         &lt;/td&gt;
&lt;td align="right"&gt; 13         &lt;/td&gt;
&lt;td align="right"&gt; 13          &lt;/td&gt;
&lt;td align="right"&gt; 16               &lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;


&lt;p&gt;Another thing I noticed was that if I used NMAP to portscan my
xxx.cloudapp.net host, the RDP connection dropped. Looks to me like
there are quite a lot of smarts in the Windows Azure security and
denial of service attack protection ;-)&lt;/p&gt;

&lt;p&gt;NMAP also now comes with Zenmap, but I'll leave the pretty pictures
for another day.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/ppn1GO8p9-w" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2012/05/13/exploring-windows-azure-network-latency.html</feedburner:origLink></entry>
 
 <entry>
   <title>The cURL Test for REST APIs</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/y9sn3P3KMnE/the-curl-test-for-rest-apis.html" />
   <updated>2012-04-06T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2012/04/06/the-curl-test-for-rest-apis</id>
   <content type="html">&lt;p&gt;REST APIs arguably have a much lower barrier to entry than SOAP APIs for client library implementers. The notion of simple HTTP verbs executed against resources makes it easy to build a client in any language that has a TCP/IP library.&lt;/p&gt;

&lt;p&gt;But as soon as you consider security, up goes the complexity again.  There are many choices including basic authentication, client certificates, custom signature schemes, OAUTH WRAP, OAUTH2.0 etc. Client library implementers now have to hope there are good security and cryptography libraries for their platform.&lt;/p&gt;

&lt;p&gt;REST security standards are still evolving. OAUTH2.0 is still in draft at the time of writing. So how do we balance the needs of simplicity and security? I propose the cURL test:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you can’t demonstrate and document your REST API using straightforward cURL samples, it’s probably too complicated.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;cURL is a command line tool for transferring data to and from servers using web protocols. It’s designed not to require a web browser or any user interaction. If you use a UNIX like platform (Linux or MAC OS X), then you’re probably already familiar with its utility. If you’re on Windows I suggest you install it via &lt;a href="http://www.cygwin.com"&gt;Cygwin&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;A simple GET request with no authentication can be accomplished like this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt; $ curl http://feeds.bbci.co.uk/news/rss.xml
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;If you use client certificates, you can specify the certificate using –cert. Here is an example of calling the &lt;a href="http://msdn.microsoft.com/en-us/library/windowsazure/ee460799.aspx"&gt;Windows Azure Service Management API&lt;/a&gt; to &lt;a href="http://msdn.microsoft.com/en-us/library/windowsazure/ee460781.aspx"&gt;list hosted services&lt;/a&gt;. Note the use of the x-ms-version custom header.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;   $ curl --cert robblackwellmanage.pfx.pem:mypassword --header x-ms-version:2011-02-25 https://management.core.windows.net/MYSUBSCRIPTION ID/services/hostedservices
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Calling the &lt;a href="http://msdn.microsoft.com/en-us/library/windowsazure/hh780717.aspx"&gt;Windows Azure Service Bus API&lt;/a&gt; is a two-step process. First we have to call a Web Resource Access Protocol (WRAP) endpoint to obtain a Simple Web Token (SWT). Then we can use that SWT to present claims to the Service Bus API.&lt;/p&gt;

&lt;p&gt;Here is the WRAP call:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt; $ curl --data-urlencode 'wrap_scope=http://robblackwell.servicebus.windows.net' --data-urlencode 'wrap_name=owner' --data-urlencode 'wrap_password=c6V4LUpWKhXx1BxQGNQgJinMfpy3MuA83PuBUlufSS4=' https://robblackwell-sb.accesscontrol.windows.net/WRAPv0.9/                                                        
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This returns a simple web token that looks something like this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt; wrap_access_token=net.windows.servicebus.action%3dListen%252cManage%252cSend%26http%253a%252f%252fschemas.microsoft.com%252faccesscontrolservice%252f2010%252f07%252fclaims%252fidentityprovider%3dhttps%253a%252f%252frobblackwell-sb.accesscontrol.windows.net%252f%26Audience%3dhttp%253a%252f%252frobblackwell.servicebus.windows.net%26ExpiresOn%3d1333573514%26Issuer%3dhttps%253a%252f%252frobblackwell-sb.accesscontrol.windows.net%252f%26HMACSHA256%3dEBxtUWnSD5tMFY9gpPpmIlB%252b7QeGUwrOEqgS7AWlWXE%253d&amp;amp;wrap_access_token_expires_in=1199
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;As you can see, the token is URL-encoded, so we need to URL decode it before we can use it. Let’s try that gain, with Perl to the rescue:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;   $ curl --data-urlencode 'wrap_scope=http://robblackwell.servicebus.windows.net' --data-urlencode 'wrap_name=owner' --data-urlencode 'wrap_password= c6V4LUpWKhXx1BxQGNQgJinMfpy3MuA83PuBUlufSS4=' https://robblackwell-sb.accesscontrol.windows.net/WRAPv0.9/ | perl -pe 's/%([0-9a-f]{2})/sprintf("%s", pack("H2",$1))/eig'
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This gives us something like this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt; wrap_access_token=net.windows.servicebus.action=Listen%2cManage%2cSend&amp;amp;http%3a%2f%2fschemas.microsoft.com%2faccesscontrolservice%2f2010%2f07%2fclaims%2fidentityprovider=https%3a%2f%2frobblackwell-sb.accesscontrol.windows.net%2f&amp;amp;Audience=http%3a%2f%2frobblackwell.servicebus.windows.net&amp;amp;ExpiresOn=1333660384&amp;amp;Issuer=https%3a%2f%2frobblackwell-sb.accesscontrol.windows.net%2f&amp;amp;HMACSHA256=B0Yc7g7ktGxXKvYETwyjjTxKHJXm9N5xsV1hDo9y3nw%3d&amp;amp;wrap_access_token_expires_in=1200
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;And we can copy and paste the SWT into a new command line like this and use it to authorize a request to list all the Queue resources on a service bus endpoint.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$ curl --header 'Authorization:WRAP access_token="net.windows.servicebus.action=Listen%2cManage%2cSend&amp;amp;http%3a%2f%2fschemas.microsoft.com%2faccesscontrolservice%2f2010%2f07%2fclaims%2fidentityprovider=https%3a%2f%2frobblackwell-sb.accesscontrol.windows.net%2f&amp;amp;Audience=http%3a%2f%2frobblackwell.servicebus.windows.net&amp;amp;ExpiresOn=1333660384&amp;amp;Issuer=https%3a%2f%2frobblackwell-sb.accesscontrol.windows.net%2f&amp;amp;HMACSHA256=B0Yc7g7ktGxXKvYETwyjjTxKHJXm9N5xsV1hDo9y3nw%3d"' 'https://robblackwell.servicebus.windows.net/$Resources/Queues'
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This returns an XML / AtomPub feed with the list of queues. XML is arguably harder to read than JSON when returned on the command line, but at least it works.&lt;/p&gt;

&lt;p&gt;The Service Bus example above is a bit torturous, but just about passes the cURL test.&lt;/p&gt;

&lt;p&gt;Accessing &lt;a href="http://msdn.microsoft.com/en-us/library/windowsazure/dd179355.aspx"&gt;Windows Azure Storage&lt;/a&gt; currently requires a reasonably complicated request signing process that would be very difficult with cURL, so I think we should regard that as failing the cURL test.&lt;/p&gt;

&lt;p&gt;Of course you could always build a custom proxy server that translates simple cURL requests into the format and protocol that your particular complex API security demands, but that’s cheating!&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/y9sn3P3KMnE" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2012/04/06/the-curl-test-for-rest-apis.html</feedburner:origLink></entry>
 
 <entry>
   <title>Guest Lecture at Essex University 2012</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/U_XrHqJwBKk/guest-lecture-at-essex-university-2012.html" />
   <updated>2012-02-02T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2012/02/02/guest-lecture-at-essex-university-2012</id>
   <content type="html">&lt;p&gt;It was fun to talk about what it's like working in a software company at Essex University today. This year group seems like a lively lot!&lt;/p&gt;

&lt;p&gt;&lt;a href="/wp-content/uploads/2012/02/Essex2012.pdf"&gt;Here are my slides&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;My thanks to Keith Primrose.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/U_XrHqJwBKk" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2012/02/02/guest-lecture-at-essex-university-2012.html</feedburner:origLink></entry>
 
 <entry>
   <title>Windows 8 on Acer Iconia Tab</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/8RnU_wvznds/windows-8-on-acer-iconia-tab.html" />
   <updated>2011-09-19T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2011/09/19/windows-8-on-acer-iconia-tab</id>
   <content type="html">&lt;p&gt;#BLDWIN envy got the better of me, so I downloaded the Windows 8 developer preview bits this weekend.&lt;/p&gt;

&lt;p&gt;Running Windows 7 on the Acer Iconia has been, well, crappy to say the least. It's just not been in the same user experience league as my iPad, so I figured that I had nothing to lose by wiping it.&lt;/p&gt;

&lt;p&gt;First I plugged in my Keyboard and DVD drive via USB (that's something you can't do on an iPad) and having worked out how to boot to the BIOS (Power + Windows key together) got it to boot. The installation was completely painless. Only the Bluetooth driver was missing, everything else just worked out-of-the -gate.&lt;/p&gt;

&lt;p&gt;&lt;img src="/wp-content/uploads/2011/09/install.jpg" alt="Installing Windows 8" /&gt;&lt;/p&gt;

&lt;p&gt;My initial reaction? This is what Metro is made for. Readers will know that I never really "got" the Windows Phone 7 thing with its text falling off the edge, but Metro looks fantastic on the tablet. It's simple, intuitive and it works. Most of the time you forget that it's Windows under the covers. (That is until you click something that's not yet implemented and you get dropped back into the old style desktop).&lt;/p&gt;

&lt;p&gt;It's disappointing that the prerelease seems to be missing some of the keynote demo material (notably the Windows Live integration).&lt;/p&gt;

&lt;p&gt;It's given the Iconia a whole new lease of life (in terms of performance and usability), and I've been surprised how many hours I've spent with it this weekend.
I'm really taken with the joined up thinking - the device and the cloud really working together. This is the release of Windows that will properly integrate Windows Live rather than making it seem like an afterthought.&lt;/p&gt;

&lt;p&gt;The Iconia hardware (and all the Intel tablets I've seen) seem a bit clunky (too thick, too heavy), but I really think that ARM will cure that problem next year. I hope that this is the bridge to ARM that will hasten the decline of power hungry Intel chips.&lt;/p&gt;

&lt;p&gt;I'm not ready to give up my iPad yet, but I am inspired to try my hand at writing a Metro application. I've seen enough to suspect that I'll be investing in a serious slate at Windows 8 launch time.&lt;/p&gt;

&lt;p&gt;This is a platform that's worthy of developer time and investment.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/8RnU_wvznds" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2011/09/19/windows-8-on-acer-iconia-tab.html</feedburner:origLink></entry>
 
 <entry>
   <title>Microsoft Windows Azure Development Cookbook</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/I6ZuFTcHAM0/microsoft-windows-azure-development-cookbook.html" />
   <updated>2011-09-14T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2011/09/14/microsoft-windows-azure-development-cookbook</id>
   <content type="html">&lt;p&gt;Packt very kindly sent me a review copy of Neil Mackenzie's &lt;a href="http://link.packtpub.com/RXYUR2"&gt;Microsoft Windows Azure Development Cookbook&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src="/wp-content/uploads/2011/09/book.jpg" alt="Microsoft Windows Azure Development Cookbook" /&gt;&lt;/p&gt;

&lt;p&gt;The problem with Windows Azure is that it doesn't stand still for long enough to document it; even MSDN has been sadly lacking at times. Anybody who takes on a book project like this has to be either brave or mad, but writing a book with such broad and accurate technical information demands respect.&lt;/p&gt;

&lt;p&gt;The Windows Azure Platform has a large set of features, but this book seems to cover them all. Everything from Compute and Storage through to AppFabric. There is even practical advice on AppFabric Caching and Windows Azure Connect (both relative newcomers to Windows Azure).&lt;/p&gt;

&lt;p&gt;It was refreshing to see the book get quickly into detail and code. This book isn't for newbies; you won't find the usual "why cloud computing" space fillers here, just useful well-considered recipes that are clearly borne of real world experience.&lt;/p&gt;

&lt;p&gt;Some of the material will start to date quickly; only today Microsoft launched the Windows Azure SDK 1.5, but Neil has tried to pick important, relevant and useful problems to solve, so I think that the book will fare well over time. I hope he will continue to update and refine it in further editions.&lt;/p&gt;

&lt;p&gt;Yes there are one or two structural rough edges - the Index feels a bit computer generated, the AppFabric Caching information is awkwardly split across the first and the last chapters but that's nit picking; the content itself is first class and it's easy to dip into whenever you have a problem or need advice. This is a book that I'm hanging onto.&lt;/p&gt;

&lt;p&gt;If you are a Windows Azure Developer or hands on Architect, then it's well worth the money - it consolidates a great deal of Windows Azure experience and wisdom in one place, it will save you googling time and you're bound to learn something new!&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/I6ZuFTcHAM0" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2011/09/14/microsoft-windows-azure-development-cookbook.html</feedburner:origLink></entry>
 
 <entry>
   <title>Why Node.js is Important for Windows Azure</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/zLu9oPou7z4/why-node-is-important-for-windows-azure.html" />
   <updated>2011-09-01T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2011/09/01/why-node-is-important-for-windows-azure</id>
   <content type="html">&lt;p&gt;All the cool kids seem to be playing with Node.js, but why is Microsoft so interested?&lt;/p&gt;

&lt;p&gt;Scott Hanselman &lt;a href="http://www.hanselman.com/blog/InstallingAndRunningNodejsApplicationsWithinIISOnWindowsAreYouMad.aspx"&gt;is doing it&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Steve Marx &lt;a href="http://blog.smarx.com/posts/node-js-ruby-and-python-in-windows-azure-my-mix-talk"&gt;is doing it&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Microsoft is even &lt;a href="http://blogs.msdn.com/b/interoperability/archive/2011/06/23/microsoft-working-with-joyent-and-the-node-community-to-bring-node-js-to-windows.aspx"&gt;funding it&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Building web applications with JavaScript on the server has a nice symmetry with JavaScript on the client, but JavaScript has a reputation as an odd language.  What's going on?&lt;/p&gt;

&lt;p&gt;&lt;b&gt;I think it's because Node.js will become a great way of building modern cloud applications. Perhaps it will even become de facto.&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;JavaScript is not so bad. It has all the interesting traits of a dynamic language whilst still having a familiar looking block structured syntax. Programmers don't freak out in the same way as they do when they first see Lisp or even Ruby. Some people even think that JavaScript is an &lt;a href="http://javascript.crockford.com/little.html"&gt;acceptable Lisp&lt;/a&gt;. (It might have a &lt;a href="http://en.wikipedia.org/wiki/Read-eval-print_loop"&gt;REPL&lt;/a&gt;, JSON is almost homoiconic, but it would need a macro system to pass the Lisp test for me).&lt;/p&gt;

&lt;p&gt;In the cloud, horizontal scale out matters. If you really want cloud economics, then it's better to have a large number of small virtual machines than a small number of large virtual machines; you can start small and scale more granularly. Ideally you want to run those VMs hot to get best value for money.&lt;/p&gt;

&lt;p&gt;On Windows Azure, a small VM is a single 1.6 Ghz CPU with 1.75 GB of RAM. That's less than a crappy Netbook from PC World. The point is that small is beautiful if you can architect your software to make use of it.&lt;/p&gt;

&lt;p&gt;We've all been told that Moore's law is coming to an end; that we won't be getting faster processors, but we will be getting more processors; that functional programming is the only way to cope with multithreading. Building multithreaded applications is hard, but if you're on a single CPU, maybe you don't need to bother? Perhaps there's a better way to keep that CPU busy, and that's where I think that Node comes in.&lt;/p&gt;

&lt;p&gt;Node is inherently single threaded. Node gives you great performance by making the I/O asynchronous. If you aren't blocking on I/O then you have a much better chance of maximising CPU load.&lt;/p&gt;

&lt;p&gt;The Node runtime is small and highly efficient, being based on the Google V8 JavaScript Engine. It compiles JavaScript to native code. There's still a way to go before we get a stable port for Windows, but the early signs are encouraging.&lt;/p&gt;

&lt;p&gt;It turns out that cloud applications are typically I/O bound. A Web Role is waiting for web requests and a Worker Role is often shuffling data in and out of storage. These are ideal candidates for Node, which should give us better throughput on modest hardware. Node gives us a way to build small, fast, efficient, cost-effective, scalable cloud components.&lt;/p&gt;

&lt;p&gt;I think it's a safe bet that we'll be seeing more of Node.js on Windows Azure. Watch this space.&lt;/p&gt;

&lt;p&gt;In the meantime, feel free to check out &lt;a href="https://github.com/RobBlackwell/node-azure"&gt;node-azure&lt;/a&gt;.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/zLu9oPou7z4" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2011/09/01/why-node-is-important-for-windows-azure.html</feedburner:origLink></entry>
 
 <entry>
   <title>Determining the Windows Azure SDK Version at runtime.</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/xowlPozTt2k/determining-the-windows-azure-sdk-version-at-runtime.html" />
   <updated>2011-05-29T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2011/05/29/determining-the-windows-azure-sdk-version-at-runtime</id>
   <content type="html">&lt;p&gt;I have had a few issues with people using old versions of the Windows Azure SDK with &lt;a href="http://github.com/blackwre/AzureRunMe"&gt;AzureRunMe&lt;/a&gt; (This isn't helped by the fact that there are at least three different versions of 1.4 in existence).&lt;/p&gt;

&lt;p&gt;I wanted to display the Windows Azure SDK version when AzureRunMe starts, but it turned out to be more work than I'd expected. This information isn't currently available from any of the APIs.&lt;/p&gt;

&lt;p&gt;There is a file called RoleModel.xml that gets written to the %RoleRoot% that has an attribute with the SDK version.&lt;/p&gt;

&lt;p&gt;So here is the code&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;public string GetWindowsAzureSDKVersion()
{
    try
    {
        // Warning this is undocumented and could break in a future SDK release
        string roleModelFile = Environment.GetEnvironmentVariable("RoleRoot") + "\\RoleModel.xml";
        XmlDocument xmlDocument = new XmlDocument();
        xmlDocument.Load(roleModelFile);

        return xmlDocument.GetElementsByTagName("RoleModel")[0].Attributes["version"].Value;
    }
    catch (Exception e)
    {
        return "unknown";
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;So now when AzureRunMe starts, you get something like:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;Information RD00155D362047: 2011-05-28 09:20:47Z AzureRunMe 1.0.18.37253 on Windows Azure SDK 1.4.20407.2049
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;I know that this is unsupported and will probably break in some future version of the SDK, but needs must.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/xowlPozTt2k" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2011/05/29/determining-the-windows-azure-sdk-version-at-runtime.html</feedburner:origLink></entry>
 
 <entry>
   <title>Windows Azure, the good the bad and the ugly.</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/pE06wzqhxQo/windows-azure-the-good-the-bad-and-the-ugly.html" />
   <updated>2011-05-28T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2011/05/28/windows-azure-the-good-the-bad-and-the-ugly</id>
   <content type="html">&lt;p&gt;I really enjoyed speaking at &lt;a href="http://uktechdays.cloudapp.net/home.aspx"&gt;UK tech.days&lt;/a&gt; about my experiences with the Windows Azure Platform.&lt;/p&gt;

&lt;p&gt;I talked a bit about running non dot net applications and even managed to show some Common Lisp! I know it's pretty niche, but if you are interested in more details please see &lt;a href="http://www.cliki.net/cl-azure"&gt;cl-azure&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;You can download my slides from &lt;a href="/wp-content/uploads/2011/05/05-working-with-the-windows-azure-platform.pdf"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The latest AzureRunMe code is available from &lt;a href="https://github.com/blackwre/AzureRunMe"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The session video is &lt;a href="http://uktechdays.cloudapp.net/techdays-live/working-with-the-windows-azure-platform-the-good,-the-bad-and-the-ugly-tuesday-24th.aspx"&gt;now available&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Some interesting questions and lots of interest in running legacy code - particularly C and C++.&lt;/p&gt;

&lt;p&gt;My thanks to Eric Nelson, David Gristwood and Paul Lo.&lt;/p&gt;

&lt;div style="width:639px;height:360px" &gt;&lt;object type="application/x-silverlight-2" data="data:application/x-silverlight-2," width="639" height="360" &gt;&lt;param name="source" value="http://www.microsoft.com/showcase/silverlight/player/1/player-en.xap" /&gt;&lt;param name="initParams" value="Culture=en-GB,Uuid=78a2caf4-252f-4a81-9071-3c307b74ffe8,Autoplay=False,ShowMarketingOverlay=true,MiscControls=FullScreen;Detached,ShowMenu=True,Tabs=Embed;Email;Share;Info,ShowCaption=false,VideoUrl=http://www.microsoft.com/showcase/en/gb/details/78a2caf4-252f-4a81-9071-3c307b74ffe8,Mode=Player" /&gt;&lt;param name="enableHtmlAccess" value="true" /&gt;&lt;param name="allowHtmlPopupwindow" value="true" /&gt;&lt;param name="background" value="#FF000000" /&gt;&lt;param name="minRuntimeVersion" value="4.0.50401.0" /&gt;&lt;param name="autoUpgrade" value="true" /&gt;&lt;div&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkID=149156" style="text-decoration: none;" onmousedown="javascript:new Image().src = 'http://m.webtrends.com/dcsygm2gb10000kf9xm7kfvub_9p1t/dcs.gif?dcsdat=' + new Date().getTime() + '&amp;dcssip=www.microsoft.com&amp;dcsuri=' + window.location.href + '&amp;WT.tz=-8&amp;WT.bh=16&amp;WT.ul=en-GB&amp;WT.cd=32&amp;WT.jo=Yes&amp;WT.ti=&amp;WT.js=Yes&amp;WT.jv=1.5&amp;WT.fi=Yes&amp;WT.fv=10.0&amp;WT.sli=Not%20Installed&amp;WT.slv=Version%20Unavailable&amp;WT.dl=1&amp;WT.seg_1=Not%20Logged%20In&amp;WT.vt_f_a=2&amp;WT.vt_f=2&amp;WT.vt_nvr1=2&amp;WT.vt_nvr2=2&amp;WT.vt_nvr3=2&amp;WT.vt_nvr4=2&amp;vp_site=Embedded&amp;wtEvtSrc=' + window.location.href + '&amp;vp_sli=Embedded'"&gt;&lt;img src="http://img.microsoft.com/showcase/Content/img/resx/en-GB/installSL.gif" alt="Get Microsoft Silverlight" style="border-style: none"/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style='margin-top: -80px; text-align: center;'&gt;&lt;a style='text-align: center; color: #7db0d2; text-decoration: none; font-size: 80%; font-family: "Segoe UI", Segoe, Tahoma, Verdana, sans-serif;' href='mms://msnvidweb.wmod.msecnd.net/a10026/e1/ds/en-gb/CMG_UK/ENGB_Microsoft/1a956bb4-c80a-48ac-ba60-6ee045be4da1.wmv'&gt;View this video as a WMV&lt;/a&gt;&lt;/div&gt;&lt;noscript&gt;&lt;div&gt;&lt;img alt="DCSIMG" id="DCSIMG" width="1" height="1" src="http://m.webtrends.com/dcsygm2gb10000kf9xm7kfvub_9p1t/njs.gif?dcsuri=/nojavascript&amp;amp;WT.js=No"/&gt;&lt;/div&gt;&lt;/noscript&gt;&lt;/object&gt;&lt;/div&gt;&lt;script type="text/javascript"&gt;


&lt;p&gt;document.write("&lt;script type='text/javascript' src='" + (window.location.protocol) + "//c.microsoft.com/ms.js'&gt;&amp;lt;\/script&gt;");
&lt;/script&gt;&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/pE06wzqhxQo" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2011/05/28/windows-azure-the-good-the-bad-and-the-ugly.html</feedburner:origLink></entry>
 
 <entry>
   <title>Six reasons why MVPs should explore Windows Azure.</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/50NdvO-N8qc/six-reasons-why-mvps-should-explore-windows-azure.html" />
   <updated>2011-04-13T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2011/04/13/six-reasons-why-mvps-should-explore-windows-azure</id>
   <content type="html">&lt;p&gt;I was speaking to Claire Smyth recently and we couldn't understand why
there weren't more Windows Azure and SQL Azure MVPs in the UK. Here's
why I think the MVP community and developers in particular should be
interested:&lt;/p&gt;

&lt;h2&gt;Whatever your expertise, Windows Azure will touch your world.&lt;/h2&gt;

&lt;p&gt;Many Microsoft products are moving towards Software as a Service
offerings: SharePoint, SQL Server, CRM and even Office. Most products
will start to touch the cloud in some way, even if it's just for
storage.&lt;/p&gt;

&lt;p&gt;Many .NET applications are straightforward to migrate to Windows
Azure, so cloud is particularly relevant to developers.&lt;/p&gt;

&lt;h2&gt;Exciting projects.&lt;/h2&gt;

&lt;p&gt;You only need to glance at the
&lt;a href="http://www.microsoft.com/windowsazure/evidence/"&gt;Windows Azure Case Studies&lt;/a&gt;
to see the range of cool projects out there. From satellite
communication systems
to financial calculations and web sites promoting global brands, this
is a chance to take your career to a new level and get involved in
something big.&lt;/p&gt;

&lt;h2&gt;New opportunities and innovation.&lt;/h2&gt;

&lt;p&gt;Imagine having access to a large amount of compute power on
demand. What could you build?&lt;/p&gt;

&lt;p&gt;Perhaps you would implement a massively parallel high performance
compute algorithm?&lt;/p&gt;

&lt;p&gt;How about a new search engine or social network?&lt;/p&gt;

&lt;p&gt;Perhaps you have the world's next big online idea?&lt;/p&gt;

&lt;p&gt;Windows Azure gives you access to compute resources at reasonable
cost, on demand. It's leveling the playing-field and allowing lone
developers and start-ups to compete with big, established players. You
no longer need a huge capital investment to get started.&lt;/p&gt;

&lt;h2&gt;There is a skills shortage.&lt;/h2&gt;

&lt;p&gt;There aren't many people around with hands-on Windows Azure expertise
and less than a handful of MVPs in the UK.&lt;/p&gt;

&lt;p&gt;With "Cloud Power" posters across London and major European transport
hubs, itís hard to miss the marketing push. Despite, and perhaps
because of, the global recession, people are migrating to the cloud
and the momentum is building.&lt;/p&gt;

&lt;p&gt;You don't need to be a rocket scientist, but cloud architecture is a
different mindset.&lt;/p&gt;

&lt;h2&gt;Cloud is arguably a paradigm shift.&lt;/h2&gt;

&lt;p&gt;We've seen the mainframe era, the client-server era and the web
era. Now we're embarking on the Cloud era.&lt;/p&gt;

&lt;h2&gt;It's easy and free to get started.&lt;/h2&gt;

&lt;p&gt;Grab yourself a free 30 day pass.&lt;/p&gt;

&lt;p&gt;Come and see us at &lt;a href="http://uktechdays.cloudapp.net/techdays-live/building-and-deploying-applications-onto-the-windows-azure-platform-for-cloud-computing.aspx"&gt;TechDays 2011&lt;/a&gt;.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/50NdvO-N8qc" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2011/04/13/six-reasons-why-mvps-should-explore-windows-azure.html</feedburner:origLink></entry>
 
 <entry>
   <title>Azure Northern Europe is Dublin and Western Europe is Amsterdam.</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/NCXFOO8Vn3k/azure-northern-europe-is-dublin-and-western-europe-is-amsterdam.html" />
   <updated>2011-04-12T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2011/04/12/azure-northern-europe-is-dublin-and-western-europe-is-amsterdam</id>
   <content type="html">&lt;p&gt;Windows Azure has two European datacenters, Northern Europe and
Western Europe located in Dublin and Amsterdam respectively.&lt;/p&gt;

&lt;p&gt;Unfortunately, this is a cause of much confusion because, judging by
Bing Maps, Dublin is much more westerly than Amsterdam and only
slightly further north.&lt;/p&gt;

&lt;p&gt;It's time to clarify this once and for all.&lt;/p&gt;

&lt;p&gt;Wikipedia's definition of
&lt;a href="http://en.wikipedia.org/wiki/Western_Europe"&gt;Western Europe&lt;/a&gt;
is as follows:&lt;/p&gt;

&lt;p&gt;&lt;img src="/wp-content/uploads/2011/04/wikipedia.png" title="Wikipedia" alt="Wikipedia's idea of Western Europe" /&gt;&lt;/p&gt;

&lt;p&gt;Microsoft's slide from the Windows Azure Platform Training Kit is
consistent, other than perhaps suggesting that Amsterdam is somewhere
in northern Italy?&lt;/p&gt;

&lt;p&gt;&lt;img src="/wp-content/uploads/2011/04/waptk.png" title="WAPTK" alt="WAPTK" /&gt;&lt;/p&gt;

&lt;p&gt;Let's try to back this up with a practical proof.&lt;/p&gt;

&lt;h2&gt;Northern Europe&lt;/h2&gt;

&lt;p&gt;Deploy AzureRunMe to Northern Europe as northereurope.cloudapp.net.&lt;/p&gt;

&lt;p&gt;northerneurope.cloudapp.net resolves to 94.245.105.138.&lt;/p&gt;

&lt;p&gt;When I RDP in and bring up a browser, bing.com reports United Kingdom.&lt;/p&gt;

&lt;p&gt;That would all seem to be consistent with Dublin.&lt;/p&gt;

&lt;h2&gt;Western Europe&lt;/h2&gt;

&lt;p&gt;Deploy AzureRunme to Western Europe as westerneurope.cloudapp.net.&lt;/p&gt;

&lt;p&gt;westerneurope.cloudapp.net  resolves to 65.52.153.40.&lt;/p&gt;

&lt;p&gt;When I RDP in and bring up a browser, bing.com reports Netherlands.&lt;/p&gt;

&lt;p&gt;That would seem to be consistent with Amsterdam.&lt;/p&gt;

&lt;p&gt;So there you have it, Northern Europe is Dublin and Western Europe is
Amsterdam. QED.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/NCXFOO8Vn3k" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2011/04/12/azure-northern-europe-is-dublin-and-western-europe-is-amsterdam.html</feedburner:origLink></entry>
 
 <entry>
   <title>Technology Enabling Business Event.</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/JIu71PSno7c/technology-enabling-business-event.html" />
   <updated>2011-02-10T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2011/02/10/technology-enabling-business-event</id>
   <content type="html">&lt;p&gt;Enjoyed speaking at &lt;a href="http://www.t-centre.co.uk/"&gt;The Framlingham Technology Centre&lt;/a&gt; today about Cloud Computing and Windows Azure.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.robblackwell.org.uk/wp-content/uploads/2011/02/WhyCloud.pdf"&gt;Here are my slides&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;My thanks to Jenny Stockman and Ian Chapman.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/JIu71PSno7c" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2011/02/10/technology-enabling-business-event.html</feedburner:origLink></entry>
 
 <entry>
   <title>Guest Lecture at Essex University 2011.</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/IjuCY0Ievk0/guest-lecture-at-essex-university-2011.html" />
   <updated>2011-01-18T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2011/01/18/guest-lecture-at-essex-university-2011</id>
   <content type="html">&lt;p&gt;It was fun to talk about Software development, cloud computing and Windows Azure at Essex University today.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.robblackwell.org.uk/wp-content/uploads/2011/01/Essex2011.pdf"&gt;Here are my slides&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;My thanks to &lt;a href="http://www.essex.ac.uk/csee/staff/profile.aspx?ID=1588"&gt;Iain Langdon&lt;/a&gt;.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/IjuCY0Ievk0" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2011/01/18/guest-lecture-at-essex-university-2011.html</feedburner:origLink></entry>
 
 <entry>
   <title>Making Azure more appealing to Java and Open Source Developers.</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/Qi6aPYGFmwE/making-azure-more-appealing-to-java-and-open-source-developers.html" />
   <updated>2011-01-06T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2011/01/06/making-azure-more-appealing-to-java-and-open-source-developers</id>
   <content type="html">&lt;p&gt;Microsoft is increasingly reaching out to developers who use third
party languages and application stacks with initiatives and
announcements like
&lt;a href="http://www.microsoft.com/windowsazure/pdcannouncements/"&gt;Microsoft plans to make Java a first-class citizen on Windows
Azure&lt;/a&gt;
and &lt;a href="http://php.iis.net/"&gt;PHP on IIS7&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Many developers are surprised when they see the extent of the
&lt;a href="http://www.interoperabilitybridges.com/"&gt;Interoperability Bridges and Labs
Center&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;With the worldwide recession, consolidation, migration and evolution
are the new watch words. Not many people can afford File-New and
people are squeezing value from their legacy applications.  I think
its an interesting time for Microsoft. As we move to the Cloud and
Platform as a Service, the operating system is becoming less and less
relevant. It's value for money and cost saving that matters now.&lt;/p&gt;

&lt;p&gt;Ironically, many non .NET applications are arguably easier to port to
Azure because they have less Windows specific dependencies. They don't
write to the registry or need elevated privileges or sophisticated
installation. Many Java apps are very self contained with a clear
abstraction over their operating environment.&lt;/p&gt;

&lt;p&gt;But what would it take to make Azure more appealing to a wider
development community? Here are some initial thoughts:&lt;/p&gt;

&lt;h2&gt;1 Lower Cost of Entry&lt;/h2&gt;

&lt;p&gt;Yes there are deals, incentives and extra small instances, but it's
still too expensive to make a long term commitment to hosting a
simple blog on Azure. Extra small instances are still in Beta.&lt;/p&gt;

&lt;p&gt;Developer Fabric isn't a sufficient starting point and isn't cross
platform. Developers need to use the cloud for real.&lt;/p&gt;

&lt;p&gt;If you appeal to geeks through their side projects and spare time
hacks they'll transfer their skills back to their day jobs.&lt;/p&gt;

&lt;p&gt;Azure needs a "loss leader".&lt;/p&gt;

&lt;h2&gt;2 More TCP Ports&lt;/h2&gt;

&lt;p&gt;Five ports really isn't enough. Java people use sockets for everything
from AJP, JDPA, LDAP, Web, SSL etc. If you want to use the new Remote
Desktop facilities too, you have even less to play with.&lt;/p&gt;

&lt;h2&gt;3. SSH&lt;/h2&gt;

&lt;p&gt;Telnet and FTP aren't secure and RDP is overkill for quick systems
admin tasks. SSH access is fast, flexible and secure - why isn't it
included as an option with Windows?&lt;/p&gt;

&lt;h2&gt;4. A Good Porting Layer&lt;/h2&gt;

&lt;p&gt;I know we have Cygwin, MingW and VC++ but whatever happened to
Microsoft's Services for Unix and POSIX support?&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;    ./configure
    make 
    make install
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The above works seamlessly on most Unixes including Linux and Mac OS X
- so why does the build have to be complicated for Windows?&lt;/p&gt;

&lt;h2&gt;5. A Package Management System&lt;/h2&gt;

&lt;pre&gt;&lt;code&gt;apt-get install 
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;on Linux and&lt;/p&gt;

&lt;pre&gt;&lt;code&gt; brew install
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;on OS X - what about Windows?&lt;/p&gt;

&lt;p&gt;Whatever happened to Garrett Serack and &lt;a href="http://coapp.org/"&gt;CoApp&lt;/a&gt;?&lt;/p&gt;

&lt;p&gt;A package management system is not the same thing as an App
Store!&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/Qi6aPYGFmwE" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2011/01/06/making-azure-more-appealing-to-java-and-open-source-developers.html</feedburner:origLink></entry>
 
 <entry>
   <title>Java JDBC to SQLAzure Connection Drop Workaround</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/ljmKlyEnkSY/java-jdbc-to-sqlazure-connection-drop-workaround.html" />
   <updated>2010-12-02T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2010/12/02/java-jdbc-to-sqlazure-connection-drop-workaround</id>
   <content type="html">&lt;p&gt;UPDATE: The Microsoft JDBC Driver 4.0 for SQL Server is now &lt;a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=11774"&gt;available in CTP&lt;/a&gt;. The information below is now &lt;a href="http://msdn.microsoft.com/en-us/library/hh290696(v=SQL.110).aspx"&gt;officially documented on MSDN&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;A while ago, we encountered some &lt;a href="http://bit.ly/fkzQ80"&gt;problems with using Java JDBC to access SQL Azure&lt;/a&gt;.
In a nutshell, connections were getting forcibly closed after about one minute, preventing any kind of sensible connection pooling strategy and hurting
performance. The problem seemed to be caused because TCP keepalive messages were not being sent.&lt;/p&gt;

&lt;p&gt;Anyway, there is now a workaround.&lt;/p&gt;

&lt;p&gt;For on premises services, you need to change the registry and then reboot for the changes to take effect. You can use regedit or simply run this BAT
file:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;REG ADD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v KeepAliveTime /t REG_DWORD /d 30000
REG ADD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v KeepAliveInterval /t REG_DWORD /d 1000
REG ADD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v TcpMaxDataRetransmission /t REG_DWORD /d 10
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;With a little messing around, you can apply the same fix to a Windows Azure instances too, but you need the recently released Windows Azure SDK 1.3 with
its elevated startup task to be able to change the registry.&lt;/p&gt;

&lt;p&gt;Add a StartUp task to your service definition file, something like this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;Startup&amp;gt;
    &amp;lt;Task commandLine="Startup.cmd" executionContext="elevated" taskType="simple"&amp;gt;
    &amp;lt;/Task&amp;gt;
&amp;lt;/Startup&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Then add a Startup.cmd file to your Web or Worker Role project. Make sure that the "Copy to Output Directory" setting is set to Copy always.&lt;/p&gt;

&lt;p&gt;The Startup.cmd should look something like this.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;if exist startup.txt goto skip
time /t &amp;gt;&amp;gt; startup.txt
REM Workaround for JDBC to SQL Azure
REG ADD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v KeepAliveTime /t REG_DWORD /d 30000 &amp;gt;&amp;gt; startup.txt
REG ADD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v KeepAliveInterval /t REG_DWORD /d 1000 &amp;gt;&amp;gt; startup.txt
REG ADD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v TcpMaxDataRetransmission /t REG_DWORD /d 10 &amp;gt;&amp;gt; startup.txt
shutdown /r /t 1
:skip
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The trick here is the reboot - The first time through this script, the startup.txt file won't exist, so the registry update block runs followed by the
shutdown command. On subsequent invocations, the startup.txt file exists, so the code block isn’t run, preventing further reboots.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/ljmKlyEnkSY" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2010/12/02/java-jdbc-to-sqlazure-connection-drop-workaround.html</feedburner:origLink></entry>
 
 <entry>
   <title>Advanced Technology Workshops Cloud Computing</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/oOcQ_B2ejMA/advanced-technology-workshops-cloud-computing.html" />
   <updated>2010-12-01T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2010/12/01/advanced-technology-workshops-cloud-computing</id>
   <content type="html">&lt;p&gt;I really enjoyed speaking at &lt;a href="http://www.oerc.ox.ac.uk/events/cloudworkshop"&gt;http://www.oerc.ox.ac.uk/events/cloudworkshop&lt;/a&gt; yesterday.&lt;/p&gt;

&lt;p&gt;Dennis Gannon was particularly inspiring!&lt;/p&gt;

&lt;p&gt;My slides are available &lt;a href="http://www.robblackwell.org.uk/wp-content/uploads/2010/12/windows-azure-in-the-wild.pdf"&gt;here&lt;/a&gt;&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/oOcQ_B2ejMA" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2010/12/01/advanced-technology-workshops-cloud-computing.html</feedburner:origLink></entry>
 
 <entry>
   <title>Java on Windows Azure Roundup</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/0ghYvXH0oic/java-on-windows-azure-roundup.html" />
   <updated>2010-11-06T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2010/11/06/java-on-windows-azure-roundup</id>
   <content type="html">&lt;h2&gt;Introduction&lt;/h2&gt;

&lt;p&gt;I've been working with a number of customers, predominantly
independent software vendors (ISVs) &lt;a href="http://www.aws.net/azurelaunchpad"&gt;helping to migrate Java
applications to Windows Azure&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;There were some interesting Azure announcements at the Microsoft
Professional Developers Conference (PDC) last week, so I thought it
was time to give my perspective on the current state of Java on Azure
and share some thoughts on what's coming.&lt;/p&gt;

&lt;h2&gt;The Story Today&lt;/h2&gt;

&lt;p&gt;My interest in Java on Azure started with Steve Marx and his
&lt;a href="http://blog.smarx.com/posts/does-windows-azure-support-java"&gt;Does Windows Azure Support Java?&lt;/a&gt;
blog post and conference talks (still well worth exploring).&lt;/p&gt;

&lt;p&gt;I haven't seen many "File &gt; New &gt; Java Azure" applications being
written. Java people usually have an existing stack that they want to
migrate and extend for the cloud. Often the application represents
hundreds of man years of development and is tested on platforms
ranging from Solaris through to AS/400 and Windows. Being
cross-platform, these applications aren't about to start accumulating
Azure specific features (at least not without a plugin
architecture). I think that platform compatibility and bootstrapping
tools are more important than developer tools per se.&lt;/p&gt;

&lt;p&gt;The good news is that most Java applications are, by their nature,
XCOPY deployable. Getting them packaged and uploaded to Azure is
usually straightforward. Running them is the fun part.&lt;/p&gt;

&lt;p&gt;Microsoft still seems to be promoting the &lt;a href="http://code.msdn.microsoft.com/winazuretomcat"&gt;Windows Azure Tomcat
Solution Accelerator&lt;/a&gt;,
but in the immortal words of Harry Enfield, "You don't want to do it
like that." &lt;a href="http://azurerunme.codeplex.com/"&gt;AzureRunMe&lt;/a&gt; is arguably
a better starting point. It's general purpose and extensible; you
don't have to keep uploading wedges of JVMs and app servers every time
you want to change something.&lt;/p&gt;

&lt;p&gt;The Windows Azure platform is well-designed, open, standards-based and
interoperable from just about any platform with a TCP/IP stack. If you
want to use Windows Azure specific features, then the &lt;a href="http://www.windowsazure4j.org/"&gt;Windows Azure
SDK for Java&lt;/a&gt; is a good choice
betrayed by a confusing web site. You might like to jump straight to
the &lt;a href="http://sourceforge.net/projects/javasdk-azure/"&gt;Sourceforge
download&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;There is an &lt;a href="http://jdotnetservices.com/"&gt;Appfabric SDK for Java
Developers&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;We have a &lt;a href="https://github.com/robblackwell/log4j-azure"&gt;Log4j appender for Windows
Azure&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;You might want to look at the &lt;a href="http://www.windowsazure4e.org/"&gt;Windows Azure tools for
Eclipse&lt;/a&gt;, but do yourself a favour and
buy &lt;a href="https://www.cerebrata.com/"&gt;Cloud Storage Studio&lt;/a&gt; too.&lt;/p&gt;

&lt;h2&gt;What are the Snags?&lt;/h2&gt;

&lt;p&gt;If you want to use JDBC to SQL Azure, then &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/windowsazuredata/thread/69f2de2f-389b-4c4e-9497-471b8094b029"&gt;good
luck&lt;/a&gt;. You
might get away with it, but there are problems with connection
timeouts and some reports of bugs due to SQL Azure / SQL Server
differences.&lt;/p&gt;

&lt;p&gt;You're only allowed 5 ports in your service definition. Many Java
stacks use ports liberally for everything from JMX, JCA, clustering
etc. Configuring these ports at runtime, whilst achievable with a bit
of &lt;a href="http://gnuwin32.sourceforge.net/packages/sed.htm"&gt;Sed&lt;/a&gt; Fu, is a
bit of a pain.&lt;/p&gt;

&lt;p&gt;If you're using non-blocking IO with java.nio, then you're probably
going to &lt;a href="http://social.msdn.microsoft.com/Forums/en/windowsazure/thread/a3031c68-cd30-42b1-86b1-8c8977b5c256"&gt;hit
trouble&lt;/a&gt;. For
example, Apache DS and Jetty are both problematic, depending on their
configuration.&lt;/p&gt;

&lt;p&gt;You can't use the loopback adapter, so you need to beware when
configuring IP addresses.&lt;/p&gt;

&lt;p&gt;It can be a little challenging to build hybrid on-premises/cloud
solutions although
&lt;a href="https://github.com/robblackwell/PortBridge"&gt;PortBridge&lt;/a&gt; is your friend.&lt;/p&gt;

&lt;h2&gt;The Java News from PDC10&lt;/h2&gt;

&lt;p&gt;The headline: &lt;em&gt;"Improved Java Enablement: Microsoft plans to make
Java a first-class citizen on Windows Azure. This process will involve
improving Java performance, Eclipse tooling and client libraries for
Windows Azure. Customers can choose the Java environment of their
choice and run it on Windows Azure."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.microsoft.com/windowsazure/compute/#vmrole"&gt;Virtual Machine VM
Role&lt;/a&gt; will be a
catch all solution so that we can say, "If it runs on Windows it'll
run in the cloud". I don't advocate Infrastructure as a Service, but
for pesky applications that violate the Azure Platform as a Service
model, it's a nice fall-back position. It will also solve problems
with unhelpful vendors who won't support their software in Azure
because it's not a recognised build of Windows.&lt;/p&gt;

&lt;p&gt;I'm more interested in Elevated Privileges than the VM Role because it
should allow us to do installs, registry hacks and file system
permission changes without sacrificing our Platform as a Service
ideals. Presumably we will be able to use this to make registry
setting changes to reconfigure the JDBC driver and work around
problems or install a specific version of the C++ runtime for
example. It's not yet clear to me whether this will enable us to run
Windows Services, but I can't see any reason why not.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.microsoft.com/windowsazure/compute/#computeinstancesize"&gt;Extra Small Compute
Instance&lt;/a&gt;
should be a great way for cash-strapped developers to experiment with
Azure. I hope that my own monthly Azure bill will now be lower than my
hotel bills on future expenses claims.&lt;/p&gt;

&lt;p&gt;Our
&lt;a href="https://github.com/robblackwell/WindowsTelnetDaemon"&gt;WindowsTelnetDaemon&lt;/a&gt;
was only ever meant to be a tactical fix, I'm looking forward to
deprecating it in favour of Remote Desktop access. I hope that
&lt;a href="http://www.robblackwell.org.uk/2010/10/27/advanced-debugging-on-windows-azure-with-adplus.html"&gt;debugging Azure
apps&lt;/a&gt;
will become a lot less like remote debugging a Mars Rover.&lt;/p&gt;

&lt;p&gt;The ability to dynamically take instances off the load balancer for
debugging will be useful.&lt;/p&gt;

&lt;p&gt;The improved Azure Platform Management Portal looks clearer and there
is support for multiple users and roles. I'm disappointed that it
appears to be Silverlight only which limits the Java / open platform
story. I'll no longer be able to control my Azure instances from my
iPad.&lt;/p&gt;

&lt;p&gt;Azure Connect (formerly Project Sydney) will probably deprecate
PortBridge for Azure scenarios and will make it much easier to build
hybrid on-premises/ cloud solutions. I expect it to open up many
enterprise consolidation scenarios.&lt;/p&gt;

&lt;h2&gt;Open in the Cloud&lt;/h2&gt;

&lt;p&gt;Vijay Rajagopalan gave an interesting talk &lt;a href="http://player.microsoftpdc.com/Session/6ae95ba0-c185-4546-9d66-%0A2604ac6b6cef"&gt;Open in the Cloud: Windows
Azure and
Java&lt;/a&gt; and demoed the Fujitsu InterStage Java app running on
the forthcoming Windows Azure SDK 1.3. There were some interesting
clues in the demo.&lt;/p&gt;

&lt;p&gt;The Eclipse tooling and packaging support looked good, but it's not a
high priority for me. I think it will be tough to support a wide range
of application servers and versions this way. Java developers are
usually smarter than the average bear and will want to do their own
thing, so having them manually ZIP up their frameworks and supporting
tools for upload to Blob Storage isn't a big deal.&lt;/p&gt;

&lt;p&gt;It appears that the CSPKG file still contains the Java Runtime and App
Server making deployment across low bandwidth (rural home broadband!)
connections too time-consuming. Dynamic web site updates through
Tomcat looked promising.&lt;/p&gt;

&lt;p&gt;Support for remote debugging looks good too, although that's pretty
easy to achieve yourself using
&lt;a href="http://download.oracle.com/javase/1.5.0/docs/guide/jpda/jdwp-spec.html"&gt;JDWP&lt;/a&gt;. You
also need to be very careful about security (you don't want Script
Kiddies attaching their debuggers to your app!). Again
&lt;a href="https://github.com/robblackwell/PortBridge"&gt;PortBridge&lt;/a&gt; is your friend in
the short term, and Azure Connect will be the strategic answer.&lt;/p&gt;

&lt;p&gt;Windows Azure 1.3 SDK will fix the Java NIO issues and enable the
loopback adapter.&lt;/p&gt;

&lt;p&gt;Looking at the Fujitsu configuration file, it appears that you'll be
able to specify a "localPort" attribute to an EndPoint, so we won't
have to worry about port remapping to 20000 20001 etc. in the
future. It appears that the 5 port limit has been relaxed too?&lt;/p&gt;

&lt;p&gt;I'm looking forward to checking out the support for the Windows Azure
Management API in the new Windows Azure SDK for Java.&lt;/p&gt;

&lt;h2&gt;Other Thoughts&lt;/h2&gt;

&lt;p&gt;Unfortunately there was no official news, as far as I could tell, on
JDBC to SQL Azure fixes?&lt;/p&gt;

&lt;p&gt;I didn't hear much about the developer fabric which is too different
to production reality to be useful for Java development scenarios. I'd
still like a Virtual-PC-like solution that mirrors what's really
running in Azure.&lt;/p&gt;

&lt;p&gt;I've been playing with HyperV in anticipation of custom VM role, but
it's more suited to servers than developer machines and laptops
(issues with driver support for graphics cards in Windows Server 2008
etc). It would be nice if there was a more developer friendly solution
using Virtual PC, but as far I can tell that's 32 bit only and
therefore won't be suitable for building Azure custom VMs? VMWare
support would be helpful, but I guess that's pretty unlikely.&lt;/p&gt;

&lt;h2&gt;Summary&lt;/h2&gt;

&lt;p&gt;There is now real commitment by Microsoft to Java on Azure. Some of
the dates are a bit hazy, but the future looks bright, easier and more
certain.&lt;/p&gt;

&lt;p&gt;Java on Azure can work very well, and this is proving to be a more
popular scenario than many of us would have guessed.&lt;/p&gt;

&lt;p&gt;There will still be a role for
&lt;a href="http://azurerunme.codeplex.com/"&gt;AzureRunMe&lt;/a&gt; and we're aiming to
continue to maintain, extend and support it.&lt;/p&gt;

&lt;p&gt;Thanks Microsoft, &lt;a href="http://blogs.msdn.com/b/windowsazure/archive/2010/10/28/you-spoke-we-listened-and-responded.aspx"&gt;we spoke, you listened and
responded&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Of course this is also good news for &lt;a href="http://clojure.org/"&gt;Clojurians&lt;/a&gt;.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/0ghYvXH0oic" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2010/11/06/java-on-windows-azure-roundup.html</feedburner:origLink></entry>
 
 <entry>
   <title>Migrating from iPhone to Windows Phone 7 and Back</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/pPsTMumHQwc/migrating-from-iphone-to-windows-phone-7-and-back.html" />
   <updated>2010-11-03T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2010/11/03/migrating-from-iphone-to-windows-phone-7-and-back</id>
   <content type="html">&lt;p&gt;&lt;em&gt;UPDATE: Paul Foster has been in touch, &lt;a href="http://wotudo.net/blogs/wotudo/archive/2010/11/04/for-those-aged-devs-trying-to-rock-with-wp7.aspx"&gt;posted a
response&lt;/a&gt;
and kindly offered to come and help me!!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I picked up my new HTC Trophy Windows Phone 7 on Monday, hooked up my
SIM card and got it onto the wireless network. Before long I was
picking up email from our Exchange server. Good.&lt;/p&gt;

&lt;p&gt;I wanted to try to buy some applications. The London Underground
application is quite useful on the iPhone so I decided to start with
that. I selected Marketplace then Applications, then searched for
"London Underground".  It appears that the search isn't context
sensitive, so no applications were listed:&lt;/p&gt;

&lt;p&gt;&lt;img src="/wp-content/uploads/2010/11/marketplace.jpg" title="Windows Phone 7 Marketplace Search" alt="Windows Phone 7 Marketplace Search" /&gt;&lt;/p&gt;

&lt;p&gt;I don't understand this thing about fonts being too big for the screen
and text getting cropped, but I hear that's just me, fair enough I can
learn to live with that.&lt;/p&gt;

&lt;p&gt;After some browsing through the marketplace menus, I found the
application under travel.&lt;/p&gt;

&lt;p&gt;&lt;img src="/wp-content/uploads/2010/11/tube.jpg" title="Windows Phone
7 Tube Appication" alt="Windows Phone 7 Tube Application" /&gt;&lt;/p&gt;

&lt;p&gt;It was $0.99. I expected the price
to be localised to GB pounds for me, but never mind.&lt;/p&gt;

&lt;p&gt;I selected buy.  Then from confirm purchase, I needed to add a
credit card. Rather surprisingly it shelled me out into the browser
and asked me to sign in with my Live Id, before asking me to enter my
credit card details.  After entering the details, I got an error:&lt;/p&gt;

&lt;p&gt;"We can't authorise the payment method. Please make sure the
information is correct, or use another payment method. If you continue
to get this message, please contact your financial institution."&lt;/p&gt;

&lt;p&gt;It helpfully deleted all the card details I had already entered. I
tried again. No luck.  I tried another card, still no luck.  I've
tried this on several occasions and even had somebody look over my
shoulder to make sure that I'm not doing something stupid, but still
no luck. Re entering credit cards is a pain without cut and paste.&lt;/p&gt;

&lt;p&gt;I managed to install some free applications, but was surprised that
Twitter didn't integrate with the People Hub / Social Networking
feature. Maybe I missed something?&lt;/p&gt;

&lt;p&gt;Before the journey home, I switched on Bluetooth and paired the device
with the audio system in my Volvo V70 car. Now whenever I start the
engine, &lt;em&gt;the phone reboots&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;UPDATE: We tried Richard's new phone too. Every time that it connects
via Bluetooth to the car it reboots; "Boom Baby" indeed.&lt;/p&gt;

&lt;p&gt;Later, at home, I thought I'd install Zune and add some music.  The
Zune installer wanted a restart. Okay. Windows crashed on shutdown. I
powered off and back on and started Zune.&lt;/p&gt;

&lt;p&gt;I'm not familiar with Zune but I expected it to be similar to iTunes,
so I had a click around and found a get started wizard:&lt;/p&gt;

&lt;p&gt;&lt;img src="/wp-content/uploads/2010/11/getstarted.jpg" title="Zune Get
Started" alt="Zune Get Started" /&gt;&lt;/p&gt;

&lt;p&gt;It seemed that I needed to log in, but that failed (See below).&lt;/p&gt;

&lt;p&gt;&lt;img src="/wp-content/uploads/2010/11/liveid.jpg" title="Live Id Fail" alt="Live Id Fail" /&gt;&lt;/p&gt;

&lt;p&gt;I logged onto Windows Live from my laptop browser and checked the
settings. My profile suggests that I am in the UK.  There doesn't
appear to be an option for GB? My laptop regional settings are all UK
too.&lt;/p&gt;

&lt;p&gt;&lt;img src="/wp-content/uploads/2010/11/windowslive.jpg" title="Windows Live Id is UK" alt="Windows Live Id is UK" /&gt;&lt;/p&gt;

&lt;p&gt;I went through and reset all the options that seemed to involve a
country, but still no luck. I don't really want an entirely new Live
ID when all my other Microsoft assets including Azure, use this one.&lt;/p&gt;

&lt;p&gt;Back in Zune, I decided to try the Get Started wizard again.&lt;/p&gt;

&lt;p&gt;&lt;img src="/wp-content/uploads/2010/11/knopfler.jpg" title="Mark Knopfler unknown" alt="Mark Knopfler unknown" /&gt;&lt;/p&gt;

&lt;p&gt;Somebody suggested that the error message might well have
been "check your musical tastes and try a more recent decade."&lt;/p&gt;

&lt;p&gt;UPDATE: Somebody else suggested that the Mark Knopfler and Volvo V70
references in this article really do betray my middle-agedness. Thank
you.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Sorry Microsoft, I really tried. I've been a Windows MVP twice and I
really like working with Windows Azure. I know that some of my
colleagues really like Windows Phone 7, but I'm afraid you've lost me
on this one&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Perhaps I'll come back when you're a few versions in, but in the
meantime, my iPhone 3 with its cracked screen seems like a preferable
option.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/pPsTMumHQwc" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2010/11/03/migrating-from-iphone-to-windows-phone-7-and-back.html</feedburner:origLink></entry>
 
 <entry>
   <title>Advanced Debugging on Windows Azure with ADPlus</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/bio9U0OYKsE/advanced-debugging-on-windows-azure-with-adplus.html" />
   <updated>2010-10-27T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2010/10/27/advanced-debugging-on-windows-azure-with-adplus</id>
   <content type="html">&lt;p&gt;Let's say you have a C++ program that works locally, but doesn't work
in Windows Azure compute - How do you go about debugging it?&lt;/p&gt;

&lt;p&gt;The Windows Azure Diagnostics crash dump feature only works if the
worker role itself dies, not if a spawned process dies.&lt;/p&gt;

&lt;p&gt;Fortunately, &lt;a href="http://support.microsoft.com/kb/286350"&gt;ADPlus&lt;/a&gt; is now
XCOPY deployable, so we can use it with Azure.&lt;/p&gt;

&lt;p&gt;Let's assume that you are using
&lt;a href="http://azurerunme.codeplex.com/"&gt;AzureRunMe&lt;/a&gt; and the
&lt;a href="http://github.com/blackwre/WindowsTelnetDaemon"&gt;WindowsTelnetDameon&lt;/a&gt;
to get onto Azure. (See my &lt;a href="http://www.robblackwell.org.uk/2010/09/23/telnet-to-windows-azure.html"&gt;earlier blog
posts&lt;/a&gt;
).&lt;/p&gt;

&lt;p&gt;You need to have a 64 bit dev machine. Download and install the
Debugging Tools for Windows (x64) which is part of the Windows 7 SDK.&lt;/p&gt;

&lt;p&gt;Then ZIP up the "C:\Program Files\Debugging Tools for Windows (x64)"
directory and upload it blob store. Configure AzureRunMe to load the
zip package.&lt;/p&gt;

&lt;p&gt;I have a very simple C program, FailTest.exe that divides by zero:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;   #include "stdafx.h"

   int _tmain(int argc, _TCHAR* argv[])
   {

    printf("Hello world");
    int x = 10;
    int y = 0;
    printf ("Answer %d", x / y);
    return 0;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Okay, so then Telnet onto Azure and&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;  &amp;gt; adplus -crash -o . -sc FailTest.exe
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This generates you a crash dump. You can drag it back to your dev
machine by copying it to a cloud drive and downloading the VHD file.&lt;/p&gt;

&lt;p&gt;You are then free to use crash dump analysers like WinDbg or VS2010 to
see what's really going on!&lt;/p&gt;

&lt;p&gt;My thanks to Neil Kidd for suggesting this.&lt;/p&gt;

&lt;p&gt;If we can help with your Azure migration project, please
 &lt;a href="http://www.aws.net/"&gt;contact us&lt;/a&gt;.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/bio9U0OYKsE" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2010/10/27/advanced-debugging-on-windows-azure-with-adplus.html</feedburner:origLink></entry>
 
 <entry>
   <title>Telnet to Windows Azure</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/v7c-zEOiKtw/telnet-to-windows-azure.html" />
   <updated>2010-09-23T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2010/09/23/telnet-to-windows-azure</id>
   <content type="html">&lt;p&gt;UPDATE: AS OF NOVEMBER 2010, THE NEW AZURE SDK 1.3 IS AVAILABLE
THAT SUPPORTS REMOTE DESKTOP - A MUCH MORE SECURE AND
PREFERABLE SOLUTION!&lt;/p&gt;

&lt;p&gt;Debugging Windows Azure applications can be time consuming,
particularly if you make a mistake and have to redeploy.  If you've
done any serious work you'll know that it's easy to write an app that
runs in the developer fabric but won't work in production.&lt;/p&gt;

&lt;p&gt;Sometimes you just want to log on to the box and have a poke
around. We have a rudimentary way of doing that using Telnet...&lt;/p&gt;

&lt;p&gt;&lt;img src="/wp-content/uploads/2010/09/telnet.png" title="Telnet to Windows Azure" alt="Telnet to Windows Azure" /&gt;&lt;/p&gt;

&lt;p&gt;First install the Windows Telnet client - Control Panel &gt; Programs and
Features &gt; Turn Windows features on or off &gt; Telnet Client.&lt;/p&gt;

&lt;p&gt;Now you need to install a telnet server in Azure. We've written a
rudimentary telnet daemon that's available on
&lt;a href="http://github.com/blackwre/WindowsTelnetDaemon"&gt;GitHub&lt;/a&gt; . You can
download and compile it with Visual Studio and test it out on your
development box.&lt;/p&gt;

&lt;p&gt;To get it running on Azure, grab a copy of
&lt;a href="http://azurerunme.codeplex.com/"&gt;AzureRunMe&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;AzureRunMe is a kind of bootstrap program that makes it easy to run
EXEs, BATch files and many Windows apps that are copy deployable in
Azure.&lt;/p&gt;

&lt;p&gt;Upload AzureRunMe.cspkg upto your blob storage account (I recommend
CloudStorageStudio for this). I use a container name called
"packages".&lt;/p&gt;

&lt;p&gt;AzureRunMe sets up some nice environment variables for you, including
%ipaddress% and %telnet% which are the IP Address and telnet port
respectively. Using that information, create a runme.bat file as
follows:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Telnetd.exe %ipaddress% %telnet%&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Zip up the two files - runme.bat and telnetd.exe together as
telnetd.zip - upload that to blob store too.&lt;/p&gt;

&lt;p&gt;Now you need an AzureRunMe configuration file, something like this:&lt;/p&gt;

&lt;script src="http://gist.github.com/593805.js?file=TelnetD.cscfg"&gt;&lt;/script&gt;


&lt;p&gt;You need to fill in your various Azure details of course, and then
save as telnetd.cscfg, upload this file to Blob storage too.&lt;/p&gt;

&lt;p&gt;Now log onto the Windows Azure portal and provision a new
service. Browse for the CSPKG and CSCFG files from blob store. Run the
new role.&lt;/p&gt;

&lt;p&gt;&lt;img src="/wp-content/uploads/2010/09/deploy.png" title="Deploy to Windows Azure" alt="Deploy to Windows Azure" /&gt;&lt;/p&gt;

&lt;p&gt;Optionally you can use the TraceConsole from AzureRunMe to watch the
boot-up process.&lt;/p&gt;

&lt;p&gt;&lt;img src="/wp-content/uploads/2010/09/trace.png" title="Trace output via the
 AppFabric Service Bus" alt="Trace output via the AppFabric Service
 Bus" /&gt;&lt;/p&gt;

&lt;p&gt;When the instance is up (give it 10 minutes or so), you should be
ready to telnet in&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&amp;gt; telnet claptrap.cloudapp.net&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;And away you go. Try typing &lt;code&gt;SET&lt;/code&gt;, &lt;code&gt;DIR&lt;/code&gt; etc.&lt;/p&gt;

&lt;p&gt;Note that the terminal interaction is rudimentary. In particular the
delete key doesn't work. It's not really secure enough for production
servers like this, but if you need a more robust solution, feel free
to &lt;a href="http://www.aws.net"&gt;hire us&lt;/a&gt;.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/v7c-zEOiKtw" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2010/09/23/telnet-to-windows-azure.html</feedburner:origLink></entry>
 
 <entry>
   <title>UK AzureNET Slides</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/AMymk9XHE5M/uk-azurenet-slides.html" />
   <updated>2010-05-28T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2010/05/28/uk-azurenet-slides</id>
   <content type="html">&lt;p&gt;Last evening I had the opportunity to give a talk about “Interoperability on Windows Azure” at the UK AzureNET User Group meeting at Microsoft, Cardinal Place in London.&lt;/p&gt;
&lt;p&gt;&lt;a href="/wp-content/uploads/2010/05/Azure-User-Group.pdf"&gt;Here are my slides&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;My thanks to Marcus Tillett for organising the event.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/AMymk9XHE5M" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2010/05/28/uk-azurenet-slides.html</feedburner:origLink></entry>
 
 <entry>
   <title>Slides from QCon2010</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/oo-y_yOfd3I/slides-from-qcon2010.html" />
   <updated>2010-03-13T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2010/03/13/slides-from-qcon2010</id>
   <content type="html">&lt;p&gt;Here are my slides from QCon yesterday.&lt;/p&gt;
&lt;p&gt;&lt;a href='http://www.robblackwell.org.uk/wp-content/uploads/2010/03/QCon2010.pdf'&gt;&lt;/p&gt;
&lt;p&gt;&lt;img border="0" src="http://www.robblackwell.org.uk/wp-content/uploads/2010/03/qcon-slides.png" alt="qcon-slides" title="qcon-slides" width="146" height="108" class="aligncenter" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;My thanks to &lt;a href="http://blogs.msdn.com/matt_deacon/"&gt;Matt Deaon&lt;/a&gt;  , Simon Thurman and Simon Davies.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/oo-y_yOfd3I" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2010/03/13/slides-from-qcon2010.html</feedburner:origLink></entry>
 
 <entry>
   <title>QCon 2010</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/qsYJfVZhmfU/qcon-2010.html" />
   <updated>2010-03-09T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2010/03/09/qcon-2010</id>
   <content type="html">&lt;p&gt;&lt;a href="http://qconlondon.com/"&gt;&lt;img border="0" src="http://www.robblackwell.org.uk/wp-content/uploads/2010/03/qcon.png" alt="qcon" title="qcon" width="284" height="176" class="aligncenter size-full wp-image-318" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m off to &lt;a href="http://qconlondon.com/"&gt;The QCon Conference&lt;/a&gt; tomorrow to help man the Microsoft stand.&lt;/p&gt;
&lt;p&gt;We&amp;#8217;ve built a couple of interesting web sites:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://ukinterop.cloudapp.net"&gt;ukinterop.cloudapp.net&lt;/a&gt; &amp;#8211; A Java / Restlet web site running on Windows Azure and&lt;br /&gt;
&lt;a href="http://rubyukinterop.cloudapp.net"&gt;rubyukinterop.cloudapp.net&lt;/a&gt; &amp;#8211; A Ruby on Rails site (Work in Progress!)&lt;/p&gt;
&lt;p&gt;Both these apps use &lt;a href="http://azurerunme.codeplex.com"&gt;azurerunme.codeplex.com&lt;/a&gt; which makes it easy to run third party languages and technologies on Windows Azure.&lt;/p&gt;
&lt;p&gt;On Friday I&amp;#8217;ve been invited to join Microsoft&amp;#8217;s Simon Davies and Simon Thurman for &lt;a href="http://bit.ly/alEeCs"&gt;The Interoperable Platform&lt;/a&gt; session. I&amp;#8217;ll talk a bit more about how we built the apps.&lt;/p&gt;
&lt;p&gt;You can follow the event via &lt;a href="http://twitter.com/search?q=%23MSQcon"&gt;Twitter&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/qsYJfVZhmfU" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2010/03/09/qcon-2010.html</feedburner:origLink></entry>
 
 <entry>
   <title>David Gristwood and AWS talk Azure</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/iKX8_-CKB2o/david-gristwood-and-aws-talk-azure.html" />
   <updated>2010-02-18T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2010/02/18/david-gristwood-and-aws-talk-azure</id>
   <content type="html">&lt;p&gt;&lt;img src="http://www.robblackwell.org.uk/wp-content/uploads/2010/02/channel9.png" alt="channel9" title="channel9" width="103" height="117" class="aligncenter size-full wp-image-313" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://channel9.msdn.com/posts/Eric+Nelson/MSDN-Flash-Podcast-020-Azure-with-AWS/"&gt;&lt;span class="caps"&gt;MSDN&lt;/span&gt; Flash Podcast 020&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;David Gristwood interviews Richard and me about our work with the Windows Azure Platform.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/iKX8_-CKB2o" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2010/02/18/david-gristwood-and-aws-talk-azure.html</feedburner:origLink></entry>
 
 <entry>
   <title>Guest Lecture at Essex University 2010</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/vbT5JdDTdXo/guest-lecture-at-essex-university-2010.html" />
   <updated>2010-01-24T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2010/01/24/guest-lecture-at-essex-university-2010</id>
   <content type="html">&lt;p&gt;&lt;a href="/wp-content/Essex2010.pdf"&gt;Here are the slides&lt;/a&gt; from my lecture at Essex University on Friday.&lt;/p&gt;
&lt;p&gt;&lt;a href="/wp-content/Essex2010.pdf"&gt;&lt;br /&gt;
&lt;img border="0" src="http://www.robblackwell.org.uk/wp-content/uploads/2010/01/slides.png" alt="A Software Company Perspective" title="A Software Company Perspective" width="158" height="122" class="aligncenter size-full wp-image-309" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;My thanks to &lt;a href="http://www.essex.ac.uk/csee/people/profile.aspx?id=136"&gt;Iain Langdon&lt;/a&gt;  for the invitation.&lt;/p&gt;
&lt;p&gt;If you are a University student looking for a summer placement, please send me email.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/vbT5JdDTdXo" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2010/01/24/guest-lecture-at-essex-university-2010.html</feedburner:origLink></entry>
 
 <entry>
   <title>Web Designer Issue 166</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/rep493E-fp0/web-designer-issue-166.html" />
   <updated>2010-01-16T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2010/01/16/web-designer-issue-166</id>
   <content type="html">&lt;p&gt;Tip 88 in the &lt;span class="caps"&gt;HOT&lt;/span&gt; 100 section features me talking about Cloud Computing and Windows Azure.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.webdesignermag.co.uk/issues/WD_166.jpg" alt="Web Designer Magazine Issue 166" /&gt;&lt;/p&gt;
&lt;p&gt;Look out for &lt;a href="http://www.trickybusiness.co.uk"&gt;Tricky and Ben&lt;/a&gt; too.&lt;/p&gt;
&lt;p&gt;It&amp;#8217;s unusual for me to be in the company of so many trendy people.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/rep493E-fp0" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2010/01/16/web-designer-issue-166.html</feedburner:origLink></entry>
 
 <entry>
   <title>Haiti</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/IBIOnMF7Ko8/haiti.html" />
   <updated>2010-01-16T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2010/01/16/haiti</id>
   <content type="html">&lt;p&gt;I&amp;#8217;ve just been doing some preparation for a lecture I&amp;#8217;m giving next week.&lt;/p&gt;
&lt;p&gt;One of the demo&amp;#8217;s is a mash up that takes data from the &lt;a href="http://earthquake.usgs.gov/"&gt;U.S. Geological Survey Earthquake Hazards Program&lt;/a&gt; in &lt;span class="caps"&gt;XML&lt;/span&gt;. It runs a simple clustering algorithm and overlays the data on a map using the &lt;a href="http://www.microsoft.com/maps/isdk/ajax/"&gt;Microsoft Bing Maps &lt;span class="caps"&gt;API&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;It&amp;#8217;s a demo that I&amp;#8217;ve been doing for a couple of years, but this time the results were more shocking..&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.robblackwell.org.uk/wp-content/uploads/2010/01/haiti.png" alt="Haiti earthquake" title="Haiti" width="512" height="279" class="size-full wp-image-302" /&gt;&lt;/p&gt;
&lt;p&gt;You can make a donation here &lt;a href="https://www.ircuk.org/haitiappeal"&gt;https://www.ircuk.org/haitiappeal&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/IBIOnMF7Ko8" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2010/01/16/haiti.html</feedburner:origLink></entry>
 
 <entry>
   <title>VS2010 Beta 2 Problem on a Win7 MacBook</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/T_2QLhPYNds/vs2010-beta-2-problem-on-a-win7-macbook.html" />
   <updated>2009-11-30T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2009/11/30/vs2010-beta-2-problem-on-a-win7-macbook</id>
   <content type="html">&lt;p&gt;I wasted far too much time trying to install Visual Studio 2010 Beta 2 on my MacBook this morning.&lt;/p&gt;
&lt;p&gt;The installation just kept failing with this error message.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Microsoft .NET Framework 4 Beta 2:
Error code 5 for this component means "Access is denied.
Microsoft .NET Framework 4 Beta 2: 
Component Microsoft .NET Framework 4 Beta 2 returned an unexpected value.
Microsoft .NET Framework 4 Beta 2: 
Return from system messaging: Access is denied.
VS70pgui:
DepCheck indicates Microsoft .NET Framework 4 Beta 2 is not installed.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I tried to install the Framework separately and it failed too, suggesting that it couldn&amp;#8217;t extract its files!&lt;/p&gt;
&lt;p&gt;Anyway, to cut a long story short, it seems there is a problem with .&lt;span class="caps"&gt;NET&lt;/span&gt; Framework 4 Beta 2 that tries to write to the Mac OS X partition. Removing that drive letter fixes the problem.&lt;/p&gt;
&lt;p&gt;Thanks to &lt;a href="http://msmvps.com/blogs/kevinmcneish/archive/2009/10/30/net-framework-4-0-beta-2-installation-error-unable-to-create-or-save-new-files-in-the-folder.aspx"&gt;Kevin McNeish&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/T_2QLhPYNds" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2009/11/30/vs2010-beta-2-problem-on-a-win7-macbook.html</feedburner:origLink></entry>
 
 <entry>
   <title>PDC 2009 Wrap Up</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/FgLCvANdiT8/pdc-2009-wrap-up.html" />
   <updated>2009-11-23T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2009/11/23/pdc-2009-wrap-up</id>
   <content type="html">&lt;p&gt;I thought the &lt;a href="http://microsoftpdc.com/Sessions/KEY01"&gt;keynote &lt;/a&gt; started slowly &amp;#8211; I didn&amp;#8217;t understand why the world needs a new Twitter client, but after some patience, it was good to see the whole Azure thing really come together.&lt;/p&gt;
&lt;p&gt;Modern data centres are built using containerised servers like this one:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.robblackwell.org.uk/wp-content/uploads/2009/11/container.jpg" alt="Azure Containerised" title="container" width="300" height="227" class="size-full wp-image-289" /&gt;&lt;/p&gt;
&lt;p&gt;It was fun to be shut inside while they turned up the air conditioning ;-)&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m intrigued by &lt;a href="http://microsoftpdc.com/Sessions/SVC29"&gt;Dallas&lt;/a&gt; and PinPoint and the democratization of data. Zach gave me a key, so I&amp;#8217;m looking forward to experimenting. I&amp;#8217;m wondering how it will play in the semantic web space and whether the metadata will be rich enough to enable discovery and thus dynamic mash-ups. I want to be able to link concepts across data sets and I think &lt;span class="caps"&gt;RDF&lt;/span&gt; and Linked Data is probably the way to go.&lt;/p&gt;
&lt;p&gt;I went to an interesting session on &lt;a href="http://microsoftpdc.com/Sessions/SVR32"&gt;Microsoft Semantic Engine&lt;/a&gt; &amp;#8211; It seems like WinFS on steroids. I think it has a lot of relevance to Intranets and our own research on Infoplaza. Unfortunately the PM spoke for so long that the engineer only had a few minutes to show us under the covers.&lt;/p&gt;
&lt;p&gt;On Wednesday, Richard and I were invited to demonstrate some of our work with the .&lt;span class="caps"&gt;NET&lt;/span&gt; Service Bus (Lessons Learned: Building On-Premises and Cloud Applications with the Service Bus and Windows Azure). The video and slides are available here : &lt;a href="http://microsoftpdc.com/Sessions/SVC31"&gt;http://microsoftpdc.com/Sessions/SVC31&lt;/a&gt;. There is an &lt;a href="http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?CaseStudyID=4000005892"&gt;accompanying case study&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;d heard about &lt;a href="http://microsoftpdc.com/Sessions/SVR07"&gt;StreamInsight&lt;/a&gt; from Mark, but had been put off by the &lt;span class="caps"&gt;SQL&lt;/span&gt; Server badge. It turns out to be a very clever piece of kit that looks great for dealing with time series data in close to real-time.&lt;/p&gt;
&lt;p&gt;The announcements about AppFabric (the new home of the Service Bus) seems to make a lot of sense. &lt;span class="caps"&gt;WIF&lt;/span&gt;, &lt;span class="caps"&gt;WRAP&lt;/span&gt; and &lt;span class="caps"&gt;ADFS&lt;/span&gt; V2 will surely change the way we build identity and security into web applications. Project Sydney looks like it will make it easier to mix cloud and on-premise applications.&lt;/p&gt;
&lt;p&gt;Great to see Java and &lt;span class="caps"&gt;PHP&lt;/span&gt; running win Windows Azure and the launch of the Soyatec libraries for accessing Azure Storage. I think these are important cross platform and integration messages and it&amp;#8217;s good to see Microsoft taking this seriously.&lt;/p&gt;
&lt;p&gt;The file system over blob store technology (X drive?) is apparently coming soon, and I got the impression that it wasn&amp;#8217;t just an Azure compute thing, but that you might be able to run it from your laptop.&lt;/p&gt;
&lt;p&gt;Some interesting talks on High Performance Computing, multi-core and parallel etc. There is certainly innovation  with f# but unfortunately I don&amp;#8217;t find the syntax particularly elegant so I&amp;#8217;m reluctant to use it in anger.&lt;/p&gt;
&lt;p&gt;VS2010 and .&lt;span class="caps"&gt;NET&lt;/span&gt; 4 both demonstrate innovation. System.Dynamic is great news for obscure-language-compiler-developers like me!&lt;/p&gt;
&lt;p&gt;I also got to chat for a few minutes with Patrick Dussud in the speaker work room. Patrick is a past contributor and inspirator to LSharp. He didn&amp;#8217;t seem to have lost is enthusiasm for Lisp and he did a pretty good job of rekindling my own!&lt;/p&gt;
&lt;p&gt;We were fortunate enough to be invited to the Azure &lt;span class="caps"&gt;VIP&lt;/span&gt; party. Great company, as well as blue illuminated cocktails.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/FgLCvANdiT8" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2009/11/23/pdc-2009-wrap-up.html</feedburner:origLink></entry>
 
 <entry>
   <title>Service Bus Talk</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/IyVll0uNv1M/service-bus-talk.html" />
   <updated>2009-11-15T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2009/11/15/service-bus-talk</id>
   <content type="html">&lt;p&gt;&lt;img src="http://www.robblackwell.org.uk/wp-content/uploads/2009/11/PDC09Bling_BeforeAfter_136.jpg" alt="PDC09" title="PDC09" width="136" height="186" class="size-full wp-image-282" /&gt;&lt;/p&gt;
&lt;p&gt;Richard and I are heading off to the Microsoft Professional Developers&amp;#8217; Conference in LA where we&amp;#8217;ll be presenting as part of Todd Holmquist-Sutherland&amp;#8217;s session :&lt;/p&gt;
&lt;p&gt;&lt;a href="http://microsoftpdc.com/Sessions/SVC31"&gt;Lessons Learned: Building On-Premises and Cloud Applications with the Service Bus and Windows Azure&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;We&amp;#8217;ll be demonstrating some interesting aspects of the &lt;span class="caps"&gt;RNLI&lt;/span&gt; Sea Safety system which we now have running in the Windows Azure cloud. Specifically, Richard has written a cool &lt;span class="caps"&gt;SNMP&lt;/span&gt; library which allows remote management via the service bus.&lt;/p&gt;
&lt;p&gt;Come and see us at 515A on Wednesday at 1:00 PM&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/IyVll0uNv1M" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2009/11/15/service-bus-talk.html</feedburner:origLink></entry>
 
 <entry>
   <title>AWS in the Daily Telegraph</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/4vcIzQ-OpJc/aws-in-the-daily-telegraph.html" />
   <updated>2009-11-08T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2009/11/08/aws-in-the-daily-telegraph</id>
   <content type="html">&lt;p&gt;Active Web Solutions is a finalist in the National Business Awards for The Orange Best use of Technology category.&lt;/p&gt;
&lt;p&gt;The Daily Telegraph included a Special Report on the National Business Awards this Saturday. The categories and finalists were listed, and there was a piece about &lt;span class="caps"&gt;AWS&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;The winners will be announced on Tuesday at the award ceremony to be held at London&amp;#8217;s Grosvenor House Hotel.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/4vcIzQ-OpJc" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2009/11/08/aws-in-the-daily-telegraph.html</feedburner:origLink></entry>
 
 <entry>
   <title>WindowsAzure4J</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/QWFNaSNHp8g/windowsazure4j.html" />
   <updated>2009-10-29T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2009/10/29/windowsazure4j</id>
   <content type="html">&lt;p&gt;Microsoft has released a Windows Azure Storage &lt;span class="caps"&gt;SDK&lt;/span&gt; for Java Developers &amp;#8211; Windowsazure4j&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.windowsazure4j.org/"&gt;http://www.windowsazure4j.org/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Source code is apparently coming soon, but we successfully used the &lt;span class="caps"&gt;JAR&lt;/span&gt; file to upload some Blobs to the Azure cloud today, so it seems a good alternative to &lt;a href="http://jazure.codeplex.com"&gt;JAzure&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/QWFNaSNHp8g" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2009/10/29/windowsazure4j.html</feedburner:origLink></entry>
 
 <entry>
   <title>cl-opencalais : A Common Lisp Wrapper for the OpenCalais API</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/rOih7QfKAcg/cl-opencalais-a-common-lisp-wrapper-for-the-opencalais-api.html" />
   <updated>2009-09-15T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2009/09/15/cl-opencalais-a-common-lisp-wrapper-for-the-opencalais-api</id>
   <content type="html">&lt;p&gt;The Thomson Reuters Calais web service takes unstructured text and returns Resource Description Framework (&lt;span class="caps"&gt;RDF&lt;/span&gt;) formatted results identifying entities, facts and events within the content.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ve been playing with Calais and evaluating it for some upcoming project work. I thought it would be fun to build a Common Lisp wrapper to facilitate some exploratory programming. It turned out to be very easy using &lt;a href="http://weitz.de/drakma/"&gt;Drakma&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m getting to really like &lt;a href="http://common-lisp.net/project/clbuild/"&gt;clbuild&lt;/a&gt; and I&amp;#8217;ve added cl-opencalais and a number of other things to my wnpp-projects projects file, like this:&lt;/p&gt;
&lt;pre&gt;
# Rob's own projects
cl-opencalais get_git git://github.com/blackwre/cl-opencalais.git
&lt;/pre&gt;
&lt;p&gt;So it now seems really easy to mix and match libraries and just &lt;em&gt;play!&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;It was also my first try at using GitHub . I have to say it&amp;#8217;s a joy.&lt;/p&gt;
&lt;p&gt;cl-opencalais is available from &lt;a href="http://github.com/blackwre/cl-opencalais"&gt;http://github.com/blackwre/cl-opencalais&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/rOih7QfKAcg" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2009/09/15/cl-opencalais-a-common-lisp-wrapper-for-the-opencalais-api.html</feedburner:origLink></entry>
 
 <entry>
   <title>Profile of the 21st Century Researcher</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/4aAA3qdLqiA/profile-of-the-21st-century-researcher.html" />
   <updated>2009-07-15T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2009/07/15/profile-of-the-21st-century-researcher</id>
   <content type="html">&lt;p&gt;Yesterday I spoke briefly, and participated in a panel discussion at an event at the University of Essex.&lt;/p&gt;
&lt;p&gt;&lt;a href='http://www.robblackwell.org.uk/wp-content/uploads/2009/07/essex.pdf'&gt;Here are my slides.&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/4aAA3qdLqiA" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2009/07/15/profile-of-the-21st-century-researcher.html</feedburner:origLink></entry>
 
 <entry>
   <title>SocketShifter</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/8KAMSusPyqk/socketshifter.html" />
   <updated>2009-07-06T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2009/07/06/socketshifter</id>
   <content type="html">&lt;p&gt;Richard and I had a great time in Redmond a couple of weeks ago. While we were there, we put together a code sample that showed how to use the Windows Azure Services .&lt;span class="caps"&gt;NET&lt;/span&gt; Service Bus to connect any two arbitrary &lt;span class="caps"&gt;TCP&lt;/span&gt; endpoints irrespective of any intermediate firewalls.&lt;/p&gt;
&lt;p&gt;We&amp;#8217;ve cleaned up the code and released it on &lt;a href="http://socketshifter.codeplex.com/"&gt;Codeplex&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;It turns out to be a really useful tool for setting up remote desktop connections from behind firewalls or managing remote &lt;span class="caps"&gt;SQL&lt;/span&gt; Servers using &lt;span class="caps"&gt;SQL&lt;/span&gt; Management Studio.&lt;/p&gt;
&lt;p&gt;Our full blog post is available &lt;a href="http://blogs.aws.net/atc/post/SocketShifter-Warping-the-Internet-Space-Time-Continuum-with-the-Azure-NET-Service-Bus.aspx"&gt;here&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/8KAMSusPyqk" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2009/07/06/socketshifter.html</feedburner:origLink></entry>
 
 <entry>
   <title>Exploring Windows Azure with LSharp in Full Trust</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/ojh1LHcstSo/exploring-windows-azure-with-lsharp-in-full-trust.html" />
   <updated>2009-06-18T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2009/06/18/exploring-windows-azure-with-lsharp-in-full-trust</id>
   <content type="html">&lt;p&gt;I finally got around to updating &lt;a href="http://lsharp.cloudapp.net"&gt;lsharp.cloudapp.net&lt;/a&gt; to use Full Trust (it was just a case of adding &lt;code&gt;enableNativeCodeExecution="true"&lt;/code&gt; to the ServiceConfiguration.csfg file, rebuildng and uploading).&lt;/p&gt;
&lt;p&gt;Full Trust gives you access to a whole lot more than reported in my earlier article &lt;a href="http://www.robblackwell.org.uk/?p=157"&gt;Poking around in Windows Azure &lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Access to the file system is now allowed&lt;/p&gt;
&lt;pre&gt;
&amp;gt;(new "System.IO.DirectoryInfo" "c:\\windows")
c:\windows
&lt;/pre&gt;
&lt;p&gt;And we can enumerate all the disks&lt;/p&gt;
&lt;pre&gt;
&amp;gt;(reference "System.Management")
(seq (.get (new "System.Management.ManagementObjectSearcher" "SELECT * From Win32_LogicalDisk ")))
(\\RD00155D301BA6\root\cimv2:Win32_LogicalDisk.DeviceID="A:" \\RD00155D301BA6\root\cimv2:Win32_LogicalDisk.DeviceID="C:" \\RD00155D301BA6\root\cimv2:Win32_LogicalDisk.DeviceID="D:" \\RD00155D301BA6\root\cimv2:Win32_LogicalDisk.DeviceID="E:")
&lt;/pre&gt;
&lt;p&gt;All the interesting stuff seems to be on the D drive&lt;/p&gt;
&lt;pre&gt;
&amp;gt;(map (fn(x) (.ToString x)) (.GetDirectories (new "System.IO.DirectoryInfo" "d:\\")))
("$Recycle.Bin" "boot" "Debuggers" "Documents and Settings" "inetpub" "OSdiagnostics" "Packages" "PerfLogs" "Program 

Files" "Program Files (x86)" "ProgramData" "rdsources" "System Volume Information" "Users" "Windows")
&lt;/pre&gt;
&lt;p&gt;We can now get to the registry and find out what kind of processors are being used.&lt;/p&gt;
&lt;pre&gt;
&amp;gt;(reference "Microsoft.Win32")
(.GetValue (.OpenSubKey ( Microsoft.Win32.Registry.LocalMachine) "HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0") "VendorIdentifier")
"AuthenticAMD"
&lt;/pre&gt;
&lt;p&gt;Have a play and let me know if you discover anything interesting!&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/ojh1LHcstSo" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2009/06/18/exploring-windows-azure-with-lsharp-in-full-trust.html</feedburner:origLink></entry>
 
 <entry>
   <title>Java, Restlet and Windows Azure</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/0blIz-bVXUE/java-restlet-and-windows-azure.html" />
   <updated>2009-05-19T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2009/05/19/java-restlet-and-windows-azure</id>
   <content type="html">&lt;p&gt;There&amp;#8217;s an interesting scenario for Windows Azure Services which hasn&amp;#8217;t been talked about much: inter-enterprise application integration.&lt;/p&gt;
&lt;p&gt;Connecting suppliers with customers can be tricky &amp;#8211; Who hosts the web services? Who&amp;#8217;s going to buy the server? How will we configure the firewalls? Azure could make all that pain disappear &amp;#8211; just put an endpoint in the cloud and communicate securely. The endpoint could be a Table, a Queue, Blob store or the Services Bus.&lt;/p&gt;
&lt;p&gt;Key to getting this scenario to work is Java support; there&amp;#8217;s still a lot of legacy Java out there running on &lt;span class="caps"&gt;UNIX&lt;/span&gt; systems and we have to be able to work with that.&lt;/p&gt;
&lt;p&gt;A quick Google for &amp;#8220;Windows Azure Java&amp;#8221; threw up only very little material:&lt;/p&gt;
&lt;p&gt;Steve Marx&amp;#8217;s blog &lt;a href="http://blog.smarx.com/posts/programming-language-interoperability-in-windows-azure"&gt;http://blog.smarx.com/posts/programming-language-interoperability-in-windows-azure&lt;/a&gt; &amp;#8211; Inspiring, but I struggled to get the code sample working and it&amp;#8217;s a little messy.&lt;br /&gt;
and&lt;br /&gt;
Schakra&amp;#8217;s &lt;a href="http://www.schakra.com/stuff-we-do/jdotnetservices.html"&gt;Java &lt;span class="caps"&gt;SDK&lt;/span&gt; for .&lt;span class="caps"&gt;NET&lt;/span&gt; Services&lt;/a&gt; which, as far as I can tell only supports the Service bus.&lt;/p&gt;
&lt;p&gt;Neither was what I was really looking for.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.restlet.org/"&gt;Restlet &lt;/a&gt;seemed like the way to go, so I contacted the folks at &lt;a href="http://www.noelios.com/"&gt;Noelios&lt;/a&gt; and Thierry Boileau responded with a code sample showing how the Microsoft Shared Key scheme was supported in Restlet 1.2 Milestone 2&lt;/p&gt;
&lt;p&gt;See comments under&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blog.noelios.com/2009/02/20/microsoft-selects-restlet-to-show-rest-interoperability/"&gt;http://blog.noelios.com/2009/02/20/microsoft-selects-restlet-to-show-rest-interoperability/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Before long, I was listing queues, doing PutMessage to queues etc etc and I&amp;#8217;ve started to build out a simple library that allows me to do things like:&lt;/p&gt;

&lt;pre&gt;
String endPoint = "http://account.queue.core.windows.net";
String accountName = "XXXX";
String accountSharedKey = "YYYY";

QueueStorage queueStorage = new QueueStorage(endPoint,accountName, accountSharedKey);

Queue q = queueStorage.getQueue("foo");
q.putMessage("Hello World 2");
&lt;/pre&gt;
&lt;p&gt;Is anybody interested in helping with or sponsoring a CodePlex project to build out a Java version of the StorageClient sample?&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/0blIz-bVXUE" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2009/05/19/java-restlet-and-windows-azure.html</feedburner:origLink></entry>
 
 <entry>
   <title>SemSearch 2009</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/MpZ33l3-SkU/semsearch-2009.html" />
   <updated>2009-04-20T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2009/04/20/semsearch-2009</id>
   <content type="html">&lt;p&gt;Dyaa and Udo will be at SemSearch 2009, at the &lt;span class="caps"&gt;WWW&lt;/span&gt; Conference in Madrid this week presenting our paper:&lt;/p&gt;
&lt;p&gt;&amp;#8220;Managing Collaboration Projects using Semantic Email&amp;#8221;&lt;/p&gt;
&lt;p&gt;Here is &lt;a href="http://www.aws.net/news?actv_news_latest_news_id=43"&gt;The Poster&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I really wish I was going, but work commitments unfortunately don&amp;#8217;t allow ..&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/MpZ33l3-SkU" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2009/04/20/semsearch-2009.html</feedburner:origLink></entry>
 
 <entry>
   <title>Getting Started With ClojureCLR</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/RgmsfqLN02s/getting-started-with-clojureclr.html" />
   <updated>2009-04-10T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2009/04/10/getting-started-with-clojureclr</id>
   <content type="html">&lt;p&gt;I heard that Clojure had been ported to the &lt;span class="caps"&gt;CLR&lt;/span&gt; and I was keen to give it a go. You need to grab the source and build it yourself, but here&amp;#8217;s what worked for me:&lt;/p&gt;
&lt;p&gt;I use subversion and git installed as part of &lt;a href="http://www.cygwin.com/"&gt;Cygwin&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I installed everything in &lt;code&gt;c:\opt&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;First you need to get the code for Clojure-contrib from Kevin O&amp;#8217;Neill&amp;#8217;s repository&lt;/p&gt;
&lt;p&gt;&lt;code&gt;git clone git://github.com/kevinoneill/clojure-contrib.git&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Then change into the &lt;code&gt;clojure-contrib&lt;/code&gt; directory&lt;/p&gt;
&lt;p&gt;&lt;code&gt;cd clojure-contrib&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Then you need to get hold of the Dynamic Language Runtime. At the time of writing, ClojureCLR doesnt build against the latest &lt;span class="caps"&gt;DLR&lt;/span&gt;, so I had to explicitly grab revision 10606. The required version is documented in &lt;code&gt;C:\opt\clojure-contrib\ClojureCLR\versions.txt&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;svn co -r 10606 https://dlr.svn.codeplex.com/svn .&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;You also need the Visual J# Redistributable to provide BigInteger and BigDecimal. Download and install from here:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=f72c74b3-ed0e-4af8-ae63-2f0e42501be1&amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?familyid=f72c74b3-ed0e-4af8-ae63-2f0e42501be1&amp;amp;displaylang=en&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Locate ClojureCLR.sln (&lt;code&gt;C:\opt\clojure-contrib\ClojureCLR\Clojure&lt;/code&gt;) and open in Visual Studio 2008.&lt;/p&gt;
&lt;p&gt;Its a pretty big solution, so you may have to wait a bit while Visual Studio does its thing.&lt;/p&gt;
&lt;p&gt;At this stage, the whole solution probably won&amp;#8217;t build, unless you have Silverlight, NUnit , Rhino etc &amp;#8211; but don&amp;#8217;t worry &amp;#8211; You only need to build Clojure.Console &amp;#8211; Right click on Clojure.Console and select build. Right Click again and say Debug, Start New Instance. And off you go ..&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.robblackwell.org.uk/wp-content/uploads/2009/04/clojureclr.png" alt="Clojure CLR" title="Clojure CLR" width="400" height="216" class="size-full wp-image-228" /&gt;&lt;/p&gt;
&lt;p&gt;If you&amp;#8217;ve read this far, you probably want to buy &lt;a href="http://www.pragprog.com/titles/shcloj/programming-clojure"&gt;Programming Clojure&lt;/a&gt; by Stuart Halloway. It&amp;#8217;s available in beta.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/RgmsfqLN02s" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2009/04/10/getting-started-with-clojureclr.html</feedburner:origLink></entry>
 
 <entry>
   <title>Document Version Control Surface Style</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/f7zu4ldKHLc/document-version-control-surface-style.html" />
   <updated>2009-04-09T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2009/04/09/document-version-control-surface-style</id>
   <content type="html">&lt;p&gt;Another day another Surface demo. This time a &lt;span class="caps"&gt;POC&lt;/span&gt; for how a Surface could interact with a document management system to ensure that the latest versions of documents are used at meetings.&lt;/p&gt;
&lt;p&gt;&lt;object width="400" height="300"&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=4077709&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" /&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=4077709&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;a href="http://vimeo.com/4077709"&gt;Document Version Control Surface Style&lt;/a&gt; from &lt;a href="http://vimeo.com/user1556770"&gt;Rob Blackwell&lt;/a&gt; on &lt;a href="http://vimeo.com"&gt;Vimeo&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/f7zu4ldKHLc" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2009/04/09/document-version-control-surface-style.html</feedburner:origLink></entry>
 
 <entry>
   <title>Microsoft Surface Arrives!</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/cizaxIdnIy4/microsoft-surface-arrives.html" />
   <updated>2009-04-08T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2009/04/08/microsoft-surface-arrives</id>
   <content type="html">&lt;p&gt;A Microsoft Surface box recently arrived at &lt;a href="http://www.aws.net"&gt;&lt;span class="caps"&gt;AWS&lt;/span&gt; &lt;/a&gt; and we were up and running within an hour or so.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.robblackwell.org.uk/wp-content/uploads/2009/04/rob-surface.jpg" alt="Rob on the New Surface Table" title="Rob on the New Surface Table" width="400" height="297" class="size-full wp-image-203" /&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/cizaxIdnIy4" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2009/04/08/microsoft-surface-arrives.html</feedburner:origLink></entry>
 
 <entry>
   <title>Maritime Charts on Microsoft Surface</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/PMOLvNuQKsw/maritime-charts-on-microsoft-surface.html" />
   <updated>2009-04-08T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2009/04/08/maritime-charts-on-microsoft-surface</id>
   <content type="html">&lt;p&gt;Richard Prodger leads the satellite tracking and sea safety projects at &lt;span class="caps"&gt;AWS&lt;/span&gt;. Here he is talking about how we ported our .&lt;span class="caps"&gt;NET&lt;/span&gt; based &lt;span class="caps"&gt;UKHO&lt;/span&gt; Admiralty charting system to Surface.&lt;/p&gt;
&lt;p&gt;&lt;object width="400" height="300"&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=4062319&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" /&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=4062319&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;a href="http://vimeo.com/4062319"&gt;Maritime Charts on Surface&lt;/a&gt; from &lt;a href="http://vimeo.com/user1556770"&gt;Rob Blackwell&lt;/a&gt; on &lt;a href="http://vimeo.com"&gt;Vimeo&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Interestingly, users of paper charts are already used to having a chart table, so there are some nice parallels here with Surface.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/PMOLvNuQKsw" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2009/04/08/maritime-charts-on-microsoft-surface.html</feedburner:origLink></entry>
 
 <entry>
   <title>CAD Drawings On Surface</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/0u5V0QlD-3E/cad-drawings-on-surface.html" />
   <updated>2009-04-08T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2009/04/08/cad-drawings-on-surface</id>
   <content type="html">&lt;p&gt;Owen and I have been working on how to view Computer Aided Design drawings on Surface.&lt;/p&gt;
&lt;p&gt;&lt;object width="400" height="300"&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=4062475&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" /&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=4062475&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;a href="http://vimeo.com/4062475"&gt;AutoCAD on Microsoft Surface&lt;/a&gt; from &lt;a href="http://vimeo.com/user1556770"&gt;Rob Blackwell&lt;/a&gt; on &lt;a href="http://vimeo.com"&gt;Vimeo&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;We have several customers in the construction sector and being able to call up drawings from their document management systems could be a killer application.&lt;/p&gt;
&lt;p&gt;You could imagine Surface being used as part of the design process in client meetings.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/0u5V0QlD-3E" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2009/04/08/cad-drawings-on-surface.html</feedburner:origLink></entry>
 
 <entry>
   <title>Surfacing in Reading</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/mYJZJsTTOJY/surfacing-in-reading.html" />
   <updated>2009-04-04T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2009/04/04/surfacing-in-reading</id>
   <content type="html">&lt;p&gt;For the last few days, I&amp;#8217;ve been at the &lt;a href="http://www.microsoft.com/mtc/locations/ThamesValley.mspx"&gt;Microsoft Technology Centre&lt;/a&gt; at Reading, locked in a room with 4 &lt;a href="http://www.microsoft.com/surface"&gt;Microsoft Surface&lt;/a&gt; Boxes, &lt;a href="http://www.roodyn.com/"&gt;Dr Neil&lt;/a&gt; and a bunch of other interesting people.&lt;/p&gt;
&lt;p&gt;It&amp;#8217;s pretty easy to get a &lt;span class="caps"&gt;WPF&lt;/span&gt; app running on a Surface (I managed to get the &lt;span class="caps"&gt;AWS&lt;/span&gt; Admiralty Charts running).&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.robblackwell.org.uk/wp-content/uploads/2009/04/chart.jpg" alt="Admiralty Charts on Surface Simulator" title="Admiralty Charts on Surface Simulator" width="400" height="300" class="size-full wp-image-194" /&gt;&lt;/p&gt;
&lt;p&gt;Building intuitive, seamless, social, 360 degree interfaces is a whole different ballgame though &amp;#8230;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/mYJZJsTTOJY" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2009/04/04/surfacing-in-reading.html</feedburner:origLink></entry>
 
 <entry>
   <title>I don't do Email</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/UZQdGzO2J1o/i-dont-do-email.html" />
   <updated>2009-04-02T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2009/04/02/i-dont-do-email</id>
   <content type="html">&lt;p&gt;On Thursday 26th March I met with &lt;a href="http://www.davidlammy.co.uk/"&gt;David Lammy&lt;/a&gt;, MP for Tottenham and Minister for Higher Education.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.robblackwell.org.uk/wp-content/uploads/2009/04/lammy2.jpg" alt="Rob meets David Lammy" title="Rob meets David Lammy" width="400" height="266" /&gt;&lt;/p&gt;
&lt;p&gt;We showed him some of the great research that we&amp;#8217;ve been doing with Essex University that promises to revolutionise the way we run collaboration projects by appying natural language processing techniques to email.&lt;/p&gt;
&lt;p&gt;Unfortunately David admitted that he didn&amp;#8217;t do email.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/UZQdGzO2J1o" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2009/04/02/i-dont-do-email.html</feedburner:origLink></entry>
 
 <entry>
   <title>Mix09</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/5GGrrA14KcU/mix09.html" />
   <updated>2009-03-22T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2009/03/22/mix09</id>
   <content type="html">&lt;p&gt;Just got back from Las Vegas where Richard and I attended Mix09.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.robblackwell.org.uk/wp-content/uploads/2009/04/mirage2.jpg" alt="The Mirage, Las Vegas" title="The Mirage, Las Vegas" width="400" height="533" class="size-full wp-image-199" /&gt;&lt;/p&gt;
&lt;p&gt;Lots of interesting stuff &amp;#8211; Here are some notes:&lt;/p&gt;
&lt;p&gt;Launch of Internet Explorer 8. ie8addons.com , IE8 Tools versus Firebug&lt;br /&gt;
&lt;span class="caps"&gt;ASP&lt;/span&gt;.&lt;span class="caps"&gt;NET&lt;/span&gt; &lt;span class="caps"&gt;MVC&lt;/span&gt; 1.0 &amp;#8211; NerdDinner sample application&lt;br /&gt;
Availability of a Mobile Device BRowser file on Codeplex&lt;br /&gt;
Microsoft Translator&lt;br /&gt;
Silverlight 3 &lt;span class="caps"&gt;CTP&lt;/span&gt;&lt;br /&gt;
Blend 3 Sketchflow&lt;br /&gt;
Bizspark initiative for start ups&lt;br /&gt;
350 Million installs of Silverlight&lt;br /&gt;
&lt;span class="caps"&gt;IIS&lt;/span&gt; Media Services and Smoth Streaming&lt;br /&gt;
Support for &lt;span class="caps"&gt;SFTP&lt;/span&gt; &amp;#8211; finally!&lt;br /&gt;
WIndows Web App Gallery&lt;br /&gt;
Webplatform Installer&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/5GGrrA14KcU" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2009/03/22/mix09.html</feedburner:origLink></entry>
 
 <entry>
   <title>Guest Lecture at Essex University 2009</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/VtkP0amp2wQ/guest-lecture-at-essex-university-2009.html" />
   <updated>2009-02-24T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2009/02/24/guest-lecture-at-essex-university-2009</id>
   <content type="html">&lt;p&gt;Today I had the opportunity to talk to some second year Computing students about Cloud Computing, and to demonstrate some of the work we&amp;#8217;ve been involved with at &lt;a href="http://www.aws.net"&gt;&lt;span class="caps"&gt;AWS&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Demos included  &lt;a href="http://dev.live.com/Virtualearth/sdk/"&gt;Virtual Earth&lt;/a&gt;, &lt;a href="http://livelabs.com/photosynth/"&gt;Photosynth&lt;/a&gt; and a &lt;a href="http://apps.facebook.com/mapmate/"&gt;Facebook application&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;We also talked about &lt;a href="http://www.microsoft.com/azure/default.mspx"&gt;Windows Azure&lt;/a&gt; and the amazing opportunities that cloud computing mashups afford.&lt;/p&gt;
&lt;p&gt;Here are &lt;a href='http://www.robblackwell.org.uk/wp-content/uploads/2009/02/essex-2009.pdf'&gt;the slides&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;My thanks to &lt;a href="http://www.essex.ac.uk/dces/people/profile.aspx?id=136"&gt;Iain Langdon&lt;/a&gt; and &lt;a href="http://www.essex.ac.uk/dces/people/profile.aspx?id=138"&gt;Simon Lucas&lt;/a&gt; for the invitation.&lt;/p&gt;
&lt;p&gt;If you are a University student looking for a summer placement &amp;#8211; please call the &lt;span class="caps"&gt;AWS&lt;/span&gt; Office on 01473 834560 and speak to Lucy, or drop me an email.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/VtkP0amp2wQ" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2009/02/24/guest-lecture-at-essex-university-2009.html</feedburner:origLink></entry>
 
 <entry>
   <title>Serving VE Mapcruncher Tiles from Windows Azure</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/s_kO154ZbMQ/serving-ve-mapcruncher-tiles-from-windows-azure.html" />
   <updated>2009-02-10T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2009/02/10/serving-ve-mapcruncher-tiles-from-windows-azure</id>
   <content type="html">&lt;p&gt;&lt;a href="http://dev.live.com/virtualearth/mapcruncher/"&gt;Microsoft Mapcruncher&lt;/a&gt; is a tool that allows you to overlay your own custom maps onto Virtual Earth. It works by &amp;#8220;Crunching&amp;#8221; your map into tiles which you then make available via a web server so that they can be overlaid in VE using &lt;code&gt;map.AddTileLayer&lt;/code&gt;. Depending on the complexity of your map, and the number of zoom levels, Mapcruncher can generate quite large amounts of data. Mapcruncher already has a facility to render its data directly to Amazon S3, but now you can copy those tiles to Windows Azure Blob Storage instead.&lt;/p&gt;
&lt;p&gt;First crunch your data &amp;#8211; There are a number of online tutorials and good instructions with Mapcruncher, so I wont go into detail here. Let&amp;#8217;s assume you&amp;#8217;ve crunched your data to a local folder, say &lt;code&gt;c:\ve&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Now install PowerShell and CloudDrive (CloudDrive is in the samples directory of the Windows Azure &lt;span class="caps"&gt;SDK&lt;/span&gt; &amp;#8211; follow the instructions you find there).&lt;/p&gt;
&lt;p&gt;Using PowerShell and CloudDrive, change directory into Blob storage:&lt;br /&gt;
&lt;code&gt;
&amp;gt; cd blob:
&lt;/code&gt;&lt;br /&gt;
Create a new public container:&lt;br /&gt;
&lt;code&gt;
&amp;gt; new-item -public tiles
&lt;/code&gt;&lt;br /&gt;
Change into that container:&lt;br /&gt;
&lt;code&gt;
&amp;gt; cd tiles
&lt;/code&gt;&lt;br /&gt;
Copy all the tiles from your local drive to the cloud:&lt;br /&gt;
&lt;code&gt;
&amp;gt; copy-cd c:\ve\Layer_NewLayer\* .
&lt;/code&gt;&lt;br /&gt;
Now all these tiles should be publicly available.&lt;/p&gt;
&lt;p&gt;If you are running against development blob storage, then &lt;span class="caps"&gt;URLS&lt;/span&gt; will look something like this&lt;br /&gt;
&lt;code&gt;
http://127.0.0.1:10000/devstoreaccount1/tiles/0313131311133.png 
&lt;/code&gt;&lt;br /&gt;
For production cloud storage, they&amp;#8217;ll look like this&lt;br /&gt;
&lt;code&gt;
http://myaccount.blob.core.windows.net/tiles/0313131311133.png
&lt;/code&gt;&lt;br /&gt;
Now we need some &lt;span class="caps"&gt;HTML&lt;/span&gt; to try it out &amp;#8211; I grabbed the sample from the Virtual Earth Interactive &lt;span class="caps"&gt;SDK&lt;/span&gt; and hacked it around a bit to suit my particular map. The main thing to change is the path to the tiles., something like this:&lt;br /&gt;
&lt;code&gt;
var tileSourceSpec = new VETileSourceSpecification("lidar", "http://127.0.0.1:10000/devstoreaccount1/tiles/%4.png");
 &lt;/code&gt;&lt;/p&gt;
&lt;p&gt;or this&lt;/p&gt;
&lt;p&gt;&lt;code&gt;
var tileSourceSpec = new VETileSourceSpecification("lidar", "http://myaccount.blob.core.windows.net/tiles/%4.png");
 &lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Once you&amp;#8217;ve created your &lt;span class="caps"&gt;HTML&lt;/span&gt;, you can upload it as before:&lt;br /&gt;
&lt;code&gt;
&amp;gt; copy-cd C:\ve\index.html .
&lt;/code&gt;&lt;br /&gt;
Now browse to your storage end point&lt;br /&gt;
&lt;code&gt;
http://127.0.0.1:10000/devstoreaccount1/tiles/index.html
&lt;/code&gt;&lt;br /&gt;
or&lt;br /&gt;
&lt;code&gt;
http://myaccount.blob.core.windows.net/tiles/index.html
&lt;/code&gt;&lt;br /&gt;
and away you go!&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/s_kO154ZbMQ" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2009/02/10/serving-ve-mapcruncher-tiles-from-windows-azure.html</feedburner:origLink></entry>
 
 <entry>
   <title>Poking around in Windows Azure</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/mSE2lHQyt-U/poking-around-in-windows-azure.html" />
   <updated>2009-02-09T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2009/02/09/poking-around-in-windows-azure</id>
   <content type="html">&lt;p&gt;Now that I have my first app running in the real Windows Azure cloud, and that app is a scripting engine, I wonder what I can discover about the underlying platform?&lt;/p&gt;
&lt;p&gt;Running this:&lt;br /&gt;
&lt;code&gt;
(reference "System.Net")
(using "System.Net")&lt;/p&gt;
&lt;p&gt;(let ip (first (.AddressList (Dns.GetHostByName (Dns.GetHostName))))&lt;br /&gt;
	(prn ip)&lt;br /&gt;
	(prn (.HostName (Dns.GetHostByAddress ip))))&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
We get&lt;br /&gt;
&lt;code&gt;
10.113.121.84
RD00155D302603.reddog.microsoft.com
&lt;/code&gt;&lt;br /&gt;
The IP Address is a private IP address. So, as you might expect, there is network address translation going on. The hostname reveals the Red Dog name which was the code name for the project prior to &lt;span class="caps"&gt;PDC&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;If we ping lsharp.cloudapp.net we get&lt;br /&gt;
70.37.9.89&lt;/p&gt;
&lt;p&gt;A quick port scan (purely in the interests of research!) shows that only port 80 is up for that address.&lt;/p&gt;
&lt;p&gt;The 70.37.9.89 address is indeed registered to Microsoft Corp and DNSStuff reports the city as Temecula, California &amp;#8211; is that where the data centre is I wonder?&lt;/p&gt;
&lt;p&gt;We seem to be able to make arbitrary outbound &lt;span class="caps"&gt;HTTP&lt;/span&gt; connections like this:&lt;br /&gt;
&lt;code&gt;
(.OpenRead (new "System.Net.WebClient") "http://www.aws.net")
&lt;/code&gt;&lt;br /&gt;
But not to the localhost&lt;br /&gt;
&lt;code&gt;
(.OpenRead (new "System.Net.WebClient") "http://127.0.0.1:80")
&lt;/code&gt;&lt;br /&gt;
and not to other addresses on the local network&lt;br /&gt;
&lt;code&gt;
(.OpenRead (new "System.Net.WebClient") "http://10.113.121.85")
&lt;/code&gt;&lt;br /&gt;
In both cases we get a &lt;br /&gt;
&lt;code&gt;
System.Net.WebException: Unable to connect to the remote server ---&amp;gt;&lt;/p&gt;
&lt;p&gt;System.Net.Sockets.SocketException: An attempt was made to access a socket in a way forbidden by its access permissions &lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;The publc IP Address works fine&lt;br /&gt;
&lt;code&gt;
(.OpenRead (new "System.Net.WebClient") "http://70.37.9.89:80")
&lt;/code&gt;&lt;br /&gt;
Can we access the registry ?&lt;br /&gt;
&lt;code&gt;
(reference "Microsoft.Win32")
(.OpenSubKey ( Microsoft.Win32.Registry.LocalMachine) "HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0")&lt;/p&gt;
&lt;p&gt;System.Security.SecurityException: Request for the permission of type &amp;#8217;System.Security.Permissions.RegistryPermission,&lt;/p&gt;
&lt;p&gt;mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&amp;#8217; failed.&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Not at all suprising really!&lt;/p&gt;
&lt;p&gt;Can we access the file system ?&lt;br /&gt;
&lt;code&gt;
(new "System.IO.DirectoryInfo" "c:\\")&lt;/p&gt;
&lt;p&gt;System.Security.SecurityException: Request for the permission of type &amp;#8217;System.Security.Permissions.FileIOPermission,&lt;/p&gt;
&lt;p&gt;mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&amp;#8217; failed.&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
How about using System.Management ?&lt;br /&gt;
&lt;code&gt;
(reference "System.Management")
(.get (new "System.Management.ManagementObjectSearcher" "SELECT * From Win32_LogicalDisk "))&lt;/p&gt;
&lt;p&gt;System.Security.SecurityException: That assembly does not allow partially trusted callers.&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;So, as you would expect, some smart people have put an awful lot of thought into platform security and there don&amp;#8217;t seem to be any chinks in the armour! Can anybody think of anything else that might reveal more info about the platform?&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/mSE2lHQyt-U" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2009/02/09/poking-around-in-windows-azure.html</feedburner:origLink></entry>
 
 <entry>
   <title>LSharp in the Cloud Video</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/q6zgfrnR18k/lsharp-in-the-cloud-video.html" />
   <updated>2009-02-07T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2009/02/07/lsharp-in-the-cloud-video</id>
   <content type="html">&lt;p&gt;&lt;a href="http://blogs.conchango.com/howardvanrooijen/"&gt;Howard van Rooijen&lt;/a&gt; from &lt;span class="caps"&gt;EMC&lt;/span&gt; (formerly Conchango) made a video of Adrian Jakeman and me talking about LSharp in the Windows Azure Cloud.&lt;/p&gt;
&lt;p&gt;Great Job &amp;#8211; many thanks!&lt;/p&gt;
&lt;p&gt;&lt;object width="400" height="225" data="http://vimeo.com/moogaloop.swf?clip_id=3118162&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" type="application/x-shockwave-flash"&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=3118162&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" /&gt;&lt;/object&gt;&lt;br /&gt;
&lt;a href="http://vimeo.com/3118162"&gt;LSharp in the Cloud&lt;/a&gt; from &lt;a href="http://vimeo.com/howardvanrooijen"&gt;Howard van Rooijen&lt;/a&gt; on &lt;a href="http://vimeo.com"&gt;Vimeo&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/q6zgfrnR18k" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2009/02/07/lsharp-in-the-cloud-video.html</feedburner:origLink></entry>
 
 <entry>
   <title>LISP in the Windows Azure Cloud?</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/sIfvNIBUV_o/lisp-in-the-windows-azure-cloud.html" />
   <updated>2009-02-05T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2009/02/05/lisp-in-the-windows-azure-cloud</id>
   <content type="html">&lt;p&gt;So here I am in London learning about the Microsoft &lt;a href="http://www.microsoft.com/azure/default.mspx" target="_blank"&gt;Windows Azure Services Platform&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In an idle few moments, I thought it would be fun to try to run LSharp in the cloud &amp;#8211; I expected that the partial trust model would probably prevent the reflection and code gen stuff from working, but to my surprise it seems to work well! Try it out at &lt;a href="http://lsharp.cloudapp.net/"&gt;http://lsharp.cloudapp.net/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m just pushing the source code up to Subversion if you want to take a look ..&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;
svn co https://lsharp.svn.sourceforge.net/svnroot/lsharp/v2 lsharp
&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;You can run it locally using the dev fabric (I&amp;#8217;m using the January &lt;span class="caps"&gt;CTP&lt;/span&gt; build).&lt;/p&gt;
&lt;p&gt;The rss.ls sample runs unmodified, as does fib.ls and factorial.ls (look in the samples directory)&lt;/p&gt;
&lt;p&gt;One interesting thing is using LSharp to have a dig around in the Azure runtime&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;
&amp;gt; (System.Environment.OSVersion)
Microsoft Windows NT 6.0.6002 Service Pack 2, v.223
&amp;gt; (System.Environment.ProcessorCount)
1
&amp;gt; (System.Environment.Version)
2.0.50727.3069
&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;Special thanks to Simon Davies and Alistair Beagley who managed to get me an Azure account in record time.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ve no idea whether it will stay up for long, but have a play and let me know what you think &amp;#8230;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/sIfvNIBUV_o" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2009/02/05/lisp-in-the-windows-azure-cloud.html</feedburner:origLink></entry>
 
 <entry>
   <title>LSharp Progress</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/a7YFbRee6uo/lsharp-progress.html" />
   <updated>2008-12-23T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2008/12/23/lsharp-progress</id>
   <content type="html">&lt;p&gt;&lt;a href="http://www.lsharp.org"&gt;&lt;img class="size-full wp-image-145" title="lsharp" src="http://www.robblackwell.org.uk/wp-content/uploads/2008/10/lsharp.png" alt="LSharp Logo" width="87" height="81" /&gt;&lt;/a&gt;&lt;br /&gt;
Back in September, I decided to have another look at L Sharp, with a view to building a compiler. My intention was to try to port it to the Dynamic Language Runtime &amp;#8211; More by luck than judgement, I stumbled upon &lt;span class="caps"&gt;LINQ&lt;/span&gt; expression trees and then I just kept going &amp;#8230;&lt;/p&gt;
&lt;p&gt;Early on, I was influenced by Paul Graham&amp;#8217;s Arc, but as time went by, I also discovered Clojure &amp;#8211; I&amp;#8217;ve stolen ideas from both.&lt;/p&gt;
&lt;p&gt;By early December, things had stabilised enough to start sharing the source code.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;svn co https://lsharp.svn.sourceforge.net/svnroot/lsharp/v2 lsharp &lt;/code&gt;&lt;/p&gt;
&lt;p&gt;There are still rough edges, but it feels like a major step forward over version 1.&lt;/p&gt;
&lt;p&gt;There have been a few discussions on the &lt;a href="http://groups.google.com/group/LSharp"&gt;Google Group&lt;/a&gt; .&lt;/p&gt;
&lt;p&gt;Daniel has done an AutoCAD plugin and Roman has managed to get it working in Silverlight. Roman is in the UK in January, so I hope to  incorporate his changes into subversion.&lt;/p&gt;
&lt;p&gt;Anyway, if you have time over the Christmas break, check it out &lt;a href="http://www.lsharp.org"&gt;www.lsharp.org&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/a7YFbRee6uo" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2008/12/23/lsharp-progress.html</feedburner:origLink></entry>
 
 <entry>
   <title>L Sharp Version 2 Coming Soon</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/fb8CMuYd2Ks/l-sharp-version-2-coming-soon.html" />
   <updated>2008-10-17T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2008/10/17/l-sharp-version-2-coming-soon</id>
   <content type="html">&lt;p&gt;&lt;a href="http://www.lsharp.org"&gt;&lt;img border="0" src="http://www.robblackwell.org.uk/wp-content/uploads/2008/10/lsharp.png" alt="LSharp Logo" title="lsharp" width="87" height="81" class="size-full wp-image-145" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;It&amp;#8217;s been a while, but I&amp;#8217;m working on L Sharp again! I hope to have a version 2 beta released by Christmas 2008. Here are some highlights ..&lt;/p&gt;
&lt;p&gt;Major rewrite which exploits .&lt;span class="caps"&gt;NET&lt;/span&gt; Framework 3.5.&lt;br /&gt;
New liberal license terms &amp;#8211; Probably &lt;span class="caps"&gt;BSD&lt;/span&gt; or Perl Artistic.&lt;br /&gt;
Much Faster! Compiles to &lt;span class="caps"&gt;LINQ&lt;/span&gt; Expression trees (and from there to IL).&lt;br /&gt;
Breaks compatibility with version 1 in favour of closer alignment with Paul Graham&amp;#8217;s Arc language.&lt;br /&gt;
Dot notation for .&lt;span class="caps"&gt;NET&lt;/span&gt; calls (console.writeline &amp;#8220;Hello World&amp;#8221;).&lt;br /&gt;
Smaller, better structured, more extensible code base.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/fb8CMuYd2Ks" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2008/10/17/l-sharp-version-2-coming-soon.html</feedburner:origLink></entry>
 
 <entry>
   <title>2008 Microsoft MVP Award!</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/_Rpj9ytOFPA/2008-microsoft-mvp-award.html" />
   <updated>2008-07-01T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2008/07/01/2008-microsoft-mvp-award</id>
   <content type="html">&lt;p&gt;&lt;img src="http://www.robblackwell.org.uk/wp-content/uploads/2008/12/mvp.png" alt="Microsoft MVP" title="mvp" width="71" height="111" /&gt;&lt;br /&gt;
I&amp;#8217;ve just got an email saying that I&amp;#8217;ve received a Microsoft Most Valuable Professional Award for 2008 for my work with Windows Live Services.&lt;/p&gt;
&lt;p&gt;This is the second year that I&amp;#8217;ve been awarded an &lt;span class="caps"&gt;MVP&lt;/span&gt; and I really didn&amp;#8217;t expect it this time around.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/_Rpj9ytOFPA" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2008/07/01/2008-microsoft-mvp-award.html</feedburner:origLink></entry>
 
 <entry>
   <title>Light Up the Web</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/l1T0ZvwhXP8/live-mesh-sdr.html" />
   <updated>2008-05-31T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2008/05/31/live-mesh-sdr</id>
   <content type="html">&lt;p&gt;&lt;a href='http://www.code-magazine.com/Article.aspx?quickid=0804082' title='CoDe Focus Magazine, 2008 - Vol. 5 - Issue 2 - Windows Live'&gt;&lt;img border="0" src='http://www.robblackwell.org.uk/wp-content/uploads/2008/03/getissuecover.jpg' alt='CoDe Focus Magazine, 2008 - Vol. 5 - Issue 2 - Windows Live' /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;My article on Microsoft Silverlight Streaming by Windows Live was published by CoDe focus a couple of weeks ago to coincide with the Mix conference in Las Vegas. The magazine was in the delegate pack. Now it&amp;#8217;s &lt;a href="http://www.code-magazine.com/Article.aspx?quickid=0804082"&gt;available online&lt;/a&gt; too.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/l1T0ZvwhXP8" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2008/05/31/live-mesh-sdr.html</feedburner:origLink></entry>
 
 <entry>
   <title>Guest Lecture at Essex University</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/GWswQIMNQDo/guest-lecture-at-essex-university.html" />
   <updated>2008-02-23T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2008/02/23/guest-lecture-at-essex-university</id>
   <content type="html">&lt;p&gt;Yesterday I had the opportunity to talk to some second year Computing students about &amp;#8220;Software plus services&amp;#8221;, and to demonstrate some of the work we&amp;#8217;ve been involved with at &lt;a href="http://www.aws.net"&gt;&lt;span class="caps"&gt;AWS&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Demos included the &lt;a href="http://dev.live.com/quickapps/"&gt;Windows Live Quick Applications&lt;/a&gt;, &lt;a href="http://dev.live.com/virtualearth/"&gt;Virtual Earth&lt;/a&gt; and a &lt;a href="http://www.facebook.com"&gt;Facebook&lt;/a&gt; application.&lt;/p&gt;
&lt;p&gt;Here are the &lt;a href='http://www.robblackwell.org.uk/wp-content/uploads/2008/02/essex.pdf' title='Software Plus Services Slides'&gt;slides&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src='http://www.robblackwell.org.uk/wp-content/uploads/2008/02/essex.png' alt='essex.png' /&gt;&lt;/p&gt;
&lt;p&gt;My thanks to &lt;a href="http://www.essex.ac.uk/dces/people/profile.aspx?id=136"&gt;Iain Langdon&lt;/a&gt; for the invitation &amp;#8211; I really enjoyed it.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/GWswQIMNQDo" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2008/02/23/guest-lecture-at-essex-university.html</feedburner:origLink></entry>
 
 <entry>
   <title>Alphabetical List of Arc Functions</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/8FLHe55bjoE/lsharp-now-uses-visual-studio-2008.html" />
   <updated>2008-02-08T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2008/02/08/lsharp-now-uses-visual-studio-2008</id>
   <content type="html">&lt;p&gt;I&amp;#8217;m still trying to get a handle on Arc syntax so I wanted a list of all the Arc functions.&lt;/p&gt;
&lt;p&gt;In arc.arc, I modified def like this:&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;
(set *functions* nil)
(set def (annotate 'mac
            (fn (name parms . body)
              `(do (sref sig ',parms ',name)
	      	   (set *functions* (cons ',name *functions*))		
		(safeset ,name (fn ,parms ,@body))))))
 &lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;Now, every time a function gets defined, its name gets put onto the &lt;strong&gt;functions&lt;/strong&gt; list.&lt;/p&gt;
&lt;p&gt;I modified as.scm to comment out the loading of libraries, so that just arc.arc is loaded.&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;;(aload "libs.arc")
&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;Now when I start Arc I can say:&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;
(sort (fn (x y) (&amp;lt; (coerce x 'string) (coerce y 'string))) *functions*)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And I get a list of all the Arc functions defined in arc.arc:&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;
(&amp;lt;= &amp;gt;= abs acons adjoin alist all alphadig alref andf assoc atend atom avg before best bestn caar cache cadr carif caris cddr commonest compare consif copy count counts date dedup deq dotted downcase ellipsize empty enq enq-limit ensure-dir ero even expand-metafn-call expand= expand=list fill-table find firstn firstn-that flat idfn insert-sorted inst intersperse isa isnt iso join keep keys last list listtab load load-table load-tables map map1 mappend maps max median mem memo memtable merge mergesort metafn min mismatch most multiple no nonwhite nthcdr number odd only ontree orf pair parse-format plural pos positive pr prall prn prs punc qlen qlist queue rand-string random-elt range read read-table readall readfile readfile1 readline readstring1 reclist recstring reduce reinsert-sorted rem rev round roundup rreduce safe-load-table saferead save-table setforms since single some sort split splitn string subseq sym tablist temload temloadall templatize temread testify to-nearest trav tree-subst trues tuples upcase vals warn whitec write-table writefile1)
&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;Now we just need to write some documentation&amp;#8230;..&lt;/p&gt;
&lt;p&gt;&lt;span class="caps"&gt;UPDATE&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Thanks to contributors on the arclanguage.org forum, it turns out you can get better results without hacking the source &amp;#8211; Try this:&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;
(each key (sort &amp;lt; (keys sig))
      (prn key " " (sig key)))
&lt;/code&gt;
&lt;/pre&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/8FLHe55bjoE" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2008/02/08/lsharp-now-uses-visual-studio-2008.html</feedburner:origLink></entry>
 
 <entry>
   <title>Arc Development using Emacs on OS X</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/xXQEM5rNVmU/arc-development-using-emacs-on-os-x.html" />
   <updated>2008-01-31T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2008/01/31/arc-development-using-emacs-on-os-x</id>
   <content type="html">&lt;p&gt;In case you hadn&amp;#8217;t noticed, &lt;a href="http://www.paulgraham.com/arc0.html"&gt;Paul Graham has released Arc&lt;/a&gt;. I think it&amp;#8217;s a great start. I enjoyed hacking &lt;a href="http://www.lsharp.org"&gt;LSharp&lt;/a&gt;, but &lt;a href="http://arclanguage.org"&gt;Arc&lt;/a&gt; has to be a great way forward for innovative Lispers.  Maybe somebody will port it to Scheme on .&lt;span class="caps"&gt;NET&lt;/span&gt; one day.&lt;/p&gt;
&lt;p&gt;This is how I&amp;#8217;ve set myself up to start developing Arc programs on my MacBook.&lt;/p&gt;
&lt;p&gt;I have Xcode tools and MacPorts already installed.&lt;/p&gt;
&lt;p&gt;First I created a directory for all my Arc stuff.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;
mkdir arc
cd arc
&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Then I downloaded and built MzScheme&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
curl -O http://download.plt-scheme.org/bundles/352/mz/mz-352-src-unix.tgz
tar -zxvf mz-352-src-unix.tgz
cd plt/src/
./configure
make
make install
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Back to my arc directory&lt;/p&gt;
&lt;p&gt;&lt;code&gt;
cd ../..
&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Then I grabbed the code for Arc itself.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;
curl -O http://ycombinator.com/arc/arc0.tar
tar -xvf arc0.tar
&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Then I created myself a little shell script in the arc0 subdirectory called arc.sh&lt;/p&gt;
&lt;p&gt;&lt;code&gt;
#!/bin/sh
cd ~/arc/arc0
~/arc/plt/bin/mzscheme -m -f as.scm
&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Then I could run an interactive Arc session&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;
rob-blackwells-macbook:arc0 reb$ ./arc.sh
Use (quit) to quit, (tl) to return here after an interrupt.
arc&amp;gt; (prn "hello world")
hello world
"hello world"
arc&amp;gt;
&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;Great, but I really need an editor and a way of interacting with the &lt;span class="caps"&gt;REPL&lt;/span&gt;. Enter Emacs and Inferior Lisp Mode.&lt;/p&gt;
&lt;p&gt;I put the following in my ~/.emacs file&lt;/p&gt;
&lt;p&gt;&lt;code&gt;
(show-paren-mode t)
(setq inferior-lisp-program "~/arc/arc0/arc.sh")
&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Hey Presto, now when I start Emacs I can type:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;
M-x run-lisp
&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;I can edit an Arc program in another buffer and set it to lisp-mode&lt;/p&gt;
&lt;p&gt;&lt;code&gt;
M-x lisp-mode
&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;I get bracket matching and colour highlighting.&lt;/p&gt;
&lt;p&gt;I can send expressions from my edit buffer to Arc running as the inferior Lisp process using&lt;/p&gt;
&lt;p&gt;&lt;code&gt;
C-x C-e
&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Happy days!&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/xXQEM5rNVmU" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2008/01/31/arc-development-using-emacs-on-os-x.html</feedburner:origLink></entry>
 
 <entry>
   <title>FTSE 100 Web Servers</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/JWY4OZbbT_o/ftse-100-web-servers.html" />
   <updated>2008-01-19T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2008/01/19/ftse-100-web-servers</id>
   <content type="html">&lt;p&gt;I wanted to do some independent research about the web server technologies employed by some of the top UK companies.&lt;/p&gt;
&lt;p&gt;I used curl to send an &lt;span class="caps"&gt;HTTP&lt;/span&gt; &lt;span class="caps"&gt;HEAD&lt;/span&gt; request to each of the sites for companies in the &lt;span class="caps"&gt;FTSE&lt;/span&gt; 100, and looked at the server header returned. Results were as follows:&lt;/p&gt;
&lt;p&gt;40% Microsoft&lt;br /&gt;
32% Apache&lt;br /&gt;
18% Unspecified&lt;br /&gt;
5% &lt;span class="caps"&gt;IBM&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;My guess is that several of the unspecified servers are really Apache, but it&amp;#8217;s hard to say.&lt;/p&gt;
&lt;p&gt;Here is the gory detail (pipe separated fields).&lt;/p&gt;
&lt;p&gt;www.3igroup.com/|&lt;br /&gt;
www.abbeynational.co.uk/|Server: IBM_HTTP_Server&lt;br /&gt;
www.alliance-leicester.co.uk/|Server: Microsoft-&lt;span class="caps"&gt;IIS&lt;/span&gt;/6.0&lt;br /&gt;
www.alliance-unichem.com/|Server: Apache&lt;br /&gt;
www.allieddomecqplc.com/|Server: Apache/1.3.27 (Unix)&lt;br /&gt;
www.amersham.co.uk/|Server: Apache/2.0.52 (CentOS) mod_perl/1.99_16 Perl/v5.8.5 &lt;span class="caps"&gt;DAV&lt;/span&gt;/2 mod_python/3.1.3 Python/2.3.4 mod_ssl/2.0.52 OpenSSL/0.9.7a&lt;br /&gt;
www.amvescap.com/|Server: Apache&lt;br /&gt;
www.angloamerican.co.za/|Server: Microsoft-&lt;span class="caps"&gt;IIS&lt;/span&gt;/5.0&lt;br /&gt;
www.abf.co.uk/|Server: Microsoft-&lt;span class="caps"&gt;IIS&lt;/span&gt;/6.0&lt;br /&gt;
www.astrazeneca.com/|Server: Microsoft-&lt;span class="caps"&gt;IIS&lt;/span&gt;/5.0&lt;br /&gt;
www.aviva.com/|Server: Microsoft-&lt;span class="caps"&gt;IIS&lt;/span&gt;/6.0&lt;br /&gt;
www.baa.co.uk/|Server: Apache&lt;br /&gt;
www.baesystems.co.uk/|Server: Microsoft-&lt;span class="caps"&gt;IIS&lt;/span&gt;/6.0&lt;br /&gt;
www.barclays.co.uk/|Server: Apache&lt;br /&gt;
www.bgplc.com/|Server: Apache/1.3.26 (Unix)&lt;br /&gt;
www.billiton.com/|&lt;br /&gt;
www.boc.com/|Server: Microsoft-&lt;span class="caps"&gt;IIS&lt;/span&gt;/5.0&lt;br /&gt;
www.boots.co.uk/|Server: Apache&lt;br /&gt;
www.bpamoco.com/|Server: Web Server&lt;br /&gt;
www.bbg.co.uk/|&lt;br /&gt;
www.british-airways.com/|Server: Apache&lt;br /&gt;
www.bat.com/|Server: Lotus-Domino&lt;br /&gt;
www.britishland.com/|Server: Microsoft-&lt;span class="caps"&gt;IIS&lt;/span&gt;/6.0&lt;br /&gt;
www.sky.co.uk/|Server: IBM_HTTP_SERVER/1.3.19  Apache/1.3.20 (Unix)&lt;br /&gt;
www.bt.com/|Server: BT Web Server&lt;br /&gt;
www.bunzl.com/|Server: Apache/1.3.33 (Debian &lt;span class="caps"&gt;GNU&lt;/span&gt;/Linux) mod_throttle/3.1.2 &lt;span class="caps"&gt;PHP&lt;/span&gt;/4.3.10-16&lt;br /&gt;
www.cadburyschweppes.com/|Server: Microsoft-&lt;span class="caps"&gt;IIS&lt;/span&gt;/6.0&lt;br /&gt;
www.canarywharf.com/|Server: Microsoft-&lt;span class="caps"&gt;IIS&lt;/span&gt;/6.0&lt;br /&gt;
www.capitagroup.co.uk/|&lt;br /&gt;
www.centrica.co.uk/|Server: Microsoft-&lt;span class="caps"&gt;IIS&lt;/span&gt;/6.0&lt;br /&gt;
www.granada.co.uk/|Server: Apache/1.3.27 (Unix)  (Red-Hat/Linux)&lt;br /&gt;
www.dmgt.co.uk/|Server: Apache/2.0.52 (Red Hat)&lt;br /&gt;
www.diageo.com/|Server: Microsoft-&lt;span class="caps"&gt;IIS&lt;/span&gt;/6.0&lt;br /&gt;
www.dixons.com/|Server: Apache/2.0.59&lt;br /&gt;
www.emap.com/|Server: Microsoft-&lt;span class="caps"&gt;IIS&lt;/span&gt;/6.0&lt;br /&gt;
www.exel.com/|Server: Microsoft-&lt;span class="caps"&gt;IIS&lt;/span&gt;/6.0&lt;br /&gt;
www.friendsprovident.co.uk/|Server: &lt;span class="caps"&gt;FPWS&lt;/span&gt;/1.0&lt;br /&gt;
www.gallaher-group.com/|Server: Microsoft-&lt;span class="caps"&gt;IIS&lt;/span&gt;/6.0&lt;br /&gt;
www.gknplc.com/|Server: Microsoft-&lt;span class="caps"&gt;IIS&lt;/span&gt;/6.0&lt;br /&gt;
www.gsk.com/|Server: IBM_HTTP_Server&lt;br /&gt;
www.granadamedia.com/|Server: Microsoft-&lt;span class="caps"&gt;IIS&lt;/span&gt;/6.0&lt;br /&gt;
www.gusplc.com/|&lt;br /&gt;
www.hanson.co.uk/|Server: Apache/2.0.54 (Debian &lt;span class="caps"&gt;GNU&lt;/span&gt;/Linux) &lt;span class="caps"&gt;DAV&lt;/span&gt;/2 &lt;span class="caps"&gt;SVN&lt;/span&gt;/1.2.3 &lt;span class="caps"&gt;PHP&lt;/span&gt;/5.1.2-1&lt;br /&gt;
www.hays.co.uk/|&lt;br /&gt;
www.hbosplc.com/|Server: Microsoft-&lt;span class="caps"&gt;IIS&lt;/span&gt;/6.0&lt;br /&gt;
www.hiltongroup.com/|Server: Apache/1.3.33 (Debian &lt;span class="caps"&gt;GNU&lt;/span&gt;/Linux) &lt;span class="caps"&gt;PHP&lt;/span&gt;/4.4.2-0.dotdeb.1 mod_perl/1.29&lt;br /&gt;
www.hsbc.com/|Server: IBM_HTTP_Server&lt;br /&gt;
www.ici.com/|Server: Microsoft-&lt;span class="caps"&gt;IIS&lt;/span&gt;/6.0&lt;br /&gt;
www.imperial-tobacco.com/|Server: Microsoft-&lt;span class="caps"&gt;IIS&lt;/span&gt;/6.0&lt;br /&gt;
www.invensys.com/|Server: Microsoft-&lt;span class="caps"&gt;IIS&lt;/span&gt;/6.0&lt;br /&gt;
www.matthey.com/|Server: Apache/1.3.29 (Linux/&lt;span class="caps"&gt;SUSE&lt;/span&gt;) &lt;span class="caps"&gt;PHP&lt;/span&gt;/4.3.4 mod_python/2.7.10 Python/2.3.3 mod_perl/1.29 mod_jk/1.2.15&lt;br /&gt;
www.kingfisher.co.uk/|Server: Microsoft-&lt;span class="caps"&gt;IIS&lt;/span&gt;/6.0&lt;br /&gt;
www.landsecurities.co.uk/|Server: Microsoft-&lt;span class="caps"&gt;IIS&lt;/span&gt;/5.0&lt;br /&gt;
www.legal-and-general.co.uk/|Server: IBM_HTTP_Server/6.0.1 Apache/2.0.47 (Win32)&lt;br /&gt;
www.libertyinternational.uk.com/|Server: Apache-Coyote/1.1&lt;br /&gt;
www.lloydstsbgroup.com/|&lt;br /&gt;
www.mangroupplc.com/|Server: Microsoft-&lt;span class="caps"&gt;IIS&lt;/span&gt;/6.0&lt;br /&gt;
www.marks-and-spencer.com/|Server: Server&lt;br /&gt;
www.mm02.com/|Server: Apache/2.0.49 (Unix) &lt;span class="caps"&gt;PHP&lt;/span&gt;/4.3.9&lt;br /&gt;
www.morrisons.plc.uk/|&lt;br /&gt;
www.ngc.co.uk/|&lt;br /&gt;
www.next.co.uk/|&lt;br /&gt;
www.northernrock.co.uk/|Server: Microsoft-&lt;span class="caps"&gt;IIS&lt;/span&gt;/6.0&lt;br /&gt;
www.oldmutual.com/|Server: Apache-Coyote/1.1&lt;br /&gt;
www.p-and-o.com/|Server: Oracle-Application-Server-10g/9.0.4.1.0 Oracle-&lt;span class="caps"&gt;HTTP&lt;/span&gt;-Server OracleAS-Web-Cache-10g/9.0.4.1.0 (N)&lt;br /&gt;
www.pearson.com/|Server: Microsoft-&lt;span class="caps"&gt;IIS&lt;/span&gt;/6.0&lt;br /&gt;
www.prudential.co.uk/|&lt;br /&gt;
www.reckitt.com/|Server: Microsoft-&lt;span class="caps"&gt;IIS&lt;/span&gt;/6.0&lt;br /&gt;
www.reed.com/|Server: Apache/2.2.6 (Fedora)&lt;br /&gt;
www.rentokil-initial.com/|Server: Apache&lt;br /&gt;
www.reuters.com/|Server: Apache&lt;br /&gt;
www.rexam.co.uk/|&lt;br /&gt;
www.riotinto.com/|Server: Microsoft-&lt;span class="caps"&gt;IIS&lt;/span&gt;/6.0&lt;br /&gt;
www.rolls-royce.com/|Server: Apache&lt;br /&gt;
www.royal-and-sunalliance.com/|Server: Apache-Coyote/1.1&lt;br /&gt;
www.royalbankscot.co.uk/|Server: Microsoft-&lt;span class="caps"&gt;IIS&lt;/span&gt;/6.0&lt;br /&gt;
www.sabmiller.com/|Server: Microsoft-&lt;span class="caps"&gt;IIS&lt;/span&gt;/6.0&lt;br /&gt;
www.safeway.com/|Server: Microsoft-&lt;span class="caps"&gt;IIS&lt;/span&gt;/5.0&lt;br /&gt;
www.sage.com/|Server: Microsoft-&lt;span class="caps"&gt;IIS&lt;/span&gt;/5.0&lt;br /&gt;
www.sainsburys.co.uk/|Server: Microsoft-&lt;span class="caps"&gt;IIS&lt;/span&gt;/6.0&lt;br /&gt;
www.schroders.com/|Server: Microsoft-&lt;span class="caps"&gt;IIS&lt;/span&gt;/6.0&lt;br /&gt;
www.scottish-newcastle.com/|&lt;br /&gt;
www.scottish-southern.co.uk/|Server: Microsoft-&lt;span class="caps"&gt;IIS&lt;/span&gt;/6.0&lt;br /&gt;
www.scottishpower.plc.uk/|&lt;br /&gt;
www.severn-trent.com/|Server: Apache&lt;br /&gt;
www.shell.com/|Server: Sun-&lt;span class="caps"&gt;ONE&lt;/span&gt;-Web-Server/6.1&lt;br /&gt;
www.shiregroup.com/|Server: Apache-Coyote/1.1&lt;br /&gt;
www.sixcontinents.com/|&lt;br /&gt;
www.smith-nephew.com/|Server: Apache/2.0.49 (Unix) mod_perl/1.99_13 Perl/v5.8.4 mod_ssl/2.0.49 OpenSSL/0.9.7d &lt;span class="caps"&gt;DAV&lt;/span&gt;/2 mod_jk2/2.0.2&lt;br /&gt;
www.smiths-industries.com/|Server: Microsoft-&lt;span class="caps"&gt;IIS&lt;/span&gt;/6.0&lt;br /&gt;
www.stanchart.com/|Server: Apache&lt;br /&gt;
www.tesco.co.uk/|&lt;br /&gt;
www.tomkins.co.uk/|&lt;br /&gt;
www.unilever.com/|Server: Microsoft-&lt;span class="caps"&gt;IIS&lt;/span&gt;/5.0&lt;br /&gt;
www.unitedutilities.com/|Server: Microsoft-&lt;span class="caps"&gt;IIS&lt;/span&gt;/6.0&lt;br /&gt;
www.vodaphone.com/|Server: Apache/2.0.55 (Unix)&lt;br /&gt;
www.whitbread.co.uk/|&lt;br /&gt;
www.wolseley.com/|Server: Microsoft-&lt;span class="caps"&gt;IIS&lt;/span&gt;/6.0&lt;br /&gt;
www.wpp.com/|Server: Microsoft-&lt;span class="caps"&gt;IIS&lt;/span&gt;/6.0&lt;br /&gt;
www.xstrata.com/|Server: Apache&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/JWY4OZbbT_o" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2008/01/19/ftse-100-web-servers.html</feedburner:origLink></entry>
 
 <entry>
   <title>Arc Likely To Be Open-Sourced This Winter</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/U9s7YQHydZo/arc-likely-to-be-open-sourced-this-winter.html" />
   <updated>2008-01-15T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2008/01/15/arc-likely-to-be-open-sourced-this-winter</id>
   <content type="html">&lt;p&gt;&amp;#8220;Btw, will Arc ever be open-sourced?&lt;br /&gt;
I&amp;#8217;d love to just sudo apt-get install arc in this lifetime.&amp;#8221;&lt;/p&gt;
&lt;p&gt;&amp;#8220;For once, I will answer this question: yes, soon. This winter, I hope.&amp;#8221;&lt;/p&gt;
&lt;p&gt;This one line from Paul Graham is possibly the most interesting tech news so far this year&lt;/p&gt;
&lt;p&gt;Let&amp;#8217;s hope it lives up to the &lt;a href="http://news.ycombinator.com/item?id=98360"&gt;massive expectation&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/U9s7YQHydZo" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2008/01/15/arc-likely-to-be-open-sourced-this-winter.html</feedburner:origLink></entry>
 
 <entry>
   <title>Build a Silverlight Media Player</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/Y1GJtckkqDw/build-a-silverlight-media-player.html" />
   <updated>2008-01-10T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2008/01/10/build-a-silverlight-media-player</id>
   <content type="html">&lt;p&gt;My article &lt;a href="http://www.regdeveloper.co.uk/2008/01/09/silverlight_media_application_service/"&gt;Build a Silverlight media player&lt;/a&gt; is live on RegDeveloper.&lt;/p&gt;
&lt;p&gt;&lt;a href='http://silverlight.services.live.com/invoke/7630/ChildOfMine/iframe.html' title='Helen Yousaf Media Player'&gt;&lt;img src='http://www.robblackwell.org.uk/wp-content/uploads/2008/01/helen.png' alt='Helen Yousaf Media Player' /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;It explains how to use Expression Blend and Visual Studio to build a simple, but realistic Silverlight application and host it in the Silverlight Streaming Service by Windows Live.&lt;/p&gt;
&lt;p&gt;Thanks to &lt;a href="http://www.helenyousaf.co.uk/"&gt;Helen Yousaf&lt;/a&gt; for permission to use her copyright material in the application.&lt;/p&gt;
&lt;p&gt;My brother &lt;a href="http://www.obrrecords.co.uk/?page_id=19"&gt;Peter Blackwell&lt;/a&gt; is a session musician; he plays guitar on the track.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/Y1GJtckkqDw" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2008/01/10/build-a-silverlight-media-player.html</feedburner:origLink></entry>
 
 <entry>
   <title>Have you got a Map Mate?</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/8NP4ex1KqNU/have-you-got-a-map-mate.html" />
   <updated>2007-12-17T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2007/12/17/have-you-got-a-map-mate</id>
   <content type="html">&lt;p&gt;Richard&amp;#8217;s fatastic MapMate application is now &lt;a href="http://apps.facebook.com/mapmate/"&gt;live on Facebook&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;It&amp;#8217;s also the featured site on &lt;a href="http://www.viawindowslive.com/Gallery.aspx"&gt;Via Windows Live&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;MapMate is a new way to update your Facebook status. You can plot your current location and set your status anywhere using Microsoft&amp;#8217;s Virtual Earth.&lt;/p&gt;
&lt;p&gt;Try it now &lt;a href="http://apps.facebook.com/mapmate/"&gt;http://apps.facebook.com/mapmate/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src='http://www.robblackwell.org.uk/wp-content/uploads/2007/12/matmate.png' alt='MapMate in Facebook' /&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/8NP4ex1KqNU" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2007/12/17/have-you-got-a-map-mate.html</feedburner:origLink></entry>
 
 <entry>
   <title>Volta: Are the Materials in the Room Good Enough?</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/Jyxu1noFDms/volta-are-the-materials-in-the-room-good-enough.html" />
   <updated>2007-12-09T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2007/12/09/volta-are-the-materials-in-the-room-good-enough</id>
   <content type="html">&lt;p&gt;I had a quick look at &lt;a href="http://labs.live.com/volta/"&gt;Microsoft Live Labs Volta&lt;/a&gt; today.&lt;/p&gt;
&lt;p&gt;Described as â€œweb development using only the materials in the roomâ€?, it allows you to build multi tier web applications using a consistent programming model; only later do you say how the application is split across the tiers and exactly what kind of client technology you want.&lt;/p&gt;
&lt;p&gt;Volta includes some very interesting demos, most notably the â€œVirtual Earth &lt;span class="caps"&gt;SDK&lt;/span&gt; &amp;#8211; Volta Styleâ€?. All the code is written in C# (not JavaScript!) and it seems like a really interesting abstraction. Performance seems to be a problem on my rural broadband link â€“ start up time seems slow for some reason.&lt;/p&gt;
&lt;p&gt;I went on to read Erik Meijer&amp;#8217;s &lt;span class="caps"&gt;OOPSLA&lt;/span&gt; 2007 Paper, &amp;#8220;Democratizing the Cloud&amp;#8221; and that got me thinking about where all this is all going&amp;#8230;&lt;/p&gt;
&lt;p&gt;Erik is absolutely right about current programming models being &amp;#8220;Gratuitously hard&amp;#8221; and he raises some good points:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;We need a common language and libraries across all the tiers.&lt;/li&gt;
	&lt;li&gt;Tier partitioning decisions need to be reversible and easy to change.&lt;/li&gt;
&lt;li&gt;Just like Visual Basic democratised Windows programming, it would be great to democratise web programming for &amp;#8220;ordinary programmers&amp;#8221;.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;I think there are some practical problems on the client tier though &amp;#8211; Silverlight apps and &lt;span class="caps"&gt;AJAX&lt;/span&gt; apps have very different capabilities â€“ how can we avoid lowest common denominator interfaces?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I still think that &lt;span class="caps"&gt;AJAX&lt;/span&gt; + lots of JavaScript is a short to medium term hack, which we ought to find a way of stopping â€“ weâ€™ll regret it in a few years.&lt;/li&gt;
&lt;li&gt;&lt;span class="caps"&gt;ASP&lt;/span&gt;.&lt;span class="caps"&gt;NET&lt;/span&gt; Web forms already tried to democratise web development by allowing Windows forms programmers to put down buttons and define event handlers on web pages â€“ it doesnâ€™t really work. Can Volta really abstract away pesky issues like the page lifecycle?&lt;/li&gt;
&lt;li&gt;Should we really be using JavaScript as a compiler target?&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Also, if weâ€™re going to choose a consistent language and model across all the tiers, is C# and &lt;span class="caps"&gt;CLR&lt;/span&gt; the right choice? Shouldnâ€™t we be looking for something with better support for distribution and parallelism? A functional programming model, maybe? Something that would allow us to use multiple processors / cores in each of the tiers too?&lt;/p&gt;
&lt;p&gt;I think we need to recognise that whilst the Web browser is ubiquitous, it is also &amp;#8220;broken&amp;#8221;. Itâ€™s just not designed for the kind of rich, interactive applications we want to build today. Conventional wisdom seems to be that we have to work with what we have and hack around it. I&amp;#8217;m not so sure. There has been huge and rapid adoption of other web-oriented applications including iTunes, Flash Player and Silverlight. Maybe we do have a second chance on the client?&lt;/p&gt;
&lt;p&gt;If we did have a clean sheet of paper, what would the solution look like then?&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/Jyxu1noFDms" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2007/12/09/volta-are-the-materials-in-the-room-good-enough.html</feedburner:origLink></entry>
 
 <entry>
   <title>TechEd Developers 2007 Summary</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/jFgs65NII0c/teched-developers-2007-summary.html" />
   <updated>2007-11-10T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2007/11/10/teched-developers-2007-summary</id>
   <content type="html">&lt;p&gt;I didn&amp;#8217;t make it to Barcelona until Tuesday so I wasn&amp;#8217;t at the Keynote. By all accounts I didn&amp;#8217;t miss much. The good news was that Microsoft will release Visual Studio 2008 and the .&lt;span class="caps"&gt;NET&lt;/span&gt; Framework 3.5 by the end of November 2007.&lt;/p&gt;
&lt;p&gt;As is often the case, TechEd was as much about catching up with people as the sessions themselves. It was good to go out on the Sidra with, amongst others &lt;a href="http://blogs.conchango.com/richardgriffin/default.aspx"&gt;Richard Griffin&lt;/a&gt;, Una Wlash, Jennifer Forsythe and &lt;a href="http://johanneskebeck.spaces.live.com/default.aspx"&gt;Johannes Kebeck&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src='http://www.robblackwell.org.uk/wp-content/uploads/2007/11/sagrada.jpg' alt='La Sagrada Família' /&gt;&lt;/p&gt;
&lt;p&gt;Lots of interesting stuff, but here are some thoughts from my homeward bound plane journey:&lt;/p&gt;
&lt;p&gt;&lt;span class="caps"&gt;ASP&lt;/span&gt;.&lt;span class="caps"&gt;NET&lt;/span&gt; &lt;span class="caps"&gt;MVC&lt;/span&gt; will be out as a &lt;span class="caps"&gt;CTP&lt;/span&gt; soon and is likely to be rolled into the mainstream product by middle of next year. I think that having a very extensible Model View Controller pattern will allow for much more of an engineering approach to &lt;span class="caps"&gt;ASP&lt;/span&gt;.&lt;span class="caps"&gt;NET&lt;/span&gt; apps. I&amp;#8217;ve always thought that Web Forms is the wrong abstraction. I think this framework will fix all that, and lead to more maintainable and extensible web apps. A big issue is how to support existing web controls. To be honest I think they should ditch those and start again. Anybody considering the jump to Ruby on Rails might like to take a look at this and reconsider.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ve done some fun things with &lt;span class="caps"&gt;XSLT&lt;/span&gt; in the past, but building XSLs doesn&amp;#8217;t come naturally to me. Dave McMahon&amp;#8217;s talk has inspired me to think about it some more. To be honest the talk started out looking like it was going to be rather dull, but those attendees that persevered were rewarded with some very cool demos and code. I didn&amp;#8217;t know that Visual Studio could debug &lt;span class="caps"&gt;XSLT&lt;/span&gt; and I was surprised at the opportunities for hacking &lt;span class="caps"&gt;XSLT&lt;/span&gt; from .&lt;span class="caps"&gt;NET&lt;/span&gt;. Generating &lt;span class="caps"&gt;XAML&lt;/span&gt; using &lt;span class="caps"&gt;XSLT&lt;/span&gt; makes an awful lot of sense.&lt;/p&gt;
&lt;p&gt;Andy Wigley gave us a comprehensive tour of Windows Mobile 6 from a programmerâ€™s perspective. The tool support in VS2008 all seemed to be much improved. Iâ€™m tempted to do more with Mobile, but also reluctant to invest too much time and effort. Surely someday soon, we&amp;#8217;ll get full blown .&lt;span class="caps"&gt;NET&lt;/span&gt; &lt;span class="caps"&gt;CLR&lt;/span&gt; . The hardware is getting rapidly more powerful. So is it worth waiting rather than struggling with missing features? I guess I&amp;#8217;m just frustrated that I can&amp;#8217;t port LSharp to the mobile platform because of missing Reflection features. Sun seem to have dropped their Mobile Java in favour of full blown &lt;span class="caps"&gt;JVM&lt;/span&gt;. When will Microsoft do the same?&lt;/p&gt;
&lt;p&gt;The .&lt;span class="caps"&gt;NET&lt;/span&gt; Micro Framework looks very cool. I like the idea that a software guy like me could start prototyping hardware devices without much recourse to a soldering iron.&lt;/p&gt;
&lt;p&gt;Silverlight seems to be getting all the glory, but maybe we&amp;#8217;ll see more &lt;span class="caps"&gt;WPF&lt;/span&gt; apps following the fantastic demos by the &lt;a href="http://www.blendables.com/"&gt;Blendables &lt;/a&gt;guys.&lt;/p&gt;
&lt;p&gt;&lt;span class="caps"&gt;WCF&lt;/span&gt; seems to bring a whole lot of simplicity to the communications stack and now, with support for &lt;span class="caps"&gt;REST&lt;/span&gt; and for &lt;span class="caps"&gt;AJAX&lt;/span&gt; end points I think we&amp;#8217;re going to be using more of it.&lt;/p&gt;
&lt;p&gt;If time was more plentiful Iâ€™d certainly be thinking about building a &lt;span class="caps"&gt;LISP&lt;/span&gt; or LSharp &lt;span class="caps"&gt;IDE&lt;/span&gt; using &lt;a href="http://msdn2.microsoft.com/en-us/vstudio/aa700819.aspx"&gt;Visual Studio Extensibility&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Pat Helland gave an interesting talk entitled &amp;#8220;The Irresistible Forces Meet the Moveable Objects&amp;#8221;. He discussed his thoughts on the future and touched on the many-core (multi core) problem. He made some interesting predictions about future hardware (Disk is Tape, Flash is disk, Tape is dead) and about future data centres. I liked the fact that he tried hard to measure, and provide statistics for, what he was talking about. (E.g. only 15% of the cost of a data centre is the building &amp;#8211; 40% is power). It was the first time I&amp;#8217;d heard about Sun&amp;#8217;s data centre in a 20-foot shipping container. I still think multi core is a huge problem. There are lots of things going on at Microsoft to look at it â€“ Transactional Memory, Joins library, F# etc. but I didn&amp;#8217;t find anybody who had the big picture.&lt;/p&gt;
&lt;p&gt;&lt;span class="caps"&gt;LINQ&lt;/span&gt; is undoubtedly powerful, but I canâ€™t help wondering about how C# and VB are evolving to add new language features. I was interested in Claudio Russo&amp;#8217;s talk on C Omega and joins etc, but here we are hacking the language again. Perhaps we should be looking at the original programmable programming language (&lt;span class="caps"&gt;LISP&lt;/span&gt;) and seeing if there is a way to add Macros to C#?&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/jFgs65NII0c" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2007/11/10/teched-developers-2007-summary.html</feedburner:origLink></entry>
 
 <entry>
   <title>Sagrada Familia Magic Square</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/D0axWVL8OJo/sagrada-familia-magic-square.html" />
   <updated>2007-11-10T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2007/11/10/sagrada-familia-magic-square</id>
   <content type="html">&lt;p&gt;Did any TechEders notice this magic square at La Sagrada Familia in Barcelona this week? It&amp;#8217;s on the wall to the left of the front entrance.&lt;/p&gt;
&lt;p&gt;&lt;img src='http://www.robblackwell.org.uk/wp-content/uploads/2007/11/magic.jpg' alt='Magic Square' /&gt;&lt;/p&gt;
&lt;p&gt;Anybody know the significance of 33?&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/D0axWVL8OJo" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2007/11/10/sagrada-familia-magic-square.html</feedburner:origLink></entry>
 
 <entry>
   <title>Get started with Silverlight</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/I5PEjngCIzU/get-started-with-silverlight.html" />
   <updated>2007-11-06T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2007/11/06/get-started-with-silverlight</id>
   <content type="html">&lt;p&gt;&lt;img src='http://www.robblackwell.org.uk/wp-content/uploads/2007/11/regdeveloper.png' alt='The Register Developer' /&gt;&lt;/p&gt;
&lt;p&gt;My first article for &lt;a href="http://www.regdeveloper.co.uk"&gt;Reg Developer&lt;/a&gt;  entitled &amp;#8220;Get started with Silverlight&amp;#8221; has just been published &lt;a href="http://www.regdeveloper.co.uk/2007/11/05/get_started_with_silverlight/"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m hoping to do some more tutorial style pieces about Microsoft related technologies over the coming months.&lt;/p&gt;
&lt;p&gt;My thanks to Gavin Clarke for his encouragement.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/I5PEjngCIzU" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2007/11/06/get-started-with-silverlight.html</feedburner:origLink></entry>
 
 <entry>
   <title>Redmond Racers</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/wHPAvPQbVBo/redmond-racers.html" />
   <updated>2007-11-04T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2007/11/04/redmond-racers</id>
   <content type="html">&lt;p&gt;It wasn&amp;#8217;t all work on my trip to Microsoft last week.&lt;/p&gt;
&lt;p&gt;&lt;img src='http://www.robblackwell.org.uk/wp-content/uploads/2007/11/redmond.jpg' alt='Redmond Racers' /&gt;&lt;/p&gt;
&lt;p&gt;Actually, it was a great opportunity to catch up with various folks from Windows Live, Virtual Earth, Photosynth and &lt;span class="caps"&gt;ASP&lt;/span&gt;.&lt;span class="caps"&gt;NET&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;I think Mix 08 is going to be pretty exciting &amp;#8230;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/wHPAvPQbVBo" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2007/11/04/redmond-racers.html</feedburner:origLink></entry>
 
 <entry>
   <title>Microsoft Windows Live Quick Apps Campaign</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/W0Mekwzzrmg/microsoft-windows-live-quick-apps-campaign.html" />
   <updated>2007-10-24T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2007/10/24/microsoft-windows-live-quick-apps-campaign</id>
   <content type="html">&lt;p&gt;Microsoft UK has launched a new campaign to raise awareness of the Windows Live Quick Applications.&lt;/p&gt;
&lt;p&gt;See &lt;a href="http://msdn2.microsoft.com/en-gb/live/bb880951.aspx"&gt;http://msdn2.microsoft.com/en-gb/live/bb880951.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;It&amp;#8217;s certainly having a big impact on downloads!&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/W0Mekwzzrmg" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2007/10/24/microsoft-windows-live-quick-apps-campaign.html</feedburner:origLink></entry>
 
 <entry>
   <title>OSI Approves Microsoft License Submissions</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/1Jpia-u7hBY/osi-approves-microsoft-license-submissions.html" />
   <updated>2007-10-16T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2007/10/16/osi-approves-microsoft-license-submissions</id>
   <content type="html">&lt;p&gt;The &lt;span class="caps"&gt;OSI&lt;/span&gt; has &lt;a href="http://opensource.org/node/207"&gt;formally approved&lt;/a&gt; the Microsoft Public License (MS-PL).&lt;/p&gt;
&lt;p&gt;Perhaps now I wont keep getting &amp;#8220;corrected&amp;#8221; by Microsoft people when I say that Windows Live Quick apps are available as open source. ;-)&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/1Jpia-u7hBY" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2007/10/16/osi-approves-microsoft-license-submissions.html</feedburner:origLink></entry>
 
 <entry>
   <title>Slides from Mix UK 07</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/LP967fCaaZY/slides-from-mix-uk-07.html" />
   <updated>2007-09-15T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2007/09/15/slides-from-mix-uk-07</id>
   <content type="html">&lt;p&gt;My slide deck from Mix UK 07 is available for download &lt;a href="http://cid-2bace20a0ab578fb.skydrive.live.com/self.aspx/Slides/WLQA%20MIX%20UK%2007.ppt"&gt;here &lt;/a&gt; &amp;#8211; Out of interest, the PowerPoint file is hosted on &lt;a href="http://skydrive.live.com/"&gt;Windows Live SkyDrive Beta &lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src='http://www.robblackwell.org.uk/wp-content/uploads/2007/09/mix.jpg' alt='Windows Live Quick Apps Presentation at Mix UK' /&gt;&lt;/p&gt;
&lt;p&gt;Here are the resources / links that I referred to in the talk:&lt;/p&gt;
&lt;p&gt;dev.live.com/quickapps&lt;br /&gt;
www.codeplex.com/liveinabox&lt;br /&gt;
www.popfly.com&lt;br /&gt;
www.easygps.com&lt;br /&gt;
www.sportsdo.net&lt;br /&gt;
www.conchango.com&lt;br /&gt;
www.liveside.net&lt;br /&gt;
www.viawindowslive.com&lt;/p&gt;
&lt;p&gt;I understand that some follow up materials will be posted to &lt;a href="http://www.microsoft.com/uk/mix07/"&gt;www.microsoft.com/uk/mix07/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Great conference &amp;#8211; worth attending just to see &lt;a href="http://research.microsoft.com/~simonpj/"&gt;Simon Peyton Jones&lt;/a&gt; tackling one of the most important problems in Computer Science today.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/LP967fCaaZY" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2007/09/15/slides-from-mix-uk-07.html</feedburner:origLink></entry>
 
 <entry>
   <title>Mix:UK 07</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/edU4ikO4FzQ/mixuk-07.html" />
   <updated>2007-09-06T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2007/09/06/mixuk-07</id>
   <content type="html">&lt;p&gt;&lt;img src='http://www.robblackwell.org.uk/wp-content/uploads/2007/09/mixuk.png' alt='Mix UK 2007' /&gt;&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ve been working on last minute preparations for Mix UK, London next week.&lt;/p&gt;
&lt;p&gt;If you haven&amp;#8217;t already booked, you are probably too late &amp;#8211; the event is now sold out. If you are coming, you are probably &lt;a href="http://blogs.msdn.com/ianm/archive/2007/08/23/what-are-we-giving-away-at-mix-uk.aspx"&gt;in for a treat&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;My session &amp;#8220;Building Web Solutions using Windows Live Quick applications&amp;#8221; is on Wednesday at either 14:00 or 15:15 depending on which particular Microsoft information you happen to be reading &amp;#8211; presumably, all will become clear on the day.&lt;/p&gt;
&lt;p&gt;If you are a hardcore Windows Live developer, I recommend that you skip my session and go and see Danny Thorpe and Angus Logan&amp;#8217;s two part &amp;#8220;Building next generation web applications using Windows Live Services&amp;#8221;.&lt;/p&gt;
&lt;p&gt;If you want to see some Windows Live demos and simple code samples to get you started, then &lt;a href="http://dev.live.com/quickapps/"&gt;Live Quick Apps&lt;/a&gt; is for you.&lt;/p&gt;
&lt;p&gt;Una Walsh from &lt;a href="http://www.conchango.com"&gt;Conchango&lt;/a&gt; will be joining me for the demos. Una was responsible for the design, user experience and much of the creativity on the Quick Apps.&lt;/p&gt;
&lt;p&gt;We&amp;#8217;re also hoping that Jonathan Greensted will show some code from his TrackMe product &amp;#8230; based on Windows Live Quick Apps.&lt;/p&gt;
&lt;p&gt;For more information , &lt;a href="http://www.microsoft.com/uk/mix07/"&gt;see http://www.microsoft.com/uk/mix07&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/edU4ikO4FzQ" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2007/09/06/mixuk-07.html</feedburner:origLink></entry>
 
 <entry>
   <title>Energy Trading Robots</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/JjBOtOkvyqE/energy-trading-robots.html" />
   <updated>2007-09-03T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2007/09/03/energy-trading-robots</id>
   <content type="html">&lt;p&gt;&lt;a href='http://www.robblackwell.org.uk/wp-content/uploads/2007/09/power.jpg' title='Power Lines'&gt;&lt;img src='http://www.robblackwell.org.uk/wp-content/uploads/2007/09/power.jpg' alt='Power Lines' /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ve just finished a really interesting project for a big player in the UK Energy sector, working with the guys from &lt;a href="http://www.planlogic.com"&gt;Planlogic &lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Hamish is an expert in trading strategy and in particular, &lt;a href="http://www.trayport.com/"&gt;Trayport GlobalVision&lt;/a&gt; and the &lt;span class="caps"&gt;RORC&lt;/span&gt; trading exchange from Reuters &amp;#8211; he came up with the clever algorithms, which I then helped to codify. We&amp;#8217;ve now got some nice abstractions and what seems to be a good, reusable framework implemented in .&lt;span class="caps"&gt;NET&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;Basically we built an automated trading system where a trader can set up a price book with a variety of limit orders and associated trading rules. These prices are hidden from the market, but the software we wrote constantly monitors the market changes and hits prices if the rules match. Obviously, time-to-trade is a key measure so there is a real challenge in balancing the needs of readable / maintainable / bugfree code versus high performance and fast execution. The code had to be good too &amp;#8211; mistakes could be costly, so we&amp;#8217;re using some automated testing based on NUnit.&lt;/p&gt;
&lt;p&gt;Energy trading is still relatively young in the UK (complete liberalisation didn&amp;#8217;t occur until the late nineties) and so there are still lots of opportunities for decision support technology. I think we&amp;#8217;ll see lots more &amp;#8220;robots&amp;#8221; in the coming years and I wonder how that will play out. Will energy trading just become a competition to see who can build the fastest or cleverest robot?&lt;/p&gt;
&lt;p&gt;Somehow, I dont think we&amp;#8217;ll ever replace human beings &amp;#8211; there are still many things that we cant capture in code &amp;#8211; common sense and gut-feel being good examples. Also, I think that humans are still probably the best market makers.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/JjBOtOkvyqE" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2007/09/03/energy-trading-robots.html</feedburner:origLink></entry>
 
 <entry>
   <title>Angus gets slashdotted!</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/jDBV6sNapQs/angus-gets-slashdotted.html" />
   <updated>2007-08-17T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2007/08/17/angus-gets-slashdotted</id>
   <content type="html">&lt;p&gt;Announcement of the new Windows Live Id Web Authentication &lt;span class="caps"&gt;API&lt;/span&gt; is on Slashdot. &lt;a href="http://developers.slashdot.org/article.pl?sid=07/08/17/0042224"&gt;http://developers.slashdot.org/article.pl?sid=07/08/17/0042224&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/jDBV6sNapQs" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2007/08/17/angus-gets-slashdotted.html</feedburner:origLink></entry>
 
 <entry>
   <title>Windows Live Quick Applications</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/uRW5sj9_sh0/windows-live-quick-applications.html" />
   <updated>2007-07-10T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2007/07/10/windows-live-quick-applications</id>
   <content type="html">&lt;p&gt;Greetings from the &lt;a href="http://www.microsoft.com/Partner/events/wwpartnerconference/"&gt;Microsoft Worldwide Partner Conference&lt;/a&gt;, here in Denver Colorado.&lt;/p&gt;
&lt;p&gt;Today, Microsoft is announcing the first two Windows Live Platform Quick Applications, Contoso University and Contoso Bicycle Club. (This is the thing that&amp;#8217;s been keeping me busy lately!)&lt;/p&gt;
&lt;p&gt;More information &lt;a href="http://partner.live.com/windowslive/GoLiveApps.aspx"&gt;here&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The sites themselves are available at&lt;/p&gt;
&lt;p&gt;&lt;a href="http://contosouniversity.mslivelabs.com/"&gt;http://contosouniversity.mslivelabs.com/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;and&lt;/p&gt;
&lt;p&gt;&lt;a href="http://contosobicycleclub.mslivelabs.com/ "&gt;http://contosobicycleclub.mslivelabs.com/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Dont forget to &lt;a href="http://silverlight.net"&gt;install Silverlight&lt;/a&gt; first.&lt;/p&gt;
&lt;p&gt;Basically these applications demonstrate how you can use Windows Live Services in your own web applications. The great thing is that Microsoft is releasing them under an open source license (&lt;span class="caps"&gt;MSPL&lt;/span&gt;). Source code available on &lt;a href="http://www.codeplex.com/WLQuickApps"&gt;Codeplex&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m speaking as part of ISV011 at 16:30.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/uRW5sj9_sh0" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2007/07/10/windows-live-quick-applications.html</feedburner:origLink></entry>
 
 <entry>
   <title>A Microsoft statement about GPLv3</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/lTIVsaKg6-0/a-microsoft-statement-about-gplv3.html" />
   <updated>2007-07-07T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2007/07/07/a-microsoft-statement-about-gplv3</id>
   <content type="html">&lt;p&gt;&lt;a href="http://www.microsoft.com/presspass/misc/07-05statement.mspx"&gt;http://www.microsoft.com/presspass/misc/07-05statement.mspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;#8220;Microsoft remains committed to working with the open source software community&amp;#8221; as long as they arent using the &lt;span class="caps"&gt;GPL&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;Actually I really wanted to be a lawyer but it turned out that I wasnt smart enough so I had to go into software R&amp;amp;D instead ;-)&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/lTIVsaKg6-0" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2007/07/07/a-microsoft-statement-about-gplv3.html</feedburner:origLink></entry>
 
 <entry>
   <title>Microsoft Most Valuable Professional</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/mhzWoW2mCBE/microsoft-most-valuable-professional.html" />
   <updated>2007-07-02T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2007/07/02/microsoft-most-valuable-professional</id>
   <content type="html">&lt;p&gt;I&amp;#8217;ve just heard that I&amp;#8217;ve received a 2007 &lt;a href="http://mvp.support.microsoft.com/"&gt;Microsoft &lt;span class="caps"&gt;MVP&lt;/span&gt; Award&lt;/a&gt; for &amp;#8220;Windows &amp;#8211; Virtual Earth/MapPoint&amp;#8221; !&lt;/p&gt;
&lt;p&gt;Looks like I&amp;#8217;m buying the beers at lunchtime &amp;#8230;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/mhzWoW2mCBE" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2007/07/02/microsoft-most-valuable-professional.html</feedburner:origLink></entry>
 
 <entry>
   <title>MSR MapCruncher with Commercial Use Terms</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/YN0BkjGx31g/msr-mapcruncher-with-commercial-use-terms.html" />
   <updated>2007-06-27T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2007/06/27/msr-mapcruncher-with-commercial-use-terms</id>
   <content type="html">&lt;p&gt;Microsoft has released a new version of MapCruncher that doesnt have the &amp;#8220;for non commercial use only&amp;#8221; clause in the license.&lt;/p&gt;
&lt;p&gt;At the time of writing, it&amp;#8217;s pretty hard to find from either Live Search or Google, so here is the link.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://research.microsoft.com/research/downloads/details/66596bbd-0444-4ab1-93bc-e41f010a237d/details.aspx"&gt;http://research.microsoft.com/research/downloads/details/66596bbd-0444-4ab1-93bc-e41f010a237d/details.aspx&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/YN0BkjGx31g" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2007/06/27/msr-mapcruncher-with-commercial-use-terms.html</feedburner:origLink></entry>
 
 <entry>
   <title>RNLI Video on Silverlight Streaming</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/6Xf_YW_kSPc/rnli-video-on-silverlight-streaming.html" />
   <updated>2007-06-25T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2007/06/25/rnli-video-on-silverlight-streaming</id>
   <content type="html">&lt;p&gt;Last year, Microsoft commissioned a video of our work with the &lt;span class="caps"&gt;RNLI&lt;/span&gt; on a fishing safety system now known as &lt;span class="caps"&gt;MOB&lt;/span&gt; Guardian.&lt;/p&gt;
&lt;p&gt;Iâ€™ve uploaded the video to the Microsoft Silverlight Streaming Service as a test and you can check it how here.&lt;/p&gt;
&lt;p&gt;&lt;a href='http://silverlight.services.live.com/invoke/7630/RNLI/iframe.html' title='RNLI Video'&gt;&lt;img border="0" src='http://www.robblackwell.org.uk/wp-content/uploads/2007/06/ginger.jpg' alt='RNLI Video' /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You need to &lt;a href="http://silverlight.net/"&gt;install Silverlight&lt;/a&gt; if you haven&amp;#8217;t already done so.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/6Xf_YW_kSPc" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2007/06/25/rnli-video-on-silverlight-streaming.html</feedburner:origLink></entry>
 
 <entry>
   <title>Convert GPX to GeoRSS using XSLT</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/Oj5Sr2ppNkA/convert-gpx-to-georss-using-xslt.html" />
   <updated>2007-06-24T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2007/06/24/convert-gpx-to-georss-using-xslt</id>
   <content type="html">&lt;p&gt;I have a &lt;a href="https://buy.garmin.com/shop/shop.do?pID=173"&gt;Garmin eTrex Legend&lt;/a&gt; handheld &lt;span class="caps"&gt;GPS&lt;/span&gt;. It&amp;#8217;s been in the drawer for the last year or more and I&amp;#8217;ve lost the software and manuals.&lt;/p&gt;
&lt;p&gt;I need to record a track log for an upcoming project, export the track log to the PC and then visualise the route using &lt;a href="http://dev.live.com/virtualearth/sdk/"&gt;Microsoft Virtual Earth&lt;/a&gt;. This turned into an interesting Sunday afternoon hack ..&lt;/p&gt;
&lt;p&gt;1. eTrex instructions easily available from the Garmin site &amp;#8211; why cant all hardware manufacturers do this?&lt;/p&gt;
&lt;p&gt;2. &lt;a href="http://www.easygps.com/"&gt;EasyGPS &lt;/a&gt;comes to the rescue for transferring the tracklog &amp;#8211; It&amp;#8217;s easy to install and set up and within a matter of minutes I have a &lt;span class="caps"&gt;GPX&lt;/span&gt; file (&lt;span class="caps"&gt;GPS&lt;/span&gt; eXchange format).&lt;/p&gt;
&lt;p&gt;3. I need to turn &lt;a href="http://www.topografix.com/gpx.asp"&gt;&lt;span class="caps"&gt;GPX&lt;/span&gt;&lt;/a&gt; into &lt;a href="http://www.georss.org/"&gt;GeoRSS&lt;/a&gt;. Both are &lt;span class="caps"&gt;XML&lt;/span&gt; formats, so an &lt;span class="caps"&gt;XSLT&lt;/span&gt; stylesheet comes to the rescue. &lt;a href='http://www.robblackwell.org.uk/wp-content/uploads/2007/06/gpx2georss.zip' title='gpx2georss.zip'&gt;gpx2georss.zip&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;4. Apply the stylesheet to the &lt;span class="caps"&gt;GPX&lt;/span&gt; file. On a &lt;span class="caps"&gt;UNIX&lt;/span&gt; box or under Windows Cygwin, you can use xsltproc.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;% xsltproc gpx2georss.xsl mytrack.gpx &amp;gt; out.xml&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;I also discovered that you can do it on a Windows command line with the &lt;span class="caps"&gt;MSXSLT&lt;/span&gt; parser available &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=2fb55371-c94e-4373-b0e9-db4816552e41&amp;DisplayLang=en"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;d:&amp;gt; msxsl.exe mytrack.gpx gpx2georss.xsl &amp;gt; out.xml&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;5. Take the out.xml file and plug it into the Virtual Earth control using the modified GeoRSS sample, available from the Virtual Earth Interactive &lt;span class="caps"&gt;SDK&lt;/span&gt; &lt;a href="http://msdn2.microsoft.com/en-us/library/bb429606(d=ide).aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Here are some dog walks as proof that it works &amp;#8230;&lt;/p&gt;
&lt;p&gt;&lt;img src='http://www.robblackwell.org.uk/wp-content/uploads/2007/06/dogwalk.jpeg' alt='DogWalk' /&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/Oj5Sr2ppNkA" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2007/06/24/convert-gpx-to-georss-using-xslt.html</feedburner:origLink></entry>
 
 <entry>
   <title>develop/discover/design</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/MBHOzajk6v4/developdiscoverdesign.html" />
   <updated>2007-06-01T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2007/06/01/developdiscoverdesign</id>
   <content type="html">&lt;p&gt;&lt;img src='http://www.robblackwell.org.uk/wp-content/uploads/2007/06/net164cover130.gif' alt='.Net Magazine' /&gt;&lt;/p&gt;
&lt;p&gt;My Microsoft Virtual Earth tutorial article has been published in this month&amp;#8217;s .net magazine.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.netmag.co.uk/zine/latest-issue/issue164"&gt;http://www.netmag.co.uk/zine/latest-issue/issue164&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/MBHOzajk6v4" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2007/06/01/developdiscoverdesign.html</feedburner:origLink></entry>
 
 <entry>
   <title>Revolutionising the Property Market with Online Mapping Technology</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/UMidZaCh2gY/revolutionising-the-property-market-with-online-mapping-technology.html" />
   <updated>2007-05-17T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2007/05/17/revolutionising-the-property-market-with-online-mapping-technology</id>
   <content type="html">&lt;p&gt;I&amp;#8217;m quoted in the following Microsoft press release about Virtual Earth and its applications.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.microsoft.com/emea/presscentre/pressreleases/VirtualEarthTS_952007.mspx"&gt;http://www.microsoft.com/emea/presscentre/pressreleases/VirtualEarthTS_952007.mspx&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/UMidZaCh2gY" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2007/05/17/revolutionising-the-property-market-with-online-mapping-technology.html</feedburner:origLink></entry>
 
 <entry>
   <title>Microsoft takes on the free world</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/AhwRl3MzgWs/microsoft-takes-on-the-free-world.html" />
   <updated>2007-05-14T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2007/05/14/microsoft-takes-on-the-free-world</id>
   <content type="html">&lt;p&gt;Two weeks ago, I was at &lt;a href="http://www.visitmix.com/"&gt;Mix07 in Las Vegas&lt;/a&gt; at Microsoft&amp;#8217;s invitation, thinking that the world had changed:&lt;/p&gt;
&lt;p&gt;Hearing about the importance of being cross platform;&lt;br /&gt;
Seeing things like Ruby apps and Apple Macs in a keynote;&lt;br /&gt;
Talking to people who think that &amp;#8220;Microsoft is now less evil than Google&amp;#8221;;&lt;br /&gt;
Watching the Pussycat Dolls courtesy of Microsoft.&lt;/p&gt;
&lt;p&gt;Then &lt;a href="http://money.cnn.com/magazines/fortune/fortune_archive/2007/05/28/100033867/index.htm?section=money_latest"&gt;this article&lt;/a&gt; comes along to bring me back down to earth.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/AhwRl3MzgWs" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2007/05/14/microsoft-takes-on-the-free-world.html</feedburner:origLink></entry>
 
 <entry>
   <title>How the birds-eye imagery is done</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/dALb7KWEpgQ/how-the-birds-eye-imagery-is-done.html" />
   <updated>2007-04-23T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2007/04/23/how-the-birds-eye-imagery-is-done</id>
   <content type="html">&lt;p&gt;The Gadget Show recently had a clip talking about Live Search and how the birds-eye imagery is done.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.intelligentmedia.com/stream/57f5ac6b-b85f-4b30-a9f0-6421d04578e4.html"&gt;&lt;img border="0" src='http://www.robblackwell.org.uk/wp-content/uploads/2007/04/gadgetshow.jpeg' alt='The Gadget Show' /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/dALb7KWEpgQ" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2007/04/23/how-the-birds-eye-imagery-is-done.html</feedburner:origLink></entry>
 
 <entry>
   <title>Accessing WMS from Virtual Earth</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/dLRsu0NlKC4/accessing-wms-from-virtual-earth.html" />
   <updated>2007-04-16T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2007/04/16/accessing-wms-from-virtual-earth</id>
   <content type="html">&lt;p&gt;My article &lt;a href="http://www.viavirtualearth.com/vve/Articles/WMS.ashx"&gt;Accessing &lt;span class="caps"&gt;WMS&lt;/span&gt; from Virtual Earth &lt;/a&gt;has just been published on &lt;a href="http://www.viavirtualearth.com/"&gt;www.viavirtualearth.com&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;It shows how to access Web Map Server (&lt;span class="caps"&gt;WMS&lt;/span&gt;) servers from Virtual Earth using a custom tile server.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.viavirtualearth.com/vve/Articles/WMS/image001.jpg" alt="WMS on Virtual Earth" /&gt;&lt;/p&gt;
&lt;p&gt;My earlier article &lt;a href="http://viavirtualearth.com/vve/Articles/RollYourOwnTileServer.ashx"&gt;Roll Your Own Tile Server &lt;/a&gt;has some minor updates too.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/dLRsu0NlKC4" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2007/04/16/accessing-wms-from-virtual-earth.html</feedburner:origLink></entry>
 
 <entry>
   <title>ILC07 Underway</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/xL0PISTzr8s/ilc07-underway.html" />
   <updated>2007-04-01T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2007/04/01/ilc07-underway</id>
   <content type="html">&lt;p&gt;The &lt;a href="http://www.international-lisp-conference.org/2007/index"&gt;International Lisp Conference 2007&lt;/a&gt;  kicked off in &lt;a href="http://maps.live.com/default.aspx?v=2&amp;cp=52.205028~0.116212&amp;style=a&amp;lvl=19&amp;tilt=-90&amp;dir=0&amp;alt=-1000&amp;scene=4260621&amp;sp=yp.YN1009x27059955"&gt;Cambridge&lt;/a&gt; this morning with an excellent tutorial on &lt;a href="http://weitz.de/hunchentoot/"&gt;Hunchentoot&lt;/a&gt;  and Friends by &lt;a href="http://weitz.de/"&gt;Edi Weitz&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Edi was using &lt;a href="http://www.lispworks.com/"&gt;LispWorks&lt;/a&gt; on Windows. He has a &lt;a href="http://weitz.de/starter-pack/"&gt;Starter pack&lt;/a&gt; which explains how to get up and running. The &lt;a href="http://www.lispworks.com"&gt;LispWorks&lt;/a&gt; folks were giving away free evaluation licenses.&lt;/p&gt;
&lt;p&gt;Edi used Hunchentoot to develop a sample application that allowed users to enter their name and age. He then extended the application to show various features such as authentication and cl-who etc.&lt;/p&gt;
&lt;p&gt;The Ajax demo was impressive.&lt;/p&gt;
&lt;p&gt;In terms of production, Edi mentioned delivering to Linux with &lt;a href="http://sbcl.sourceforge.net/"&gt;&lt;span class="caps"&gt;SBCL&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://www.cliki.net/detachtty"&gt;detachtty&lt;/a&gt;. Also using LispWorks to produce a stand alone &lt;span class="caps"&gt;EXE&lt;/span&gt; including the web server.&lt;/p&gt;
&lt;p&gt;Hunchentoot-test is really a suite of demos.&lt;/p&gt;
&lt;p&gt;Performance looks to be good &amp;#8211; there may be some performance issues because of flexi-streams. I&amp;#8217;m a bit concerned about what would happen if a hunchentoot server experienced the slashdot effect &amp;#8211; would it just keep spawining worker threads? Good to hear that Edi has already used Hunchentoot to deliver a number of serious commerical sites.&lt;/p&gt;
&lt;p&gt;One of the big attractions for me is the ability to bring up a toploop onto a running web server and start debugging and tweaking without bringing the web server down. Also, of course, the amazing productivity that CL provides!&lt;/p&gt;
&lt;p&gt;You may also be interested in &lt;a href="http://ilc07.blogspot.com/"&gt;The Ilc07 Group Blog&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/xL0PISTzr8s" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2007/04/01/ilc07-underway.html</feedburner:origLink></entry>
 
 <entry>
   <title>Virtual Earth Partner Day</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/aCHgCGuoMBo/virtual-earth-partner-day.html" />
   <updated>2007-03-22T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2007/03/22/virtual-earth-partner-day</id>
   <content type="html">&lt;p&gt;Yesterday I spoke at the &lt;a href="http://maps.live.com"&gt;Microsoft Virtual Earth&lt;/a&gt; Partner Day at Sonning. Lot&amp;#8217;s of enthusiastic people doing some very cool projects.&lt;/p&gt;
&lt;p&gt;Was good to catch up with &lt;a href="http://www.roodyn.com/"&gt;Dr Neil&lt;/a&gt;  and &lt;a href="http://www.trickybusiness.co.uk/"&gt;Tricky&lt;/a&gt; again &amp;#8211; Dr Neil also talked about &lt;a href="http://dev.live.com"&gt;Windows Live Services&lt;/a&gt; at an &lt;span class="caps"&gt;MSDN&lt;/span&gt; event in London today.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/aCHgCGuoMBo" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2007/03/22/virtual-earth-partner-day.html</feedburner:origLink></entry>
 
 <entry>
   <title>Microsoft Campus, Redmond</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/AF0Qu3jQFCY/microsoft-campus-redmond.html" />
   <updated>2007-02-17T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2007/02/17/microsoft-campus-redmond</id>
   <content type="html">&lt;p&gt;Just been on a whirlwind trip to &lt;a href="http://maps.live.com/default.aspx?v=2&amp;cp=47.6426~-122.130599&amp;style=a&amp;lvl=19&amp;tilt=-90&amp;dir=0&amp;alt=-1000&amp;scene=3689067&amp;sp=yp.YN925x15774182"&gt;Microsoft, Redmond&lt;/a&gt; with &lt;a href="http://msdn2.microsoft.com/en-gb/community/aa813013.aspx"&gt;Simon Davies&lt;/a&gt;  , &lt;a href="http://blogs.msdn.com/ianm/"&gt;Ian Moulster&lt;/a&gt;  and &lt;a href="http://msdn2.microsoft.com/en-gb/community/aa813004.aspx"&gt;Alistair Beagley&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;It felt a bit like shooting a &lt;a href="http://channel9.msdn.com/"&gt;channel 9&lt;/a&gt; video &amp;#8211; walking around Microsoft Campus, knocking on office doors, but we were fortunate enough to meet some really interesting people, including &lt;a href="http://blogs.msdn.com/tims/"&gt;Tim Sneath&lt;/a&gt; ,Stephen Lawler, &lt;a href="http://www.iunknown.com/"&gt;Jon Lam&lt;/a&gt;, Martin Maly, John Dietz,&lt;a href="http://blogs.msdn.com/johnmont/"&gt;John Montgommery&lt;/a&gt;, Ankur Chavda, Aric Weiker, Koji Kato and &lt;a href="http://blogs.msdn.com/cheller/"&gt;Catherine Heller&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Cant say much due to &lt;span class="caps"&gt;NDA&lt;/span&gt;, but suffice it to say that there are some very smart people doing some very cool things. I think the mash-up approach has the opportunity to revolutionise the way that we build software.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/AF0Qu3jQFCY" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2007/02/17/microsoft-campus-redmond.html</feedburner:origLink></entry>
 
 <entry>
   <title>Essex University</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/MEwCWuN7w9M/essex-university.html" />
   <updated>2007-02-09T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2007/02/09/essex-university</id>
   <content type="html">&lt;p&gt;This morning I gave a guest lecture about Web based &lt;span class="caps"&gt;GIS&lt;/span&gt; and Virtual Earth at the &lt;a href="http://cswww.essex.ac.uk/"&gt;Computer Science dept, Essex University&lt;/a&gt; .&lt;/p&gt;
&lt;p&gt;Slides should shortly be available on your intranet.&lt;/p&gt;
&lt;p&gt;If anybody from the audience is interested in working with &lt;a href="http://www.aws.net"&gt;&lt;span class="caps"&gt;AWS&lt;/span&gt; &lt;/a&gt; on a summer placement, please &lt;a href="mailto://info@aws.net"&gt;email us&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/MEwCWuN7w9M" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2007/02/09/essex-university.html</feedburner:origLink></entry>
 
 <entry>
   <title>Building Mashups with Virtual Earth and Windows Live services #2</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/1L4_WAG2biA/building-mashups-with-virtual-earth-and-windows-live-services-2.html" />
   <updated>2007-01-23T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2007/01/23/building-mashups-with-virtual-earth-and-windows-live-services-2</id>
   <content type="html">&lt;p&gt;Back by popular demand, Simon and I will be talking about Windows Live Services and Virtual Earth in London on 8 Feb.&lt;br /&gt;
&lt;a href="http://msevents.microsoft.com/cui/EventDetail.aspx?culture=en-GB&amp;eventid=1032322668"&gt;More Information &amp;gt;&amp;gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/1L4_WAG2biA" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2007/01/23/building-mashups-with-virtual-earth-and-windows-live-services-2.html</feedburner:origLink></entry>
 
 <entry>
   <title>BCS Awards 2006</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/fZdjuDIAiQw/bcs-awards-2006.html" />
   <updated>2006-12-09T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2006/12/09/bcs-awards-2006</id>
   <content type="html">&lt;p&gt;On Thursday, &lt;a href="http://www.aws.net"&gt;Active Web Solutions&lt;/a&gt; won three British Computer Society Awards for our work on the &lt;span class="caps"&gt;RNLI&lt;/span&gt; Sea Safety System.&lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s a picture of me picking up the Mobile Computing Award:&lt;/p&gt;
&lt;p&gt;&lt;img src='/wp-content/award2.jpg' alt='BCS Awards' /&gt;&lt;/p&gt;
&lt;p&gt;Here are some related links:&lt;/p&gt;
&lt;p&gt;http://www.computerweekly.com/Articles/2006/12/12/220408/bcs-awards-technology-to-the-rescue.htm&lt;/p&gt;
&lt;p&gt;http://www.computerweekly.com/Articles/2006/12/12/220409/bcs-awards-rnli-nets-win-on-the-move.htm&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/fZdjuDIAiQw" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2006/12/09/bcs-awards-2006.html</feedburner:origLink></entry>
 
 <entry>
   <title>Mashups - Slides and Code</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/6gLSbM9FhqQ/mashups-slides-and-code.html" />
   <updated>2006-12-01T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2006/12/01/mashups-slides-and-code</id>
   <content type="html">&lt;p&gt;Following on from the &amp;#8220;Building Mashups with Virtual Earth and Windows Live Services&amp;#8221; event in London on Tuesday, here are the slides and the demonstrations from my talk:&lt;/p&gt;
&lt;p&gt;&lt;a href='/wp-content/Demos.zip' title='Mash-up demonstrations'&gt;Demos.zip&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href='/wp-content/Mashups281106.ppt' title='Slides'&gt;Mashups281106.ppt&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Demos.zip includes the tile server demo.&lt;/p&gt;
&lt;p&gt;For more information about tile servers, see my &lt;a href='http://msdn2.microsoft.com/en-us/library/aa907679.aspx'&gt;&lt;span class="caps"&gt;MSDN&lt;/span&gt; article&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src='/wp-content/vetiles.jpg' alt='Demo Tile Server' /&gt;&lt;/p&gt;
&lt;p&gt;Thanks to everybody who attended. There were several &lt;span class="caps"&gt;GIS&lt;/span&gt; people there and I really enjoyed the discussions in the interval and after the event.&lt;/p&gt;
&lt;p&gt;Thanks to Simon, Ian and all the Microsoft folks who organised the event.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/6gLSbM9FhqQ" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2006/12/01/mashups-slides-and-code.html</feedburner:origLink></entry>
 
 <entry>
   <title>Anglia IT Managers Forum</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/_CnackPYATM/anglia-it-managers-forum.html" />
   <updated>2006-12-01T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2006/12/01/anglia-it-managers-forum</id>
   <content type="html">&lt;p&gt;On Wednesday I gave a talk about Web based mapping at the Anglia IT Managers Forum.&lt;/p&gt;
&lt;p&gt;Here are my &lt;a href='/wp-content/AngliaIT291106.ppt' title='Anglia IT Managers Slides'&gt;PowerPoint slides&lt;/a&gt;.&lt;br /&gt;
 (Approx 7Mb).&lt;/p&gt;
&lt;p&gt;&lt;img src='/wp-content/snoasis.jpg' alt='Snoasis 3D' /&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/_CnackPYATM" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2006/12/01/anglia-it-managers-forum.html</feedburner:origLink></entry>
 
 <entry>
   <title>Building Mashups with Virtual Earth and Windows Live services.</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/NCuRwb6IWec/building-mashups-with-virtual-earth-and-windows-live-services.html" />
   <updated>2006-11-21T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2006/11/21/building-mashups-with-virtual-earth-and-windows-live-services</id>
   <content type="html">&lt;p&gt;Building Mashups with Virtual Earth and Windows Live services &amp;#8211; London, 28 November&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ve been invited to talks at this event. I&amp;#8217;ll cover building simple VE apps, business challenges, &lt;span class="caps"&gt;MSR&lt;/span&gt; MapCruncher and custom tile servers.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://go.microsoft.com/?linkid=5767325"&gt;More info and registration&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/NCuRwb6IWec" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2006/11/21/building-mashups-with-virtual-earth-and-windows-live-services.html</feedburner:origLink></entry>
 
 <entry>
   <title>LSharp and Windows Presentation Foundation, WPF.</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/mindtxqabas/lsharp-and-windows-presentation-foundation-wpf.html" />
   <updated>2006-11-16T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2006/11/16/lsharp-and-windows-presentation-foundation-wpf</id>
   <content type="html">&lt;p&gt;Although time has been limited, I did manage to do some LSharp hacking whilst at TechEd Europe last week.&lt;/p&gt;
&lt;p&gt;Microsoft released the .&lt;span class="caps"&gt;NET&lt;/span&gt; Framework Version 3.0 which includes Windows Presentation Foundation (formerly Avalon) technology.&lt;/p&gt;
&lt;p&gt;Anyway, to cut a long story short, I&amp;#8217;m now running and developing LSharp under Windows Vista RC2. Both Emacs and LSharp seem to run without any problems. The OS is reported as Microsoft Windows NT 6.0.5744.0.&lt;/p&gt;
&lt;p&gt;The &lt;span class="caps"&gt;WPF&lt;/span&gt; example is included in subversion under the download directory. See wpf.ls and calc.xaml. You need to compile and run the latest LSharp from Subversion and also install the .&lt;span class="caps"&gt;NET&lt;/span&gt; Framework 3.0 runtime redistributable.&lt;/p&gt;
&lt;p&gt;One issue was around the use of STAThread. It seems that &lt;span class="caps"&gt;WPF&lt;/span&gt; requires a single threaded apartment model, so I&amp;#8217;ve modified spawn to make this an optional argument.&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;
(reference "presentationcore")
(reference "presentationframework")
(reference "windowsbase")
(reference "system")
(reference "system.xml")

(using "system.windows")
(using "system.io")
(using "system.windows.markup")

;; Load and instantiate objects from a XAML file
(defun load-xaml (filename)
      (with (f (new filestream filename (Open FileMode))
	element (call load xamlreader f))
	(close f)
	element))

(defun main()
  ;; Define a new application
  (= app (new application))

  ;; Define a window based on a XAML Description
  (= win (the window
	   (load-xaml "d:\\code\\lsharp\\lsharp.org\\download\\calc.xaml")))

  ;; Run the application with the new window
  (run app win))


;; WPF Requires  [STAThread]
(spawn
 (main)
 (sta system.threading.apartmentstate))

&lt;/code&gt;
&lt;/pre&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/mindtxqabas" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2006/11/16/lsharp-and-windows-presentation-foundation-wpf.html</feedburner:origLink></entry>
 
 <entry>
   <title>Virtual Earth API Version 4</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/72PKf19C0dU/virtual-earth-api-version-4.html" />
   <updated>2006-11-09T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2006/11/09/virtual-earth-api-version-4</id>
   <content type="html">&lt;p&gt;The New Virtual Earth &lt;span class="caps"&gt;API&lt;/span&gt; Version 4 launched this week with a new Active X control which supports 3D Maps. It&amp;#8217;s very cool and allows Google Earth like features with the advantage that the control is browser hosted.&lt;/p&gt;
&lt;p&gt;The good news for mapcrunchers and custom tile servers is that you get 3D for free on your own maps just by changing a few lines of code.&lt;/p&gt;
&lt;p&gt;Assuming you are using&lt;br /&gt;
&lt;code&gt;tileSourceSpec.TileSource = "http://mytileserver/..."&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Then update the script refrence to use the Version 4 &lt;span class="caps"&gt;API&lt;/span&gt; &lt;code&gt; "http://dev.virtualearth.net/mapcontrol/v4/mapcontrol.js" &lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Then &lt;code&gt;map.SetMapMode(VEMapMode.Mode3D);&lt;/code&gt; once you&amp;#8217;ve loaded your map.&lt;/p&gt;
&lt;p&gt;Here is an Admiralty chart in 3D delivered from one of my custom tile servers:&lt;/p&gt;
&lt;p&gt;&lt;img src='/wp-content/arcs.jpg' alt='Admiralty Chart' /&gt;&lt;/p&gt;
&lt;p&gt;We had dinner last night with Jennifer,  Johannes and Jaap who were manning the VE stand at TechEd in Barcelona.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/72PKf19C0dU" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2006/11/09/virtual-earth-api-version-4.html</feedburner:origLink></entry>
 
 <entry>
   <title>Changes to the Virtual Earth API</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/o_ZQVQYLCF8/changes-to-the-virtual-earth-api.html" />
   <updated>2006-09-15T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2006/09/15/changes-to-the-virtual-earth-api</id>
   <content type="html">&lt;p&gt;Microsoft has made some changes to the Virtual Earth &lt;span class="caps"&gt;API&lt;/span&gt;. Cool new features include support for custom tiles and for coloured polygons.&lt;/p&gt;
&lt;p&gt;Unfortunately, these changes have broken the example from my ariticle &lt;a href="http://www.viavirtualearth.com/VVE/Articles/RollYourOwnTileServer.ashx"&gt;Roll Your Own Tile Server&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ve updated the &lt;a href="http://www.robblackwell.org.uk/wp-content/ve.zip"&gt;ve.zip&lt;/a&gt; file so it&amp;#8217;s back working. If you&amp;#8217;re interested, I suggest you take a look atthe revised veapi.js file.&lt;/p&gt;
&lt;p&gt;Thanks to Gordon Hooton for pointing this out.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/o_ZQVQYLCF8" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2006/09/15/changes-to-the-virtual-earth-api.html</feedburner:origLink></entry>
 
 <entry>
   <title>LSharp Discussion Group</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/ML0pGMhJgis/lsharp-discussion-group.html" />
   <updated>2006-08-12T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2006/08/12/lsharp-discussion-group</id>
   <content type="html">&lt;p&gt;Following coverage on &lt;a href="http://programming.reddit.com"&gt;Reddit &lt;/a&gt;and recent emails, I&amp;#8217;ve created a &lt;a href="http://groups.google.co.uk/group/LSharp "&gt;Google Group for LSharp&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/ML0pGMhJgis" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2006/08/12/lsharp-discussion-group.html</feedburner:origLink></entry>
 
 <entry>
   <title>BCS Medalist</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/YOPQS_nulXM/bcs-medallist.html" />
   <updated>2006-07-25T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2006/07/25/bcs-medallist</id>
   <content type="html">&lt;p&gt;We went to the &lt;a href="http://www.bcs.org"&gt;British Computer Society&lt;/a&gt; in London today to hear the &lt;a href="http://www.bcs.org/awards/medallists"&gt;press annnouncement &lt;/a&gt; that &lt;a href="http://www.aws.net"&gt;Active Web Solutions&lt;/a&gt;  and the &lt;span class="caps"&gt;RNLI&lt;/span&gt; Sea Safety Project are medalists in this years awards.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/YOPQS_nulXM" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2006/07/25/bcs-medallist.html</feedburner:origLink></entry>
 
 <entry>
   <title>Lunch with Dr Neil</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/qJSTiXxXh8A/lunch-with-dr-neil.html" />
   <updated>2006-07-24T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2006/07/24/lunch-with-dr-neil</id>
   <content type="html">&lt;p&gt;We had &lt;a href="http://www.viavirtualearth.com/VVE/Blog/1/139.ashx"&gt;lunch &lt;/a&gt;with &lt;a href="http://www.roodyn.com/"&gt;Dr Neil&lt;/a&gt; of &lt;a href="http://www.viavirtualearth.com"&gt;Via Virtual Earth&lt;/a&gt; fame, Pete Williams from &lt;a href="http://www.microsoft.com"&gt;Microsoft &lt;/a&gt;and &lt;a href="http://www.trickybusiness.co.uk"&gt;Tricky&lt;/a&gt; today. We&amp;#8217;re hoping to work together on some interesting projects.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/qJSTiXxXh8A" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2006/07/24/lunch-with-dr-neil.html</feedburner:origLink></entry>
 
 <entry>
   <title>Roll Your Own Tile Server</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/8MHe37ygnBU/roll-your-own-tile-server.html" />
   <updated>2006-07-23T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2006/07/23/roll-your-own-tile-server</id>
   <content type="html">&lt;p&gt;My article &lt;a href="http://viavirtualearth.com/VVE/Articles/RollYourOwnTileServer.ashx"&gt;Roll your own Tile Server&lt;/a&gt; is now live on the &lt;a href="http://viavirtualearth.com/"&gt;Via Virtual Earth&lt;/a&gt; site.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/8MHe37ygnBU" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2006/07/23/roll-your-own-tile-server.html</feedburner:origLink></entry>
 
 <entry>
   <title>MEDC Europe 2006</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/BJio1VxIAJs/medc-europe-2006.html" />
   <updated>2006-06-09T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2006/06/09/medc-europe-2006</id>
   <content type="html">&lt;p&gt;This is me on the Microsoft MapPoint stand at the &lt;a href="http://www.microsoft.com/europe/medc/"&gt;Microsoft Mobile and Embedded Developers Conference 2006 in Nice, France&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src='/wp-content/MEDC2006NiceFrance008.jpg' alt='Rob Blackwell at MEDC Europe 2006' /&gt;&lt;/p&gt;
&lt;p&gt;We were demonstrating our GeoPoint location based services platform which uses Microsoft Virtual Earth in a mash up with data from satellite transponders and &lt;span class="caps"&gt;GPS&lt;/span&gt; enabled mobile phones.&lt;/p&gt;
&lt;p&gt;If you haven&amp;#8217;t already done so, check out the Virtual Earth technology at &lt;a href="http://local.live.com/"&gt;Windows Live Local&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you&amp;#8217;re a programmer take a look at the &lt;a href="http://dev.live.com/virtualearth/sdk/"&gt;Virtual Earth Interactive &lt;span class="caps"&gt;SDK&lt;/span&gt;&lt;/a&gt;  and see the &lt;a href="http://www.viavirtualearth.com/"&gt;Via Virtual Earth site&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/BJio1VxIAJs" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2006/06/09/medc-europe-2006.html</feedburner:origLink></entry>
 
 <entry>
   <title>Peter Seibel Video</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/a0xrUFWOuag/peter-seibel-video.html" />
   <updated>2006-05-22T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2006/05/22/peter-seibel-video</id>
   <content type="html">&lt;p&gt;Pete Seibel, author of &lt;a href="http://apress.com/free/content/practicalcommonlisp.pdf"&gt;Practical Common Lisp&lt;/a&gt; talks about:&lt;/p&gt;
&lt;p&gt;How language affects the way you think.&lt;/p&gt;
&lt;p&gt;The double dispatch problem and how it goes away with generic functions.&lt;/p&gt;
&lt;p&gt;Why the conditions system is better that try catch.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://video.google.com/videoplay?docid=448441135356213813"&gt;Google Video&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/a0xrUFWOuag" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2006/05/22/peter-seibel-video.html</feedburner:origLink></entry>
 
 <entry>
   <title>Seeing the World Through Rose-Tinted Spectacles</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/cB0zB5SmcxU/seeing-the-world-through-rose-tinted-spectacles.html" />
   <updated>2006-04-19T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2006/04/19/seeing-the-world-through-rose-tinted-spectacles</id>
   <content type="html">&lt;p&gt;You may have noticed that the glasses I wear have a pink tint. Contrary to popular opinion, this isn&amp;#8217;t a fashion statement; they stop me getting headaches when spending long periods of time in front of a computer monitor. They also make reading faster and more comfortable. The same principle is apparently used with dyslexic kids.&lt;/p&gt;
&lt;p&gt;My optician recommended that I try &lt;a href="http://www.thomson-software-solutions.com/screen_tinter.html"&gt;Screen Tinter from Thomson Software Solutions&lt;/a&gt;. The software makes it easy to tweak window colour backgrounds. Setting Red: 255 Green 230 and Blue 255 does it for me!&lt;/p&gt;
&lt;p&gt;It&amp;#8217;s free as in beer, but only works on the Windows platform.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/cB0zB5SmcxU" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2006/04/19/seeing-the-world-through-rose-tinted-spectacles.html</feedburner:origLink></entry>
 
 <entry>
   <title>World Jamboree 1929</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/zjwNRn3Mp-8/world-jamboree-1929.html" />
   <updated>2006-04-16T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2006/04/16/world-jamboree-1929</id>
   <content type="html">&lt;p&gt;This certificate was awarded to my Grandfather in 1929.&lt;/p&gt;
&lt;p&gt;&lt;img src='/wp-content/jamboree.jpg' alt='World Jamboree 1929' /&gt;&lt;/p&gt;
&lt;p&gt;To A E Rowe Esquire who worked unselfishley and wholeheartedly behind the scenes at the Boy Scouts&amp;#8217; World Jamboree 1929 and thereby contributed so effectively towards its success, I offer the grateful &lt;span class="caps"&gt;THANKS&lt;/span&gt; of the whole Scout brotherhood. Baden Powell of Gilwell. Chief Scout.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/zjwNRn3Mp-8" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2006/04/16/world-jamboree-1929.html</feedburner:origLink></entry>
 
 <entry>
   <title>Ordinary Telegrapher AER Rowe</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/7byUTvKcdgk/ordinary-telegrapher-aer-rowe.html" />
   <updated>2006-04-16T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2006/04/16/ordinary-telegrapher-aer-rowe</id>
   <content type="html">&lt;p&gt;When my Grandfather was posted to Skegness for training in 1941, he wrote to his Dad at Romford. Here is the text of the letter with some of the images from the Butlins letter card. I have tried to preserve grammatical errors and use of language; I think these are an indication of the pressure and uncertainty he would have been experiencing. For information, the 29th was a Saturday.&lt;/p&gt;
&lt;p&gt;Uncle W is Uncle Will White married to Elizabeth who I think was Grandad Rowe&amp;#8217;s sister.  The families were very close and used to stay with each other quite often I believe.  They were spiritualists and took Dad to their meetings sometimes! [Janet Palmer]&lt;/p&gt;
&lt;p&gt;&lt;img src='/wp-content/butlins4.jpg' alt='Billiard Room, Butlins Holiday Camp, Skegness' /&gt;&lt;/p&gt;
&lt;p&gt;O/&lt;span class="caps"&gt;TEL&lt;/span&gt; &lt;span class="caps"&gt;AER&lt;/span&gt; &lt;span class="caps"&gt;ROWE&lt;/span&gt;&lt;br /&gt;
JX 310177&lt;br /&gt;
&lt;span class="caps"&gt;TOP&lt;/span&gt; &lt;span class="caps"&gt;DIVISION&lt;/span&gt;&lt;br /&gt;
&lt;span class="caps"&gt;CLASS&lt;/span&gt; 137&lt;br /&gt;
&lt;span class="caps"&gt;HMS&lt;/span&gt; Royal Arthur&lt;br /&gt;
Skegness Lincs&lt;/p&gt;
&lt;p&gt;29 November 1941&lt;/p&gt;
&lt;p&gt;Dear Dad and all at Romford,&lt;/p&gt;
&lt;p&gt;I expect you will be anxiously awaiting a line from me as you knew, of course, I was here last Tuesday. I hope you wonâ€™t think me thoughtless in having delayed so long writing but I expect Dad will remember that the rookie has quite a lot to do + learn in his first few days + in addition, of course, I was summoned somewhat hurriedly + I&amp;#8217;ve to put my affairs in order as best I can from here.&lt;/p&gt;
&lt;p&gt;These views may give you some idea but only faint + not so colourful of the place I stay in. We live in chalets + have a good few comforts old soldiers would think but it&amp;#8217;s nothing like home.&lt;/p&gt;
&lt;p&gt;I seem to do nothing but go on parade &amp;#8220;at the double&amp;#8221; all the time. My sailor suit is very tight as yet but twill stretch I&amp;#8217;m told and it would be quite in order with a few more pockets. I haven&amp;#8217;t anywhere to put pipe, bacca + matches. I seem to get on fairly well so far &amp;#8211; haven&amp;#8217;t been into trouble yet but have been interviewed by ???? Officer as have two other university men here with me in my class.&lt;/p&gt;
&lt;p&gt;I expect I may hear about the &lt;span class="caps"&gt;RAF&lt;/span&gt; but I&amp;#8217;m afraid there&amp;#8217;s little hope for the Air ?? will not ask for my release the Admiralty may release me if I&amp;#8217;m not to far on in training â€“ They are quite fine chaps in my class and I shall enjoy myself here I have no doubt tho&amp;#8217;, of course I was disappointed at having to stay. I share a chalet with two others one an ex Palestine Police Constable the other a railway clerk. Weâ€™ve one other teacher here + also a man from Westcliffe. In addition two small boys of 12th West Ham who are here as P.T. instructors (They were of cub age when I last saw them) have both stopped me and spoken to me and we&amp;#8217;ve had quite a chat &amp;#8211; I think I&amp;#8217;ve also sometime to interview the naval schoolmaster here. Well that&amp;#8217;s all for now my love to you all + remember I think about you quite a lot. Remember me to Auntie Liz + Uncle W when you see them also Hilda when you write &amp;#8211; I have to do so much kit arranging + boot cleaning etc + running to parade I&amp;#8217;ve little time for letter writing. I had Vaccination and inoculation yesterday + my arm has been very stiff &amp;#8211; Had shore leave today + went into Skeg. We have an Ensa concert tonight.&lt;/p&gt;
&lt;p&gt;Love to you all your affectionate son and brother, Arthur.&lt;/p&gt;
&lt;p&gt;&lt;img src='/wp-content/butlins1.jpg' alt='Modern Cocktail Bar, Butlins Holiday Camp, Skegness' /&gt;&lt;/p&gt;
&lt;p&gt;P.S. Expect to be here about five weeks.&lt;/p&gt;
&lt;p&gt;&lt;img src='/wp-content/butlins5.jpg' alt='The Bathing Pool, Butlins Holiday Camp, Skegness' /&gt;&lt;/p&gt;
&lt;p&gt;P.S. II If Ada has time could and would she knit me a pair of gloves and perhaps a scarf. I&amp;#8217;ll square her for the wool. Please. And would you mention this to Maud. It has been cold here.&lt;/p&gt;
&lt;p&gt;&lt;img src='/wp-content/butlins2.jpg' alt='Boating Lake and Tennis Courts, Butlins Holiday Camp, Skegness' /&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/7byUTvKcdgk" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2006/04/16/ordinary-telegrapher-aer-rowe.html</feedburner:origLink></entry>
 
 <entry>
   <title>Better LSharp Params</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/AE4j_cXaDWA/better-lsharp-params.html" />
   <updated>2006-03-12T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2006/03/12/better-lsharp-params</id>
   <content type="html">&lt;p&gt;Kelly Murphy has been busy again. We now have &lt;em&gt;&amp;amp;optional&lt;/em&gt; and &lt;em&gt;&amp;amp;key&lt;/em&gt; parameters as well as an updated Win Forms demo in subversion.&lt;/p&gt;
&lt;center&gt;&lt;img src='/wp-content/test01.png' alt='Graphics01.ls' /&gt; &lt;/center&gt;
&lt;p&gt;Leppie has been working on an &lt;a href="http://blogs.wdevs.com/leppie/archive/2006/03/08/12485.aspx"&gt;L Sharp to C Sharp compiler / translator &lt;/a&gt;.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/AE4j_cXaDWA" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2006/03/12/better-lsharp-params.html</feedburner:origLink></entry>
 
 <entry>
   <title>Leading Edge L Sharp</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/DARpYzlVQ40/bleeding-edge-l-sharp.html" />
   <updated>2006-03-04T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2006/03/04/bleeding-edge-l-sharp</id>
   <content type="html">&lt;p&gt;I have been inundated with L Sharp related email over the last few weeks â€“ thatâ€™s great news, except that I havenâ€™t been able to keep on top of it all, so here is a summary of the latest L Sharp progress.&lt;/p&gt;
&lt;center&gt;&lt;img src='/wp-content/gijon.jpg' alt='Gijon Cranes' /&gt; &lt;/center&gt;
&lt;p&gt;The master source code repository for L Sharp is now available on the Sourceforge Subversion server at&lt;/p&gt;
&lt;p&gt;https://svn.sourceforge.net /svnroot/lsharp&lt;/p&gt;
&lt;p&gt;This should allow anybody to get the latest source and try out features which are, as yet unreleased. Information about accessing the Subversion repository can be found at &lt;a href="http://sourceforge.net/docs/E09"&gt;http://sourceforge.net/docs/E09&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Apart from several bug fixes and improvements, Iâ€™m excited to announce two major new features â€“ event handling and web development. These are still experimental, but early adopters can grab the latest code and give it a try.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Event Handling&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;You can now properly add LSharp event handlers to controls on Windows Forms applications using &lt;code&gt;handle-event&lt;/code&gt; or &lt;code&gt;defevent&lt;/code&gt;. Here is a code example:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;(reference "System.Windows.Forms")
(using "System.Windows.Forms")&lt;/p&gt;
&lt;p&gt;(= f (new Form))&lt;/p&gt;
&lt;p&gt;(defevent Click f (sender args)&lt;br /&gt;
	(writeline console &amp;#8220;You clicked x {0} y {1}&amp;#8221; (x args) (y args)))&lt;/p&gt;
&lt;p&gt;(spawn &amp;#8217;(run application f))&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Web Application Development&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;We now have an HttpHandler which allows L Sharp to be used within &lt;span class="caps"&gt;ASP&lt;/span&gt;.&lt;span class="caps"&gt;NET&lt;/span&gt; applications.&lt;/p&gt;
&lt;p&gt;Create a new &lt;span class="caps"&gt;ASP&lt;/span&gt;.&lt;span class="caps"&gt;NET&lt;/span&gt; 2 web application. Create a bin subdirectory and copy in LSharp.dll and LSharp.Web.dll.  Modify your web.config file to include&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;httpHandlers&amp;gt;&lt;br /&gt;
  &amp;lt;add verb=&amp;#8220;*&amp;#8221; path=&amp;#8220;*.lsp&amp;#8221; type=&amp;#8220;LSharp.Web.LSharpHttpHandler,LSharp.Web&amp;#8221;/&amp;gt;&lt;br /&gt;
&amp;lt;/httpHandlers&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Then write your L Sharp Page as a text file with a &lt;strong&gt;.lsp extension. The contents of the file will be passed to the L Sharp evaluator when the page is requested, so it must be a valid L Sharp program. Here is a simple example:&lt;br /&gt;
&lt;code&gt;
;;; Hello World
(write *response&lt;/strong&gt; &amp;#8220;Hello World&amp;#8221;)&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;As you can see, &lt;strong&gt;response&lt;/strong&gt; is bound to the HttpResponse object. &lt;strong&gt;request&lt;/strong&gt;, &lt;strong&gt;session&lt;/strong&gt; and &lt;strong&gt;application&lt;/strong&gt; are available similarly. In addition, &lt;strong&gt;context&lt;/strong&gt; is bound to the HttpContext. Take a look at the &lt;span class="caps"&gt;MSDN&lt;/span&gt; documentation for System.Web.HttpContext, the object model is fairly self explanatory. Also see the example web site included with the L Sharp source distribution.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A Big Thanks&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The thing that most excites me about L Sharp at the moment is the momentum that we seem to be gaining. There is a small but growing number of users, and perhaps more importantly, a growing number of contributors.&lt;/p&gt;
&lt;p&gt;L Sharp isnâ€™t my day job, so I canâ€™t always respond quickly to email, but I want to thank everybody who has contacted me. I value all the feedback, comments, patches and words of encouragement â€“ Thanks!&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/DARpYzlVQ40" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2006/03/04/bleeding-edge-l-sharp.html</feedburner:origLink></entry>
 
 <entry>
   <title>Script Your Application with L Sharp</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/ySUdlKWuWSE/script-your-application-with-l-sharp.html" />
   <updated>2006-02-17T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2006/02/17/script-your-application-with-l-sharp</id>
   <content type="html">&lt;p&gt;My article &lt;a href="http://www.csharphelp.com/archives4/archive650.html"&gt;Script Your Application with L Sharp&lt;/a&gt; has just appeared on the &lt;a href="http://www.csharphelp.com/"&gt;CSharpHelp&lt;/a&gt; site.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/ySUdlKWuWSE" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2006/02/17/script-your-application-with-l-sharp.html</feedburner:origLink></entry>
 
 <entry>
   <title>Protocol Design for Very Low Bandwidth Systems.</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/tdLAMsjPGpY/on-protocol-design-for-very-low-bandwidth-systems.html" />
   <updated>2006-02-10T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2006/02/10/on-protocol-design-for-very-low-bandwidth-systems</id>
   <content type="html">&lt;p&gt;I&amp;#8217;ve helped design a couple of protocols for telemetry systems over the last couple of years and I want to summarise some learning points for future reference.&lt;/p&gt;
&lt;p&gt;The general advice these days is &amp;#8220;don&amp;#8217;t design a new protocol&amp;#8221;. With so many standards to choose from and with &lt;span class="caps"&gt;XML&lt;/span&gt; supposedly being the common data format, it&amp;#8217;s hard to see why you&amp;#8217;d want to create a new communications protocol. The trouble is that we&amp;#8217;re talking very low bandwidth here (as low as 10 bytes per minute), so every bit has to earn its place.&lt;/p&gt;
&lt;p&gt;Reserve a few bits as a message type. This gives you future extensibility; new terminals can add new features whilst the receiver retains backwards compatibility with older models.&lt;/p&gt;
&lt;p&gt;It&amp;#8217;s surprising how few bits you need to represent apparently complex information. You only need 43 bits for a full &lt;span class="caps"&gt;GPS&lt;/span&gt; position for example.&lt;/p&gt;
&lt;p&gt;Consider using checksums or Cyclic Redundancy Checks. CRCs are useful to ensure data integrity. By seeding the &lt;span class="caps"&gt;CRC&lt;/span&gt; bytes with an agreed bit pattern you can achieve a kind of crude digital signature for non repudiation of messages. &lt;span class="caps"&gt;ISO&lt;/span&gt;/&lt;span class="caps"&gt;IEC&lt;/span&gt; 13239 (formerly &lt;span class="caps"&gt;ISO&lt;/span&gt;/&lt;span class="caps"&gt;IEC&lt;/span&gt; 3309) contains a popular &lt;span class="caps"&gt;CRC&lt;/span&gt; algorithm.&lt;/p&gt;
&lt;p&gt;Provide a sequence number count. Even if you only have three bits, you can number successive messages from 0 through 7, rolling back to 0 instead of 8. Itâ€™s then easy to detect missed packets or packets delivered out of sequence.&lt;/p&gt;
&lt;p&gt;Telemetry systems often report on a periodic basis whilst allowing &amp;#8220;polling&amp;#8221; to query status at any given time. It&amp;#8217;s a good idea to distinguish periodic reports from poll responses to aid diagnosis if a terminal is misbehaving.&lt;/p&gt;
&lt;p&gt;Implement diagnostics facilities. Build a mobile terminated message which causes the transponder to reply with a diagnostic packet. Use individual bits to represent the current state of various sub systems.  Make 0 mean faulty and 1 mean good so that you assume a fault unless the system actively reports otherwise. Transponders are often deployed to far flung or inaccessible places, so you need to be able to debug them from the comfort of your office.&lt;/p&gt;
&lt;p&gt;Consider implementing a reset message to allow remote reboot of systems.&lt;/p&gt;
&lt;p&gt;You can implement surprisingly good text messages using six bit &lt;span class="caps"&gt;ASCII&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;Many communications systems are asymmetric both in terms of bandwidth, quality of service and cost. Sometimes itâ€™s cheaper to send an important message three or four times to more or less guarantee delivery rather than implement handshaking acknowledgements.&lt;/p&gt;
&lt;p&gt;Consider packet layout. Sometimes aligning bits to byte boundaries can make parser implementations easier, especially in low level computer languages. If certain notions such as priority apply to several different packet types, make sure the same bit positions are used. That way you don&amp;#8217;t have to parse the whole packet.&lt;/p&gt;
&lt;p&gt;If you have a &lt;span class="caps"&gt;GPS&lt;/span&gt; then you have access to an accurate clock. If you encode just the seconds past the minute within your message, then the receiver can calculate transit time (if it too has an accurate clock) for the cost of just 5 bits.&lt;/p&gt;
&lt;p&gt;When considering adding generic features, read &lt;a href="http://web.mit.edu/Saltzer/www/publications/endtoend/endtoend.pdf"&gt;End-to-End Arguments in System Design&lt;/a&gt; Saltzer et al.&lt;/p&gt;
&lt;p&gt;Question security. Is your communications system an open or closed channel? Could it be hacked?&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/tdLAMsjPGpY" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2006/02/10/on-protocol-design-for-very-low-bandwidth-systems.html</feedburner:origLink></entry>
 
 <entry>
   <title>L Sharp 1.2.1 News</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/lr2vfDjyAU4/l-sharp-121-news.html" />
   <updated>2006-01-29T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2006/01/29/l-sharp-121-news</id>
   <content type="html">&lt;p&gt;LSharp 1.2.1 has been released , see &lt;a href="http://www.lsharp.org"&gt;www.lsharp.org&lt;/a&gt;* . It includes various fixes and improvements,  many as a direct result of Hans-Peter Wickern&amp;#8217;s input &amp;#8211; thanks!&lt;/p&gt;
&lt;center&gt;&lt;img src='/wp-content/cranes.jpg' alt='Cranes on the Glasgow skyline.' /&gt;&lt;/center&gt;
&lt;p&gt;LSharp on Mono is still not perfect, but many of the sample programs now run! I&amp;#8217;d welcome more feedback or help from Mono programmers.&lt;/p&gt;
&lt;p&gt;There&amp;#8217;s a new &lt;span class="caps"&gt;IDE&lt;/span&gt; called Xacc that&amp;#8217;s great for developing L Sharp programs. It even bundles the L Sharp runtime &amp;#8211; defintely one to watch. See &lt;a href="http://blogs.wdevs.com/leppie/"&gt;http://blogs.wdevs.com/leppie/&lt;/a&gt; for more information. Thanks Leppie &amp;#8211; Keep up the good work!&lt;/p&gt;
&lt;p&gt;LSharp 1.2.1 changes include:&lt;/p&gt;
&lt;p&gt;Fix to TopLoop so that it prints results correctly under Mono&lt;br /&gt;
Fixed problem with reader so that it sees lparen as a terminating character and thus correctly accepts expressions like (setq a(list 1 2))&lt;br /&gt;
Fixed Assoc so that it returns the pair not the cadr of the pair&lt;br /&gt;
Fixed Assoc so that the key can be a value type or reference&lt;br /&gt;
Primitive functions and special forms such as prl etc are no longer case sensitive&lt;br /&gt;
Added copy-list and append&lt;br /&gt;
Updates and corrections to documentation&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Unfortunately Sourceforge seems to be suffering this afternoon (Sunday) and www.lsharp.org is intermittent or unavailable. Could this be due to the a high demand for LSharp 1.2.1 I wonder ;-)&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/lr2vfDjyAU4" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2006/01/29/l-sharp-121-news.html</feedburner:origLink></entry>
 
 <entry>
   <title>Practical Common Lisp - Free Download</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/fwnfdhhhgHA/practical-common-lisp-free-download.html" />
   <updated>2006-01-22T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2006/01/22/practical-common-lisp-free-download</id>
   <content type="html">&lt;p&gt;&lt;a href="http://apress.com/free/content/practicalcommonlisp.pdf"&gt;&lt;img src='/wp-content/pclbook.jpg' alt='Practical Common Lisp' /&gt; &lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Peter Seibel&amp;#8217;s excellent book &amp;#8220;Practical Common Lisp&amp;#8221; is now available as a  &lt;a href="http://apress.com/free/content/practicalcommonlisp.pdf"&gt;free download&lt;/a&gt; from the publisher, Apress.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/fwnfdhhhgHA" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2006/01/22/practical-common-lisp-free-download.html</feedburner:origLink></entry>
 
 <entry>
   <title>L Sharp Version 1.2 Released</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/oN77Jq0anpU/l-sharp-version-12-released.html" />
   <updated>2005-12-29T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2005/12/29/l-sharp-version-12-released</id>
   <content type="html">&lt;p&gt;&lt;img src='/wp-content/LSharp.png' alt='L Sharp Logo' /&gt;&lt;/p&gt;
&lt;p&gt;Thank goodness for the Christmas Holidays &amp;#8211; at last, a chance to get some work done!&lt;/p&gt;
&lt;p&gt;This new version of &lt;a href="http://www.lsharp.org/"&gt;L Sharp&lt;/a&gt;  incorporates several bug fixes and minor modifications based on feedback received throughout 2005.&lt;/p&gt;
&lt;p&gt;I suppose the most visible change is the move to Visual Studio 2005 and Microsoft .&lt;span class="caps"&gt;NET&lt;/span&gt; 2.0 (although the source code will still compile to .&lt;span class="caps"&gt;NET&lt;/span&gt; 1.1 if you wish).&lt;/p&gt;
&lt;p&gt;Here is a partial list of changes:&lt;/p&gt;
&lt;p&gt;Moved to Visual Studio 2005 and .&lt;span class="caps"&gt;NET&lt;/span&gt; 2.0&lt;br /&gt;
Added some built in macros &amp;#8211; defun, defmacro and listp&lt;br /&gt;
Changes to the evaluation model to deal with runtime types &amp;#8211; symbols now evaluate to themselves, not their types You must now use (typeof string) to get string type object&lt;br /&gt;
Added assoc&lt;br /&gt;
read now allows you to specify an optional eof value&lt;br /&gt;
(is type expression) now checks supertypes as well as actual types&lt;br /&gt;
Added binary operators (and &amp;amp; , exclusive-or ^ , or | ).&lt;br /&gt;
Removed the prototype &lt;span class="caps"&gt;IDE&lt;/span&gt; / &lt;span class="caps"&gt;GUI&lt;/span&gt; from source release &amp;#8211; no longer works with .NET2 and using emacs is better&lt;br /&gt;
Updates and corrections to documentation&lt;/p&gt;
&lt;p&gt;Seasons Greetings to all Lispers.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/oN77Jq0anpU" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2005/12/29/l-sharp-version-12-released.html</feedburner:origLink></entry>
 
 <entry>
   <title>Special Delivery</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/7mlMF1OQq2k/special-delivery.html" />
   <updated>2005-12-24T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2005/12/24/special-delivery</id>
   <content type="html">&lt;p&gt;Suzanne&amp;#8217;s daughter Rebecca gave birth to a baby boy, Edward Jordan Barker at 23:00 on 22 December 2005.&lt;/p&gt;
&lt;p&gt;He weighed in at 9 lb 8 oz.&lt;/p&gt;
&lt;p&gt;They&amp;#8217;re home for Christmas.&lt;/p&gt;
&lt;p&gt;&lt;img src='/wp-content/ed.jpg' alt='Edward Jordan Barker' /&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/7mlMF1OQq2k" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2005/12/24/special-delivery.html</feedburner:origLink></entry>
 
 <entry>
   <title>Popularity</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/0JyaEqMNqTY/popularity.html" />
   <updated>2005-12-21T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2005/12/21/popularity</id>
   <content type="html">&lt;p&gt;In the pub today I mentioned that Java was the most popular programming language and how it had overtaken Cobol.  See Paul Graham&amp;#8217;s essay &lt;a href="http://www.paulgraham.com/gh.html"&gt;Great Hackers &lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The &lt;a href="http://www.tiobe.com/index.htm?tiobe_index"&gt;Tiobe index&lt;/a&gt; makes for interesting reading, but you need to be careful about drawing too many conclusions because of it&amp;#8217;s data points.&lt;/p&gt;
&lt;p&gt;I also checked the stats on web server technology at &lt;a href="http://news.netcraft.com/archives/web_server_survey.html"&gt;Netcraft&lt;/a&gt;.&lt;br /&gt;
Apache has about 70% of the market and Microsoft 21%.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/0JyaEqMNqTY" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2005/12/21/popularity.html</feedburner:origLink></entry>
 
 <entry>
   <title>IT Conversations</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/G-U-LyWYLOw/it-conversations.html" />
   <updated>2005-12-19T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2005/12/19/it-conversations</id>
   <content type="html">&lt;p&gt;&lt;a href="http://www.itconversations.com/index.html"&gt;IT Conversations&lt;/a&gt; provides audio programs and interviews with some of the leading people in the IT industry.&lt;/p&gt;
&lt;p&gt;It&amp;#8217;s great material for your iPod and helps to pass the time while decorating.&lt;/p&gt;
&lt;p&gt;As you might expect, I particularly recommend the Paul Graham stuff.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/G-U-LyWYLOw" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2005/12/19/it-conversations.html</feedburner:origLink></entry>
 
 <entry>
   <title>WordPress</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/A75OMY97vIQ/wordpress.html" />
   <updated>2005-12-18T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2005/12/18/wordpress</id>
   <content type="html">&lt;p&gt;I&amp;#8217;ve decided to consolidate my home site and weblog using &lt;a href="http://www.wordpress.org"&gt;WordPress &lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;WordPress in open source and runs on &lt;span class="caps"&gt;LAMP&lt;/span&gt;. I found it easy to install and get started. I hope that the change will prompt me to make more frequent updates.&lt;/p&gt;
&lt;p&gt;It might take me a while to restore all my content, but I hope to have this done by the new year.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/A75OMY97vIQ" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2005/12/18/wordpress.html</feedburner:origLink></entry>
 
 <entry>
   <title>ECOOP2005</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/ylooNaCk0PU/ecoop2005.html" />
   <updated>2005-07-27T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2005/07/27/ecoop2005</id>
   <content type="html">&lt;p&gt;I&amp;#8217;ve just returned from the &lt;a href="http://lisp-ecoop05.bknr.net/home"&gt;2nd European &lt;span class="caps"&gt;LISP&lt;/span&gt; and Scheme Workshop&lt;/a&gt;, part of the 19th European Conference on Object-Oriented Programming (&lt;a href="http://2005.ecoop.org"&gt;ECOOP2005&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;&lt;img src='/wp-content/secc.jpg' alt='Scottish Exhibition Centre Glasgow' /&gt;&lt;/p&gt;
&lt;p&gt;I presented a paper entitled &lt;a href="http://lisp-ecoop05.bknr.net/submission/19605"&gt;Introducing L Sharp, a Modern Lisp Dialect for the .&lt;span class="caps"&gt;NET&lt;/span&gt; Platform&lt;/a&gt; in which I talked about &lt;a href="http://www.lsharp.org"&gt;L Sharp&lt;/a&gt; and showed some demonstrations. In general, I think it was well received. I certainly got some useful feedback which was my prime objective.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.dreamsongs.com"&gt;Richard Gabriel&lt;/a&gt; suggested that I consider the idea of different name, different thing; that I need to be able to say that L Sharp is a something language. He pointed out how, when Java started, it didn&amp;#8217;t compete with C++ and how Python, Ruby etc are positioned as scripting languages so that they don&amp;#8217;t compete with Java. L Sharp needs to find a something to differentiate it &amp;#8211; maybe it&amp;#8217;s a configuration language for Vista for example.&lt;/p&gt;
&lt;p&gt;I already knew from &lt;a href="http://www.international-lisp-conference.org/"&gt;ILC2005&lt;/a&gt; that there were people for whom L Sharp will always be too much of a compromise; they&amp;#8217;d loose too much if they moved away from Common Lisp. One thing that I hadn&amp;#8217;t considered until today is the view that Lisp doesn&amp;#8217;t need to become more mainstream and that popularity is not necessarily a good goal &amp;#8211; as long as it survives and there is enough support that&amp;#8217;s okay. &lt;a href="http://weitz.de/"&gt;Edi Weitz&lt;/a&gt; seemed to enjoy the niche. I respect that point of view, but I &amp;#8217;m interested in how I can bridge the gap between how I program professionally and how I program in my spare time. As I said at the conference, delivering in Lisp is hard and getting harder because of this requirement for managed code.&lt;/p&gt;
&lt;p&gt;Anyway, my half hour slot turned into nearly one hour with debate and questions and all the feedback and advice was welcome.&lt;/p&gt;
&lt;p&gt;Brent Benson talked about building web applications in &lt;span class="caps"&gt;LISP&lt;/span&gt; &amp;#8211; &lt;a href="http://lisp-ecoop05.bknr.net/profile/12687"&gt;On the Internet nobody knows you&amp;#8217;re a Lambda&lt;/a&gt;. I found the talk encouraging, especially as I&amp;#8217;m hoping to embark upon a Common Lisp based Web application soon. I intend to take a look at &lt;a href="http://bknr.net/home"&gt;&lt;span class="caps"&gt;BKNR&lt;/span&gt;&lt;/a&gt; which is built in &lt;span class="caps"&gt;LISP&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;Richard Gabriel&amp;#8217;s key note talk covered some similar ground to his address at ILC2005, but it&amp;#8217;s still interesting to me how he can stand back and look at software development from new perspectives. Most people seem to be concerned with making incremental improvements, but he seems to be suggesting that we&amp;#8217;ve hit a local maxima and that we need to back track. I need to think about autopoietic software some more.&lt;/p&gt;
&lt;p&gt;Richard was kind enough to sign my copy of his book &amp;#8216;Patterns of Software: Tales from the Software Community&amp;#8217;.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/ylooNaCk0PU" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2005/07/27/ecoop2005.html</feedburner:origLink></entry>
 
 <entry>
   <title>International Lisp Conference 2005</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/uW7s-EiEk-Q/5.html" />
   <updated>2005-06-26T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2005/06/26/5</id>
   <content type="html">&lt;p&gt;I&amp;#8217;ve just returned from the &lt;a href="http://www.international-lisp-conference.org/"&gt; International Lisp Conference 2005&lt;/a&gt; at &lt;a href="http://www.stanford.edu/"&gt;Stanford University&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src='/wp-content/stanford.jpg' alt='Stanford University' /&gt;&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m pleased to report that the Lisp Community is alive and well and still full of colourful characters and interesting people.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m used to computing conferences being high budget affairs with lots of stands (TechEd, Devweek), but Lisp only has two real vendors, &lt;a href="http://www.franz.com/"&gt;Franz&lt;/a&gt; and &lt;a href="http://www.lispworks.com/"&gt;LispWorks&lt;/a&gt; and whilst both companies were present they were fairly low profile; this conference was about Lisp developers sharing ideas, not having marketing messages drilled into them &amp;#8211; very refreshing!&lt;/p&gt;
&lt;p&gt;Alex Peake showed how his company &lt;a href="http://www.comac.com/"&gt;Comac&lt;/a&gt; is using generative programming to get big productivity gains when developing .&lt;span class="caps"&gt;NET&lt;/span&gt; applications. The .&lt;span class="caps"&gt;NET&lt;/span&gt; community seems to be content with employing armies of programmers to churn out tedious &lt;span class="caps"&gt;GUI&lt;/span&gt; and database access code. These patterns can be identified and abstracted to good effect. Alex was kind enough to mention &lt;a href="http://www.lsharp.org/"&gt;LSharp&lt;/a&gt;. He is also a technical director of a software house and we had some interesting discussions about disruptive technology, recruitment, Language Workbench etc. I thank him for his encouragement of my L Sharp endeavours.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.dreamsongs.com/"&gt;Richard P Gabriel&lt;/a&gt;&amp;#8216;s talk on Conscientious Software was excellent and very inspiring. We need to start thinking of software that can take care of itself and &amp;#8217;not just sit their like a toaster&amp;#8217;. Think Autopoietic not Allopoietic. It was a reminder that we are still in the infancy of Software Development.&lt;/p&gt;
&lt;p&gt;Will Clinger&amp;#8217;s talk concluded with &amp;#8217;We&amp;#8217;re the Common Larceny team, boy do we have a Scheme for you&amp;#8217;. These guys have a Scheme implementation running on the &lt;span class="caps"&gt;CLR&lt;/span&gt; with reflective invocation and even a Tiny &lt;span class="caps"&gt;CLOS&lt;/span&gt;. In many ways they are working on the same problem as LSharp, just that they are coming at it from an Academic perspective. I think that L Sharp has a cleaner syntax that is more accessible by .&lt;span class="caps"&gt;NET&lt;/span&gt; people, but Common Larceny is further ahead in terms of implementation.&lt;/p&gt;
&lt;p&gt;Harold Carr&amp;#8217;s talk on &lt;a href="http://llava.org/"&gt;LLava&lt;/a&gt; highlighted the language design challenges faced when developing new dialects of Lisp. His principle of &amp;#8216;maximum leverage of Java &amp;#8211; only add what is missing or cannot be done in Java&amp;#8217; makes for an interesting syntax which he is still grappling with.&lt;/p&gt;
&lt;p&gt;Talks about Kawa and CLforJava underlined the level of interest there is in having Lisp dialects running on mainstream virtual machines.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.franz.com/"&gt;Franz&lt;/a&gt; presented their forthcoming AllegroCache product. It&amp;#8217;s a persistent object database that&amp;#8217;s really well integrated into &lt;span class="caps"&gt;CLOS&lt;/span&gt; and has impressive performance and scalability. There will be a &lt;span class="caps"&gt;SQL&lt;/span&gt; interface, but they showed querying it with their embedded Prolog. I&amp;#8217;d like to get my hands on this for some work at &lt;a href="http://www.aws.net/"&gt;Active Web Solutions&lt;/a&gt;. I&amp;#8217;m now the proud owner of a (got-lisp-p) T Shirt.&lt;/p&gt;
&lt;p&gt;There are many cool Lisp applications out there and we saw demos of the following to name a few; Bio Lingua, Honda crash test analysis, particle accelerator management and &lt;span class="caps"&gt;NASA&lt;/span&gt; autonomous helicopter.&lt;/p&gt;
&lt;p&gt;When I first worked for BT&amp;#8217;s Research and Development in the early nineties, there were great expectations for AI, expert systems and natural language processing. It seems that some of the goals have been quietly achieved, with the Langutils demo showing a high degree of competence in natural language understanding and common sense reasoning.&lt;/p&gt;
&lt;p&gt;I met Patrick Dussad, Chief Architect for the Common Language Runtime at Microsoft. He had downloaded LSharp and liked it. He gave me plenty of good feedback including the need to be able to define classes and methods; too much consing; the need for a compiler, CodeDom etc. We discussed the fact that you can&amp;#8217;t currently garbage collect dynamically generated code; this is fixed in a forthcoming &lt;span class="caps"&gt;CLR&lt;/span&gt; and the workaround is to unload the AppDomain. He said that I could email with questions and that he would try to get answers for me.&lt;/p&gt;
&lt;p&gt;I asked him about the &lt;span class="caps"&gt;CLR&lt;/span&gt; implementation and he confirmed that the Garbage Collector had been prototyped in Lisp before being put through a Lisp to C translator.&lt;/p&gt;
&lt;p&gt;In his talk, Patrick called for a new, modern lisp implementation on the .&lt;span class="caps"&gt;NET&lt;/span&gt; platform and shared his ideas about how he would go about this task if he had the time. There was quite a lot of negativity and hostility from the audience which is a real shame. Somebody said that the Lisp Community was waiting for the mainstream to find them and that there was no need to change; I think this is a head-in-the-sand view. Patrick said that if the Lisp Community didn&amp;#8217;t fill the dynamic language void on the .&lt;span class="caps"&gt;NET&lt;/span&gt; platform, somebody else would. I think that if we could provide a kind of &amp;#8216;cut down&amp;#8217; Lisp on .&lt;span class="caps"&gt;NET&lt;/span&gt;, that would be very useful in itself and would probably be a signpost to help more people discover Common Lisp. I think any community has to adapt or die.&lt;/p&gt;
&lt;p&gt;Here are some other observations about California life:&lt;/p&gt;
&lt;p&gt;The Internet is ubiquitous here (more so than the UK) &amp;#8211; hotel rooms with free broadband, Wireless just about everywhere campus-wide.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m a part time Apple Mac user. I&amp;#8217;d read Paul Graham&amp;#8217;s piece on &lt;a href="http://www.paulgraham.com/mac.html"&gt;Return of the Mac&lt;/a&gt; saying that all the best hackers are now on Mac, but I was amazed at just how widespread Apple was in the whole of the Bay Area. Wherever I went it seemed that Apple was there &amp;#8211; either on the advertising boards or there&amp;#8217;d be somebody using a Mac at a coffee shop. Macs and IPods are fashion accessories as well as functional devices. In the Stamford Computer Shop the whole focus was Apple; yes you could buy a PC, but PC&amp;#8217;s are just not appealing any more. I also came across three Apple stores &amp;#8211; one in Palo Alto, one in &lt;a href="http://stanfordshop.com/"&gt;Stanford Shopping Centre&lt;/a&gt; and one in San Francisco. All were doing a roaring trade. All were appealing to the man in the street rather than techies per se. I particularly like the idea of being able to book an appointment at the Genius Bar &amp;#8211; a kind of clinic where you can get advice from and apple expert.&lt;/p&gt;
&lt;p&gt;We concluded with a couple of days in &amp;#8216;The City&amp;#8217; (San Francisco) to do the usual tourist stuff and that was a great end to a fantastic trip.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/uW7s-EiEk-Q" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2005/06/26/5.html</feedburner:origLink></entry>
 
 <entry>
   <title>My Grandfather</title>
   <link href="http://feedproxy.google.com/~r/RobBlackwell/~3/OqLMG0K6f4g/my-grandfather.html" />
   <updated>2005-02-09T00:00:00+00:00</updated>
   <id>http://robblackwell.org.uk/2005/02/09/my-grandfather</id>
   <content type="html">&lt;p&gt;My Aunt Janet,  a teacher,  asked my grandfather to record some World War II Memories in 1994 so that she could use the material in her class history lesson.&lt;/p&gt;
&lt;p&gt;I recently converted the audio cassette recording to MP3 in an effort to preserve it for future generations and make it more widely available.&lt;/p&gt;
&lt;p&gt;The recording describes my maternal grandfather&amp;#8217;s experience as a Geography teacher in 1939, the announcement of Hitler invading Poland, evacuation from West Ham and an air raid.&lt;/p&gt;
&lt;p&gt;You can download it &lt;a href="/wp-content/aerrowe1994.mp3"&gt;here&lt;/a&gt; [ 7Mb MP3 file].&lt;/p&gt;
&lt;p&gt;Sadly there are no further installments. It would have been interesting to hear of his experiences taking Morse code in The Navy.&lt;/p&gt;
&lt;p&gt;&lt;img src='/wp-content/aerrowe.jpg' alt='AER Rowe' /&gt;&lt;br /&gt;
Arthur Edward Richard Rowe, c1942.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RobBlackwell/~4/OqLMG0K6f4g" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://robblackwell.org.uk/2005/02/09/my-grandfather.html</feedburner:origLink></entry>
 
 
</feed>
