Update and Happy New Year
I havent written much lately as have been very busy working on my book.
I cant say too much about this at present as Apress wont allow me to yet, however more details coming soon...
I would like recommend a very interesting book I have been reading about Neural Networks called Introduction to Neural Networks for C#, Second Edition
http://www.heatonresearch.com/online/introduction-neural-networks-cs-edition-2
Introduction to Neural Networks for C#, Second Edition is the first book that I have read that expains beyond the basics of how neural networks work and manages to avoid too much maths (unlike most other AI books). I also came across a very interesting AI blog at: http://dynamicnotions.blogspot.com/
Next year we will have a few changes to DevEvening:
First of all we have a new venue, The Bird in hand pub in Mayford which will offer cheaper food and beer!
We will vary our evenings with member and professional speakers
We have 2 excellent speakers joining us Andrew Fryer and Craig Murphey on the next meeting on Jan 29th
I also have other speakers such as Jon Skeet, Dinis Cruz and Andrew Dean lined up for the future
So lots to look forward too,
All the best for the new year!
Genetic Algorithms
On Reddit someone posted an excellent animation that demonstrated genetic algorithms (GA). The example shows GA refining a vehicle to move over bumpy terrain:
http://www.wreck.devisland.net/ga/
But how does a genetic algorithm work?
The basic idea is actually pretty simple although I bet the implemention is trickier (most notably the breeding part!)
- A set of initial solutions to try is created
- These are then tried against a specific task (in this case can the vehicle move across the terrain) this is called the fitness function.
- Some vehicles will move better over the terrain than others these will be given a higher fitness rating
- The GA then selects the solutions with the best rating. To stop future solutions becoming too similar and converging a few random of the not so successful solutions from the previous group are also "bred"
- These solutions are then bred together in an attempt to produce better solutions
Pretty cool eh?
For more information Wikipedia as usual is our friend:
http://en.wikipedia.org/wiki/Genetic_algorithm
Any DevEvening members looking for a new position
New DevEvening member Rusty has contacted me to see if anyone is looking for a new position.
You would be working at Rusty's startup company Incuvis (www.incuvis.com)
Rusty says:
"We're currently looking to work with a lead developer for our venture, it's a typical risk-reward model and we can share equity.
We're developing radically new business risk intelligence software. Core skills will be ASP.net (we think ...) and charting tools and moving
towards MS Silverlight. An understand of analytics and data would also be a bonus."
If this sounds like you please email sarim at incuvis.com.
Azure first look
One of the most exciting upcoming technologies is Windows Azure.
Azure is Microsoft's cloud computing platform and made up of a number of components and services.
Azure can be split into a number of technologies (not all of which are currently available)
- .Net Services (Message broker, security and Workflow hosting)
- SQL Services (an online database accessed using REST)
- Live Services (a number of different services from interfacing with messanger to sending alerts)
- Sharepoint Services
- Microsoft CRM
Currently .net and to some degree SQL services are available.
To play around with Azure you need to register so sign up at: http://www.microsoft.com/azure/register.mspx.
Microsoft will then send you a key (mine took about a week to arrive) allowing you to access the online facilities.
Until you get this key you can still play around to an extentby downloading the SDK: http://www.microsoft.com/downloads/details.aspx?FamilyId=BB893FB0-AD04-4FE8-BB04-0C5E4278D3E9&displaylang=en.
I suggest you also download the tools for visual studio from http://www.microsoft.com/downloads/details.aspx?FamilyId=63D0D248-1B08-4F7D-ABDE-62EB75CB1E69&displaylang=en. As this is beta software you probably want to be running it in virtual pc (although I didnt and everything seems fine still).
The first thing you should do is watch Steve Marx's presentation on developing an application in Azure at: http://channel9.msdn.com/pdc2008/ES01/
Steve is an excellent preseter, great to watch and will take you through the basics of Windows Azure.
After installing the Visual Studio tools you can create Web Cloud service ASP.net projects. Cloud projects are very similar to standard ASP.net projects but contain another project that has some additional files that describe where the service is hosted and configuration settings (.csdef and .cscfg).
If you look at the project name in Visual Studio you will see it is called something like CloudService1_webRole. Role is a term within Azure that seems to describe the type of service you are running. If you right click on the service project you can deploy it to the cloud (which they havent given me access to yet).
As it would be inconvenient to deploy your app every time you wanted to test it Microsoft provide an application called the development fabric which simulates how it will function in the cloud (below). If you open the cscfg in studio you will see its an XML file that contains the following:
<?xml version="1.0"?>
<ServiceConfiguration serviceName="CloudService3" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration">
<Role name="WebRole">
<Instances count="1"/>
<ConfigurationSettings>
</ConfigurationSettings>
</Role>
</ServiceConfiguration>
If you alter the instances count element and run the app you will see more instances created in development fabric. This simulates adding capacity to your Azure application e.g. if you are expecting many visitors to hit the site.
Once you have your key and have activated it you can log into the Azure services platform. This will take you to an interface like the screen shot below. At present its a bit rough around the edges but you can see the direction they are going.
Currently within .net services you have access to 3 components:
- Service Bus (acts as a broker/intermediatry for messages)
- Workflow (hosts workflow)
- Access control service (authentication and authorization)
The examples provided in the SDK take you through the basics of how these work. There is an example of a chat application that sends messages via the service broker. What is impressive is the speed of it, no noticable delay at all. There is also another example application to demonstrate the security features )(a calculator app). This threw an security exception when I tried to run it about token being valid 10 seconds after it was requested?!
Security is defined by an input claim e.g. a specific username which is then matched to Output claims (e.g. in the included example give the ability to multiply).
Some of the examples are a bit cryptic at present and I would suggest brush up on your WCF and Workflow as these concepts will certainly be used.
It all looks really promising so far and I cant wait to learn more about it.
