<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>LINQ to Fail</title>
    <link>https://www.aaron-powell.com/</link>
    <description>Recent content on LINQ to Fail</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-US</language>
    <copyright>true</copyright>
    <lastBuildDate>Thu, 22 Mar 2018 10:51:52 +1100</lastBuildDate>
    
        <atom:link href="https://www.aaron-powell.com/index.xml" rel="self" type="application/rss+xml" />
    
    
    <item>
      <title>Integration Testing Umbraco With Chauffeur</title>
      <link>https://www.aaron-powell.com/posts/2018-03-22-integration-testing-umbraco-with-chauffeur/</link>
      <pubDate>Thu, 22 Mar 2018 10:51:52 +1100</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2018-03-22-integration-testing-umbraco-with-chauffeur/</guid>
      <description>One of the design goals of Chauffeur was to make it easy to extend, and that was the reason why I separated the core of Chauffeur out of the console application that you use to interact with it, resulting in the two NuGet packages. This means that really all the power of Chauffeur actually resides within the Chauffeur package and the runner really just creates an instance of the core class in there, UmbracoHost.</description>
    </item>
    
    <item>
      <title>Content Ownership and Aggregation Sites</title>
      <link>https://www.aaron-powell.com/posts/2018-03-04-content-ownership-and-aggregation-sites/</link>
      <pubDate>Sun, 04 Mar 2018 16:39:48 +1100</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2018-03-04-content-ownership-and-aggregation-sites/</guid>
      <description>Earlier this year I wrote about my thoughts on blogging and content ownership and I wanted to expand on it with the perspective on a type of publishing that&amp;rsquo;s becoming popular, aggregation sites.
Sites like hackernoon are gaining in popularity and for good reason, they are a great way to get content to a wider audience than just through your own blog (generally speaking). But there&amp;rsquo;s also a risk factor that I think people don&amp;rsquo;t realise with this and it&amp;rsquo;s something that I have been caught with, and that&amp;rsquo;s the lifetime of these sites.</description>
    </item>
    
    <item>
      <title>Managing Packages With Chauffeur</title>
      <link>https://www.aaron-powell.com/posts/2018-02-23-managing-packages-with-chauffeur/</link>
      <pubDate>Fri, 23 Feb 2018 14:43:05 +1000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2018-02-23-managing-packages-with-chauffeur/</guid>
      <description>Something that I&amp;rsquo;m really proud of with Chauffeur is how easy it is to extend, and I do a lot of little experiments to validate that the extensibility.
Last year I was working on some Umbraco stuff and needed to install a package from the Umbraco package feed. Now normally I&amp;rsquo;d want to use NuGet to manage my external dependencies but with Umbraco you might require something that isn&amp;rsquo;t really a .</description>
    </item>
    
    <item>
      <title>Chauffeur goes v1</title>
      <link>https://www.aaron-powell.com/posts/2018-02-23-chauffeur-goes-v1/</link>
      <pubDate>Fri, 23 Feb 2018 14:27:51 +1000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2018-02-23-chauffeur-goes-v1/</guid>
      <description>🎉 TL;DR Chauffeur is finally at version 1.0, time to get updating! 🎉
3 years and 11 months a go I initialised a git repo for what would become Chauffeur (the first actual code was not much later that day). Over the time I&amp;rsquo;ve chipped away at it slowly, added features, fixed bugs, etc.
For a while it&amp;rsquo;s been pretty stable, it did pretty much what I was wanting it to do, so really the only thing missing was the fact that it wasn&amp;rsquo;t a &amp;ldquo;v1 product&amp;rdquo;.</description>
    </item>
    
    <item>
      <title>The Happy PowerShell Prompt</title>
      <link>https://www.aaron-powell.com/posts/2018-01-30-the-happy-powershell-prompt/</link>
      <pubDate>Tue, 30 Jan 2018 13:40:38 +1100</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2018-01-30-the-happy-powershell-prompt/</guid>
      <description>Recently, for no particularly good reason, I decided to mess around with my PowerShell prompt and create what I&amp;rsquo;m dubbing the Happy PowerShell Prompt.
Did you know that you can customise the PowerShell prompt like that? Well it turns out that it&amp;rsquo;s actually quite easy, PowerShell has a bunch of built in functions that you can override to change the operation, one such function is function:\prompt, and overriding this will override your prompt!</description>
    </item>
    
    <item>
      <title>Learn About Umbraco Continuous Delivery at uduf</title>
      <link>https://www.aaron-powell.com/posts/2018-01-21-learn-about-umbraco-cd-at-uduf/</link>
      <pubDate>Sun, 21 Jan 2018 13:18:25 +1100</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2018-01-21-learn-about-umbraco-cd-at-uduf/</guid>
      <description>Have you heard, there&amp;rsquo;s an Umbraco conference coming to Australia, Umbraco Down Under Festival, aka uduf! I&amp;rsquo;m really excited for this, I&amp;rsquo;ve been wanting to see more Umbraco community events happening in Australia, so to see a fully-fledged conference happening is damn cool.
I&amp;rsquo;m also excited to be speaking at this inaugural event, and speaking about an aspect of Umbraco that I&amp;rsquo;m very passionate about, how you do continuous delivery.</description>
    </item>
    
    <item>
      <title>On blogging and content ownership</title>
      <link>https://www.aaron-powell.com/posts/2018-01-15-blogging-and-content-ownership/</link>
      <pubDate>Mon, 15 Jan 2018 16:43:07 +1100</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2018-01-15-blogging-and-content-ownership/</guid>
      <description>Recently the question came up within Readify about how to get into blogging. As someone who blogs (obviously) and has blogged for a while now, I decided to share my thoughts on the topic. In fact it&amp;rsquo;s a question that I&amp;rsquo;ve been asked a few times, I&amp;rsquo;d been considering writing a post about it and someone suggested that I do it, so it&amp;rsquo;s time for a meta post on blogging on my blog.</description>
    </item>
    
    <item>
      <title>2017 - A year in review</title>
      <link>https://www.aaron-powell.com/posts/2018-01-11-2017-a-year-in-review/</link>
      <pubDate>Thu, 11 Jan 2018 09:25:41 +1100</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2018-01-11-2017-a-year-in-review/</guid>
      <description>Another year has come and gone and with that it&amp;rsquo;s time for everyone to write there &amp;lsquo;The year that was&amp;rsquo; posts. I missed doing it in 2016 but though that for 2017 I&amp;rsquo;d do one as it was an interesting year for me.
A quick look at my blog history shows that I did a total of 21 posts in 2017, which is not bad given that I didn&amp;rsquo;t start blogging again until I rebuilt my site in July!</description>
    </item>
    
    <item>
      <title>PowerShell nvm v2</title>
      <link>https://www.aaron-powell.com/posts/2017-12-07-powershell-nvm-v2/</link>
      <pubDate>Fri, 08 Dec 2017 15:19:23 +1100</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2017-12-07-powershell-nvm-v2/</guid>
      <description>🎉 TL;DR PowerShell Node Version Manager is 2.0 with semver support, autocomplete and it works on Windows, OSX and Linux PowerShell releases! 🎉
A little over 3 years ago I was annoyed that I couldn&amp;rsquo;t easily run multiple versions of Node.js on Windows and that meant I could either install the stable version my project needed or install a bleeding edge version, I couldn&amp;rsquo;t easily do both. I knew that Linux/OSX had nvm but I was on Windows and short of using Cygwin shudders I didn&amp;rsquo;t have any options.</description>
    </item>
    
    <item>
      <title>Simple APIs With Microsoft Flow And Azure Functions</title>
      <link>https://www.aaron-powell.com/posts/2017-11-17-simple-apis-with-flow-and-azure-functions/</link>
      <pubDate>Fri, 17 Nov 2017 10:04:08 +1100</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2017-11-17-simple-apis-with-flow-and-azure-functions/</guid>
      <description>When I&amp;rsquo;m working on demos for a blog post/talk/OSS project/etc. I will tend to just create an ASP.NET Core app or Node.js app and throw it somewhere for hosting. But it&amp;rsquo;s always a little tedious, no matter how many times I do it it requires me to dig up my old boilerplate code and then put it somewhere.
Recently I was wanting to create a PoC but I wanted to have data persistence to it, I don&amp;rsquo;t really care how I persist the data, just it needs persisting.</description>
    </item>
    
    <item>
      <title>Debugging PowerShell from VS Code on Linux using Docker containers</title>
      <link>https://www.aaron-powell.com/posts/2017-11-13-debugging-powershell-from-vscode-on-linux/</link>
      <pubDate>Mon, 13 Nov 2017 17:08:45 +1100</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2017-11-13-debugging-powershell-from-vscode-on-linux/</guid>
      <description>I&amp;rsquo;ve previously blogged about running a Docker Linux container on Windows to run VS Code on Linux and at the time I was really just doing it because I wanted to work out if it was actually possible, which it was! But in reality it was really a solution just looking for a problem.
Well, good news, I have found the problem that this is a valid solution for! Well, as valid a solution as I can come up with at least.</description>
    </item>
    
    <item>
      <title>Avoiding npm globals through run-script</title>
      <link>https://www.aaron-powell.com/posts/2017-11-12-avoiding-npm-globals-through-run-scripts/</link>
      <pubDate>Sun, 12 Nov 2017 14:55:46 +1100</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2017-11-12-avoiding-npm-globals-through-run-scripts/</guid>
      <description>I was talking with Richard Banks the other day about doing silly things with Docker (because, well I&amp;rsquo;m known for that at work) and he was saying he wants to create docker containers that contain the global npm modules that he often uses to save installing them using npm install -g.
I asked him why he was using npm install -g and he said it was for build tools (gulp/grunt/webpack/etc.</description>
    </item>
    
    <item>
      <title>Hit Refresh</title>
      <link>https://www.aaron-powell.com/posts/2017-10-31-hit-refresh/</link>
      <pubDate>Tue, 31 Oct 2017 21:10:44 +1100</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2017-10-31-hit-refresh/</guid>
      <description>I&amp;rsquo;ve started having a read of Hit Refresh and it got me pondering my own story.
Like all good stories this one starts with heartache, I&amp;rsquo;d just gotten out of a long-term relationship and I was looking for an escape. Drug, alcohol, none of those appealed, instead I escaped into the world of open source software.
Well this was 2009 and I was a .NET developer and open source was not really a thing in the .</description>
    </item>
    
    <item>
      <title>Chauffeur v0.12.0</title>
      <link>https://www.aaron-powell.com/posts/2017-10-26-chauffeur-v012/</link>
      <pubDate>Thu, 26 Oct 2017 14:54:45 +1100</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2017-10-26-chauffeur-v012/</guid>
      <description>Chauffeur, my little Umbraco deployment tool is chugging along quite nicely. I don&amp;rsquo;t do a huge amount of work on it, mostly it comes in batches when I get requests from people who are using it. For the release I&amp;rsquo;ve just cut, v0.12.0, I&amp;rsquo;ve got quite a lot of changes in it so I wanted to do a bit more of a write up about them.
Side note: I cut v0.</description>
    </item>
    
    <item>
      <title>Using Flow to monitor Have I Been Pwned</title>
      <link>https://www.aaron-powell.com/posts/2017-10-09-flow-hibp-todo/</link>
      <pubDate>Mon, 09 Oct 2017 18:30:44 +1100</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2017-10-09-flow-hibp-todo/</guid>
      <description>I, like many people, use Troy Hunt&amp;rsquo;s Have I Been Pwned to notify me when my account was in a data breach.
While the email notification is fine it doesn&amp;rsquo;t really fit into my workflow and honestly I get that much email it&amp;rsquo;s just another thing that is picked up by Clutter and filtered out of my inbox. Because of this it&amp;rsquo;s often days before I even find out I was in a breach, not really ideal.</description>
    </item>
    
    <item>
      <title>Edge On iOS And Android</title>
      <link>https://www.aaron-powell.com/posts/2017-10-06-edge-on-ios-and-android/</link>
      <pubDate>Thu, 05 Oct 2017 20:14:02 +1100</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2017-10-06-edge-on-ios-and-android/</guid>
      <description>If you missed the tech news this morning Microsoft announced that the Edge browser is coming to iOS and Android. This, on the surface, seems like quite an unexpected move but digging deeper it isn&amp;rsquo;t that unexpected.
So with it announced I want to talk about about what it is, why I&amp;rsquo;ll be installing it for a play but don&amp;rsquo;t know if I&amp;rsquo;d move to it as my primary browser on my Pixel.</description>
    </item>
    
    <item>
      <title>What&#39;s New On The Web Platform</title>
      <link>https://www.aaron-powell.com/posts/2017-10-02-whats-new-on-the-web-platform/</link>
      <pubDate>Mon, 02 Oct 2017 14:18:29 +1100</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2017-10-02-whats-new-on-the-web-platform/</guid>
      <description>I recently blogged about my experience at MS Edge Web Summit. On the back of this I was invited to speak at ALT.NET Sydney to share some of the things I&amp;rsquo;d learnt about. I covered off three topics, the Payment Request API, Sonar and some new features in F12.
For the Payment Request API I created some demos:
 A basic demo A demo using multiple payment methods Requesting shipping address Dynamic shipping options &amp;ldquo;Lazy loading&amp;rdquo; shipping options  Note: These demos are purely client side and don&amp;rsquo;t submit card details or anything, you can see the code for each page by following the commit link in their footers.</description>
    </item>
    
    <item>
      <title>Docker, FROM scratch</title>
      <link>https://www.aaron-powell.com/posts/2017-10-01-docker-from-scratch/</link>
      <pubDate>Sun, 01 Oct 2017 18:38:36 +1000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2017-10-01-docker-from-scratch/</guid>
      <description>A perk of working at Readify is that we strive to be leaders in technology so we&amp;rsquo;re always encouraged to learn new things. One such thing that I started getting into a year or so ago was Docker. Now I&amp;rsquo;m not an infrastructure person, I left that part of IT a long time ago, so what I was interested in Docker for was how it can be used in a development experience and how it fits there before even beginning to look at running a containerised production environment.</description>
    </item>
    
    <item>
      <title>Readify PC 12 Months On</title>
      <link>https://www.aaron-powell.com/posts/2017-09-27-readify-pc-12-months-on/</link>
      <pubDate>Wed, 27 Sep 2017 10:11:55 -0700</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2017-09-27-readify-pc-12-months-on/</guid>
      <description>Around 12 months ago I wrote a blog post about my journey from SD to PC at Readify and I thought it might be worthwhile doing a follow up to that about how the 12 months since then have gone. If you haven&amp;rsquo;t read the first one you might want to read it, it&amp;rsquo;ll give a bunch of context into what I&amp;rsquo;m talking about here.
What&amp;rsquo;s Changed? As much as I&amp;rsquo;d like to say that moving into the PC role I was able to answer every question, solve every problem, etc.</description>
    </item>
    
    <item>
      <title>VS Code, Linux, Docker for Windows</title>
      <link>https://www.aaron-powell.com/posts/2017-09-21-vscode-linux-docker-windows/</link>
      <pubDate>Thu, 21 Sep 2017 13:41:09 +1000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2017-09-21-vscode-linux-docker-windows/</guid>
      <description>I&amp;rsquo;m currently writing a blog post on VS Code for Linux, running inside a Linux docker container, hosted by Docker for Windows (on my Windows 10 machine), with the UI being piped across to Windows using a X11 server.
Why? Because why not!
What the hell is this all about? Back when I was first getting into computers I was a Linux kid, I ran a Linux server at home to do local DHCP/squid proxy/etc.</description>
    </item>
    
    <item>
      <title>MS Edge Web Summit 2017</title>
      <link>https://www.aaron-powell.com/posts/2017-09-15-msedge-summit-2017/</link>
      <pubDate>Fri, 15 Sep 2017 16:08:37 -0700</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2017-09-15-msedge-summit-2017/</guid>
      <description>I&amp;rsquo;m currently sitting in SeaTac airport SEA ✈ LAX LAX airport LAX ✈ SYD, preparing to fly back to Sydney after a whirlwind trip (I landed on Tuesday afternoon, it&amp;rsquo;s currently Friday afternoon and I&amp;rsquo;m flying back 😛) over to attend the MS Edge Web Summit.
I was invited due to my contributions as a Microsoft MVP, an award that I&amp;rsquo;ve been proud to hold for 7 years now.</description>
    </item>
    
    <item>
      <title>httpstat.us now supports HTTPS</title>
      <link>https://www.aaron-powell.com/posts/2017-09-01-httpstatus-now-https/</link>
      <pubDate>Fri, 01 Sep 2017 10:10:53 +1000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2017-09-01-httpstatus-now-https/</guid>
      <description>A few years ago Tatham Oddie and I launched a little website for testing HTTP responses called httpstat.us.
With websites being encouraged to move to HTTPS-first (like how Google is pushing for it) and the cost-point of HTTPS no longer an issue thanks to Lets Encrypt I finally got around to enabling HTTPS on there.
Now you can test status codes from secured sites without mixed-mode warnings.</description>
    </item>
    
    <item>
      <title>WhatKey</title>
      <link>https://www.aaron-powell.com/posts/2017-08-30-whatkey/</link>
      <pubDate>Wed, 30 Aug 2017 16:03:46 +1000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2017-08-30-whatkey/</guid>
      <description>Nearly 7 years ago (seriously, that long?!) I launched a website to help find what keyCode you hit in JavaScript.
Well the domain lapsed, the app went offline on the host, and ultimately I didn&amp;rsquo;t care to much to fix all of that. Well never fear, I&amp;rsquo;ve brought it back from the dead!
You&amp;rsquo;ll now find WhatKey living at on my website. I&amp;rsquo;ve also done a little tweak to it so that you can see all keyCode values at the same time.</description>
    </item>
    
    <item>
      <title>NDC Sydney Recap</title>
      <link>https://www.aaron-powell.com/posts/2017-08-30-ndc-sydney-recap/</link>
      <pubDate>Wed, 30 Aug 2017 11:46:02 +1000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2017-08-30-ndc-sydney-recap/</guid>
      <description>In August this year I was lucky enough to speak at NDC Sydney for the 2nd time, this year I use the material from my redux series for one talk and did a second talk about getting started with Docker (which I&amp;rsquo;ll write about separately).
But this isn&amp;rsquo;t a post about my talks, instead I walk to talk about some of the things that I learnt at NDC. I tried to get to a variety of talks, some directly relate to what I do day-to-day, some less so.</description>
    </item>
    
    <item>
      <title>React SVG Chart Animation</title>
      <link>https://www.aaron-powell.com/posts/2017-08-10-react-svg-chart-animation/</link>
      <pubDate>Thu, 10 Aug 2017 20:39:43 +1000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2017-08-10-react-svg-chart-animation/</guid>
      <description>In my last post I talked about animating SVG objects and how to combine that with React. As I talked about the catalyst for it was looking into how we could do charts.
Well of course after my initial experiments I wanted to actually look at how to do a chart.
Creating a basic chart For this I started with the great walk through on SVG Charts at CSS Tricks, and I&amp;rsquo;m going to use the Line Chart example for this (but with randomly generated data).</description>
    </item>
    
    <item>
      <title>React SVG Animations</title>
      <link>https://www.aaron-powell.com/posts/2017-08-08-react-svg-animations/</link>
      <pubDate>Tue, 08 Aug 2017 20:58:32 +1000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2017-08-08-react-svg-animations/</guid>
      <description>I&amp;rsquo;ve been working on a project recently that we&amp;rsquo;ve using React for the UI component of it. While starting planning out the next phase of the project we looked at a requirement around doing charting. Now it&amp;rsquo;s been a while since I&amp;rsquo;ve done charting in JavaScript, let alone charting with React, so I did what everyone does these days and shouted out on the twittersphere to get input.
Joke replies aside there was the suggestion that, if I&amp;rsquo;m using React, to just do raw SVG and add a touch of d3 to animate if required.</description>
    </item>
    
    <item>
      <title>DDD Sydney 2017 Recap</title>
      <link>https://www.aaron-powell.com/posts/2017-08-07-dddsydney-2017-recap/</link>
      <pubDate>Mon, 07 Aug 2017 19:19:17 +1000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2017-08-07-dddsydney-2017-recap/</guid>
      <description>Another year has come and gone and with that DDD Sydney!
Last year I wrote about what I learnt organising DDD Sydney for the first time and I wanted to talk a bit about what happened this year and see how many of the points I raised last year we were able to address.
Timing Well this time we decided to give us more than 2 months to organise the event.</description>
    </item>
    
    <item>
      <title>Chauffeur at Umbraco Sydney</title>
      <link>https://www.aaron-powell.com/posts/2017-07-31-chauffeur/</link>
      <pubDate>Mon, 31 Jul 2017 19:34:08 +1000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2017-07-31-chauffeur/</guid>
      <description>Chauffeur is one of my pet projects and is something that I think is really quite useful when it comes to working with Umbraco in a CI/CD situation.
Earlier this month I was given the opportunity to speak at the Sydney Umbraco UG and show off Chauffeur.
I also recorded the presentation for anyone who&amp;rsquo;s interested in learning more about Chauffeur and seeing it in action. I cover off the role of Chauffeur, how to get started with it and finally its extensibility model.</description>
    </item>
    
    <item>
      <title>Site Rebuild</title>
      <link>https://www.aaron-powell.com/posts/2017-07-27-site-rebuild/</link>
      <pubDate>Thu, 27 Jul 2017 07:18:34 +1000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2017-07-27-site-rebuild/</guid>
      <description>Well it&amp;rsquo;s finally happened, I&amp;rsquo;ve finally listened to the advice I&amp;rsquo;ve quite often received from readers that my website layout isn&amp;rsquo;t great, the code examples are hard to read and it generally wasn&amp;rsquo;t great.
On top of the feedback I often received about my site just working on it has been a pain, which is one of the main reasons why I haven&amp;rsquo;t been blogging much over the past 6 months (although I have a lot of backed up content).</description>
    </item>
    
    <item>
      <title>Learning redux with reducks - beyond JavaScript the movie</title>
      <link>https://www.aaron-powell.com/posts/2016-10-12-learning-redux-with-reducks-beyond-javascript-talk/</link>
      <pubDate>Wed, 12 Oct 2016 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2016-10-12-learning-redux-with-reducks-beyond-javascript-talk/</guid>
      <description>In September I was invited to present at the F# Sydney user group and I decided to present on what I blogged about in my last post, implementing redux in F#.
You can catch the video of the talk on YouTube.</description>
    </item>
    
    <item>
      <title>Learning redux with reducks - beyond JavaScript</title>
      <link>https://www.aaron-powell.com/posts/2016-10-10-learning-redux-with-reducks-beyond-javascript/</link>
      <pubDate>Mon, 10 Oct 2016 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2016-10-10-learning-redux-with-reducks-beyond-javascript/</guid>
      <description>Over this series we&amp;rsquo;ve been looking at how we would write a library which mimics the functionality of Redux from scratch to understand how it works at the most basic of levels. What we&amp;rsquo;ve seen is that there&amp;rsquo;s three basic components, a Store which is our central point, Actions which indicate something happening and Reducers which handle something happening.
Really this is just a simple pattern for data flow, so I wanted now to explore how we could go beyond JavaScript with Redux and create something else.</description>
    </item>
    
    <item>
      <title>SD to PC - A journey of many steps</title>
      <link>https://www.aaron-powell.com/posts/2016-08-29-sc-to-pc/</link>
      <pubDate>Mon, 29 Aug 2016 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2016-08-29-sc-to-pc/</guid>
      <description>Preamble  I cut my teeth in the Melbourne .NET scene through the mid-2000&amp;rsquo;s and if you were doing that you knew who Readify were. They were the Microsoft developers. If you had a problem they&amp;rsquo;d know how to fix it. If you were at a Microsoft User Group, they were running it and presenting the content. If you went to a Microsoft conference, they were giving the talks. My goal was always to join them, but I didn&amp;rsquo;t know when or how, I was just an unknown dev writing some ASP.</description>
    </item>
    
    <item>
      <title>Learning redux with reducks - middleware</title>
      <link>https://www.aaron-powell.com/posts/2016-07-17-learning-redux-with-reducks-middleware/</link>
      <pubDate>Sun, 17 Jul 2016 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2016-07-17-learning-redux-with-reducks-middleware/</guid>
      <description>Last time we learnt how multiple reducers worked and today we&amp;rsquo;re going to look at intercepting the pipeline of actions to reducers, through the use of middleware.
What is middleware? When working with frameworks you&amp;rsquo;re likely to hit a situation where you want to intercept the pipeline of functionality. This is quite common across frameworks these days as they open up a method of extensibility without requiring class overrides or forking source code.</description>
    </item>
    
    <item>
      <title>Learning redux with reducks - multiple reducers</title>
      <link>https://www.aaron-powell.com/posts/2016-06-27-learning-redux-with-reducks-multiple-reducers/</link>
      <pubDate>Mon, 27 Jun 2016 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2016-06-27-learning-redux-with-reducks-multiple-reducers/</guid>
      <description>Last time we added some tests to our codebase to illustrate how our implementation of Reducks works against Redux. This time I want to look to expanding the features of Reducks and today it&amp;rsquo;s to support multiple reducers.
Understanding multiple reducers In a suitably complex Redux application you&amp;rsquo;re going to want to break down your reducer into smaller reducers. Let&amp;rsquo;s take our reducer code (abridged):
export default function (state, action) { switch (action.</description>
    </item>
    
    <item>
      <title>Learning redux with reducks - creating a Store</title>
      <link>https://www.aaron-powell.com/posts/2016-06-09-learning-redux-with-reducks-creating-a-store/</link>
      <pubDate>Thu, 09 Jun 2016 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2016-06-09-learning-redux-with-reducks-creating-a-store/</guid>
      <description>Last time we learnt the basics of what Redux is and what it does, now it&amp;rsquo;s time to start looking at how it works.
Before we get started, I&amp;rsquo;ve created a little app that we&amp;rsquo;ll be using. Because I wanted to illustrate that Redux isn&amp;rsquo;t just for React our sample application is not going to be a React application, it&amp;rsquo;s actually going to be a little console application. You&amp;rsquo;ll find the starting point for the code here.</description>
    </item>
    
    <item>
      <title>Learning redux with reducks - tests and demo app</title>
      <link>https://www.aaron-powell.com/posts/2016-06-09-learning-redux-with-reducks-tests-and-demo/</link>
      <pubDate>Thu, 09 Jun 2016 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2016-06-09-learning-redux-with-reducks-tests-and-demo/</guid>
      <description>Last time we started creating our Reducks library by implementing the createStore and while I have all confidence in my ability to write bug free code we do have some tests in the demo app, so let&amp;rsquo;s use them.
So, where do we start?
Abstracting createStore It&amp;rsquo;s actually not that complex in the way you would do this, normally within the code base you would have:
import { createStore } from &#39;redux&#39;;  The next step is change what we export to instead of just being the function to run you wrap it in.</description>
    </item>
    
    <item>
      <title>Learning redux with reducks - intro</title>
      <link>https://www.aaron-powell.com/posts/2016-06-06-learning-redux-with-reducks-intro/</link>
      <pubDate>Mon, 06 Jun 2016 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2016-06-06-learning-redux-with-reducks-intro/</guid>
      <description>Over the last 18 months I&amp;rsquo;ve been working with React and throughout that time I&amp;rsquo;ve used a number of different design patterns. For the past 6 months I&amp;rsquo;ve been primarily using Redux and I&amp;rsquo;ve found it&amp;rsquo;s beauty in the utter simplicty of it.
I&amp;rsquo;m the kind of person who likes to know how things work at the low levels though, because I feel if you know the low levels then you&amp;rsquo;re going to be better informed about whether something is right or you&amp;rsquo;re holding a hammer.</description>
    </item>
    
    <item>
      <title>DDD Sydney 2016 - What I learnt organising the conferences</title>
      <link>https://www.aaron-powell.com/posts/2016-06-01-dddsydney-what-i-learnt-organising-the-conference/</link>
      <pubDate>Wed, 01 Jun 2016 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2016-06-01-dddsydney-what-i-learnt-organising-the-conference/</guid>
      <description>On Saturday 28th May we saw the return of DDD Sydney after a 4 year absence. This was also the first year that I took a lead role in organising the event, previously I&amp;rsquo;d really only done &amp;lsquo;on the day&amp;rsquo; volunteering. DDD Sydney was a team effort, but I want to talk about what I personally learnt running this event for the next person silly enough to try and organise a conference!</description>
    </item>
    
    <item>
      <title>Deploying PowerShell modules with VSTS Build</title>
      <link>https://www.aaron-powell.com/posts/2016-02-08-deploying-powershell-modules-with-vsts-build/</link>
      <pubDate>Mon, 08 Feb 2016 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2016-02-08-deploying-powershell-modules-with-vsts-build/</guid>
      <description>A few years ago I created a PowerShell module to allow me to install and use multiple versions of Node.js on my Windows machine. I realised that this could be useful for other people so I put it up on GitHub, called ps-nvmw, short for PowerShell Node Version Manager for Windows.
But when I first wrote it there was no really good way to share modules with other people, my instructions were always something like &amp;ldquo;Clone the repo and import the module&amp;rdquo;.</description>
    </item>
    
    <item>
      <title>Are you ready for January 12?</title>
      <link>https://www.aaron-powell.com/posts/2016-01-03-are-you-ready-for-january-12/</link>
      <pubDate>Sun, 03 Jan 2016 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2016-01-03-are-you-ready-for-january-12/</guid>
      <description>On January 12 all versions of Internet Explorer prior to version 11 will reach end of life.
Assuming you&amp;rsquo;re running Windows 8.1 or 10 this won&amp;rsquo;t be a problem as IE11 was the only version you could install. If you&amp;rsquo;re running Windows 7 you are probably already running IE11 as it was a mandatory update shipped via Windows Updates so unless you disabled automatic updates you&amp;rsquo;re also safe.
If you&amp;rsquo;re running any other Windows version then you&amp;rsquo;re already running software that has end of life and you should probably upgrade anyway.</description>
    </item>
    
    <item>
      <title>2015 - A year in review</title>
      <link>https://www.aaron-powell.com/posts/2016-01-01-2015-a-year-in-review/</link>
      <pubDate>Fri, 01 Jan 2016 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2016-01-01-2015-a-year-in-review/</guid>
      <description>And just like that another year has come to a close. To me it&amp;rsquo;s felt like I&amp;rsquo;ve been really quite quiet compared to past years but a quick count shows that I published 17 posts on here, which is just as many as I did in 2014.
Microsoft released a new browser, codenamed Project Spartan and later renamed Microsoft Edge. This was pretty huge (I think) for web developers and I speculated on what it would mean.</description>
    </item>
    
    <item>
      <title>What&#39;s the time Mr Wolf?</title>
      <link>https://www.aaron-powell.com/posts/2015-12-07-whats-the-time-mr-wolf/</link>
      <pubDate>Mon, 07 Dec 2015 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2015-12-07-whats-the-time-mr-wolf/</guid>
      <description>Tis the season, and to get into the festive spirit I&amp;rsquo;m contributing to the 2015 F# Advent calendar.
 Recently I was working with a client who had a need to do some business processes on at certain times. So how do you know what the time is? We crack out System.DateTimeOffset don&amp;rsquo;t we!
Well it turn out that there is a flaw when it comes to using that in the form of clock drift, that think when your microwave and phone ar no longer showing the same time, even though you are sure you set it to the same time the other day!</description>
    </item>
    
    <item>
      <title>Simulating tracepoints in Chrome dev tools</title>
      <link>https://www.aaron-powell.com/posts/2015-08-30-simulating-tracepoints-in-chrome-dev-tools/</link>
      <pubDate>Sun, 30 Aug 2015 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2015-08-30-simulating-tracepoints-in-chrome-dev-tools/</guid>
      <description>There&amp;rsquo;s a very under rated feature in MS Edge&amp;rsquo;s F12 tools called tracepoints. A tracepoint is like a breakpoint but it calls console.log with the statement you provide it. This is really useful want to inspect some state as your application runs but don&amp;rsquo;t want to interupt the application flow by adding a breakpoint, or can&amp;rsquo;t modify your code and inject console.log statements (eg: production environments).
Well it turns out that we can easily simulate this in the Chrome dev tools (and I suspect Firefox too, but I don&amp;rsquo;t spend much time debugging in Firefox), and that&amp;rsquo;s by exploiting the conditional breakpoints</description>
    </item>
    
    <item>
      <title>Error with MS Edge F12 tools on Windows 10 10158</title>
      <link>https://www.aaron-powell.com/posts/2015-06-30-f12-error-in-windows-10-10158/</link>
      <pubDate>Tue, 30 Jun 2015 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2015-06-30-f12-error-in-windows-10-10158/</guid>
      <description>Today I upgraded to the latest Windows 10 Fast Ring insiders build, 10158. As with all previous builds this includes some updates to the new Microsoft browser, Edge (which is now officially ships as inside Windows, woo!).
While trying to solve a problem on the site I&amp;rsquo;m working on I opened up F12 and went to use the profiler, only to be met with this error:
I had a quick chat with some of my contacts over on the F12 team to see if it was a known bug or something to be reported, and they suggested that I restart the Internet Explorer ETW Collector Service, which you&amp;rsquo;ll find in your list of Windows Services.</description>
    </item>
    
    <item>
      <title>Learn how to get started with Umbraco on Pluralsight</title>
      <link>https://www.aaron-powell.com/posts/2015-06-15-umbraco-jumpstart-on-pluralsight/</link>
      <pubDate>Mon, 15 Jun 2015 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2015-06-15-umbraco-jumpstart-on-pluralsight/</guid>
      <description>TL;DR My latest Pluralsight course, Umbraco Jumpstart is up.
Over the last few months I&amp;rsquo;ve been working on a new Pluralsight course, Umbraco Jumpstart, today it finally got published and I couldn&amp;rsquo;t be happier.
This is very much a beginner course, my aim was to help people who have either never seen Umbraco before or haven&amp;rsquo;t had a chance to play with it yet take their first steps into Umbraco. Basically I want to ge a whole new generation of people working with Umbraco.</description>
    </item>
    
    <item>
      <title>Sometimes you just want a hamburger</title>
      <link>https://www.aaron-powell.com/posts/2015-06-11-sometimes-you-just-want-a-hamburger/</link>
      <pubDate>Thu, 11 Jun 2015 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2015-06-11-sometimes-you-just-want-a-hamburger/</guid>
      <description>My friend Chris Love wrote an article stating that Large JavaScript Frameworks are like Fast Food Resturants and a related article Why Micro JavaScript Should Be Used In Your Next Application. I want to write a bit of a rebuttal to these posts but it&amp;rsquo;ll be in my typical serious manner :P.
 300g of beef mince with a good fat content 1 egg Breadcrumbs Salt Pepper Worcestershire Mustard Garlic Oregano</description>
    </item>
    
    <item>
      <title>Implementing security in React with react-router</title>
      <link>https://www.aaron-powell.com/posts/2015-06-08-implementing-security-in-react-with-react-router/</link>
      <pubDate>Mon, 08 Jun 2015 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2015-06-08-implementing-security-in-react-with-react-router/</guid>
      <description>In the past I&amp;rsquo;ve talked about how to do simple security with React but the focus has been on how can you conditionally include pieces on a page depending on what the user is allowed to do. Today I want to take this a step further and look at how you would do page-to-page security in a SPA using React. For this I&amp;rsquo;m going to be using the excellent react-router navigation framework.</description>
    </item>
    
    <item>
      <title>Chauffeur on uHangout</title>
      <link>https://www.aaron-powell.com/posts/2015-06-06-chauffeur-on-uhangout/</link>
      <pubDate>Sat, 06 Jun 2015 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2015-06-06-chauffeur-on-uhangout/</guid>
      <description>Last year I introduced a new tool I&amp;rsquo;ve been working on called [Chaffeur](&amp;lsquo;/posts/2014-06-09-introducing-chauffeur.html&amp;rsquo;) which aims to help deployments in Umbraco.
A few weeks ago my friend Warren Buckley invited me on his weekly Umbraco show, uHangout to talk about Chauffeur and deployments with Umbraco. If you missed it you can go back and watch it online.
 </description>
    </item>
    
    <item>
      <title>Talking about front-end development on ANZCoders</title>
      <link>https://www.aaron-powell.com/posts/2015-06-06-talks-on-anzcoders/</link>
      <pubDate>Sat, 06 Jun 2015 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2015-06-06-talks-on-anzcoders/</guid>
      <description>Two weeks ago was the first ANZCoders virtual conference and I was lucky enough to present two sessions. Being a virtual conference all the content was recorded an you&amp;rsquo;ll be able to watch them on YouTube if you missed the sessions.
The wonderful world of front end tools Link
In recent years there has been a huge change in the way we do front end applications. Back in the day we had tools like Client Dependency but these days runtime bundling/minification is no longer seen as the way to go, the rise of npm the way we manage dependencies and lastly there&amp;rsquo;s the rise of the transpiler, be it a language-to-JavaScript transpiler like React or we&amp;rsquo;re using Babel to use ES6 features today.</description>
    </item>
    
    <item>
      <title>Writing a F# Type Provider</title>
      <link>https://www.aaron-powell.com/posts/2015-02-06-writing-a-fsharp-type-provider/</link>
      <pubDate>Fri, 06 Feb 2015 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2015-02-06-writing-a-fsharp-type-provider/</guid>
      <description>I was recently asked to give a talk at the Sydney F# User Group about how to write a Type Provider (and other things).
Now I&amp;rsquo;m fairly new to writing F# and even newer to writing Type Providers but having done code generation in the past using various .NET APIs (DSL&amp;rsquo;s, CodeDom, T4) I&amp;rsquo;m well versed in the pain that is to be expected when doing code generation.
What&amp;rsquo;s a Type Provider?</description>
    </item>
    
    <item>
      <title>Microsoft&#39;s Project Spartan and speculating Internet Explorer&#39;s future</title>
      <link>https://www.aaron-powell.com/posts/2015-01-25-project-spartan-and-internet-explorer/</link>
      <pubDate>Sun, 25 Jan 2015 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2015-01-25-project-spartan-and-internet-explorer/</guid>
      <description>Before we dive in, I don&amp;rsquo;t work for Microsoft but I am an Internet Explorer MVP and a member of the IE userAgent&amp;rsquo;s, so what I&amp;rsquo;m discussing here is based on what is publicly available and my own speculations.
On the 21st January Microsoft had an event to show off what is coming next in their Windows 10 platform, the future of Windows and importantly for us Web Developers talked about Project Spartan which had previously been speculated about.</description>
    </item>
    
    <item>
      <title>The danger of the &#39;Just Use WebKit&#39; mindset</title>
      <link>https://www.aaron-powell.com/posts/2015-01-26-the-danger-of-the-just-use-webkit-mindset/</link>
      <pubDate>Sun, 25 Jan 2015 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2015-01-26-the-danger-of-the-just-use-webkit-mindset/</guid>
      <description>Sigh
As a web developer working in the Microsoft space I hear this statement a lot. Go check out the IE UserVoice and you&amp;rsquo;ll find this.
I want to talk about why this mindset of &amp;ldquo;just use WebKit&amp;rdquo; is a dangerous one.
Chrome isn&amp;rsquo;t WebKit When a lot of people say this to me most of the time they are actually saying that they&amp;rsquo;d prefer IE to be Chrome.</description>
    </item>
    
    <item>
      <title>Evolving authentication on React components</title>
      <link>https://www.aaron-powell.com/posts/2015-01-17-evolving-authentication-on-react-components/</link>
      <pubDate>Sat, 17 Jan 2015 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2015-01-17-evolving-authentication-on-react-components/</guid>
      <description>In my last post I talked about how you can do Authentication on React components using mixins.
Using a mixin to add role-based security to any component we create is really handy but it does have one real problem, you have to inherit that mixin on every component you want to have it on. It works well when you want to do something like hide links or buttons, but it starts to fall down when you want to hide sections of components, maybe a row in a table is only there for certain roles, or a section of a menu isn&amp;rsquo;t visible for everyone.</description>
    </item>
    
    <item>
      <title>Authentication on React components</title>
      <link>https://www.aaron-powell.com/posts/2015-01-15-authentication-on-react-components/</link>
      <pubDate>Fri, 16 Jan 2015 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2015-01-15-authentication-on-react-components/</guid>
      <description>When building a Web Application, or any application at all, it&amp;rsquo;s often required that you hide/show functionality depending on the permissions which the logged user has associated with them. The Web Application I&amp;rsquo;m currently working on has this requirement, only users who are in the administrator group will be able to access the administration section of the website.
In this application I&amp;rsquo;m using Facebook&amp;rsquo;s React JavaScript framework and in this post I want to look at the approach we&amp;rsquo;re using to do role-based permissions on the React components that we are creating.</description>
    </item>
    
    <item>
      <title>Authomatic redirection when logging out of a Thinktecture Identity Server</title>
      <link>https://www.aaron-powell.com/posts/2015-01-11-auto-redirect-when-logging-out/</link>
      <pubDate>Sun, 11 Jan 2015 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2015-01-11-auto-redirect-when-logging-out/</guid>
      <description>I&amp;rsquo;ve been working with the Thinktecture Identity Server v3 recently on a project. If you haven&amp;rsquo;t come across Thinktecture Identity Server before it&amp;rsquo;s an OpenID/OAuth2 server which you can run stand alone or embed in your own application to then do OAuth2 login against any credential store. It&amp;rsquo;s generic enough that you can plug in whatever underlying store you want and really powerful as to what it gives you. If you&amp;rsquo;re wanting to have your own auth server I can&amp;rsquo;t recommend this highly enough.</description>
    </item>
    
    <item>
      <title>Reading Azure config in ASPNet5</title>
      <link>https://www.aaron-powell.com/posts/2015-01-03-reading-azure-config-in-aspnet5/</link>
      <pubDate>Sat, 03 Jan 2015 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2015-01-03-reading-azure-config-in-aspnet5/</guid>
      <description>In my rush to make the awesome website What the Commit? live I completely forgot that I&amp;rsquo;d committed the GitHub private key to the git repository. Whoops!
Sorry I have since reset the keys so no, you can&amp;rsquo;t use them :P.
In ASPNet5 there&amp;rsquo;s no dependency on IIS which in turn means there&amp;rsquo;s no Web.config. This poses an interesting question of where you get your configuration values from and how would you do different values per environment (aka, config transforms).</description>
    </item>
    
    <item>
      <title>Running grunt tasks when deploying ASPNet5 apps to Azure</title>
      <link>https://www.aaron-powell.com/posts/2015-01-02-running-grunt-tasks-when-deploying-aspnet5-apps/</link>
      <pubDate>Fri, 02 Jan 2015 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2015-01-02-running-grunt-tasks-when-deploying-aspnet5-apps/</guid>
      <description>After MVP Summit this year the ASPNet team held a hack-day where we were encouraged to build something using ASPNet5 to help test out the platform. During that time I decided to build a website for when you can&amp;rsquo;t think up your own commit message, instead it&amp;rsquo;ll grab the last 50 commit messages from a GitHub using GitHub search called What the Commit.
I finally decided to throw it up GitHub and deploy it to Azure.</description>
    </item>
    
    <item>
      <title>A consultants approach to painting</title>
      <link>https://www.aaron-powell.com/posts/2015-01-01-a-consultant-approach-to-painting/</link>
      <pubDate>Thu, 01 Jan 2015 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2015-01-01-a-consultant-approach-to-painting/</guid>
      <description>A few months ago my PO, aka wife, pitched a new project, painting our lounge room. She decided to go to market and find the right people to do the project. Since it&amp;rsquo;s my home too I decided to respond to the RFP as c&amp;rsquo;mon, how hard can painting a room really be?
After a couple of different quotes came in I managed to win the work, being the cheapest option (the whole free labor thing won out) but there was a condition, as I don&amp;rsquo;t have much practical experience I would start with a PoC, painting my study.</description>
    </item>
    
    <item>
      <title>Hosting multiple WebAPI servers in a single process</title>
      <link>https://www.aaron-powell.com/posts/2014-12-04-multiple-webapi-single-process/</link>
      <pubDate>Thu, 04 Dec 2014 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2014-12-04-multiple-webapi-single-process/</guid>
      <description>I&amp;rsquo;m currently working on a project which consists of three different ASP.Net applications that comunication in sequence, Server to Server to Server (to database if you want to get technical).
Because the communication channel is a little tricky we want to include some integration tests in the CI process to verify the them but this obviously means we need to have our servers up and running. This is a bit of a pain, having to either run all our sites in IIS, which means that Visual Studio needs to be run as an administrator.</description>
    </item>
    
    <item>
      <title>Versioning Xamarin Android apps</title>
      <link>https://www.aaron-powell.com/posts/2014-09-22-versioning-xamarin-android-apps/</link>
      <pubDate>Fri, 26 Sep 2014 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2014-09-22-versioning-xamarin-android-apps/</guid>
      <description>I&amp;rsquo;m currently working on a Xamarin application with an Android target. We have setup a CI environment using TeamCity as Xamarin describes but what we wanted to do was create an app version accordingly so when we push a CI build you know there&amp;rsquo;s an update and which build it is from.
So I decided to do some investigation into how Android applications are versioned and what I found is:</description>
    </item>
    
    <item>
      <title>Add or update with db.js</title>
      <link>https://www.aaron-powell.com/posts/2014-09-11-add-or-update-dbjs/</link>
      <pubDate>Thu, 11 Sep 2014 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2014-09-11-add-or-update-dbjs/</guid>
      <description>A common question with db.js is how to merge data from a remote store into the local store. When doing so you need to think about how you&amp;rsquo;re handling an add vs an update statement.
Say you have some records that you&amp;rsquo;re syncing between the two instances and they have a common key that you use to identify on both the client and the server. When a user hits the site you pull down the records and want to work out if they are to be inserted or just updated against what you already have.</description>
    </item>
    
    <item>
      <title>A simple expanding list in CSS only</title>
      <link>https://www.aaron-powell.com/posts/2014-08-21-simple-expanding-list/</link>
      <pubDate>Thu, 21 Aug 2014 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2014-08-21-simple-expanding-list/</guid>
      <description>Recently I was working on a site that needed to have an expanding list of items, the list is quite long but we wanted part of it hidden until the user clicks an option to expand it fully.
I was thinking about how I&amp;rsquo;d done this in the past and what would be the simplest way to do it. Normally I&amp;rsquo;d just whip out a bit of JavaScript, find the ul, find any li&amp;rsquo;s beyond the count limiter and hide them and when the user clicks the button it&amp;rsquo;ll make them visible.</description>
    </item>
    
    <item>
      <title>5 years of DDD Melbourne</title>
      <link>https://www.aaron-powell.com/posts/2014-07-22-5-years-of-dddmelb/</link>
      <pubDate>Tue, 22 Jul 2014 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2014-07-22-5-years-of-dddmelb/</guid>
      <description>Last weekend saw me attending DDD Melbourne for the 5th year running and it also was the 5th year that I was attending as a speaker. I feel pretty honered to have been there all 5 years as a speaker, especially since it&amp;rsquo;s a community-voted event. The team even got me a new laptop bag, although I&amp;rsquo;m not sure what they are implying with the slogan :P
I want to have a bit of a look back at my time.</description>
    </item>
    
    <item>
      <title>Introducing Chauffeur</title>
      <link>https://www.aaron-powell.com/posts/2014-06-09-introducing-chauffeur/</link>
      <pubDate>Mon, 09 Jun 2014 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2014-06-09-introducing-chauffeur/</guid>
      <description>Over the last few months I&amp;rsquo;ve been tweeting out information about a new Open Source project for Umbraco I&amp;rsquo;ve been working on called Chauffeur. In this post I want to introduce you to what Chauffeur is and what it can do for you and your Umbraco projects.
Elevator pitch Deployment is hard, getting changes from one environment with Umbraco has never been an easy problem to solve. Need to add a new Document Type then you end up with manual steps in the web UI, parsing files on first request and compare to the database, backup/restore or a combination of any of these.</description>
    </item>
    
    <item>
      <title>F12 Refresh - CSS editor</title>
      <link>https://www.aaron-powell.com/posts/2014-04-03-f12-refresh-css-editor/</link>
      <pubDate>Thu, 03 Apr 2014 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2014-04-03-f12-refresh-css-editor/</guid>
      <description>One of the new features in the F12 refresh is some updates to the CSS editor so let&amp;rsquo;s have a look at those updates.
Tracking what changed As a web developer often I&amp;rsquo;m spending time in the browser on the dev tools tweaking the CSS of the page to try out changes to the CSS without having to reload the page. The main pain with all of this is that if you&amp;rsquo;re making lots of changes across multiple elements it&amp;rsquo;s easy to lose track of what you changed.</description>
    </item>
    
    <item>
      <title>F12 Refresh - The JavaScript Console</title>
      <link>https://www.aaron-powell.com/posts/2014-04-03-f12-refresh-the-javascript-console/</link>
      <pubDate>Thu, 03 Apr 2014 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2014-04-03-f12-refresh-the-javascript-console/</guid>
      <description>One of the new features in the F12 refresh is some updates to the JavaScript console so let&amp;rsquo;s have a look at those updates.
console.log I&amp;rsquo;ve previously complained about how the console.log method in IE doesn&amp;rsquo;t like it when you pass an object to it, it just outputs [object Object] meaning it just executed a toString on the object.
I can happily confirm that this has been fixed! When you pass an object, multiple objects or formatted strings it operates as it does in the other browser dev tools.</description>
    </item>
    
    <item>
      <title>F12 Refresh - The JavaScript Debugger</title>
      <link>https://www.aaron-powell.com/posts/2014-04-03-f12-refresh-the-javascript-debugger/</link>
      <pubDate>Thu, 03 Apr 2014 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2014-04-03-f12-refresh-the-javascript-debugger/</guid>
      <description>One of the new features in the F12 refresh is some improvements to the JavaScript debugger so let&amp;rsquo;s have a look at those updates.
Source maps Haven&amp;rsquo;t heard of source maps? Well then you should start here, but basically source maps are a way to provide debugging information from generated JavaScript output, either generated from a transpiler or from a minifier.
Over the last 12 months in particular source maps have really taken off and they can really make it easy to solve problems without needing the direct sources, which as a .</description>
    </item>
    
    <item>
      <title>Introducing status.modern.ie</title>
      <link>https://www.aaron-powell.com/posts/2014-04-03-introduction-status-modern-ie/</link>
      <pubDate>Thu, 03 Apr 2014 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2014-04-03-introduction-status-modern-ie/</guid>
      <description>Today there was an exciting announcement from the IE Dev relations team, the team behind IE Dev Chat and modern.IE. At Build they announced a new website to help developers track progress of features, status.modern.ie.
This website is similar to the Chrome Status dashboard where web developers can get an insight into what is happening with feature development.
Through status.modern.ie we can see what features the IE team is considering or has under development already, or features that are currently not being pursued.</description>
    </item>
    
    <item>
      <title>Debugging jQuery events</title>
      <link>https://www.aaron-powell.com/posts/2014-03-06-debugging-jquery-events/</link>
      <pubDate>Thu, 06 Mar 2014 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2014-03-06-debugging-jquery-events/</guid>
      <description>Every couple of months I see a question come around where someone has a jQuery event handler that&amp;rsquo;s being fired but they don&amp;rsquo;t know where that is in their codebase.
So your first stop is the browser dev tools but then you hit something like this:
Well crap, that&amp;rsquo;s not particularly helpful, it just shows us something in jQuery, and if I&amp;rsquo;m using a minified version of jQuery well then I&amp;rsquo;m really in trouble, it won&amp;rsquo;t be easy to debug at all.</description>
    </item>
    
    <item>
      <title>What I learned about nth-child selectors</title>
      <link>https://www.aaron-powell.com/posts/2014-03-12-what-i-learned-about-nth-child-selectors/</link>
      <pubDate>Thu, 06 Mar 2014 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2014-03-12-what-i-learned-about-nth-child-selectors/</guid>
      <description>Today I learned an interesting fact about how the nth-child CSS selector works and it was different to what I expected and what seems to make sense.
I had the following HTML snippet:
&amp;lt;div class=&amp;quot;input-group&amp;quot;&amp;gt; &amp;lt;div class=&amp;quot;legacy&amp;quot;&amp;gt; &amp;lt;div class=&amp;quot;input-subgroup&amp;quot;&amp;gt; &amp;lt;input name=&amp;quot;itemId&amp;quot; id=&amp;quot;Type0&amp;quot; type=&amp;quot;radio&amp;quot; checked=&amp;quot;checked&amp;quot; value=&amp;quot;1&amp;quot;&amp;gt; &amp;lt;label for=&amp;quot;Type0&amp;quot;&amp;gt;Single&amp;lt;/label&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;input-subgroup&amp;quot;&amp;gt; &amp;lt;input name=&amp;quot;itemId&amp;quot; id=&amp;quot;Type1&amp;quot; type=&amp;quot;radio&amp;quot; value=&amp;quot;2&amp;quot;&amp;gt; &amp;lt;label for=&amp;quot;Type1&amp;quot;&amp;gt;Couple&amp;lt;/label&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;input-subgroup&amp;quot;&amp;gt; &amp;lt;input name=&amp;quot;itemId&amp;quot; id=&amp;quot;Type2&amp;quot; type=&amp;quot;radio&amp;quot; value=&amp;quot;3&amp;quot;&amp;gt; &amp;lt;label for=&amp;quot;Type2&amp;quot;&amp;gt;Family&amp;lt;/label&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;new&amp;quot;&amp;gt; &amp;lt;div class=&amp;quot;input-subgroup&amp;quot;&amp;gt; &amp;lt;input name=&amp;quot;somethingElse&amp;quot; id=&amp;quot;somethingElse&amp;quot; type=&amp;quot;text&amp;quot; maxlength=&amp;quot;2&amp;quot; placeholder=&amp;quot;Enter&amp;quot; value=&amp;quot;&amp;quot;&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;input-subgroup&amp;quot;&amp;gt; &amp;lt;input name=&amp;quot;somethingElse2&amp;quot; id=&amp;quot;somethingElse2&amp;quot; type=&amp;quot;text&amp;quot; maxlength=&amp;quot;2&amp;quot; placeholder=&amp;quot;Enter&amp;quot; value=&amp;quot;&amp;quot;&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;  And I wanted to find the input[type=&amp;quot;radio&amp;quot;] at a particular position in the DOM.</description>
    </item>
    
    <item>
      <title>Easily replacing Assert.IsTrue statements</title>
      <link>https://www.aaron-powell.com/posts/2014-02-12-easily-replacing-assert-istrue-statements/</link>
      <pubDate>Wed, 12 Feb 2014 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2014-02-12-easily-replacing-assert-istrue-statements/</guid>
      <description>I blogged/ranted about Assert.IsTrue previously, well today I decided to work out a quick way to do bulk conversions of tests.
Well the easiest way to go about this is using a good old Regular Expression:
Assert\.IsTrue\((?&amp;lt;Actual&amp;gt;.*)\s*==\s*(?&amp;lt;Expected&amp;gt;.*)\)  That&amp;rsquo;s a regex which is ideal for using from Visual Studio, or any other tool that supports named capture groups. If you don&amp;rsquo;t have something like that you can use numerical capture groups:</description>
    </item>
    
    <item>
      <title>Cleaning up promises with yield</title>
      <link>https://www.aaron-powell.com/posts/2014-01-28-cleaning-up-promises-wit-yield/</link>
      <pubDate>Tue, 28 Jan 2014 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2014-01-28-cleaning-up-promises-wit-yield/</guid>
      <description>Last time we cleaned up callback hell with yield but callbacks in the design which I was talking about are not all that common these days, especially if you&amp;rsquo;re working in the browser. When you&amp;rsquo;re in the browser there&amp;rsquo;s a good chance you&amp;rsquo;re going to be working with Promises, and more accurately Promise/A+.
If you&amp;rsquo;re unfamiliar with Promises, it&amp;rsquo;s a specification which is states that you have an object which exposes a then method which will either fulfill or reject some operation.</description>
    </item>
    
    <item>
      <title>Cleaning up callbacks with yield</title>
      <link>https://www.aaron-powell.com/posts/2014-01-18-calling-up-callbacks-with-yield/</link>
      <pubDate>Sat, 18 Jan 2014 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2014-01-18-calling-up-callbacks-with-yield/</guid>
      <description>In my last post we took a journey on how to make a function execute in a delayed fashion by using the new yield keyword coming in ES6. But we were still working with what was essentially a synchronous code path, we just used yield to halt its execution. By the end of the post we used setTimeout to buffer our execution time, making it asynchronous in its execution.</description>
    </item>
    
    <item>
      <title>Functions that yield multiple times</title>
      <link>https://www.aaron-powell.com/posts/2014-01-13-functions-that-yield-mutliple-times/</link>
      <pubDate>Mon, 13 Jan 2014 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2014-01-13-functions-that-yield-mutliple-times/</guid>
      <description>I recently introduced you to JavaScript generators which I think are a really interesting feature that we should look at for the future of JavaScript. In that blog post I was talking about LINQ in JavaScript and kind of glanced over an important part of generators, and that&amp;rsquo;s how you use them if you&amp;rsquo;re not using a for-of loop. While generators make a lot of sense in the scope of managing datasets that isn&amp;rsquo;t their only usage, in reality generators are quite useful if you want to lazily execute any function.</description>
    </item>
    
    <item>
      <title>Integration testing authenticated Katana applications</title>
      <link>https://www.aaron-powell.com/posts/2014-01-12-integration-testing-katana-with-auth/</link>
      <pubDate>Sun, 12 Jan 2014 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2014-01-12-integration-testing-katana-with-auth/</guid>
      <description>Recently I got to work on a project where we were building an ASP.Net WebAPI project for the client. One of the requirements of this project was that the API which we produced was authenticated, basically everything exposed had to be authenticated, and because it was a brand new project we decided to go down the path of WebAPI 2.0 and use the new Katana/OWIN system along with OAuth for the authentication.</description>
    </item>
    
    <item>
      <title>LINQ in JavaScript, ES6 style, for real this time</title>
      <link>https://www.aaron-powell.com/posts/2013-12-31-linq-in-javascript-for-real/</link>
      <pubDate>Tue, 31 Dec 2013 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2013-12-31-linq-in-javascript-for-real/</guid>
      <description>In a recent post I talked about writing LINQ in JavaScript using ES6 iterators but then had to take my words back after it was pointed out to me that I wasn&amp;rsquo;t actually using ES6 generators.
Well some time has past and I&amp;rsquo;ve reworked my previous library to actually use the iterators and generators from ES6, so let&amp;rsquo;s have a look at how to get going with it.
Lazy evaluating collections Let&amp;rsquo;s start simple, let&amp;rsquo;s take an array and make it lazy evaluated.</description>
    </item>
    
    <item>
      <title>Accessing the Location header in a CORS-enabled API</title>
      <link>https://www.aaron-powell.com/posts/2013-11-28-accessing-location-header-in-cors-response/</link>
      <pubDate>Thu, 28 Nov 2013 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2013-11-28-accessing-location-header-in-cors-response/</guid>
      <description>Today I hit a problem, we&amp;rsquo;ve got an ASP.Net WebAPI 2 project which is providing a series of REST services for a web app. These services are hosted on a different domain to the app will be hosted on so to perform the requests to them we&amp;rsquo;ve gone ahead and enabled CORS.
Up until now most of our work has been doing read-only endpoints in the API, but I just finished off implementing a POST route.</description>
    </item>
    
    <item>
      <title>Azure Mobile Services, AngularJS and broken promises</title>
      <link>https://www.aaron-powell.com/posts/2013-09-16-azure-angular-and-broken-promises/</link>
      <pubDate>Mon, 16 Sep 2013 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2013-09-16-azure-angular-and-broken-promises/</guid>
      <description>There&amp;rsquo;s no denying it that AngularJS is the hot new SPA framework these days as it offers a lot of very nice features out of the box, has a very good programming model behind it and works as advertised. So when a new project was kicking off that I was on I decided to take the opportunity to use it so I could get a feel for it. Overall my feelings have been positive with the exception of what I want to talk about here.</description>
    </item>
    
    <item>
      <title>LINQ in JavaScript, ES6 style clarification</title>
      <link>https://www.aaron-powell.com/posts/2013-09-16-linq-in-javascript-es6-clarification/</link>
      <pubDate>Mon, 16 Sep 2013 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2013-09-16-linq-in-javascript-es6-clarification/</guid>
      <description>I recently blogged about implementing LINQ in JavaScript with ES6 iterators. While I&amp;rsquo;d done a bunch of research, played around with FireFox (which seemed to have the most up-to-date implementation) and thought it was all well and good.
Unfortunately it turns out that what I was talking about was the __iterator__ syntax which FireFox has implemented but it&amp;rsquo;s not in line with the current iterator and generator approach.
So while I did state that the code was against an API that wasn&amp;rsquo;t set in stone I was a bit further away from where I wanted to be going forward.</description>
    </item>
    
    <item>
      <title>Using bluesky in Azure Mobile Services</title>
      <link>https://www.aaron-powell.com/posts/2013-09-11-using-bluesky-in-azure-mobile-services/</link>
      <pubDate>Wed, 11 Sep 2013 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2013-09-11-using-bluesky-in-azure-mobile-services/</guid>
      <description>I&amp;rsquo;ve been doing some work with Azure Mobile Services where I&amp;rsquo;m storing data in tables and blobs. For a task I need to have a custom API which will remove some data from a table and then the blobs associated with it.
For this I&amp;rsquo;m creating a new custom API and because it&amp;rsquo;s just a Node.js app I&amp;rsquo;d be using the Node SDK. When I was getting started I got pointed towards bluesky which is a nice little wrapper around the Azure SDK to make it a bit easier to work with.</description>
    </item>
    
    <item>
      <title>LINQ in JavaScript, ES6 style</title>
      <link>https://www.aaron-powell.com/posts/2013-09-06-linq-in-javascript-es6/</link>
      <pubDate>Fri, 06 Sep 2013 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2013-09-06-linq-in-javascript-es6/</guid>
      <description>Update #1 The code I&amp;rsquo;ve talked about here isn&amp;rsquo;t actually ES6 related, instead it&amp;rsquo;s about an API only in FireFox, read more here.
Back in 2010 I posted about implementing LINQ in JavaScript in which I had a look at what would have been involved if you were writing a LINQ style API in JavaScript. Keep in mind that back in 2010 we didn&amp;rsquo;t have libraries like Underscore or LoDash nor were people that aware of the Array.</description>
    </item>
    
    <item>
      <title>AJAX without jQuery</title>
      <link>https://www.aaron-powell.com/posts/2013-08-02-ajax-without-jquery/</link>
      <pubDate>Fri, 02 Aug 2013 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2013-08-02-ajax-without-jquery/</guid>
      <description>I&amp;rsquo;m very much of the opinion that the better you know your tools the better you can make intelligent choices about the layers you put over them. One such layer I see constantly used that people tend to use but not really understand is jQuery. Don&amp;rsquo;t get me wrong I&amp;rsquo;m not anti-jQuery or anything, but like I said I believe you should understand your tools before you try and abstract them away.</description>
    </item>
    
    <item>
      <title>Array-like objects</title>
      <link>https://www.aaron-powell.com/posts/2013-07-22-array-like-objects/</link>
      <pubDate>Mon, 22 Jul 2013 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2013-07-22-array-like-objects/</guid>
      <description>You&amp;rsquo;ve possibly head the saying
 When I see a bird that walks like a duck and swims like a duck and quacks like a duck, I call that bird a duck. - credit
 This is a common adage when talking about Duck Typing in programming, especially when it comes to working with dynamic languages like JavaScript, based on assumptions made about an object you can attempt to infer other details.</description>
    </item>
    
    <item>
      <title>The JavaScript new operator</title>
      <link>https://www.aaron-powell.com/posts/2013-07-14-javascript-new-operator/</link>
      <pubDate>Sun, 14 Jul 2013 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2013-07-14-javascript-new-operator/</guid>
      <description>In the last post I was changing some C# code to JavaScript but there was one part that I just dropped and didn&amp;rsquo;t explain why, and that was the use of the new operator.
While JavaScript isn&amp;rsquo;t a classical language, it&amp;rsquo;s prototypal, and doesn&amp;rsquo;t have a notion of classes (yet), but it does have a new operator. What&amp;rsquo;s interesting is it&amp;rsquo;s an operator like C# (see 14.5.10 of the spec, yep I looked it up :P), and operators tend to do something unique which is also the case with JavaScript new.</description>
    </item>
    
    <item>
      <title>Implementing &#34;indexers&#34; in JavaScript</title>
      <link>https://www.aaron-powell.com/posts/2013-07-10-implementing-indexers-in-javascript/</link>
      <pubDate>Wed, 10 Jul 2013 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2013-07-10-implementing-indexers-in-javascript/</guid>
      <description>Luke was wanting to know how to implement this C# code as JavaScript:
class Foo { public string Stuff { get; set; } public Foo() { } public Foo(string stuff) { this.Stuff = stuff; } public Foo this[string stuff] { get { return new Foo(stuff); } } public Foo Bar() { Console.WriteLine(&amp;quot;Darn tootin&#39;&amp;quot;); return this; } }  Class-implementation aside the interesting part that he was having trouble with was the indexer, basically being able to write this:</description>
    </item>
    
    <item>
      <title>JavaScript bind, currying and arrow functions</title>
      <link>https://www.aaron-powell.com/posts/2013-07-05-javascript-binding-currying-and-arrows/</link>
      <pubDate>Fri, 05 Jul 2013 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2013-07-05-javascript-binding-currying-and-arrows/</guid>
      <description>How many times have you written code like this:
var foo = { makeRequest: function () { $.get(&#39;/foo&#39;, function (result) { this.update(result); }); ); }, update: function (data) { /* ... */ } }; //somewhere later in the code foo.makeRequest();  Only to have it poo itself saying that this.update is not a function? Maybe it was with an event handler not an AJAX request, all in all it&amp;rsquo;s the same problem, you tried to use something and JavaScript changed the value of this on you.</description>
    </item>
    
    <item>
      <title>JavaScript call and apply</title>
      <link>https://www.aaron-powell.com/posts/2013-07-04-javascript-call-and-apply/</link>
      <pubDate>Thu, 04 Jul 2013 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2013-07-04-javascript-call-and-apply/</guid>
      <description>A colleague recently came across this line in our codebase that I wrote:
binding.vehicle.involvements.push.apply(binding.vehicle.involvements, vehicle.involvements);  What the overall result of the code is isn&amp;rsquo;t particularly important, the part that tripped them up (and made them think I&amp;rsquo;m on drugs I&amp;rsquo;m not actually on) was this:
binding.vehicle.involvements.push.apply(binding.vehicle.involvements, vehicle.involvements);  Now the involvements property is an array in both scenarios which exposes a push method, the confusion was around what the apply method does and why I was even using it.</description>
    </item>
    
    <item>
      <title>DDDMelbourne workshop</title>
      <link>https://www.aaron-powell.com/posts/2013-06-26-dddmelbourne-workshop/</link>
      <pubDate>Wed, 26 Jun 2013 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2013-06-26-dddmelbourne-workshop/</guid>
      <description>It&amp;rsquo;s that time of year again, it&amp;rsquo;s conference time!. I&amp;rsquo;m excited to announce that I&amp;rsquo;ll be coming down for my 4th(!!) DDDMelbourne and the overall agenda looks quite exciting!
This year the organisers have decided to add a workshop track as well as the three presentations, and when they asked me if I&amp;rsquo;d do a JavaScript workshop I jumped at the chance.
The workshop is going to be on an aspect of JavaScript that I&amp;rsquo;m quite passionate about and we&amp;rsquo;ll be getting really hands-on and mostly just writing code for the hour, so bring your device and get ready to code.</description>
    </item>
    
    <item>
      <title>Walking a JavaScript object</title>
      <link>https://www.aaron-powell.com/posts/2013-06-21-walking-a-javascript-object/</link>
      <pubDate>Fri, 21 Jun 2013 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2013-06-21-walking-a-javascript-object/</guid>
      <description>Recently I was trying to solve a problem where I had a JSON path to a property on an object, the path was going to be n layers deep and the object itself was also n layers deep. I needed to solve this problem in a fairly generic manner, as there was a number of different scenarios under which this could would be run.
Basically I had this:
var path = &#39;foo.</description>
    </item>
    
    <item>
      <title>Solving DocPad&#39;s excessive memory usage</title>
      <link>https://www.aaron-powell.com/posts/2013-06-18-solving-docpads-excessive-memory-usage/</link>
      <pubDate>Tue, 18 Jun 2013 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2013-06-18-solving-docpads-excessive-memory-usage/</guid>
      <description>Since I decide to move my site from FunnelWeb to DocPad I also decided to deploy to Heroku since I like them as a host. So I built my site, got everything into Git and then I did a git push heroku master.
And then it fell over.
As soon as the push completed Heroku kicked off and started to spin up the dyno, but when I hit the site it said it&amp;rsquo;d crashed.</description>
    </item>
    
    <item>
      <title>From FunnelWeb to Git in a few simple steps</title>
      <link>https://www.aaron-powell.com/posts/2013-06-11-funnelweb-to-git/</link>
      <pubDate>Mon, 10 Jun 2013 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2013-06-11-funnelweb-to-git/</guid>
      <description>Prelude: I&amp;rsquo;m going to assume you&amp;rsquo;ve got the database somewhere locally that you can work with, I wouldn&amp;rsquo;t recommend doing it against a production database. We&amp;rsquo;re not doing anything destructive against it but better safe than sorry!.
The scenario is that I&amp;rsquo;m wanting to be able to visualise the revision history of my posts in FunnelWeb as Git commits, each new revision of a post should be a new commit.</description>
    </item>
    
    <item>
      <title>New blog, less FunnelWeb</title>
      <link>https://www.aaron-powell.com/posts/2013-06-10-new-blog-less-funnelweb/</link>
      <pubDate>Mon, 10 Jun 2013 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2013-06-10-new-blog-less-funnelweb/</guid>
      <description>If you&amp;rsquo;re not viewing this via the website (ie - you&amp;rsquo;re reading it in a RSS reader) you&amp;rsquo;re probably not going to notice but I&amp;rsquo;ve just done a new design and as a side project I&amp;rsquo;ve also decided that it&amp;rsquo;s time to do a shift in the platform.
You see, I&amp;rsquo;ve been using FunnelWeb for a few years now, and it&amp;rsquo;s been going smoothly, sitting there chugging along doing all that I&amp;rsquo;ve really needed from it, but in recent months I&amp;rsquo;ve decided that there was something that didn&amp;rsquo;t really want anymore&amp;hellip; a database.</description>
    </item>
    
    <item>
      <title>Flight Mode - Libraries</title>
      <link>https://www.aaron-powell.com/posts/2013-05-30-libraries/</link>
      <pubDate>Thu, 30 May 2013 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2013-05-30-libraries/</guid>
      <description>Throughout the last few posts we&amp;rsquo;ve looked at the different ways which we can store data offline in browsers and then created a basic little API that will help is with doing that. The FlightMode API that we&amp;rsquo;ve been working with was though was really quite a simplistic approach to the problem that we were presented with, ultimately the API isn&amp;rsquo;t meant for production use.
So when looking at the different storage options what do we have if we did want to go to production?</description>
    </item>
    
    <item>
      <title>Flight Mode - FileSystem API</title>
      <link>https://www.aaron-powell.com/posts/2013-05-28-file-system/</link>
      <pubDate>Tue, 28 May 2013 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2013-05-28-file-system/</guid>
      <description>The last piece of the puzzle when looking at offline storage options is a bit of a shift from what we&amp;rsquo;ve been looking at so far. Generally speaking we&amp;rsquo;ve been looking at how to store plain data, either through key/value stores or as objects. This time we&amp;rsquo;re going to look at the other kind of data you might want to store, files.
There&amp;rsquo;s two way we might want to store files, as binary data in IndexedDB or using the FileSystem API.</description>
    </item>
    
    <item>
      <title>Flight Mode - IndexedDB</title>
      <link>https://www.aaron-powell.com/posts/2013-05-27-indexeddb/</link>
      <pubDate>Mon, 27 May 2013 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2013-05-27-indexeddb/</guid>
      <description>The next stop in our offline storage adventure is to look at the big daddy of offline storage, IndexedDB. Now I&amp;rsquo;ve blogged about IndexedDB in the past but today I want to talk about it in a bit higher level and introduce the idea of IndexedDB beyond just how to use the API.
IndexedDB is the latest approach to doing offline storage in offline applications, it is designed as a replacement for the WebSQL spec which is now discontinued.</description>
    </item>
    
    <item>
      <title>Flight Mode - Cookies</title>
      <link>https://www.aaron-powell.com/posts/2013-05-23-cookies/</link>
      <pubDate>Thu, 23 May 2013 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2013-05-23-cookies/</guid>
      <description>In the beginning there was a simple way to store data offline in an application, or more accurately, across sessions, and that is the HTTP Cookie.
Cookies are used for everything, they can track you for spammers, expose your secure connections for hackers and they can be used for legitimate purposes which I&amp;rsquo;m going to look at here.
The Cookie is the oldest form of offline storage available on the web, first emerging in the mid 90&amp;rsquo;s with Netscape.</description>
    </item>
    
    <item>
      <title>Flight Mode - Introduction</title>
      <link>https://www.aaron-powell.com/posts/2013-05-23-introduction/</link>
      <pubDate>Thu, 23 May 2013 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2013-05-23-introduction/</guid>
      <description>So you&amp;rsquo;ve got an idea to build an amazing new web application, it&amp;rsquo;s going to make you tens of dollars, hundreds of cents, it&amp;rsquo;s all web API&amp;rsquo;ed and SPA. There&amp;rsquo;s a responsive design so it&amp;rsquo;s mobile friendly, all the cool stuff. But there&amp;rsquo;s one last piece of the puzzle you need to sort out, offline data. Your application needs to be able to store data in a way that users and still interact with it, even if it&amp;rsquo;s at a basic level, when they are offline.</description>
    </item>
    
    <item>
      <title>Flight Mode - local and session storage</title>
      <link>https://www.aaron-powell.com/posts/2013-05-23-local-session-storage/</link>
      <pubDate>Thu, 23 May 2013 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2013-05-23-local-session-storage/</guid>
      <description>Last time we looked a using cookies to store offline data and we also saw that there&amp;rsquo;s a number of problems with that approach. So let&amp;rsquo;s move forward, let&amp;rsquo;s look at what our next option would be when it comes to offline storage in our multi-dollar application.
Today it&amp;rsquo;s time for the next level of offline storage, localStorage and sessionStorage which is sometimes referred to as DOM storage.
I&amp;rsquo;m going to talk about both of these options together as they share a lot of similarities.</description>
    </item>
    
    <item>
      <title>Firefox, jQuery and the case of the Document response</title>
      <link>https://www.aaron-powell.com/posts/2013-05-07-firefox-jquery-missing-datatype/</link>
      <pubDate>Tue, 07 May 2013 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2013-05-07-firefox-jquery-missing-datatype/</guid>
      <description>I recently tweeted that I was having this problem:
As you can see something&amp;rsquo;s not right there, Chrome is not getting anything back from my AJAX request (or at least a falsey value) where as Firefox seems to be having a Document object.
I was stumped.
Why are you seeing two different responses from the exact same bit of code?
So the response we&amp;rsquo;re getting back has a 0 content length and that was my first point of call, something must be causing the browsers to behave differently when you&amp;rsquo;ve not got any content.</description>
    </item>
    
    <item>
      <title>Internet Explorer userAgents</title>
      <link>https://www.aaron-powell.com/posts/2013-04-19-ie-useragents/</link>
      <pubDate>Fri, 19 Apr 2013 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2013-04-19-ie-useragents/</guid>
      <description>A few months ago I was asked if I wanted to join a new program that the Internet Explorer team was starting up called IE userAgents. No isn&amp;rsquo;t related to the the Internet Explorer userAgent string, or the fact that in the leaked IE11 builds it has had a makeover, instead it&amp;rsquo;s about evangelism of the web platform and shifting peoples perceptions of IE as a modern browser. It&amp;rsquo;s also worth noting that Internet Explorer isn&amp;rsquo;t the only browser that has a program like this, Mozilla does too and I&amp;rsquo;d expect the other browsers do to.</description>
    </item>
    
    <item>
      <title>IndexedDB at Web Directions Code 13</title>
      <link>https://www.aaron-powell.com/posts/2013-04-10-wdc13/</link>
      <pubDate>Wed, 10 Apr 2013 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2013-04-10-wdc13/</guid>
      <description>I&amp;rsquo;m going to be speaking at the upcoming Web Directions Code in Melbourne (2nd &amp;amp; 3rd May) on the topic of IndexedDB. I&amp;rsquo;m pretty stoked to be invited to speak as there&amp;rsquo;s a lot of heavy weights of the web development community that are going to be around and I&amp;rsquo;ll finally have a chance to crack out my IndexedDB talk to a larger audience.
So do yourself a favor, grab a ticket and come on down!</description>
    </item>
    
    <item>
      <title>KnockoutJS plugin for Glimpse</title>
      <link>https://www.aaron-powell.com/posts/2013-03-25-knockoutjs/</link>
      <pubDate>Mon, 25 Mar 2013 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2013-03-25-knockoutjs/</guid>
      <description>When I was recently in Seattle for MVP Summit I was hanging out with Anthony van der Hoorn and Nik Molnar of the Glimpse fame. Anthony, knowing my passion for JavaScript has been bouncing ideas around the client-side code for Glimpse for a while and wanting me to have a crack at building a client-side plugin for them. Well it seemed like the perfect time to get to it and not just because I had both the guys on hand to bug when things went wrong ;).</description>
    </item>
    
    <item>
      <title>A week with a Surface Pro</title>
      <link>https://www.aaron-powell.com/posts/2013-03-10-a-week-with-a-surface-pro/</link>
      <pubDate>Sun, 10 Mar 2013 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2013-03-10-a-week-with-a-surface-pro/</guid>
      <description>So a little a week ago I got myself a Surface Pro and I decided that I&amp;rsquo;d share my experience with it thus far (because that&amp;rsquo;s what you do with a new device right? :P).
For the record my current Windows machine is a Sony Vaio Z which is about 2.5 years old and I have an iPad 2, so these were the two devices that my Surface Pro was looking to replace.</description>
    </item>
    
    <item>
      <title>Hello mathy</title>
      <link>https://www.aaron-powell.com/posts/2013-01-22-hello-mathy/</link>
      <pubDate>Tue, 22 Jan 2013 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2013-01-22-hello-mathy/</guid>
      <description>In a previous post I laid out some thoughts on TypeScript which came from building a little library in TypeScript called mathy.
Hello mathy A few months ago I came to a realisation&amp;hellip; I&amp;rsquo;ve never written a parser, at least not a language parser. Sure I&amp;rsquo;ve parsed CSVs, sure I&amp;rsquo;ve parsed XML, but never a language.
Part of what I&amp;rsquo;ve been working on recently has needed a formula parser to deal with chemical formulas, basically we need to be able to take this:</description>
    </item>
    
    <item>
      <title>Should Internet Explorer be killed?</title>
      <link>https://www.aaron-powell.com/posts/2013-01-17-should-internet-explorer-be-killed/</link>
      <pubDate>Thu, 17 Jan 2013 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2013-01-17-should-internet-explorer-be-killed/</guid>
      <description>Warning - Opinions In my last post I explored some of the issues I have with the IE developer tools that basically prevents me from using IE as a primary browser for web development.
While writing that post it got me thinking about how I would go about solving those problems if I was in charge of the project.
And yes, I am an IE MVP but from my perspective an important role of an MVP is to ask the hard questions and not just be another Yes Man, how do I think the IE team will react to this post?</description>
    </item>
    
    <item>
      <title>Making the Internet Explorer JavaScript tools better, again</title>
      <link>https://www.aaron-powell.com/posts/2013-01-14-ie10-console-thoughts/</link>
      <pubDate>Mon, 14 Jan 2013 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2013-01-14-ie10-console-thoughts/</guid>
      <description>Almost two years ago I wrote a blog post about what I saw as problems in the IE9 developer tools.
Since then we&amp;rsquo;ve had IE10 released as well so I decided to revisit the post and see how have the development tools changed/improved since IE9.
 console.log still sucks  I made a point that when it comes to using console.log (and the derivatives) you often found that you got [object Object].</description>
    </item>
    
    <item>
      <title>The problem with Assert.IsTrue</title>
      <link>https://www.aaron-powell.com/posts/2013-01-08-the-problem-with-assert-istrue/</link>
      <pubDate>Tue, 08 Jan 2013 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2013-01-08-the-problem-with-assert-istrue/</guid>
      <description>Have you ever seen a unit test that looks like this:
public void SomeTest() { var foo = new Bar(); var result = foo.GetStuff(); Assert.IsTrue(result.Count() == 1); }  Do you know what&amp;rsquo;s wrong with this test? I&amp;rsquo;ll give you a clue, the developer use Assert.IsTrue and by doing so they&amp;rsquo;ve made a bad test.
I see a lot of tests which contain Assert.IsTrue and 9 times out of 10 I cringe when I see it.</description>
    </item>
    
    <item>
      <title>Thoughts on TypeScript</title>
      <link>https://www.aaron-powell.com/posts/2013-01-07-thoughts-on-typescript/</link>
      <pubDate>Mon, 07 Jan 2013 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2013-01-07-thoughts-on-typescript/</guid>
      <description>When TypeScript was announced I was pretty skeptical of it. I&amp;rsquo;ve been doing JavaScript development for a while now, I know many of the ins and outs of JavaScript development and I&amp;rsquo;ve never seen any problem with the syntax or the lack of type system.
But like a good skeptic I wanted to reserve my opinion until I had a chance to actually use it. This was the same approach which I took with CoffeeScript, you don&amp;rsquo;t really know something until you&amp;rsquo;ve made something with it (and for the record I wasn&amp;rsquo;t particularly fussed by CoffeeScript).</description>
    </item>
    
    <item>
      <title>2012, a year in review</title>
      <link>https://www.aaron-powell.com/posts/2013-01-06-2012-a-year-in-review/</link>
      <pubDate>Sun, 06 Jan 2013 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2013-01-06-2012-a-year-in-review/</guid>
      <description>It&amp;rsquo;s about that time again but I&amp;rsquo;m a bit delayed in getting it done, it&amp;rsquo;s time for a year in review!
Backing up from the busy year that was 2011 I&amp;hellip;
 Kept my MVP and got to go to the MVP summit in Seattle Went to the first Codemania in NZ to hang out with some of the guys in the NZ dev community Had first Pluralsight course on JavaScript design patterns was published Played the hipster dev for my DDD Melbourne talk this year, taking about developing everything in the browser, which was based off a similar talk from Web Directions What Do You Know Released my first Windows 8 application which needs some serious TLC, damn lack of free time :( Made a surprise appearance at CodeGarden 12, helped killed Umbraco 5, pointed out that MVC has always been possible with Umbraco and once again encouraged people to get involved in Umbraco which has been going really well since then Stepped out of my comfort zone and did some XAML but I&amp;rsquo;m still unconvinced by it Presented at Teched again, this time on Win8 app dev with HTML and JavaScript where I was kind of just ranting :P Dived into IndexedDB and released a wrapper library called db.</description>
    </item>
    
    <item>
      <title>Chrome support for db.js</title>
      <link>https://www.aaron-powell.com/posts/2012-10-18-dbjs-chrome/</link>
      <pubDate>Thu, 18 Oct 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2012-10-18-dbjs-chrome/</guid>
      <description>I recently had a bug opened on db.js which is related to Chrome operating differently to the other browsers.
After spending some time digging into the problem I came to realise that the problem was to do with the way older versions of Google&amp;rsquo;s Chrome implement IndexedDB (where older versions are any version prior to Chrome 23).
Prior to Chrome 23 Chrome didn&amp;rsquo;t support the final specification for IndexedDB completely, in fact they were still implementing the spec from April 2011 and the root of the problem was how changing database versions worked.</description>
    </item>
    
    <item>
      <title>Reverse order unique queries in IndexedDB</title>
      <link>https://www.aaron-powell.com/posts/2012-10-08-reverse-order-unique-indexes/</link>
      <pubDate>Mon, 08 Oct 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2012-10-08-reverse-order-unique-indexes/</guid>
      <description>In my post my db.js querying I covered how to do reverse unique queries with db.js using the desc().distinct() method chaining which will query an index for the unique items, but it&amp;rsquo;ll do it in reverse order, essentially it will set a IDBCursor direction of prevunique.
When covering off I mentioned that the way it works is a little unusual and here I&amp;rsquo;ll explain why.
How an index &amp;ldquo;looks&amp;rdquo; So you&amp;rsquo;ve got an index in your object store, an index which is non-unique, and it contains duplicate values.</description>
    </item>
    
    <item>
      <title>How the browsers store IndexedDB data</title>
      <link>https://www.aaron-powell.com/posts/2012-10-05-indexeddb-storage/</link>
      <pubDate>Fri, 05 Oct 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2012-10-05-indexeddb-storage/</guid>
      <description>As you&amp;rsquo;ve probably noticed I&amp;rsquo;ve been doing a lot of digging into IndexedDB across the various browsers but there&amp;rsquo;s one thing that I find quite interesting, how it all works. So for the TIL session we&amp;rsquo;ve going to find out how the browsers store the data for IndexedDB*.
*Note: This will be a pretty high-level look since I&amp;rsquo;m sooo not a C++ developer and C++ is the primary language of browser engines :P.</description>
    </item>
    
    <item>
      <title>Interesting finds in the IE10 UA switcher</title>
      <link>https://www.aaron-powell.com/posts/2012-10-04-ie10-user-agent-switching/</link>
      <pubDate>Thu, 04 Oct 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2012-10-04-ie10-user-agent-switching/</guid>
      <description>I was looking around in the IE10 developer tools today and dug into the Tools -&amp;gt; Change user agent string menu and came across some interesting UA options:
How did I miss that IE10 in Windows 8 RTM has built in User Agents for IE10 for Windows Phone 8 and IE for Xbox?
That&amp;rsquo;ll teach me to only ever use the Browser Mode options&amp;hellip;</description>
    </item>
    
    <item>
      <title>Using Source Maps with TypeScript</title>
      <link>https://www.aaron-powell.com/posts/2012-10-03-typescript-source-maps/</link>
      <pubDate>Wed, 03 Oct 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2012-10-03-typescript-source-maps/</guid>
      <description>Have you heard of Source Maps? Source Maps are an idea that has come out of Mozilla for addressing the debugging issues that are raised by *-to-JavaScript compilers and JavaScript minifiers, the problem is that when you use these you ultimately aren&amp;rsquo;t debugging what you wrote.
Take TypeScript for example and the improved version (original) of the PubSub from yesterday, we&amp;rsquo;ve got a problem, the code is quite different to what we&amp;rsquo;d be running in the browser.</description>
    </item>
    
    <item>
      <title>Indexes and Queries in db.js</title>
      <link>https://www.aaron-powell.com/posts/2012-10-02-dbjs-indexes-and-queries/</link>
      <pubDate>Tue, 02 Oct 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2012-10-02-dbjs-indexes-and-queries/</guid>
      <description>In my last post I introduced a new library I&amp;rsquo;ve been working on for IndexedDB called db.js.
One thing that I was slow in my understanding of with IndexedDB is how indexes work, and just how powerful they can be. Now that I&amp;rsquo;ve got that down pat the support in db.js is greatly improved. Also a big shout out to Bob Wallis who did a great job at adding the initial revision of index range queries.</description>
    </item>
    
    <item>
      <title>PubSub in TypeScript</title>
      <link>https://www.aaron-powell.com/posts/2012-10-02-pubsub-in-typescript/</link>
      <pubDate>Tue, 02 Oct 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2012-10-02-pubsub-in-typescript/</guid>
      <description>Pub/Sub is my Hello World, I&amp;rsquo;ve done it not once but twice in JavaScript and once in CoffeeScript (although technically that has a 3rd version in JavaScript at the start of the post :P).
Well you may have heard of Microsoft&amp;rsquo;s answer to application-scale JavaScript called TypeScript so I thought I&amp;rsquo;d write a pub/ sub library in it too.
module PubSub { var registry = {} var pub = function(name: string, .</description>
    </item>
    
    <item>
      <title>Hello db.js</title>
      <link>https://www.aaron-powell.com/posts/2012-10-01-hello-dbjs/</link>
      <pubDate>Mon, 01 Oct 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2012-10-01-hello-dbjs/</guid>
      <description>_I&amp;rsquo;m going to make the assumption you&amp;rsquo;re somewhat familiar with IndexedDB in this post, if you&amp;rsquo;re not check out this tutorial._
If you&amp;rsquo;ve spent any time looking at IndexedDB you&amp;rsquo;ll have to agree that the API leaves a lot to be desired. Look IndexedDB is a great feature of modern browsers but the problem is that its API is not really designed around modern JavaScript practices.
In particular I really dislike that you have to do stuff like this:</description>
    </item>
    
    <item>
      <title>Teched 2012 - HTML &amp; JavaScript Windows 8 apps</title>
      <link>https://www.aaron-powell.com/posts/2012-09-26-teched-2012/</link>
      <pubDate>Wed, 26 Sep 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2012-09-26-teched-2012/</guid>
      <description>Couldn&amp;rsquo;t make it to Teched Australia this year?
Made it and absolutely loved my session?
Well good news everybody, it&amp;rsquo;s now online for your viewing pleasure, check it out here.
This year my session was looking at doing Windows 8 applications using HTML and JavaScript. Through the session I looked at things that I learnt while building my application, things that you need to watch out for and stuff that just plain sucks.</description>
    </item>
    
    <item>
      <title>How to check if a file exists in Windows 8</title>
      <link>https://www.aaron-powell.com/posts/2012-09-24-check-if-file-exists/</link>
      <pubDate>Mon, 24 Sep 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2012-09-24-check-if-file-exists/</guid>
      <description>Sometimes things are simple, sometimes they aren&amp;rsquo;t when you think they should be. One such thing in Windows 8 development is checking if a file exists&amp;hellip;
In a Windows 8 app (be it C# or JavaScript) you work with the StorageFolder. Since we are sandboxed and don&amp;rsquo;t really have file-system access we don&amp;rsquo;t have the System.IO namespace as we&amp;rsquo;re use to meaning we have an entirely new set of APIs for reading a writing files (although it&amp;rsquo;s nice that they are built around being asynchronous).</description>
    </item>
    
    <item>
      <title>Running a simple git server on Windows</title>
      <link>https://www.aaron-powell.com/posts/2012-09-21-a-simple-git-server-on-windows/</link>
      <pubDate>Fri, 21 Sep 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2012-09-21-a-simple-git-server-on-windows/</guid>
      <description>While Mercurial still hold a special place in my heart it can&amp;rsquo;t be denied that Git has well and truly won the war. Because of this I&amp;rsquo;ve been using it more extensively in the projects that I work on.
Recently I started on an engagement at work that was using TFS as its SCM, but wanting to avoid some of the pain of TFS 2010 I decided to use git-tf.</description>
    </item>
    
    <item>
      <title>Creating classes in WinJS</title>
      <link>https://www.aaron-powell.com/posts/2012-09-14-creating-classes/</link>
      <pubDate>Fri, 14 Sep 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2012-09-14-creating-classes/</guid>
      <description>Sure using classes in JavaScript may not be a great idea, you can&amp;rsquo;t help but argue that there are valid scenarios which you would be wanting to use the class pattern.
If you&amp;rsquo;re doing WinJS development there&amp;rsquo;s an API that will allow you to make classes easily, WinJS.Class being the root. From here you can define new classes, derive classes or create mixins.
Creating a class It&amp;rsquo;s very easy to create a class using the WinJS API, here&amp;rsquo;s a simple person:</description>
    </item>
    
    <item>
      <title>The settings suck</title>
      <link>https://www.aaron-powell.com/posts/2012-09-14-settings-suck/</link>
      <pubDate>Fri, 14 Sep 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2012-09-14-settings-suck/</guid>
      <description>Settings problems My first Windows 8 application I wrote using WinJS so a lot of my expectations on how settings worked in Windows 8 XAML was based off of that experience. Unfortunately from the looks of it the two teams had very different ideas on whether settings were important or not and thus we have drastically different experiences.
Here&amp;rsquo;s the problems I&amp;rsquo;ve hit so far:
 Setting up settings, if you do this &amp;ldquo;too early&amp;rdquo; (ie - before the app has fired off its Activated event) it crashes as the settings pane doesn&amp;rsquo;t exist There&amp;rsquo;s no built-in settings control Since there&amp;rsquo;s no control there&amp;rsquo;s no way to navigate to a particular settings pane You use an event handler to register settings panes  With the exception of the last point (which sucks in both platforms) these are problems specific to XAML based Windows 8 applications.</description>
    </item>
    
    <item>
      <title>Text casing and Examine</title>
      <link>https://www.aaron-powell.com/posts/2012-09-05-text-casing-and-examine/</link>
      <pubDate>Wed, 05 Sep 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2012-09-05-text-casing-and-examine/</guid>
      <description>A few times I&amp;rsquo;ve seen questions posted on the Umbraco forums which ask how to deal with case insensitivity text with Examine, and it’s also something that we&amp;rsquo;ve had to handle a few times within our own company.
Here&amp;rsquo;s a scenario:
 You have a site search You use examine You want to show the results looking exactly the same as it was before it went into Examine  If you&amp;rsquo;re running a standard install you’ll notice that the content always ends up lowercased!</description>
    </item>
    
    <item>
      <title>Forcing Windows 8 soft keyboard to hide</title>
      <link>https://www.aaron-powell.com/posts/2012-08-31-forcing-windows-8-keyboard-to-hide/</link>
      <pubDate>Fri, 31 Aug 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2012-08-31-forcing-windows-8-keyboard-to-hide/</guid>
      <description>We had a bug raised that when the user presses enter on the sign in screen the login process begins but the soft keyboard (the on-screen keyboard) doesn&amp;rsquo;t get dismissed so the user gets the impression they can keep interacting with it. Through some Monkey Testing this produced a bug where the application would crash because it would fire off multiple requests to log in as they could keep hitting enter and eventually crashing the application.</description>
    </item>
    
    <item>
      <title>WebView, oh you!</title>
      <link>https://www.aaron-powell.com/posts/2012-08-28-webview-oh-you/</link>
      <pubDate>Tue, 28 Aug 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2012-08-28-webview-oh-you/</guid>
      <description>Today can only be summarized by this:
While I&amp;rsquo;m having my fun in the dark side of development doing XAML I hit something really whacky today, using the WebView control.
Here be dragons The WebView control seems to be a little bit special, and not really special in a good way and it seems others have also found it limiting.
But I hit an interesting problem with the WebView control rendering, in particular rendering it in a settings panel.</description>
    </item>
    
    <item>
      <title>XAML by a web guy</title>
      <link>https://www.aaron-powell.com/posts/2012-08-20-xaml-by-a-web-guy/</link>
      <pubDate>Mon, 20 Aug 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2012-08-20-xaml-by-a-web-guy/</guid>
      <description>A few weeks ago a new project came up at work which I moved onto, a project which is XAML based. More specifically Windows 8 XAML and having built a Windows 8 app using HTML and JavaScript I was keen to give it a crack.
Now I&amp;rsquo;m very much a web guy. If you read my blog you&amp;rsquo;ll know that I spend more time blogging about JavaScript than anything else.</description>
    </item>
    
    <item>
      <title>Revisiting using ASP.NET MVC in Umbraco 4</title>
      <link>https://www.aaron-powell.com/posts/2012-07-11-using-mvc-in-umbraco-4-revisited/</link>
      <pubDate>Wed, 11 Jul 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2012-07-11-using-mvc-in-umbraco-4-revisited/</guid>
      <description>A month on I wanted to revisit my post on using MVC with Umbraco 4. I write the code and draft while driving back from the retreat so it wasn&amp;rsquo;t very deeply investigated.
Basically it was done as a proof of concept.
Well today I was chatting with someone who was wanting to take the PoC and try it in production and through chatting we learnt a few things about what I initially write about that are important to know if you&amp;rsquo;re wanting to try it as well.</description>
    </item>
    
    <item>
      <title>Stop using Hungarian jQuery!</title>
      <link>https://www.aaron-powell.com/posts/2012-06-27-hungarian-jquery/</link>
      <pubDate>Wed, 27 Jun 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2012-06-27-hungarian-jquery/</guid>
      <description>I&amp;rsquo;ve been in software development for long enough that I remember a time when Hungarian Notation was all the rage to write strFirstName, iAge and objPerson, I also remember it dying and dying for a good reason.
The rise of Hungarian jQuery This is something that I&amp;rsquo;ve been noticing more and more in JavaScript code that I work with, code that looks like this:
var $foo = $(&#39;.foo&#39;); //do something with $foo  Do you see what I&amp;rsquo;m referring to, the prefixing of $ onto a jQuery variable with the purpose of indicating that it&amp;rsquo;s a jQuery object.</description>
    </item>
    
    <item>
      <title>I helped kill Umbraco 5</title>
      <link>https://www.aaron-powell.com/posts/2012-06-25-i-helped-kill-umbraco-5/</link>
      <pubDate>Mon, 25 Jun 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2012-06-25-i-helped-kill-umbraco-5/</guid>
      <description>Hi, my name&amp;rsquo;s Aaron Powell and I was involved in killing Umbraco 5.
Background If you&amp;rsquo;re new to this blog you may not have heard of my before so here&amp;rsquo;s a bit of background. I&amp;rsquo;ve been involved with Umbraco for about 4 years now. I originally joined the project to create LINQ to Umbraco, a somewhat ill-fated experiment into Code First development. I&amp;rsquo;ve presented at every CodeGarden since my first one in 2009 on a range of topics from LINQ to Umbraco to unit testing Umbraco and this year on Signalr and RavenDB.</description>
    </item>
    
    <item>
      <title>Introducing the Umbraco contributor mailing list</title>
      <link>https://www.aaron-powell.com/posts/2012-06-13-introducing-umbraco-contributor-list/</link>
      <pubDate>Wed, 13 Jun 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2012-06-13-introducing-umbraco-contributor-list/</guid>
      <description>TL;DR Want to be involved in driving the Umbraco Open Source project, join the Google Group.
All the details One of the things that has come out of the Umbraco retreat this year is that as a community we need to get more involved in the direction of the open source project. This has always been something that many people has wanted to do but the problem has been how do you get involved.</description>
    </item>
    
    <item>
      <title>Using ASP.NET MVC in Umbraco 4</title>
      <link>https://www.aaron-powell.com/posts/2012-06-12-using-mvc-in-umbraco-4/</link>
      <pubDate>Tue, 12 Jun 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2012-06-12-using-mvc-in-umbraco-4/</guid>
      <description>By now you&amp;rsquo;ve probably heard the decision of Umbraco HQ to no longer investing resources in Umbraco MVC and instead the focus (from both HQ and the community) is on making Umbraco 4 a better product.
One thing that a lot of developers were waiting for with Umbraco was the ability to use MVC with Umbraco. Over the course of the retreat we looked at where this motivation came from any one of the things that we seemed to agree is that most Umbraco users aren&amp;rsquo;t concerned about whether the underlying technology is MVC or not, the just want to be able to write clean mark up which MVC, or more importantly Razor allows you to do.</description>
    </item>
    
    <item>
      <title>IndexedDB changed in IE10 PP6</title>
      <link>https://www.aaron-powell.com/posts/2012-06-04-indexeddb-changed-ie10pp6/</link>
      <pubDate>Mon, 04 Jun 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2012-06-04-indexeddb-changed-ie10pp6/</guid>
      <description>When building Pinboard for Windows 8 I decided to use IndexedDB as the internal storage for the application since I was writing it using WinJS.
Initially I wrote the application against the Consumer Preview release but when it came time to get it going for the Release Preview I hit a snag, the database layer was completely falling over! I kept getting an InvalidAccessError every time I tried to open a transaction.</description>
    </item>
    
    <item>
      <title>Storing credentials in Windows 8</title>
      <link>https://www.aaron-powell.com/posts/2012-06-04-storing-credentials-windows-8/</link>
      <pubDate>Mon, 04 Jun 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2012-06-04-storing-credentials-windows-8/</guid>
      <description>So you&amp;rsquo;re building a Windows 8 application and you want to authenticate against an external service. For this it&amp;rsquo;s likely that you&amp;rsquo;re going to want to store a username and password for the user so that you can query off to the external service without bugging them constantly.
This was something that I had to do for my Pinboard for Windows 8 application so I wanted to make sure that I was doing it above board and no one would think I&amp;rsquo;ve been sneaky and abused their privacy.</description>
    </item>
    
    <item>
      <title>Pinboard for Windows 8</title>
      <link>https://www.aaron-powell.com/posts/2012-06-01-pinboard-for-win8/</link>
      <pubDate>Fri, 01 Jun 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2012-06-01-pinboard-for-win8/</guid>
      <description>With the release of the Windows 8 store today I&amp;rsquo;m excited to say that you can now download my Pinboard for Windows 8 application!
A few months ago Tatham pointed me to a bookmarking service called Pinboard which is described as antisocial bookmarking, and is aimed at being a super simple bookmarking service, it&amp;rsquo;s no fuss, no bells-and-whistles, it&amp;rsquo;s just a bookmarking service.
When I first started using Windows 8 I really wanted to be able to interact with my bookmarks, particularly when I was using IE10 Metro.</description>
    </item>
    
    <item>
      <title>Understanding compression and minification</title>
      <link>https://www.aaron-powell.com/posts/2012-05-29-understanding-compression-and-minification/</link>
      <pubDate>Tue, 29 May 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2012-05-29-understanding-compression-and-minification/</guid>
      <description>One of my colleagues raised a question on our internal discussion system as to why we should use minified JavaScript libraries. Now I&amp;rsquo;m sure everyone knows that you should minimize your libraries but do you really understand what the different levels of minification are and the benefits of the different levels? While I strongly recommend that you should ensure that on a production system you always have your JavaScript minified and gzipped (well and the right caching headers but that&amp;rsquo;s beyond the scope of this blog post) let&amp;rsquo;s have a look as to exactly what differences it makes.</description>
    </item>
    
    <item>
      <title>OWIN series conclusion</title>
      <link>https://www.aaron-powell.com/posts/2012-04-10-owin-conclusion/</link>
      <pubDate>Tue, 10 Apr 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2012-04-10-owin-conclusion/</guid>
      <description>Over the last few weeks I&amp;rsquo;ve done a small series of blog posts looking at the Open Web Interface for .NET, aka OWIN.
The series was made up of:
 A Hello World introduction Introducing middleware Routing Responses View Engines in both simple and advanced forms A github repository with all the code  I started look at OWIN after bitching at Damian Edwards over the poor documentation and he told me to stop bitching and work it out.</description>
    </item>
    
    <item>
      <title>OWIN and View Engines, Part 2</title>
      <link>https://www.aaron-powell.com/posts/2012-04-02-owin-view-engines-part-2/</link>
      <pubDate>Mon, 02 Apr 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2012-04-02-owin-view-engines-part-2/</guid>
      <description>In the last post we had a bit of a look at View Engines for OWIN and in this one I want to take the idea just a little bit further.
Most web frameworks you come across will allow you to choose your own View Engine. ASP.Net MVC allows for this (although it can be tricky) and frameworks like Express.js or Nancy make it quite easy to drop in your own one.</description>
    </item>
    
    <item>
      <title>OWIN and View Engines</title>
      <link>https://www.aaron-powell.com/posts/2012-03-23-owin-view-engines/</link>
      <pubDate>Fri, 23 Mar 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2012-03-23-owin-view-engines/</guid>
      <description>In the last post we looked at improving our responses in OWIN by adding some extensions methods to the response object and the next logical step for this is to think about HTML. While what we&amp;rsquo;ve brought together thus far is useful if you&amp;rsquo;re creating something that is just a web API if you want to create an actual web site you probably need to respond with some HTML.</description>
    </item>
    
    <item>
      <title>Watch your OS</title>
      <link>https://www.aaron-powell.com/posts/2012-03-21-watch-your-os/</link>
      <pubDate>Wed, 21 Mar 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2012-03-21-watch-your-os/</guid>
      <description>Today some of my colleagues were trying to integrate csslint into the build process of a project using the nodejs package but they kept hitting an issue:
npm ERR! Unsupported npm ERR! Not compatible with your operating system or architecture: csslint@0.9.7 npm ERR! Valid OS: darwin,linux npm ERR! Valid Arch: any npm ERR! Actual OS: win32 npm ERR! Actual Arch: ia32  So I had a crack on my machine and it worked just fine.</description>
    </item>
    
    <item>
      <title>OWIN Responses</title>
      <link>https://www.aaron-powell.com/posts/2012-03-19-owin-responses/</link>
      <pubDate>Mon, 19 Mar 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2012-03-19-owin-responses/</guid>
      <description>In the last post we looked at Routing in OWIN as we built up a simple little route engine. Today I want to look at how to bring power to our responses by making it easier to respond with different types.
In ASP.Net MVC you&amp;rsquo;re probabily use to write code like this:
public ActionResult Index() { return Json(new { FirstName = &amp;quot;Aaron&amp;quot;, LastName = &amp;quot;Powell&amp;quot; }); }  Here our Action (which comes from our Route) is defining that we want to output JSON to the response and it gives us a nice way which we can do it.</description>
    </item>
    
    <item>
      <title>OWIN routing</title>
      <link>https://www.aaron-powell.com/posts/2012-03-16-owin-routing/</link>
      <pubDate>Fri, 16 Mar 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2012-03-16-owin-routing/</guid>
      <description>Last time around we started looking at middleware in OWIN and how to handle different request types. So now comes the next logical step, how do we handle different URLs? Currently we don&amp;rsquo;t have the facilities to handle different URLs, aka routing, so let&amp;rsquo;s work on that.
Understanding routing Before we dive into coding our solution it&amp;rsquo;s a good idea to think about what routing really is. You&amp;rsquo;re probably familiar with this from ASP.</description>
    </item>
    
    <item>
      <title>OWIN and Middleware</title>
      <link>https://www.aaron-powell.com/posts/2012-03-15-owin-and-middleware/</link>
      <pubDate>Thu, 15 Mar 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2012-03-15-owin-and-middleware/</guid>
      <description>In my last post I looked at getting started with the basics of OWIN and how to create a server which wont do anything overly useful. In this post I want to go a step further and look at how we can start introducing our own layers on top of OWIN (and Gate) to make it nicer to do like web stuff.
It&amp;rsquo;s all about the modules One of the aims of OWIN is to be very lightweight and as we saw in the last post OWIN itself doesn&amp;rsquo;t really have anything in it and it doesn&amp;rsquo;t really do anything.</description>
    </item>
    
    <item>
      <title>Hello OWIN</title>
      <link>https://www.aaron-powell.com/posts/2012-03-14-hello-owin/</link>
      <pubDate>Wed, 14 Mar 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2012-03-14-hello-owin/</guid>
      <description>Long time readers of my blog will probably be aware that I&amp;rsquo;ve become quite a fan of Node.js. One of the things that I&amp;rsquo;ve liked about working with it is that it&amp;rsquo;s very bare bones so you&amp;rsquo;re working very closely with the HTTP pipeline, something that you don&amp;rsquo;t do with ASP.Net (WebForms in particular, MVC is much closer but still a reasonable abstraction).
About 18 months ago a .NET project popped up on the radar though, a project called OWIN.</description>
    </item>
    
    <item>
      <title>How to explain where to put your JavaScript in a page</title>
      <link>https://www.aaron-powell.com/posts/2012-02-21-scripts-are-blocking/</link>
      <pubDate>Tue, 21 Feb 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2012-02-21-scripts-are-blocking/</guid>
      <description>I decided that I&amp;rsquo;m tired of explaining why you should do JavaScript combination and avoid inline scripts.
So here&amp;rsquo;s a comic that should explain it.

Click for a larger version.</description>
    </item>
    
    <item>
      <title>KendoUI Bootstrapper</title>
      <link>https://www.aaron-powell.com/posts/2012-02-16-kendo-ui-bootstrapper/</link>
      <pubDate>Thu, 16 Feb 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2012-02-16-kendo-ui-bootstrapper/</guid>
      <description>For my Stats It project I&amp;rsquo;m using KendoUI as my UI widget layer (and charting) as it has several more UI widgets that I&amp;rsquo;m looking for than jQuery UI offers. But there&amp;rsquo;s one thing I hate having to do, and that&amp;rsquo;s constantly write code like this:
$(&#39;.datePicker&#39;).kendoDatePicker();  This goes for all libraries I&amp;rsquo;ve used, you&amp;rsquo;re constantly having to bootstrap the UI widgets so that they appear. Now there&amp;rsquo;s a good reason for this, so you can pass in options, etc to setup your controls for their actual use, but I find that you end up with a lot of boilerplate code around that is doing the same thing each time and when trying to be DRY this is annoying.</description>
    </item>
    
    <item>
      <title>Macros in packages</title>
      <link>https://www.aaron-powell.com/posts/2012-01-25-macros-in-packages/</link>
      <pubDate>Wed, 25 Jan 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2012-01-25-macros-in-packages/</guid>
      <description>So you&amp;rsquo;re working on an Umbraco 5 package and you want to be able to ship your own Macro with it. Seems like a common scenario you want to do yeah? It&amp;rsquo;s something that&amp;rsquo;s possible in v4 right? So how do you go about doing it in v5?
Some background In v4 Macros were a bit of a pain to ship, in case you didn&amp;rsquo;t know they were stored in the database and their data model was&amp;hellip; less than ideal mainly as they evolved from being XSLT components to also supporting .</description>
    </item>
    
    <item>
      <title>Creating an installer task</title>
      <link>https://www.aaron-powell.com/posts/2012-01-24-creating-an-installer-task/</link>
      <pubDate>Tue, 24 Jan 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2012-01-24-creating-an-installer-task/</guid>
      <description>As you possibly know I&amp;rsquo;m working on an extension for Umbraco 5 called Stats It and I&amp;rsquo;ve initially been focusing on making the install process nice and smooth for people who want to get up and running with the package. A good install experience will do wonders for giving your project credibility.
For this I have had to do a bit of digging into the Task system which is coming in v5, which is acting as a replacement for the traditional .</description>
    </item>
    
    <item>
      <title>Heroku, SendGrid and NodeJS</title>
      <link>https://www.aaron-powell.com/posts/2012-01-05-heroku-sendgrid-nodejs/</link>
      <pubDate>Thu, 05 Jan 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2012-01-05-heroku-sendgrid-nodejs/</guid>
      <description>Last night I launched the registration site for Stats It, and Umbraco 5 add-on I&amp;rsquo;m working on and I wanted to get the site out quickly and well&amp;hellip; cheaply so I decided that I&amp;rsquo;d just do a 1 page site in NodeJS.
For hosting I wanted to go with Heroku as I just love how simply I can get a site from my local machine to deployed with the platform and I also love how many add-ons there are available.</description>
    </item>
    
    <item>
      <title>Stubbing AJAX responses with tbd and AmpliyJS</title>
      <link>https://www.aaron-powell.com/posts/2011-12-29-stubbing-ajax-responses-with-tbd/</link>
      <pubDate>Thu, 29 Dec 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-12-29-stubbing-ajax-responses-with-tbd/</guid>
      <description>A project which I&amp;rsquo;m working on at the moment I&amp;rsquo;m using AmplifyJS to simplify my front-end routing through to my underlying data service calls. The problem is that I haven&amp;rsquo;t got the backend services ready yet (there&amp;rsquo;s some outstanding blockers in the API I&amp;rsquo;m working against) so I&amp;rsquo;m focusing my work on the front end.
But there&amp;rsquo;s the obvious problem, I want to push data to the UI but I don&amp;rsquo;t have any way to get the data.</description>
    </item>
    
    <item>
      <title>Some useful Jasmine extensions</title>
      <link>https://www.aaron-powell.com/posts/2011-12-23-useful-jasmine-extensions/</link>
      <pubDate>Fri, 23 Dec 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-12-23-useful-jasmine-extensions/</guid>
      <description>For tbd, a JavaScript helper I&amp;rsquo;ve written I&amp;rsquo;ve been using Jasmine for my testing.
Some of the tests I&amp;rsquo;ve had to go beyond what matchers are available out of the box so I thought I&amp;rsquo;d share them here (mostly so I&amp;rsquo;ve got an easy point for myself to find them again :P).
A quick into to adding your own matcher I&amp;rsquo;ve you&amp;rsquo;re new to Jasmine and haven&amp;rsquo;t added your own matchers here&amp;rsquo;s a quick tutorial.</description>
    </item>
    
    <item>
      <title>2011, a year in review</title>
      <link>https://www.aaron-powell.com/posts/2011-12-22-2011-a-year-in-review/</link>
      <pubDate>Thu, 22 Dec 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-12-22-2011-a-year-in-review/</guid>
      <description>As the year wraps up it brings time for the atypical year in review post!
While last year I declared to be the year of the conferences but of course this year was just as crazy with conferences.
I&amp;hellip;
 Got a Microsoft MVP award! Went to the USA for my first time to go to MIX11 and talked FunnelWeb at the Open Source Fest  Vegas is insane and I don&amp;rsquo;t think I&amp;rsquo;ve ever been as hung over in my life as I&amp;rsquo;d been Hanging out with Glenn Block was heaps of fun, he&amp;rsquo;s such a top guy I got to have lunch with Scott Hanselman, Phil Haack and Rob Conery which was pretty awesome from a nerd point of view The pre-party also allowed me to meet some of my idols in Douglas Crockford, Dave Ward and Elijah Manor  Next stop was Melbourne and DDD Melbourne where I got to present on JavaScript craziness  And watching Steve Godbold rap was just hilarious  Next up was REMIX where I spoke on being a web developer and had to do an impromptu session where I talked about JavaScript again (although admittedly I lost the audience on the second talk :P) It wasn&amp;rsquo;t long until I was back on a plane to get to Denmark for CodeGarden 11 where I talked about everything from ASP.</description>
    </item>
    
    <item>
      <title>I want you</title>
      <link>https://www.aaron-powell.com/posts/2011-12-19-i-want-you/</link>
      <pubDate>Mon, 19 Dec 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-12-19-i-want-you/</guid>
      <description>Hi, my name&amp;rsquo;s Aaron and I&amp;rsquo;m a former member of the Umbraco core team. Before I departed the core team something I was pushing for was greater involvement between the core (and HQ) and the Umbraco developer community.
Let me make sure I clear one thing up first, Umbraco has a great user community, our.umbraco thrives with huge number of contributors helping everyone out from the beginner to the advanced.</description>
    </item>
    
    <item>
      <title>Building data with tbd</title>
      <link>https://www.aaron-powell.com/posts/2011-12-12-building-data-with-tbd/</link>
      <pubDate>Mon, 12 Dec 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-12-12-building-data-with-tbd/</guid>
      <description>When building a UI that is driven by JavaScript one of the most tedious tasks is ensuring that you have data which you can populate into the UI to develop against. If you&amp;rsquo;re like me you probably prefer to do the UI component before the server component. Alternatively you could be working in a team where someone else is responsible for developing the server component at the same time as you&amp;rsquo;re developing the UI.</description>
    </item>
    
    <item>
      <title>You don&#39;t need to use $.proxy</title>
      <link>https://www.aaron-powell.com/posts/2011-12-12-you-dont-need-jquery-proxy/</link>
      <pubDate>Mon, 12 Dec 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-12-12-you-dont-need-jquery-proxy/</guid>
      <description>I&amp;rsquo;ve been recently going through some extending of a jQuery UI widget which a colleague had written when I came across quite a number of statements that were using the proxy method from jQuery.
For anyone who&amp;rsquo;s not familiar with the proxy method is allows you to take a function and specify a context (the this value) so when you pass it around for execution you always know what you&amp;rsquo;re going to have as the context.</description>
    </item>
    
    <item>
      <title>Xamlizer - How to implement something silly in JavaScript</title>
      <link>https://www.aaron-powell.com/posts/2011-10-24-xamlizer-implementing-something-silly-in-javascript/</link>
      <pubDate>Mon, 24 Oct 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-10-24-xamlizer-implementing-something-silly-in-javascript/</guid>
      <description>I&amp;rsquo;ve never done much Xaml development, I started reading a WPF book and played around with it only to realise I didn&amp;rsquo;t have any understanding of this concept of a stateful application or how layouts were going to work. And as a web developer who never saw the appeal of Flash I also never got into Silverlight as there was never a problem in my life that it would solve.</description>
    </item>
    
    <item>
      <title>Rebuilding JavaScript Quiz in Nodejs</title>
      <link>https://www.aaron-powell.com/posts/2011-10-12-rebuilding-javascript-quiz-in-nodejs/</link>
      <pubDate>Wed, 12 Oct 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-10-12-rebuilding-javascript-quiz-in-nodejs/</guid>
      <description>A few months back I announced a new site I was running called JavaScript Quiz. When I started to site it was to be done quickly so I chose an out-of-the-box blogging platform, that being Posterous.
Since then I&amp;rsquo;ve come to realise that it isn&amp;rsquo;t the platform I want wanting to go with. One of my main problems with it is its comment management system. Anyone who has submitted an answer to me will know what I&amp;rsquo;m talking about, the excessive spam which you end up with when I do publish all the answers.</description>
    </item>
    
    <item>
      <title>Tips for travelling as a geek</title>
      <link>https://www.aaron-powell.com/posts/2011-10-12-tips-for-travelling-as-a-geek/</link>
      <pubDate>Wed, 12 Oct 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-10-12-tips-for-travelling-as-a-geek/</guid>
      <description>Anyone who follows me on twitter will have probably noticed that in the last two weeks I&amp;rsquo;ve been tweeting with a geolocation in Vietnam. If you&amp;rsquo;re really smart you may have worked out that I was on holidays over there!
I had a bit of tech with me, an iPad, iPhone, laptop and 2 kindles so I thought I&amp;rsquo;d share some of my experiences and tips for travelling as a geek.</description>
    </item>
    
    <item>
      <title>Creating a ViewModel from the server</title>
      <link>https://www.aaron-powell.com/posts/2011-09-18-creating-vms-from-server/</link>
      <pubDate>Sun, 18 Sep 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-09-18-creating-vms-from-server/</guid>
      <description>If you&amp;rsquo;ve been doing much work with KnockoutJS you&amp;rsquo;ll probably see examples where the code looks like this:
var todoViewModel = function() { this.items = new ko.observableArray([&#39;Item 1&#39;, &#39;Item 2&#39;, &#39;Item 3&#39;]); this.selectedItem = new ko.observable(&#39;Item 1&#39;); };  What I&amp;rsquo;m trying to point out here is that the viewModel is being defined in JavaScript and that the items within it are coded into your JavaScript.
While you can argue that this is demo code and it should only be treated as such something I&amp;rsquo;ve noticed is there isn&amp;rsquo;t any other examples.</description>
    </item>
    
    <item>
      <title>So long and thanks for all the fish</title>
      <link>https://www.aaron-powell.com/posts/2011-09-15-so-long-and-thanks-for-all-the-fish/</link>
      <pubDate>Thu, 15 Sep 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-09-15-so-long-and-thanks-for-all-the-fish/</guid>
      <description>So it saddens me to say but as of today I will not be contributing to Umbraco, I have been stepped down from my contributor role on the project.
I wish Shannon, Alex, Matt, Niels and the rest of the team the best for the Umbraco 5 release.</description>
    </item>
    
    <item>
      <title>Going beyond the browser with QUnit - Part 2</title>
      <link>https://www.aaron-powell.com/posts/2011-09-05-qunit-beyond-the-browser-part-2/</link>
      <pubDate>Mon, 05 Sep 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-09-05-qunit-beyond-the-browser-part-2/</guid>
      <description>In my last post I talked about what you need to do if you want to monitor changes and run tests automatically under Node.js but there was a few assumptions in there. One of the main assumptions I had was that you weren&amp;rsquo;t doing any DOM interactions.
In this part we&amp;rsquo;re going to look at how you can use DOM interactions in your QUnit tests and still run them under Node.</description>
    </item>
    
    <item>
      <title>Slides from WEB203</title>
      <link>https://www.aaron-powell.com/posts/2011-09-04-slides/</link>
      <pubDate>Sun, 04 Sep 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-09-04-slides/</guid>
      <description>I recently spoke at Teched AU in a session called Chasing the Evolving Web.
Here&amp;rsquo;s the assets from the talk:
 Slides Recording  And here&amp;rsquo;s a list of the tools which I looked at in my presentation:
 HTML5 Boilerplate Modernizr YepNope.js RaphaelJS AmplifyJS Knockout  </description>
    </item>
    
    <item>
      <title>Going beyond the browser with QUnit - Part 1</title>
      <link>https://www.aaron-powell.com/posts/2011-09-03-qunit-beyond-the-browser-part-1/</link>
      <pubDate>Sat, 03 Sep 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-09-03-qunit-beyond-the-browser-part-1/</guid>
      <description>When it comes to unit testing my JavaScript my preferred framework is QUnit. If you&amp;rsquo;re not familiar with QUnit it&amp;rsquo;s the test framework for jQuery so I think it&amp;rsquo;s reasonably well up to the task of testing JavaScript.
Recently I wrote an article on a preparser I&amp;rsquo;ve written for Knockout. Interestingly enough at the same time Brendan Satrom had the same idea. I quite like the approach that Brendan has taken so I decided to have a poke around in the code and see if we could even merge the two projects.</description>
    </item>
    
    <item>
      <title>Slides from WUX202</title>
      <link>https://www.aaron-powell.com/posts/2011-09-03-slides/</link>
      <pubDate>Sat, 03 Sep 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-09-03-slides/</guid>
      <description>I recently spoke at Teched NZ in a session called Chasing the Evolving Web.
Here&amp;rsquo;s the slides from the talk:
 Slides  And here&amp;rsquo;s a list of the tools which I looked at in my presentation:
 HTML5 Boilerplate Modernizr YepNope.js RaphaelJS EaselJS AmplifyJS Knockout Backbone  </description>
    </item>
    
    <item>
      <title>Introducing the KnockoutJS preparser</title>
      <link>https://www.aaron-powell.com/posts/2011-08-09-knockoutjs-preparser/</link>
      <pubDate>Tue, 09 Aug 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-08-09-knockoutjs-preparser/</guid>
      <description>In my previous post I outlined one of the biggest issues I have with KnockoutJS as being its WPF/ Silverlight binding syntax and how it requires you to put JavaScript into your HTML.
Now I&amp;rsquo;m a pretty firm believe that if you are going to criticise something then you better make it constructive. Just saying &amp;ldquo;I don&amp;rsquo;t like blah&amp;rdquo; isn&amp;rsquo;t helpful to a) the author of blah or b) people wanting to learn more about blah, so I decided that I would follow up my criticism of KnockoutJS with a way I would go about fixing it.</description>
    </item>
    
    <item>
      <title>JavaScript: A story</title>
      <link>https://www.aaron-powell.com/posts/2011-08-09-a-story/</link>
      <pubDate>Tue, 09 Aug 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-08-09-a-story/</guid>
      <description>Everyone use to notice the old war veteran that sat on the corner. His uniform was tatty and he’s always be spouting about his heyday with lines like “Don’t you remember my role in the first browser war” and “If it wasn’t for me VBScript would be the language of choice of the browser!”. We’d look at him with pity, throw a few dollars his way and carry on with our day but never really got to know him.</description>
    </item>
    
    <item>
      <title>Are you going to Teched Australia?</title>
      <link>https://www.aaron-powell.com/posts/2011-08-08-teched-au-2011/</link>
      <pubDate>Mon, 08 Aug 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-08-08-teched-au-2011/</guid>
      <description>Because if you are you get to see me not once but twice! Woot!
Come down and check out WEB203 - Chasing the Evolving Web and learn how to keep ahead of the game when it comes to doing the latest and greatest on the web.
In addition you should come to DEV305 - An MMO in 45 Minutes: Developing for 2 screens and a cloud without being cut for some utter bedlam with myself, Luke Drumm, Richard Banks and Steve Nagy.</description>
    </item>
    
    <item>
      <title>Are you going to Teched NZ?</title>
      <link>https://www.aaron-powell.com/posts/2011-08-08-teched-nz-2011/</link>
      <pubDate>Mon, 08 Aug 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-08-08-teched-nz-2011/</guid>
      <description>Because if you are you can see me not once, not twice, but three time, and really, who wouldn&amp;rsquo;t want to see me that much :P.
Come down to COS204 - Umbraco and Azure to learn about how awesome Umbraco is and how it really does love Azure.
Or if web is more your thing jump on over to WUX202 - Chasing the Evolving Web to learn about being a modern web developer and WUX203 - JavaScript Pitfalls for the .</description>
    </item>
    
    <item>
      <title>Why I don&#39;t like KnockoutJS</title>
      <link>https://www.aaron-powell.com/posts/2011-08-08-why-i-don-t-like-knockoutjs/</link>
      <pubDate>Mon, 08 Aug 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-08-08-why-i-don-t-like-knockoutjs/</guid>
      <description>A few times I&amp;rsquo;ve ruffled a few features by making the statement that I am not a fan of KnockoutJS.
Let me start by clarifying a few things:
 I think the concept of KnockoutJS is a good one It&amp;rsquo;s nothing against Steve Sanderson, to have come up with it in the first place is impressive This is my opinion and I will still recommend that others try it and form their own opinions.</description>
    </item>
    
    <item>
      <title>Having fun and digging deep into amplifyjs and the request API</title>
      <link>https://www.aaron-powell.com/posts/2011-07-12-fun-in-amplifyjs-request/</link>
      <pubDate>Tue, 12 Jul 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-07-12-fun-in-amplifyjs-request/</guid>
      <description>Have you played with amplifyjs yet? Played with it&amp;rsquo;s cool way of handling requests?
I really like the way you can do this:
//in our JavaScript bootstrapper amplify.request.define(&amp;quot;searchTwitter&amp;quot;, &amp;quot;ajax&amp;quot;, { url: &amp;quot;http://search.twitter.com/search.json?callback=?&amp;quot;, dataType: &amp;quot;jsonp&amp;quot;, cache: 30000 }); //in some other file amplify.request(&#39;searchTwitter&#39;, { q: &#39;amplifyjs&#39; }, function (data) { //handle returned data });  It&amp;rsquo;s nice and clean a way to setup request pointers which you can then mock out for testing purposes.</description>
    </item>
    
    <item>
      <title>JavaScript Quiz</title>
      <link>https://www.aaron-powell.com/posts/2011-07-10-javascript-quiz/</link>
      <pubDate>Sun, 10 Jul 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-07-10-javascript-quiz/</guid>
      <description>Today I released a little website, http://javascriptquiz.com, which was inspired by http://cssquiz.com.
Basically it&amp;rsquo;s a site which I&amp;rsquo;ll put out JavaScript questions for people to tackle. If you have any ideas for questions which you&amp;rsquo;d like to see put out to the community feel free to drop me an email (I&amp;rsquo;m sure if you&amp;rsquo;re cluey you can find it on this site :P).</description>
    </item>
    
    <item>
      <title>My geek origin</title>
      <link>https://www.aaron-powell.com/posts/2011-07-06-geek-origin/</link>
      <pubDate>Wed, 06 Jul 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-07-06-geek-origin/</guid>
      <description>In the spirits of things you never needed to know about me I decided to share my Geek Origin story with the world.
When I was in late primary school (or maybe early high school, I&amp;rsquo;m not really sure, at this old age my mind is starting to go) I asked my parents to enroll me in a holiday program which involved playing with Lego and electronics.
This was back in the mid-90&amp;rsquo;s so having access to a fully decked out Lego kit and PC connector wasn&amp;rsquo;t exactly the norm (wait, am I saying it now is :P) so having the opportunity to spend a whole lot of time just playing with it seemed like the most awesome idea in the world.</description>
    </item>
    
    <item>
      <title>Introducing Postman - A JavaScript Messaging Library</title>
      <link>https://www.aaron-powell.com/posts/2011-07-02-postman/</link>
      <pubDate>Sat, 02 Jul 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-07-02-postman/</guid>
      <description>Prelude Back in May I presented at DDD Melbourne on JavaScript design patterns. One of the patterns that I was talking about was the idea of pub/ sub.
Let me start by saying that this isn&amp;rsquo;t the first time I have blogged about pub/ sub, it&amp;rsquo;s also not the first time I&amp;rsquo;d written one, but essentially I wrote the following code snippet on stage for the audience:
(function() { var cache = {}; function pub(name, args) { if(!</description>
    </item>
    
    <item>
      <title>This post is best viewed in some other browser</title>
      <link>https://www.aaron-powell.com/posts/2011-06-08-best-viewed-in-some-other-browser/</link>
      <pubDate>Wed, 08 Jun 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-06-08-best-viewed-in-some-other-browser/</guid>
      <description>Does everyone remember the good old days of when websites had the introduction
 This website is best viewed in 800x600 and Internet Explorer 5
 No? We&amp;rsquo;ll you missed the &amp;lsquo;good old days&amp;rsquo; of the browser wars which saw the different browser vendors supporting different features which resulted in web developers having to pick and choose what browser(s) their websites would work in.
Fast forward a half dozen years and we end up in 2011 where we see a new browser war going on and this time the focus is on HTML5.</description>
    </item>
    
    <item>
      <title>Adding data attributes to MVC3 forms with HtmlHelpers</title>
      <link>https://www.aaron-powell.com/posts/2011-05-26-data-attribute-mvc3-forms/</link>
      <pubDate>Thu, 26 May 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-05-26-data-attribute-mvc3-forms/</guid>
      <description>In a site I&amp;rsquo;m working on I wanted to add a data attribute, you know, data-*, to a form that was being generated from a controller action in MVC3. So I have the code like this:
@using(Html.BeginFor(&amp;quot;Index&amp;quot;, &amp;quot;Home&amp;quot;, FormMethod.Posts) { &amp;lt;!-- form contents --&amp;gt; }  Now I want the form to be opening in a new window, but I&amp;rsquo;m a good developer and I don&amp;rsquo;t like littering my code with target=&amp;quot;_blank&amp;quot;, instead I have some jQuery that I&amp;rsquo;m using to detect elements that are to go into new windows and adding the attribute programmatically.</description>
    </item>
    
    <item>
      <title>jQuery validation, JavaScript form submitting and another bad idea</title>
      <link>https://www.aaron-powell.com/posts/2011-05-21-jquery-validation-and-javascript-posts/</link>
      <pubDate>Sat, 21 May 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-05-21-jquery-validation-and-javascript-posts/</guid>
      <description>In my last post I looked at how to use jQuery validation in a dynamic form and some problems you can have with handling rule sets.
Something I mentioned in the posts was that I was also submitting the form using JavaScript rather than a form post or anything. This didn&amp;rsquo;t actually make it into the final post and part of the reason was it would have added a heck of a lot more to the overall post, making it a lot longer than I think anyone would want to read.</description>
    </item>
    
    <item>
      <title>jQuery validation, dynamic forms and a really bad idea</title>
      <link>https://www.aaron-powell.com/posts/2011-05-20-jquery-validation-and-dynamic-forms/</link>
      <pubDate>Fri, 20 May 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-05-20-jquery-validation-and-dynamic-forms/</guid>
      <description>Currently at work I&amp;rsquo;m part of a team that&amp;rsquo;s developing a really JavaScript heavy application and in doing so we&amp;rsquo;re finding problems, challenges and solutions. One such that I was working on recently I thought I&amp;rsquo;d share with you as it was a majour source of frustration, but ultimately I succeeded in it and that made it all the worth while!
The section of the application I&amp;rsquo;ve been working on deals with an external data source which manages some systems that the user interacts with.</description>
    </item>
    
    <item>
      <title>REMIX 11</title>
      <link>https://www.aaron-powell.com/posts/2011-04-28-remix11/</link>
      <pubDate>Thu, 28 Apr 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-04-28-remix11/</guid>
      <description>I&amp;rsquo;m going to be speaking at REMIX11 this year, I&amp;rsquo;ll be presenting Chasing the evolving web: things you need to know to be a modern web developer.
So get yourself a ticket and come watch the show, REMIX is 1 - 2 June and you can register here.</description>
    </item>
    
    <item>
      <title>It’s CodeGarden time!</title>
      <link>https://www.aaron-powell.com/posts/2011-04-27-it-s-codegarden-time/</link>
      <pubDate>Wed, 27 Apr 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-04-27-it-s-codegarden-time/</guid>
      <description>Well it’s that time of year again, the time when CodeGarden is coming back!
As is tradition I’ll be in attendance (3rd year running) and representing a new employer (although I’m not sure if that’s such a good tradition to have upheld…).
This year I’ll be doing two sessions, first is on day 2 entitled Collaboration in Umbraco and I’ll be talking about how the move from TFS to Mercurial has helped Umbraco grow as well as some other practices that we employ to keep Umbraco as one of the top open source projects in the ASP.</description>
    </item>
    
    <item>
      <title>Why do you care where your packages are?</title>
      <link>https://www.aaron-powell.com/posts/2011-04-27-why-does-package-location-matter/</link>
      <pubDate>Wed, 27 Apr 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-04-27-why-does-package-location-matter/</guid>
      <description>As a consultant I&amp;rsquo;ve had an opportunity to see the way different project manage their external dependencies, and being an active member of in open source projects has given me a good view on this as well. From all this I&amp;rsquo;ve noticed an interesting trend, there&amp;rsquo;s no agreed standard for where to put external dependencies.
At previous companies I&amp;rsquo;ve worked with structures like a folder above the solution root called lib, a dll folder at the root of the solution or a common folder on the file system which every project gets its assemblies from.</description>
    </item>
    
    <item>
      <title>I can haz MVP</title>
      <link>https://www.aaron-powell.com/posts/2011-04-03-mvp11/</link>
      <pubDate>Sun, 03 Apr 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-04-03-mvp11/</guid>
      <description>Incase you don&amp;rsquo;t follow me on twitter you may have missed the annoncement over the weekend that I&amp;rsquo;ve been awarded my first Microsoft MVP award, for Internet Explorer (Development)!
Stay tuned for all things awesome web :D.</description>
    </item>
    
    <item>
      <title>Fun with Expression Trees and property binding</title>
      <link>https://www.aaron-powell.com/posts/2011-03-30-binding/</link>
      <pubDate>Wed, 30 Mar 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-03-30-binding/</guid>
      <description>The client I&amp;rsquo;m currently working for is using an MVP pattern with WebForms (not WebFormsMVP but an internally developed one) which is using an active view pattern. What this means is that the model contains all the data for both incoming and outgoing requests.
Say a button click happens, the form posts and the model is updated with the data of the input fields, which the presenter then takes over.</description>
    </item>
    
    <item>
      <title>An uninformed overview of NuGet</title>
      <link>https://www.aaron-powell.com/posts/2011-03-28-an-uninformed-overview/</link>
      <pubDate>Mon, 28 Mar 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-03-28-an-uninformed-overview/</guid>
      <description>In case you&amp;rsquo;ve been living under a rock for the last few months you should have heard about NuGet, and if you have been here&amp;rsquo;s the abridged version.
NuGet is a package manager for .NET projects. Basically think Ruby Gems, NPM for Node.js, etc and you&amp;rsquo;ll come up with NuGet for .NET.
NuGet isn&amp;rsquo;t the first attempt at a unified package management system, OpenWrap was here first, but it didn&amp;rsquo;t seem to have the reach that NuGet seems to have (yes this could be because you&amp;rsquo;ve got the official Microsoft stamp of awesome, lots more Microsoft shills blogging about it, etc), but that shouldn&amp;rsquo;t be important, what&amp;rsquo;s more important is there is actually a package management story for .</description>
    </item>
    
    <item>
      <title>Animating with JavaScript</title>
      <link>https://www.aaron-powell.com/posts/2011-03-13-javascript-animation/</link>
      <pubDate>Sun, 13 Mar 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-03-13-javascript-animation/</guid>
      <description>I&amp;rsquo;ve always considered the animation aspect of jQuery to be a bit of black magic (and well I still do :P) but at the same time I want to know how it works.
Recent a client had a need for some really basic animation (changing some elements dimentions) and they aren&amp;rsquo;t using jQuery (and aren&amp;rsquo;t in a position to add it as a dependency) so I needed to work out another solution.</description>
    </item>
    
    <item>
      <title>ServerHere - When you just need a webserver</title>
      <link>https://www.aaron-powell.com/posts/2011-03-08-serverhere/</link>
      <pubDate>Tue, 08 Mar 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-03-08-serverhere/</guid>
      <description>I&amp;rsquo;ve been doing a lot of JavaScript development recently and as cool as jsfiddle there&amp;rsquo;s a few things that really irk me about it (which is a topic for another day) and sometimes you just want to run the file locally to see how it goes.
So you go and create a HTML and JavaScript file on your file system and you open it in your browser and you have that crazy file system path in your address bar.</description>
    </item>
    
    <item>
      <title>Making the Internet Explorer JavaScript tools better</title>
      <link>https://www.aaron-powell.com/posts/2011-03-02-ie9-console-thoughts/</link>
      <pubDate>Wed, 02 Mar 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-03-02-ie9-console-thoughts/</guid>
      <description>Previously I&amp;rsquo;ve blogged about a limitation of console.assert from the IE9 developer tools. Also recently Tatham Oddie blogged some overall thoughts on improving IE9 for developers and I decided to elaborate some thoughts I&amp;rsquo;ve got around the JavaScript developer tools.
JavaScript developer tools are a very important part of my toolbox, I really am quite a JavaScript fan (as you may know if you read my blog), so when I find something that irks me it really irks me.</description>
    </item>
    
    <item>
      <title>How to install a package into all projects of a solution</title>
      <link>https://www.aaron-powell.com/posts/2011-02-26-global-install-package/</link>
      <pubDate>Sat, 26 Feb 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-02-26-global-install-package/</guid>
      <description>This is a script that I&amp;rsquo;ve been keeping in my toolbox since NuGet was first released.
Ever now and then I need to do an install of a package across all projects in a solution. log4net is an example of the kind of thing you&amp;rsquo;d want to globally install, so is Autofac.
Well here&amp;rsquo;s a script to run from the Package Management Console:
Get-Project -All | Install-Package packageName  This is also available as a gist.</description>
    </item>
    
    <item>
      <title>A look at browser storage options</title>
      <link>https://www.aaron-powell.com/posts/2011-02-25-in-browser-storage/</link>
      <pubDate>Fri, 25 Feb 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-02-25-in-browser-storage/</guid>
      <description>Recently I created a little website, Doin&amp;rsquo; Nothin&amp;rsquo; which has a mostly JavaScript application. This is all well and good, means you don&amp;rsquo;t have any worries about submitting server data (unless you are registered and you want to save sessions). But it has a problem, because it&amp;rsquo;s all JavaScript I kept having a problem, I&amp;rsquo;d forget to log in before starting my session, meaning that I couldn&amp;rsquo;t save it as navigating to the login page would mean that my session was lost, since it only lived in the memory of the page.</description>
    </item>
    
    <item>
      <title>Querying NuGet via LINQPad</title>
      <link>https://www.aaron-powell.com/posts/2011-02-24-linqpad/</link>
      <pubDate>Thu, 24 Feb 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-02-24-linqpad/</guid>
      <description>I was reading a blog post by Phil Haack today on How to find out which NuGet packages depend on yours and I decided I wanted to do a bit more digging into what I can find out about a package using NuGet&amp;rsquo;s OData feed.
A cool feature of LINQPad is that it supports OData feeds, so you can add any OData feed and query against it.
Well, NuGet is providing all its data via OData, so can we query it?</description>
    </item>
    
    <item>
      <title>Creating a NuGet-based plugin engine</title>
      <link>https://www.aaron-powell.com/posts/2011-02-20-creating-a-nuget-plugin-engine/</link>
      <pubDate>Sun, 20 Feb 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-02-20-creating-a-nuget-plugin-engine/</guid>
      <description>Two of the main Open Source projects I work on have extensibility aspects to them, Umbraco and FunnelWeb.
We&amp;rsquo;re a bit early in the development cycle for Umbraco 5 to be diving into the packaging, but FunnelWeb is more at a point where we can dive into this. So it got me thinking about how we&amp;rsquo;d go about creating a simple way that developers can share plugins or themes they&amp;rsquo;ve created?</description>
    </item>
    
    <item>
      <title>Are you Doin&#39; Nothin&#39;?</title>
      <link>https://www.aaron-powell.com/posts/2011-02-18-doin-nothin/</link>
      <pubDate>Fri, 18 Feb 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-02-18-doin-nothin/</guid>
      <description>I&amp;rsquo;ve been interested in what the impact low performing computers have on the overall efficiency of my daily output.
To this end I decided to put together a little website which you can monitor this with, and this site is Doin&amp;rsquo; Nothin&amp;rsquo;.
This little site basically runs a JavaScript app on the front end which will then track each time you start and stop the timer.
There is also a sign-up aspect to the site, if you are like me and want to see the long-term impact then you can register and save your sessions, and later review them.</description>
    </item>
    
    <item>
      <title>How does Umbraco look in IE9 RC?</title>
      <link>https://www.aaron-powell.com/posts/2011-02-11-umbraco-ie9rc/</link>
      <pubDate>Fri, 11 Feb 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-02-11-umbraco-ie9rc/</guid>
      <description>Sexy!
Seriously, the IE9 font rendering is just beautiful, best of the current browser set.
Compare that to Chrome, notice the lack of antialiasing on the header text.</description>
    </item>
    
    <item>
      <title>Issue with Geolocation in IE9 RC</title>
      <link>https://www.aaron-powell.com/posts/2011-02-11-ie9-rc-geolocation-issue/</link>
      <pubDate>Fri, 11 Feb 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-02-11-ie9-rc-geolocation-issue/</guid>
      <description>Update Looks like the server-side fix has been implemented and it not works just fine. Feel free to read on if you&amp;rsquo;re interested to know why it didn&amp;rsquo;t work for a period of time.
You&amp;rsquo;ve probably already heard that IE9 RC is available, and one of the features that has been included is the HTML5 Geolocation API.
I decided to add that to a fun little website that Tatham Oddie and I built, isitbeerti.</description>
    </item>
    
    <item>
      <title>Blink and marquee!</title>
      <link>https://www.aaron-powell.com/posts/2011-02-09-blinking-marquee/</link>
      <pubDate>Wed, 09 Feb 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-02-09-blinking-marquee/</guid>
      <description>Recently I&amp;rsquo;ve blogged about creating the a blink tag with jQuery, I&amp;rsquo;ve also blogged about making a marquee tag.
Well can we combine them? Sure we can! But with $.Deferred() there&amp;rsquo;s some more cool things we can do, like this:
$.when($(&#39;h1&#39;).blink({ count: 5 }), $(&#39;h1&#39;).marquee({ count: 1 })) .done(function() { $(&#39;h1&#39;).css(&#39;color&#39;, &#39;#f00&#39;); });  Once both the plugins have completed the text will turn red.
Without wanting to get too deep into how Deferred works (read the doco for that) the high-level view is that when all the methods that are passed into $.</description>
    </item>
    
    <item>
      <title>Implementing the marquee tag using jQuery</title>
      <link>https://www.aaron-powell.com/posts/2011-02-09-marquee/</link>
      <pubDate>Wed, 09 Feb 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-02-09-marquee/</guid>
      <description>It&amp;rsquo;s time for another foray into the good old days of HTML, and we&amp;rsquo;re going to look at how to build the &amp;lt;marquee&amp;gt; tag, which has also gone for quite some time.
Again we&amp;rsquo;re going to use jQuery to help us out, so let&amp;rsquo;s see what we&amp;rsquo;re building:
(function($) { $.fn.textWidth = function(){ var calc = &#39;&amp;lt;span style=&amp;quot;display:none&amp;quot;&amp;gt;&#39; + $(this).text() + &#39;&amp;lt;/span&amp;gt;&#39;; $(&#39;body&#39;).append(calc); var width = $(&#39;body&#39;).find(&#39;span:last&#39;).width(); $(&#39;body&#39;).find(&#39;span:last&#39;).remove(); return width; }; $.</description>
    </item>
    
    <item>
      <title>Implementing the blink tag using jQuery</title>
      <link>https://www.aaron-powell.com/posts/2011-02-08-blink/</link>
      <pubDate>Tue, 08 Feb 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-02-08-blink/</guid>
      <description>Do you miss the good old days of of the web where you had the &amp;lt;blink&amp;gt; tag, oh it was wonderful.
Well today I decided that I wanted to bring it back, damnit I want my text to blink!
Thanks to the wonders of jQuery this is a snap to build, in fact here it is:
(function($) { $.fn.blinky = function() { var that = this; function go() { $(that).</description>
    </item>
    
    <item>
      <title>LINQ in JavaScript, now with more ES5</title>
      <link>https://www.aaron-powell.com/posts/2011-02-06-html5/</link>
      <pubDate>Sun, 06 Feb 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-02-06-html5/</guid>
      <description>When I first wrote LINQ in JavaScript a few years ago it was just a thought experiment.
Since then I&amp;rsquo;ve actually found that I want to use it, quite often in fact, and a lot of the reason I&amp;rsquo;ve been wanting this is because I&amp;rsquo;m lacking the ECMAScript 5 features which LINQ in JavaScript provides.
ECMAScript 5 quick primer A lot of people mistake many of the ECMAScript 5 (ES5) features for being HTML5, but it isn&amp;rsquo;t really, what we&amp;rsquo;re looking at here are the next features of JavaScript, and these are the map/filter methods.</description>
    </item>
    
    <item>
      <title>Tweaking console.assert in IE9</title>
      <link>https://www.aaron-powell.com/posts/2011-01-30-ie-9-console-assert/</link>
      <pubDate>Sun, 30 Jan 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-01-30-ie-9-console-assert/</guid>
      <description>Today while writing some JavaScript I was using the console.assert method to work out the state of things at different points in time.
If you&amp;rsquo;re not familiar with console.assert here&amp;rsquo;s the method signature:
console.assert(expression, message[, object])  What this allows you to do is pass in an expression to be evaluated, a message to display when the expression is false and an optional object to dump.
This is really useful if you&amp;rsquo;re writing large chunks of JavaScript and you can&amp;rsquo;t/ don&amp;rsquo;t want to attach the debugger (common if you&amp;rsquo;re working with timeouts and intervals), you can have the application assertion results to the console to be observed.</description>
    </item>
    
    <item>
      <title>Orchard &amp; Umbraco - Managing Content</title>
      <link>https://www.aaron-powell.com/posts/2011-01-27-managing-content/</link>
      <pubDate>Thu, 27 Jan 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-01-27-managing-content/</guid>
      <description>Overview In this article we&amp;rsquo;re going to continue our series in looking at the differences between Orchard and Umbraco. Today we&amp;rsquo;re going to be looking at managing content.
This is from a series in Orchard and Umbraco, the overview can be found here.
Finding Content in Orchard With Orchard you need use the navigation and go to the Content Items option:
Here you&amp;rsquo;ll be presented with a screen which has all the items which you&amp;rsquo;ve created in your site:</description>
    </item>
    
    <item>
      <title>Creating Controllers-as-plugins using MVC3</title>
      <link>https://www.aaron-powell.com/posts/2011-01-25-controller-plugins-with-mvc3/</link>
      <pubDate>Tue, 25 Jan 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-01-25-controller-plugins-with-mvc3/</guid>
      <description>Overview While working on the plugin engine for FunnelWeb we decided that we wanted to add the ability for people to create their own extnesions which are Controllers and routes. Seems like a pretty simple idea, and it makes it really easy to add external functionality into FunnelWeb at a Controller level without rolling your own instace.
But there&amp;rsquo;s a catch&amp;hellip;
Some background We&amp;rsquo;re using MVC3 for FunnelWeb, and part of MVC3 is this lovely new way to do Dependency Injection, the IDependencyResolver interface.</description>
    </item>
    
    <item>
      <title>Umbraco, Razor and MIX11</title>
      <link>https://www.aaron-powell.com/posts/2011-01-24-mix11/</link>
      <pubDate>Mon, 24 Jan 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-01-24-mix11/</guid>
      <description>Just a quick heads up, today I got word that my session which I submitted to MIX, Razor and Umbraco, has got through to open call!
I&amp;rsquo;ve previously blogged about using Razor with Umbraco, but if you&amp;rsquo;d like to see a more in-depth talk, and also a look at how you can use MVC3 with Umbraco today, be sure to vote.
Regardless of whether I get accepted or not I&amp;rsquo;ll be at MIX11, so if you&amp;rsquo;re also there feel free to find me and say hi :).</description>
    </item>
    
    <item>
      <title>Unit Testing with Umbraco - Video</title>
      <link>https://www.aaron-powell.com/posts/2011-01-20-video/</link>
      <pubDate>Thu, 20 Jan 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-01-20-video/</guid>
      <description>It&amp;rsquo;s possibly old news but I only just found out today, the recording of my Unit Testing with Umbraco session from CodeGarden 10 is available online for viewing.
Apparently the audio isn&amp;rsquo;t great, but I&amp;rsquo;m sure you can get the gist of it ;).
The video is available here, and while you&amp;rsquo;re at it check out the other CodeGarden 10 session videos.</description>
    </item>
    
    <item>
      <title>How to get the field name for a model property</title>
      <link>https://www.aaron-powell.com/posts/2011-01-19-find-name-from-field/</link>
      <pubDate>Wed, 19 Jan 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-01-19-find-name-from-field/</guid>
      <description>I&amp;rsquo;m working on a custom EditorTemplate for a FunnelWeb around the new tagging system that I&amp;rsquo;m working on.
It&amp;rsquo;s quite a complex editor that I&amp;rsquo;m doing, and it&amp;rsquo;s being bound against a collection, an IEnumerable&amp;lt;T&amp;gt; in fact. But I have a problem, I need to be able to find out the Name that would be generated for the model property.
If you do something like:
@Html.EditorFor(x =&amp;gt; x.StringProperty)  You will get an input like this:</description>
    </item>
    
    <item>
      <title>Orchard &amp; Umbraco - Creating Content</title>
      <link>https://www.aaron-powell.com/posts/2011-01-16-creating-content/</link>
      <pubDate>Sun, 16 Jan 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-01-16-creating-content/</guid>
      <description>Overview In this article we&amp;rsquo;re going to continue our series in looking at the differences between Orchard and Umbraco. Today we&amp;rsquo;re going to be looking at creating content.
This is from a series in Orchard and Umbraco, the overview can be found here.
Creating content in Orchard As I mentioned in my last post about admin systema I pointed out that the first most option in the navigation is for creating content, and here we&amp;rsquo;re going to go through the workflow of creating content.</description>
    </item>
    
    <item>
      <title>Orchard &amp; Umbraco - The Admin</title>
      <link>https://www.aaron-powell.com/posts/2011-01-15-admin/</link>
      <pubDate>Sat, 15 Jan 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-01-15-admin/</guid>
      <description>Overview In this article I&amp;rsquo;m going to have a look at the admin systems for the two CMSs. You can consider this a &amp;lsquo;first look&amp;rsquo; although in reality this isn&amp;rsquo;t my first look at either admin systems I&amp;rsquo;ll do my best to pretend ;).
First off let me say that there is a good overview of the Orchard admin on their website, and this post isn&amp;rsquo;t to try and replace it or anything, it&amp;rsquo;s more my opinion of it.</description>
    </item>
    
    <item>
      <title>Orchard &amp; Umbraco - Introduction</title>
      <link>https://www.aaron-powell.com/posts/2011-01-12-orchard-umbraco/</link>
      <pubDate>Wed, 12 Jan 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-01-12-orchard-umbraco/</guid>
      <description>Overview Incase you haven&amp;rsquo;t heard Orchard CMS has hit version 1.0, and at pretty much the same time Umbraco Juno (4.6) also has been released. I think this is a great chance to do a bit of a comparison between the two products and hopefully provide people with some insight into both products.
I&amp;rsquo;m going to only be looking into some very simple aspects of it, doing a 100% feature-by-feature comparison would be really time consuming and probably make for a boring blog post, but never the less, we&amp;rsquo;ll get cracking now.</description>
    </item>
    
    <item>
      <title>Orchard &amp; Umbraco - The install experience</title>
      <link>https://www.aaron-powell.com/posts/2011-01-11-orchard-umbraco-installing/</link>
      <pubDate>Tue, 11 Jan 2011 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2011-01-11-orchard-umbraco-installing/</guid>
      <description>Overview In this article I&amp;rsquo;m going to be looking at the install experience of Orchard and Umbraco and what are the differences between the two.
This is from a series in Orchard and Umbraco, the overview can be found here.
The Install Experience For this article I&amp;rsquo;ve gone out and grabed the Orchard 1.0 release and Umbraco 4.6.1 release (Web Deploy version), and the first thing I noticed is that they are basically the same in terms of download size, with Orchard being slightly smaller, it&amp;rsquo;s 7.</description>
    </item>
    
    <item>
      <title>NHaml Umbraco MacroEngine</title>
      <link>https://www.aaron-powell.com/posts/2010-12-28-nhaml-umbraco-macroengine/</link>
      <pubDate>Tue, 28 Dec 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-12-28-nhaml-umbraco-macroengine/</guid>
      <description>In a previous post I introduced the new IMacroEngine interface coming as part of Umbraco Juno (4.6) which will make it possible to create your own Macro Engines. In this article I&amp;rsquo;ll look at what is required to create a custom Macro Engine which is actually useful.
Implementing a Haml-based macro engine I&amp;rsquo;m quite a fan of Haml, it&amp;rsquo;s a good abstraction on top of HTML (well, XML really) and it&amp;rsquo;s quite popular if you&amp;rsquo;re doing Ruby work (it&amp;rsquo;s really popular in the Ruby community).</description>
    </item>
    
    <item>
      <title>Custom Umbraco Macro Engines</title>
      <link>https://www.aaron-powell.com/posts/2010-12-27-custom-umbraco-macro-engines/</link>
      <pubDate>Mon, 27 Dec 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-12-27-custom-umbraco-macro-engines/</guid>
      <description>A new feature coming in Umbraco Juno (4.6) is something that is probably a bit surprising for most people that it has come in after so long, an abstracted macro engine.
What this means is that no longer is there just XSLT, .NET controls, IronRuby, IronPython and Razor, but you&amp;rsquo;ll be able to write your own macro engine if you want.
In this article we&amp;rsquo;ll look at how to create a new macro engine.</description>
    </item>
    
    <item>
      <title>2010, a year in review</title>
      <link>https://www.aaron-powell.com/posts/2010-12-24-2010-a-year-in-review/</link>
      <pubDate>Fri, 24 Dec 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-12-24-2010-a-year-in-review/</guid>
      <description>Well it&amp;rsquo;s about that time of the year, the time when you look back at the year that was&amp;hellip; and what a year 2010 has been.
Last year I said that 2009 was my biggest year professionally, but in reality 2010 trumped it well and truly.
2010, the year of the conference In 2010 I set a new goal for myself and that was to become more of a figure in the Australian development community, and I started this off with a dive into the conference circuit.</description>
    </item>
    
    <item>
      <title>Using Razor in Umbraco 4</title>
      <link>https://www.aaron-powell.com/posts/2010-12-24-umbraco-4-and-razor/</link>
      <pubDate>Fri, 24 Dec 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-12-24-umbraco-4-and-razor/</guid>
      <description>If you&amp;rsquo;ve been following the development of Umbraco Juno (4.6) you&amp;rsquo;ll have seen that Niels released an add-in for early Juno builds to which was for working with Razor, the new syntax for ASP.Net development.
Well here&amp;rsquo;s something even more exciting, Umbraco Juno no longer requires an add-in, instead it has a out-of-the-box support for working with Razor!
AWESOME!
Umbraco &amp;lt;3 Razor So what does the Razor support for Umbraco include?</description>
    </item>
    
    <item>
      <title>How I develop Umbraco</title>
      <link>https://www.aaron-powell.com/posts/2010-12-22-how-i-developer-umbraco/</link>
      <pubDate>Wed, 22 Dec 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-12-22-how-i-developer-umbraco/</guid>
      <description>Overview In this article I&amp;rsquo;m going to cover the way that I setup my system for developing against Umbraco. I&amp;rsquo;m putting this together as everyone seems to have their own flavor to doing development so I thought I&amp;rsquo;d throw my hat into the arena with yet another setup to give new (and experienced) developers another way to go about it.
And hey, this has worked quite well for me for a while, maybe other can benefit from it ;).</description>
    </item>
    
    <item>
      <title>SydJs talk about JavaScript Frameworks</title>
      <link>https://www.aaron-powell.com/posts/2010-12-20-sydjs-javascript-frameworks/</link>
      <pubDate>Mon, 20 Dec 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-12-20-sydjs-javascript-frameworks/</guid>
      <description>Recently I was invited by the lovely (? :P) people of SydJs to come down as participate in their lightning talks night. I presented on the topic of JavaScript frameworks (although to this day I&amp;rsquo;m not really sure what my session title was as Craig Sharkie introduced it as something rather random).
The basic point of my talk was just to give some pointers to people who are looking to create reusable JavaScript components, resulting in me converting some JavaScript which what running my slides into a small library which anyone can use (links below).</description>
    </item>
    
    <item>
      <title>Umbraco &amp; Mercurial - How to contribute</title>
      <link>https://www.aaron-powell.com/posts/2010-12-13-umbraco-and-mercurial-how-to-contribute/</link>
      <pubDate>Mon, 13 Dec 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-12-13-umbraco-and-mercurial-how-to-contribute/</guid>
      <description>Umbraco &amp;amp; Mercurial - How to contribute Now that Umbraco&amp;rsquo;s source code is being moved away from TFS and into Mercurial (and you&amp;rsquo;ve read the primer) it will be easier than ever for anyone to provide patches, bug fixes or even potential new features back to the Umbraco core team for review. Although you haven&amp;rsquo;t had to have TFS access in the past to get the code out and work with it the SVN bridge wasn&amp;rsquo;t a great way in which you could send patches back to the Umbraco core team, but with Mercurial we hope this will be even easier.</description>
    </item>
    
    <item>
      <title>Mercurial 101 as an Umbraco developer</title>
      <link>https://www.aaron-powell.com/posts/2010-12-11-mercurial-101-for-umbraco-developers/</link>
      <pubDate>Sat, 11 Dec 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-12-11-mercurial-101-for-umbraco-developers/</guid>
      <description>Mercurial 101 as an Umbraco developer You may have read the post that the Umbraco codebase is being moved from a CodePlex TFS server to CodePlex Mercurial (link) but what does that mean as an Umbraco community member?
First up, a Mercurial primer While there are fancy GUI tools for working with Mercurial (such as TortoiseHg) I&amp;rsquo;m going to do a quick run down on what you need to be able to use from the command line to work with Mercurial.</description>
    </item>
    
    <item>
      <title>WhatKey.net, a simple way to find JavaScript keycodes</title>
      <link>https://www.aaron-powell.com/posts/2010-12-07-whatkey-net-for-your-javascript-keycode-glory/</link>
      <pubDate>Tue, 07 Dec 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-12-07-whatkey-net-for-your-javascript-keycode-glory/</guid>
      <description>Today while preparing a set of slides for an upcoming talk I decided that I wanted to do the slides as a series of web pages, the problem is that I still wanted to be able to use my Logitech clicker. Since it &amp;lsquo;just works&amp;rsquo; when I plug it in I figured it was firing some simple keyboard events, but the question is, what keyboard events is it firing?
I fired up Chrome, opened the JavaScript console and added a body keypress event to capture the keycode.</description>
    </item>
    
    <item>
      <title>Ole Erling appears in NodeJS</title>
      <link>https://www.aaron-powell.com/posts/2010-12-04-ole/</link>
      <pubDate>Sat, 04 Dec 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-12-04-ole/</guid>
      <description>People would probably agree that I&amp;rsquo;m not the most normal of people when it comes to developing software. Quite often something takes my fancy, and I have a crack at building with it, whether it is a good idea or not.
Recently there&amp;rsquo;s been a lot of fuss on Twitter about a Ruby project which has recently gone into v1.0 called Sinatra. It&amp;rsquo;s got a rather nice syntax if you&amp;rsquo;re trying to build a quick-fire application, here&amp;rsquo;s the Hello World example from the site:</description>
    </item>
    
    <item>
      <title>Creating a menu in Umbraco with IronRuby</title>
      <link>https://www.aaron-powell.com/posts/2010-11-27-umbraco-menu-with-ironruby/</link>
      <pubDate>Sat, 27 Nov 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-11-27-umbraco-menu-with-ironruby/</guid>
      <description>Recently I&amp;rsquo;ve been help a client migrate a number of unmanaged microsites into an Umbraco instance, and since it&amp;rsquo;s well known that I&amp;rsquo;m not a fan of XSLT an alternative is in order. While working at TheFarm I wrote a blog about the different macro options and what we were doing back then. Since moving on I&amp;rsquo;ve been wanting to avoid using XSLT at all.
Umbraco has supported DLR languages like IronPython and IronRuby for quite some time, so I decided to look into it for this new project.</description>
    </item>
    
    <item>
      <title>Some tips and tricks for working with IronRuby and Umbraco</title>
      <link>https://www.aaron-powell.com/posts/2010-11-27-umbraco-ironruby-tips-and-tricks/</link>
      <pubDate>Sat, 27 Nov 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-11-27-umbraco-ironruby-tips-and-tricks/</guid>
      <description>*Note: The following has been tested in Umbraco 4.5.2 on .NET 3.5, and it works on my machine*
Modularizing your IronRuby files Having the ability to break a large file into a set of smaller files is quite an important aspect of any kind of programming, and it&amp;rsquo;s a concept that is in all the languages that Umbraco supports. XSTL has &amp;lt;xsl:include, .NET has types, but what about DLR scripts?</description>
    </item>
    
    <item>
      <title>Internet Explorer bug with assigning CSS classes</title>
      <link>https://www.aaron-powell.com/posts/2010-11-10-ie-bug-with-assigning-css-classes/</link>
      <pubDate>Wed, 10 Nov 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-11-10-ie-bug-with-assigning-css-classes/</guid>
      <description>Today I was fixing a problem on a site in which some background images weren&amp;rsquo;t showing up on certain elements in Internet Explorer but they were showing up under Firefox and Chrome.
The page is quite a complex one which does a lot of client-side building of DOM elements so I started digging around in there, finding the section which was creating the element.
The code was very simple, all it did was create a &amp;lt;span /&amp;gt; tag, assign some CSS classes to it and eventually add it to the DOM.</description>
    </item>
    
    <item>
      <title>Base64 Encoding of Images via Powershell</title>
      <link>https://www.aaron-powell.com/posts/2010-11-07-base64-encoding-images-with-powershell/</link>
      <pubDate>Sun, 07 Nov 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-11-07-base64-encoding-images-with-powershell/</guid>
      <description>Recently I was doing some CSS for a client but there was a bit of a problem with putting stuff into source control, basically there was a release coming up from one section of the source tree that I needed to put some images into for the CSS, but because they weren&amp;rsquo;t approved for this release I couldn&amp;rsquo;t commit them.
The new CSS wasn&amp;rsquo;t going to be included in this release either, but I wanted to get at least some stuff source controlled (it&amp;rsquo;s in a different part of the tree so I could commit it) and to achieve this with the images I decided to use base64 encoding.</description>
    </item>
    
    <item>
      <title>JavaScript functions are objects</title>
      <link>https://www.aaron-powell.com/posts/2010-10-23-javascript-functions-are-objects/</link>
      <pubDate>Sat, 23 Oct 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-10-23-javascript-functions-are-objects/</guid>
      <description>I think it&amp;rsquo;s well known just how much I enjoy JavaScript, especially since there&amp;rsquo;s a few really funky things I&amp;rsquo;ve written about in the past.
But in this article I&amp;rsquo;m going to look at something else that&amp;rsquo;s not commonly realised about JavaScript, that a function is actually just an object.
Functions 101 There&amp;rsquo;s a couple of ways which you can write a function in JavaScript, you can write them anonymously:</description>
    </item>
    
    <item>
      <title>DocumentDataProvider - Creating a custom LINQ to Umbraco Tree</title>
      <link>https://www.aaron-powell.com/posts/2010-10-01-documentdataprovider-tree/</link>
      <pubDate>Fri, 01 Oct 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-10-01-documentdataprovider-tree/</guid>
      <description>This article covers part of the DocumentDataProvider from the LINQ to Umbraco Extensions project.
Overview When you create a custom LINQ to Umbraco data provider there are a number of classes which you need to implement, this article will look at how to implement the Tree&amp;lt;T&amp;gt; class.
But what is the point of the Tree&amp;lt;T&amp;gt; class for? The class is responsible for most of the heavy lifting for a particular type.</description>
    </item>
    
    <item>
      <title>A set of extensions for LINQ to Umbraco</title>
      <link>https://www.aaron-powell.com/posts/2010-09-30-linq-to-umbraco-extensions/</link>
      <pubDate>Thu, 30 Sep 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-09-30-linq-to-umbraco-extensions/</guid>
      <description>LINQ to Umbraco is awesome, let&amp;rsquo;s not deny it, but I had a thought of how could I make it even more awesome&amp;hellip;
There was a lot of things that I wanted to achieve with LINQ to Umbraco that couldn&amp;rsquo;t be done in the time frame of the Umbraco 4.5 release, and some things which aren&amp;rsquo;t really applicable in the context of the Umbraco core.
So this project will aim to fill in the gaps that LINQ to Umbraco leaves out of the core of Umbraco.</description>
    </item>
    
    <item>
      <title>JavaScript functions that rewrite themselves for a Singleton pattern</title>
      <link>https://www.aaron-powell.com/posts/2010-09-30-javascript-singleton/</link>
      <pubDate>Thu, 30 Sep 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-09-30-javascript-singleton/</guid>
      <description>Recently I was building a JavaScript application which was quite complex and involved a bit of server interaction with some AJAX requests. The AJAX was just doing some one-time data loading, and the reason I was using AJAX was to lazy-load some of the information on the page.
Since the methods going back to the server were to be called multiple times and I wanted caching of the server response I needed to have the method a bit aware that the server call had responded and not to do it again.</description>
    </item>
    
    <item>
      <title>Overview of the DocumentDataProvider</title>
      <link>https://www.aaron-powell.com/posts/2010-09-30-documentdataprovider-overview/</link>
      <pubDate>Thu, 30 Sep 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-09-30-documentdataprovider-overview/</guid>
      <description>##Overview
If you&amp;rsquo;ve read my article on Understanding LINQ to Umbraco (and if you haven&amp;rsquo;t you really should go do that) you&amp;rsquo;ll know that LINQ to Umbraco does have the scaffolding for doing full CRUD operations. But with CRUD it is up to the underlying UmbracoDataProvider implementation to support.
Because the OOTB UmbracoDataProvider instance, the NodeDataProvider is only concerned with how to access the in-memory cache so having full CRUD doesn&amp;rsquo;t make sense.</description>
    </item>
    
    <item>
      <title>Using Lazy&lt;T&gt; with KeyedCollection</title>
      <link>https://www.aaron-powell.com/posts/2010-09-22-lazy-keyedcollections/</link>
      <pubDate>Wed, 22 Sep 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-09-22-lazy-keyedcollections/</guid>
      <description>For a project which I&amp;rsquo;m currently working on I&amp;rsquo;ve got a few custom collections which I need to return from various methods on a data repository. There&amp;rsquo;s a bit of heavy lifting that is done in each of the repository methods so I wanted to have a way which each of them could be lazy loading the items into the collection. This would also mean that if you&amp;rsquo;re only wanting a subset of the collection you don&amp;rsquo;t create all the objects.</description>
    </item>
    
    <item>
      <title>An EventManager in JavaScript</title>
      <link>https://www.aaron-powell.com/posts/2010-09-12-javascript-eventmanager/</link>
      <pubDate>Sun, 12 Sep 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-09-12-javascript-eventmanager/</guid>
      <description>Overview Previously I&amp;rsquo;ve blogged about Client Event Pool&amp;rsquo;s (yes I know the images are broken), but that example was intrinsically tied to Microsoft AJAX and I wanted to have one which was separate from it.
So I decided to create an object that resides at slace.core.eventManager which will achieve this.
Note: This library has a dependency on the slace.core library.
This API allows you to bind events, trigger events, unbind events (and event handlers) and event check if an event handler is registered.</description>
    </item>
    
    <item>
      <title>Core JavaScript library</title>
      <link>https://www.aaron-powell.com/posts/2010-09-12-slace-core-javascript-library/</link>
      <pubDate>Sun, 12 Sep 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-09-12-slace-core-javascript-library/</guid>
      <description>Overview This library is really just a core set of features which don&amp;rsquo;t really belong to any particularly category, and I find a handy for common use in all JavaScript I write.
Registering Namespaces Something that I do a lot of in JavaScript is create namespaces. I always like to keep all code in a single namespace in the same manner which I would do with .NET. But there is a problem, JavaScript doesn&amp;rsquo;t have namespaces!</description>
    </item>
    
    <item>
      <title>JavaScript Tools</title>
      <link>https://www.aaron-powell.com/posts/2010-09-12-javascript-tools/</link>
      <pubDate>Sun, 12 Sep 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-09-12-javascript-tools/</guid>
      <description>Overview I&amp;rsquo;ve been doing a lot of JavaScript development of recent, and I&amp;rsquo;ve always had a soft spot of JavaScript so it was only natural that I keep doing the same things over and over again. As I found that I was doing similar tasks continuously I decided to start working on my own little JavaScript toolbox.
And since I&amp;rsquo;m doing these things again and again I thought it would be likely that there is one person out there who is doing it as well so I decided that I would release the toolkit I&amp;rsquo;ve been building for free.</description>
    </item>
    
    <item>
      <title>Why no IQueryable in LINQ to Umbraco?</title>
      <link>https://www.aaron-powell.com/posts/2010-09-06-iqueryable-linq-to-umbraco/</link>
      <pubDate>Mon, 06 Sep 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-09-06-iqueryable-linq-to-umbraco/</guid>
      <description>In the theme of blogs answering questions which aren&amp;rsquo;t being asked I though I would have a bit of a look at why LINQ to Umbraco isn&amp;rsquo;t an IQueryable-based LINQ implementation.
With a previous article I covered Understanding LINQ to Umbraco, but the topic of IQueryable wasn&amp;rsquo;t in it, partially because it&amp;rsquo;s an involved topic.
So let&amp;rsquo;s have a look at why LINQ to Umbraco isn&amp;rsquo;t using IQueryable.
##Understanding IQueryable</description>
    </item>
    
    <item>
      <title>Using HttpCompression libraries and ASP.NET MVC FileResult</title>
      <link>https://www.aaron-powell.com/posts/2010-08-30-http-compression-mvc-fileresult/</link>
      <pubDate>Mon, 30 Aug 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-08-30-http-compression-mvc-fileresult/</guid>
      <description>While working on some improvements around the way the styles are handled on my blog (and so they don&amp;rsquo;t get trashed whenever I update the code with that of the main repository) I decided that I would use ClientDependency to handle this.
It was quite easy, I added ClientDependency in, re-configured the Views to use it and refactored the CSS so that it was possible to have my CSS along side the other CSS.</description>
    </item>
    
    <item>
      <title>A LINQ observation</title>
      <link>https://www.aaron-powell.com/posts/2010-08-28-a-linq-observation/</link>
      <pubDate>Sat, 28 Aug 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-08-28-a-linq-observation/</guid>
      <description>Well I&amp;rsquo;m making good headway with LINQ to Umbraco, in the next few days I&amp;rsquo;ll be doing a very interesting check in (which I&amp;rsquo;ll also blog here about). My tweet-peeps already have an idea of what it entails, but there&amp;rsquo;s a bit of a problem with it still which I want to address before the commit.
And that problem has lead to an observation I made about LINQ, well, about Expression-based LINQ (ie - something implementing IQueryable, so LINQ to SQL, or LINQ to Umbraco, etc).</description>
    </item>
    
    <item>
      <title>Not getting DropDownList value when setting it via JavaScript</title>
      <link>https://www.aaron-powell.com/posts/2010-08-28-no-value-when-settings-dropdown-with-javascript/</link>
      <pubDate>Sat, 28 Aug 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-08-28-no-value-when-settings-dropdown-with-javascript/</guid>
      <description>So today I had a problem which was doing my head in. I had a form which has a bunch of DropDownLists on it, some of which are disabled (depending on the radio button selection). Regardless of whether the DropDownList was available I needed to read the value (which was often set via JavaScript) back on the server.
But I noticed that the value I was setting via JavaScript wasn&amp;rsquo;t making it way back to the server if I read the dropDownList.</description>
    </item>
    
    <item>
      <title>SharePoint feature corrupts page layout</title>
      <link>https://www.aaron-powell.com/posts/2010-08-28-sharepoint-feature-corrupts-page-layout/</link>
      <pubDate>Sat, 28 Aug 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-08-28-sharepoint-feature-corrupts-page-layout/</guid>
      <description>Something that I&amp;rsquo;ve come across a few times when working on SharePoint/ MOSS 2007 features. When importing a Page Layout the ASPX some times becomes corrupt. You end up with additional HTML inserts once it&amp;rsquo;s been imported into SharePoint.
The corruption is in the form of HTML tags, outside the last &amp;lt;/asp:Content&amp;gt; tag.
Well it turns out that the problem is caused when you import an ASPX that has a &amp;lt;/asp:content&amp;gt; tag it&amp;rsquo;ll happen.</description>
    </item>
    
    <item>
      <title>Testable email sending</title>
      <link>https://www.aaron-powell.com/posts/2010-08-28-testable-email-sending/</link>
      <pubDate>Sat, 28 Aug 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-08-28-testable-email-sending/</guid>
      <description>Yesterday Shannon finally got with the times and learnt about the System.Net and how it can be used to dump emails to your file system.
Something I then mentioned to him on Twitter was that you can also use this method to test the email that was sent.
First off lets write ourselves a very basic email sending test:
[TestMethod] public void EmailSender() { var mail = new MailMessage(); mail.To.Add(&amp;quot;example@somewhere.com&amp;quot;); mail.</description>
    </item>
    
    <item>
      <title>Creating a RssDataProvider for LINQ to Umbraco</title>
      <link>https://www.aaron-powell.com/posts/2010-08-27-rssdataprovider-for-linq-to-umbraco/</link>
      <pubDate>Fri, 27 Aug 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-08-27-rssdataprovider-for-linq-to-umbraco/</guid>
      <description>Sorry to all the people who were kind enough to come to my LINQ to Umbraco session at CodeGarden 09, I said I would do this post soon after the session. Sadly I started enjoying Copenhagen too much without the need to be sitting at my laptop and now it&amp;rsquo;s a week later, I&amp;rsquo;m home and it&amp;rsquo;s time I come good on my promise.
##The LINQ to Umbraco DataProvider model</description>
    </item>
    
    <item>
      <title>Creating custom DataProviders for LINQ to Umbraco</title>
      <link>https://www.aaron-powell.com/posts/2010-08-27-creating-custom-dataprovider-for-linq-to-umbraco/</link>
      <pubDate>Fri, 27 Aug 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-08-27-creating-custom-dataprovider-for-linq-to-umbraco/</guid>
      <description>Sorry to all the people who were kind enough to come to my LINQ to Umbraco session at CodeGarden 09, I said I would do this post soon after the session. Sadly I started enjoying Copenhagen too much without the need to be sitting at my laptop and now it&amp;rsquo;s a week later, I&amp;rsquo;m home and it&amp;rsquo;s time I come good on my promise.
##The LINQ to Umbraco DataProvider model</description>
    </item>
    
    <item>
      <title>Understanding LINQ to Umbraco</title>
      <link>https://www.aaron-powell.com/posts/2010-08-27-understanding-linq-to-umbraco/</link>
      <pubDate>Fri, 27 Aug 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-08-27-understanding-linq-to-umbraco/</guid>
      <description>When LINQ to Umbraco dropped with Umbraco 4.5.0 there was a lot of excitement around it and everyone started using it. Personally I was thrilled about this, LINQ to Umbraco was the culmination of 6 months of really solid development effort and I was glad to see that it was paying off.
But like all new technologies there can be miss-conceptions about what it is and what it isn&amp;rsquo;t and hopefully I&amp;rsquo;ll shed a bit of light on what the goal of LINQ to Umbraco is, what it is and what it isn&amp;rsquo;t.</description>
    </item>
    
    <item>
      <title>All good things come to an end</title>
      <link>https://www.aaron-powell.com/posts/2010-08-08-all-good-things-come-to-an-end/</link>
      <pubDate>Sun, 08 Aug 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-08-08-all-good-things-come-to-an-end/</guid>
      <description>As you have probably seen we at TheFarm require a senior .NET developer, and there is a some-what sad reason for this&amp;hellip; I&amp;rsquo;ve decided to move on from TheFarm.
I&amp;rsquo;ve taken a job with one of Australia&amp;rsquo;s top .NET consulting agencies, Readify. I&amp;rsquo;m really excited about having the opportunity to work with some of Australia&amp;rsquo;s best .NET developers, and I&amp;rsquo;m really quite excited about this chance.
I do feel sad about leaving TheFarm though, I&amp;rsquo;ve had an awesome 12 months working with Shannon, I&amp;rsquo;ve learnt a shit load and made a great set of friends.</description>
    </item>
    
    <item>
      <title>Yes, I LIKE WebForms!</title>
      <link>https://www.aaron-powell.com/posts/2010-08-07-yes-i-like-webforms/</link>
      <pubDate>Sat, 07 Aug 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-08-07-yes-i-like-webforms/</guid>
      <description>At some of my speaking engagements recently I&amp;rsquo;ve made the astonishing claim that I quite like ASP.Net WebForms. Why do I say this is an astonishing claim? Quite often when I&amp;rsquo;m talking to other ASP.Net developers and we end up on the topic of WebForms you can see a look of distaste in their eyes, or there&amp;rsquo;ll be a statement like &amp;ldquo;I&amp;rsquo;m stuck working with WebForms&amp;rdquo;.
But when you ask someone why they don&amp;rsquo;t like WebForms they generally don&amp;rsquo;t have a really good reason, they come up with a few points like:</description>
    </item>
    
    <item>
      <title>Building an application with Lucene.Net</title>
      <link>https://www.aaron-powell.com/posts/2010-07-10-building-an-application-with-lucene-net/</link>
      <pubDate>Sat, 10 Jul 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-07-10-building-an-application-with-lucene-net/</guid>
      <description>For this article we&amp;rsquo;re going to go through building a small application with uses Lucene.Net as a storage model. I read a lot of blogs so I&amp;rsquo;m often find that when I&amp;rsquo;m working I want to refer back to a blog that I read in the past. The problem is that finding that particular blog can be tricky, navigating through a few thousand posts can be fairly tedious. So let&amp;rsquo;s build an application which we can quickly search and find the posts that I&amp;rsquo;m interested in.</description>
    </item>
    
    <item>
      <title>Dynamics Library</title>
      <link>https://www.aaron-powell.com/posts/2010-07-05-dynamics-library/</link>
      <pubDate>Mon, 05 Jul 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-07-05-dynamics-library/</guid>
      <description>When playing with the dynamic keyword and the DLR at CodeGarden 10 I realised that I wanted to do more with it so I started to dig deeper into it. This is where I came up with the idea which I covered in Dynamic Dictionaries with C# 4.0.
As some people I&amp;rsquo;ve talked to since then pointed out what I did was lacking a few things. I told them to be quiet as the blog was only meant to be a quick introduction into the DynamicObject and some of the power which it brings to the table.</description>
    </item>
    
    <item>
      <title>Documents in Lucene.Net</title>
      <link>https://www.aaron-powell.com/posts/2010-07-03-documents-in-lucene-net/</link>
      <pubDate>Sat, 03 Jul 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-07-03-documents-in-lucene-net/</guid>
      <description>As you&amp;rsquo;re most likely already aware Lucene.Net is a Document Database, which means that it&amp;rsquo;s essentially a key/ value store, with the crux of the interaction through Documents
##But what is a Document?
What needs to be understood about the Document concept in Lucene.Net is that is doesn&amp;rsquo;t have anything to do with a file, it&amp;rsquo;s not a PDF, a DOCX, or a XLSX. It&amp;rsquo;s just a key/ value store. As I pointed out in my overview of Lucene.</description>
    </item>
    
    <item>
      <title>Unit Testing with Umbraco</title>
      <link>https://www.aaron-powell.com/posts/2010-06-29-unit-testing-with-umbraco/</link>
      <pubDate>Tue, 29 Jun 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-06-29-unit-testing-with-umbraco/</guid>
      <description>At CodeGarden 10 I did a presentation on Unit Testing with Umbraco which was primarily looking at doing Unit Testing with ASP.NET and then have you can take those principles into doing development with Umbraco.
Unfortunately the session ran way over time, but we have a good open space the following morning to look deeper into the stuff I didn&amp;rsquo;t have a chance to cover.
The crux of my session was around using ASP.</description>
    </item>
    
    <item>
      <title>Dynamic Dictionaries with C# 4.0</title>
      <link>https://www.aaron-powell.com/posts/2010-06-28-dynamic-dictionaries-with-csharp-4/</link>
      <pubDate>Mon, 28 Jun 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-06-28-dynamic-dictionaries-with-csharp-4/</guid>
      <description>Have you ever been working with the Dictionary&amp;lt;TKey, TValue&amp;gt; object in .NET and just wanted to find some way in which you can do this:
var dictionary = new Dictionary&amp;lt;string, string&amp;gt; { { &amp;quot;hello&amp;quot;, &amp;quot;world!&amp;quot; } }; ... var something = dictionary.hello;  It&amp;rsquo;d be sweet, but it&amp;rsquo;s not possible. The dictionary is just a bucket and there isn&amp;rsquo;t a way it can know at compile type about the objects which are within it.</description>
    </item>
    
    <item>
      <title>CodeGarden 10</title>
      <link>https://www.aaron-powell.com/posts/2010-06-27-codegarden-10/</link>
      <pubDate>Sun, 27 Jun 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-06-27-codegarden-10/</guid>
      <description>Well CodeGarden, the yearly Umbraco festival, has come and gone for another year and it&amp;rsquo;s getting bigger and better each year.
This was the first time there&amp;rsquo;s been a three-day event which was CodeGarden, with the first day being an ASP.NET MVC bootcamp day which had Simone Chiaretta, Jon Galloway and Steven Sanderson ran two tracks, one for the beginners of MVC and one for the advanced MVC users. I must admit I missed a fair bit as I was frantically going over my code for the keynote, unit testing talk, linq vs xslt battle and Umbraco v5.</description>
    </item>
    
    <item>
      <title>ASP.NET MVC XML Action Result</title>
      <link>https://www.aaron-powell.com/posts/2010-06-16-aspnet-mvc-xml-action-result/</link>
      <pubDate>Wed, 16 Jun 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-06-16-aspnet-mvc-xml-action-result/</guid>
      <description>For my Location Service in F# I needed a way to be able to return XML from MVC (which powers my site), but I couldn&amp;rsquo;t find a way to do this out of the box with XML.
Luckily creating your very own ActionResult is really quite easy in MVC.
First you need to implement the ActionResult class:
public class XmlActionResult : ActionResult { public override void ExecuteResult(ControllerContext context) { } }  I&amp;rsquo;m going to add a couple of public properties:</description>
    </item>
    
    <item>
      <title>Creating a location service with F# and Twitter</title>
      <link>https://www.aaron-powell.com/posts/2010-06-16-location-service-with-fsharp-and-twitter/</link>
      <pubDate>Wed, 16 Jun 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-06-16-location-service-with-fsharp-and-twitter/</guid>
      <description>A while ago Tatham Oddie sent me a small app he&amp;rsquo;d built which allowed you to find recent locations which he had been at, data which is scraped via twitter (you can see it here). It&amp;rsquo;s rather a nifty little thing and it&amp;rsquo;s done with approximately 50 lines of ruby (although I must point out that he is using some external libraries which do mean that he&amp;rsquo;s got a lot more code, just not all his :P).</description>
    </item>
    
    <item>
      <title>ASP.NET MVC Model binding with implicit operators</title>
      <link>https://www.aaron-powell.com/posts/2010-06-14-aspnet-mvc-model-binding-with-implicit-operators/</link>
      <pubDate>Mon, 14 Jun 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-06-14-aspnet-mvc-model-binding-with-implicit-operators/</guid>
      <description>In the past I&amp;rsquo;ve had a bit of a play around with operators, I looked at explicit and implicit operators and it&amp;rsquo;s really quite powerful.
When I upgraded my website to be powered by PaulPad, and upgraded PaulPad to ASP.NET MVC2 I ran into a problem, Paul uses implicit model binding to handle the URLs. The problem was that the ModelBindingContext changed between MVC1 and MVC2, resulting in the implicit operator binding implementation failing to compile!</description>
    </item>
    
    <item>
      <title>Supporting ValueTypes in Autofac</title>
      <link>https://www.aaron-powell.com/posts/2010-06-09-supporting-valuetypes-in-autofac/</link>
      <pubDate>Wed, 09 Jun 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-06-09-supporting-valuetypes-in-autofac/</guid>
      <description>Today I had an interesting problem with Autofac in which I was registering an Enum that I wanted to inject into my different objects. Some of the injection was being done on the properties, as this is an ASP.NET project and I wanted to inject into are UserControls.
But when ever I was doing it, I wasn&amp;rsquo;t getting the registered value. My component registry was working file, if I manually tried to get it out it worked fine, but the property was not set!</description>
    </item>
    
    <item>
      <title>Writing Presenters with F#</title>
      <link>https://www.aaron-powell.com/posts/2010-05-30-writing-presenters-with-fsharp/</link>
      <pubDate>Sun, 30 May 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-05-30-writing-presenters-with-fsharp/</guid>
      <description>Disclaimer: I&amp;rsquo;m not an F# developer, I&amp;rsquo;m really only just learning and having a bit of a play around.
#What
After a few beers the other day I had a great idea, why not write a demo of using WebForms MVP and F#. Sure, seems fun, seems crazy, seems like a silly idea! :P
But there was method in my (alcohol induced) madness, looking in F# as an option for development isn&amp;rsquo;t a bad idea.</description>
    </item>
    
    <item>
      <title>Analyzers in Lucene.Net</title>
      <link>https://www.aaron-powell.com/posts/2010-05-27-lucene-analyzer/</link>
      <pubDate>Thu, 27 May 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-05-27-lucene-analyzer/</guid>
      <description>What is an Analyzer? When you want to insert data into a Lucene index, or when you want to get the data back out of the index you will need to use an Analyzer to do this.
Lucene ships with many different Analyzers and picking the right one really comes down to the needs of your implementation. There are ones for working with different languages, ones which determine how words are treated (and which words to be ignored) or how whitespace is handled.</description>
    </item>
    
    <item>
      <title>Client Event Pool</title>
      <link>https://www.aaron-powell.com/posts/2010-05-23-client-event-pool/</link>
      <pubDate>Sun, 23 May 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-05-23-client-event-pool/</guid>
      <description>I read an article last year about implementing a Client Event Pool and I really liked the concept. Joel shows a very good way to use it but I&amp;rsquo;ve been doing my best to find a logical use for it myself.
Anyone not familiar with the concept of a Client Event Pool it&amp;rsquo;s covered in Joel&amp;rsquo;s post, but the short version is that a Client Event Pool is a browser-level event handler which is designed to allow events to be easily passed between unlinked components.</description>
    </item>
    
    <item>
      <title>ASP.NET WebForms Model-Video-Presenter</title>
      <link>https://www.aaron-powell.com/posts/2010-05-18-webforms-mvp/</link>
      <pubDate>Tue, 18 May 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-05-18-webforms-mvp/</guid>
      <description>ASP.NET WebForms MVP is a really handy project which aims to bring testability to WebForms development.
##WebForms MVP Contrib
 A look at the ASP.NET WebForms MVP Contrib project  ##Useful Hits
 Testing messaging within a presenter Unit Testing with Umbraco  ##Fun Stuff
 Writing Presenters with F#  </description>
    </item>
    
    <item>
      <title>Testing Messaging Within a Presenter</title>
      <link>https://www.aaron-powell.com/posts/2010-05-18-testing-messaging-within-a-presenter/</link>
      <pubDate>Tue, 18 May 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-05-18-testing-messaging-within-a-presenter/</guid>
      <description>Cross-Presenter messaging is a great way which you can have two presenters which don&amp;rsquo;t know about each other, but may have a reliance on data from the other.
There&amp;rsquo;s a good demo up on the WebForms MVP wiki which shows how it can be implemented.
One really handy feature of this is that you can have something happen when the message never arrives. Lets say for example we have a presenter which shows a set of promotions pulled from a global store.</description>
    </item>
    
    <item>
      <title>2009, a year in review</title>
      <link>https://www.aaron-powell.com/posts/2010-04-25-2009-a-year-in-review/</link>
      <pubDate>Sun, 25 Apr 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-04-25-2009-a-year-in-review/</guid>
      <description>So a new decade is upon us and with 2009 wrapped up it&amp;rsquo;s time to look retrospectively at the year that was.
2009 was the biggest year professionally that I&amp;rsquo;ve had, the whole year has been filled with new adventures into the development world.
At the start of the year I announced my first Open Source project, the Umbraco Interaction Layer (UIL) was ceasing development as I&amp;rsquo;d joined the Umbraco core development team.</description>
    </item>
    
    <item>
      <title>Dealing with type-casting limitations</title>
      <link>https://www.aaron-powell.com/posts/2010-04-25-dealing-with-type-casting-limitations/</link>
      <pubDate>Sun, 25 Apr 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-04-25-dealing-with-type-casting-limitations/</guid>
      <description>Well this is the first post involving the .NET 4.0 framework, woo :D.
Something I&amp;rsquo;ve had a problem with from within the abstract service lay which we use at TheFARM. It&amp;rsquo;s a limitation of the .NET framework and how you can do type casting within the .NET framework.
The way we use our service layer is to never return classes, we only return interfaces, so you can&amp;rsquo;t write a method which looks like this:</description>
    </item>
    
    <item>
      <title>Exception thrown when using XSLT extensions</title>
      <link>https://www.aaron-powell.com/posts/2010-04-25-exception-thrown-when-using-xslt-extensions/</link>
      <pubDate>Sun, 25 Apr 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-04-25-exception-thrown-when-using-xslt-extensions/</guid>
      <description>This is a question I was asked today but it&amp;rsquo;s also something which I have come across myself when creating XSLT extensions.
Have you ever had this exception thrown?
 System.MissingMethodException: No parameterless constructor defined for this object.
at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean&amp;amp; canBeCached, RuntimeMethodHandle&amp;amp; ctor, Boolean&amp;amp; bNeedSecurityCheck) at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean fillCache) at System.RuntimeType.CreateInstanceImpl(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean fillCache) at System.Activator.CreateInstance(Type type, Boolean nonPublic) at umbraco.macro.GetXsltExtensions() at umbraco.</description>
    </item>
    
    <item>
      <title>Handy extension method for null-coalesing</title>
      <link>https://www.aaron-powell.com/posts/2010-04-25-handy-extension-method-for-null-coalesing/</link>
      <pubDate>Sun, 25 Apr 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-04-25-handy-extension-method-for-null-coalesing/</guid>
      <description>Today a colleague asked me a question:
&amp;ldquo;How do you do a null-coalesce operator which will return a property of an object when not null?&amp;rdquo;
If you&amp;rsquo;re not familiar with the null coalesce operator it&amp;rsquo;s the ?? operator and it can be used for inline expressions when the test object is null.
You use it like so:
string test = null; Console.WriteLine(test ?? &amp;quot;The string was null&amp;quot;);  So it either returns itself or it returns your value, but what if you want to return a property of the object not itself, well you can&amp;rsquo;t use the ?</description>
    </item>
    
    <item>
      <title>Oh woe is (Mobile)Me</title>
      <link>https://www.aaron-powell.com/posts/2010-04-25-oh-woe-is-mobile-me/</link>
      <pubDate>Sun, 25 Apr 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-04-25-oh-woe-is-mobile-me/</guid>
      <description>Anyone who is (lucky enough to be) on my msn contact list (and signed in during my work hours) will have seen something curious happening over the past week since I returned back to work.
For those of you not, basically I was signing in and out constantly with a frequency of say every 10 minutes. This oddly made is surprisingly hard to hold a conversation with someone. But more problematic was that not only was msn dropping out but the whole internet was.</description>
    </item>
    
    <item>
      <title>Why I&#39;m not a fan of XSLT</title>
      <link>https://www.aaron-powell.com/posts/2010-04-25-why-im-not-a-fan-of-xslt/</link>
      <pubDate>Sun, 25 Apr 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-04-25-why-im-not-a-fan-of-xslt/</guid>
      <description>When I first joined the Umbraco team with the goal of bringing LINQ to Umbraco to the core framework there was some excitement and quite a bit of the early excitement was from Umbraco MVP Warren Buckley. And with the recent beta release the focus has come back onto LINQ to Umbraco, myself and XSLT.
While preparing to write this post I was tossing up with the name. Although I&amp;rsquo;ve entitled it &amp;ldquo;Why I&amp;rsquo;m not a fan of XSLT&amp;rdquo; it would have been just as apt to name it &amp;ldquo;Why write LINQ to Umbraco?</description>
    </item>
    
    <item>
      <title>Why does this code work?</title>
      <link>https://www.aaron-powell.com/posts/2010-04-25-why-does-this-code-work/</link>
      <pubDate>Sun, 25 Apr 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-04-25-why-does-this-code-work/</guid>
      <description>In the discussion on the Umbraco forum about using LINQ to Umbraco I posted a short code snippet of something we write fairly frequently at TheFARM using our version of LINQ with Umbraco.
I thought I&amp;rsquo;d post the challenge to my trusty followers, for them to see if they know why the code works. First off the code:
IEnumerable&amp;lt;XElement&amp;gt; nodes = UmbXmlLinqExtensions.GetNodeByXpath(...); IEnumerable&amp;lt;IUmbracoPage&amp;gt; pages = nodes.Select(n =&amp;gt;(IUmbracoPage)(UmbracoPage)n);  What the XPath being evaluated isn&amp;rsquo;t important, what is important is you&amp;rsquo;ll notice that we have a collection of System.</description>
    </item>
    
    <item>
      <title>Working with dates and LINQ to SQL</title>
      <link>https://www.aaron-powell.com/posts/2010-04-25-working-with-dates-and-linq-to-sql/</link>
      <pubDate>Sun, 25 Apr 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-04-25-working-with-dates-and-linq-to-sql/</guid>
      <description>Something I&amp;rsquo;ve heard developers complain about on numerous occasion is that DateTime comparisons between SQL and .NET is a real pain. Often you need to do a comparison of the date against either a Min or Max value.
With raw .NET this is really quite easy, you can just use the DateTime struct and grab DateTime.MinValue or DateTime.MaxValue.
But if you&amp;rsquo;ve ever done this:
var res = from item in Collection where item.</description>
    </item>
    
    <item>
      <title>LINQ in JavaScript</title>
      <link>https://www.aaron-powell.com/posts/2010-04-24-linq-in-javascript/</link>
      <pubDate>Sat, 24 Apr 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-04-24-linq-in-javascript/</guid>
      <description>Let me start by saying that I am aware that there is a LINQ to JavaScript project on Codeplex but this was done by me are more of an achidemic exercise/ challange.
So while I&amp;rsquo;ve been working on LINQ to Umbraco I&amp;rsquo;ve also been spending some time doing AJAX-y stuff, and I have been having a lot of fun playing with JavaScript. And then one day I was thinking about how I would go about manipulating a collection entirely client-side, and realised that loops are ultimately the only way to go about it.</description>
    </item>
    
    <item>
      <title>DDD Melbourne &amp;amp; Umbraco</title>
      <link>https://www.aaron-powell.com/posts/2010-04-22-dddmelbourne-umbraco/</link>
      <pubDate>Thu, 22 Apr 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-04-22-dddmelbourne-umbraco/</guid>
      <description>A few weeks ago I was noticing a lot of tweets from the people I follow about an upcoming event in Melbourne called Developer Developer Developer. Interested I delved into it and found that I really liked what they had to offer. It&amp;rsquo;s a free conference on the Microsoft stack which is community driven, meaning that anyone can propose a topic and the community would vote for what they wanted to see.</description>
    </item>
    
    <item>
      <title>An overview of Lucene.Net</title>
      <link>https://www.aaron-powell.com/posts/2010-04-14-lucene-net-overview/</link>
      <pubDate>Wed, 14 Apr 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-04-14-lucene-net-overview/</guid>
      <description>Please note, this document is a work in progress and will be expanded over time
Table of Contents  Overview Analyzer Documents Building an application with Lucene.Net  What is Lucene.Net? Although you can read the official word on the Lucene.Net project site I&amp;rsquo;ll do an abridged version here, explaining it in the way that I understand it.
Lucene.Net is an exact port of the Java Lucene search API, which comprises of indexers, analyzers and searchers.</description>
    </item>
    
    <item>
      <title>ASP.NET WebForms Model-View-Presenter Contrib Project</title>
      <link>https://www.aaron-powell.com/posts/2010-04-12-webforms-mvp-contrib/</link>
      <pubDate>Mon, 12 Apr 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-04-12-webforms-mvp-contrib/</guid>
      <description>Overview I&amp;rsquo;m a big fan of ASP.NET WebForms Model-View-Presenter (MVP) which is produced by Tatham Oddie and Damien Edwards. It&amp;rsquo;s a really great way to achieve testable webforms development, along with doing good design with decoupled webforms design.
As an Umbraco developer you&amp;rsquo;re somewhat limited with your options for testable development. You can use ASP.NET MVC, but it doesn&amp;rsquo;t integrate quite the same way, it&amp;rsquo;s not really possible drop them in as macros.</description>
    </item>
    
    <item>
      <title>Umbraco DataType Design</title>
      <link>https://www.aaron-powell.com/posts/2010-04-11-umbraco-data-type-design/</link>
      <pubDate>Sun, 11 Apr 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-04-11-umbraco-data-type-design/</guid>
      <description>DataType&amp;rsquo;s in Umbraco 4.x I&amp;rsquo;ve often seem people wondering why performances is so terrible when creating Documents, particularly lots of Documents from the Umbraco API. There is a good reason for this, the design of the DataType allows anyone to be able to implement them to do almost anything.
The standard way to use a DataType is to write to the Umbraco database, but you don&amp;rsquo;t have to do it that way, you can write to an XML file, call a web service or actually have no data saving.</description>
    </item>
    
    <item>
      <title>Umbraco Event Improvements</title>
      <link>https://www.aaron-powell.com/posts/2010-04-11-umbraco-event-improvments/</link>
      <pubDate>Sun, 11 Apr 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-04-11-umbraco-event-improvments/</guid>
      <description>As I mentioned in a previous article there&amp;rsquo;s a problem with the 4.0 eventing. But not everything is bad news, there&amp;rsquo;s a light at the end of the tunnel!
Background If you&amp;rsquo;re wanting to learn more about why this is the way then I suggest you have a look at this article about data types.
The crux of it really comes down to the design of Data Types and how they are designed.</description>
    </item>
    
    <item>
      <title>Umbraco AUSPAC January 2010</title>
      <link>https://www.aaron-powell.com/posts/2010-04-09-umbraco-auspac-january-2010/</link>
      <pubDate>Fri, 09 Apr 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-04-09-umbraco-auspac-january-2010/</guid>
      <description>First off I&amp;rsquo;d like to say thanks to all who attended tonights Umbraco webinar, I think we had mid 20&amp;rsquo;s for most of the session, really excited by the volume.
Anyone who hasn&amp;rsquo;t already filled out the post-session review please do so, it&amp;rsquo;ll help me make it more awesome next time ;).
As promised, here are the resources from tonights session:
 Slide Deck .NET project  For those who are interested I did record tonights session, but it appears that it stopped recording about 20 minutes before the end.</description>
    </item>
    
    <item>
      <title>Are Extension Methods Really Evil?</title>
      <link>https://www.aaron-powell.com/posts/2010-04-08-are-extension-methods-really-evil/</link>
      <pubDate>Thu, 08 Apr 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-04-08-are-extension-methods-really-evil/</guid>
      <description>Ruben (of Umbraco fame) recently wrote a post entitled Extension Methods: Silent static slaves which was in response to a comment I&amp;rsquo;d left on a previous post about static classes and static method being evil.
If you haven&amp;rsquo;t read Ruben post then I suggest you do before continue on with mine as a lot of what I&amp;rsquo;ll be saying is in counter argument to him (including the comments).
Done? Good, continue on!</description>
    </item>
    
    <item>
      <title>LINQ to XML to... Excel?</title>
      <link>https://www.aaron-powell.com/posts/2010-04-08-linq-to-xml-to-excel/</link>
      <pubDate>Thu, 08 Apr 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-04-08-linq-to-xml-to-excel/</guid>
      <description>The other day one of the guys I work with was trying to work out the best way to generate an Excel document from .NET as the client had some wierd requirements around how the numerical data needed to be formatted (4 decimal places, but Excel treats a CSV to only show 2).
The next day my boss came across a link to a demo of how to use LINQ to XML to generate a XML file using the Excel schema sets which allow for direct opening in Excel.</description>
    </item>
    
    <item>
      <title>Problems with Assembly Trust</title>
      <link>https://www.aaron-powell.com/posts/2010-04-08-problems-with-assembly-trust/</link>
      <pubDate>Thu, 08 Apr 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-04-08-problems-with-assembly-trust/</guid>
      <description>When I was migrating PaulPad to ASP.NET MVC2 I decided that I wanted to also upgrade it to Autofac2. The main reason for it was the type registration is much nicer with it&amp;rsquo;s lambda syntax than it was in the 1.4 release which PaulPad previously used.
So I set about downloading the latest version of Autofac and getting it up and running.
Because Autofac2 supports both MVC1 and MVC2 I needed to use Assembly Binding to ensure that it worked properly.</description>
    </item>
    
    <item>
      <title>Reflection And Generics</title>
      <link>https://www.aaron-powell.com/posts/2010-04-08-reflection-and-generics/</link>
      <pubDate>Thu, 08 Apr 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-04-08-reflection-and-generics/</guid>
      <description>Or to name this another way… Oh my god the pain.
Anyone who’s been brave enough to delve into the bowels of the Umbraco Interaction Layer will have been able to see just how much Reflection I’m using, for those who haven’t think about this. With the UIL I needed a way to find all the properties of a generated class and be able to either populate all of them or save from all of them.</description>
    </item>
    
    <item>
      <title>The great Umbraco API misconception</title>
      <link>https://www.aaron-powell.com/posts/2010-04-08-the-great-umbraco-api-misconception/</link>
      <pubDate>Thu, 08 Apr 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-04-08-the-great-umbraco-api-misconception/</guid>
      <description>When Umbraco 4 was released it was a very exciting that there was an event model around everything in the back-end. This meant you could more powerful ActionHandlers firing on pre and post events (even though they are named against the standard .NET naming conventions).
Also, people were very excited that when a pre, sorry, before event fired it was possible to do a cancel on the event args. This was really good for a Save event, it meant for more custom actions, business logic around the saving, you name it.</description>
    </item>
    
    <item>
      <title>Why no Umbraco on Aaron-Powell.com?</title>
      <link>https://www.aaron-powell.com/posts/2010-04-08-why-no-umbraco/</link>
      <pubDate>Thu, 08 Apr 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-04-08-why-no-umbraco/</guid>
      <description>So unsurprisingly I&amp;rsquo;ve had a few people question why I&amp;rsquo;m not using Umbraco for the latest version of Aaron-Powell.com.
First off let&amp;rsquo;s just have a look back on my blogging and the blog engines I&amp;rsquo;ve used.
Back before I was the world-famous blogger that I am today I used Windows Live Spaces for blogging, yeah, I was just that awesome. But when I decided to buy my own domain I thought it was only appropriate that I started using some actual software.</description>
    </item>
    
    <item>
      <title>Building LINQ to Umbraco</title>
      <link>https://www.aaron-powell.com/posts/2010-04-07-building-linq-to-umbraco/</link>
      <pubDate>Wed, 07 Apr 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-04-07-building-linq-to-umbraco/</guid>
      <description>In the beginning LINQ to Umbraco is actually a lot old a project that most people realise, in fact the initial idea of LINQ to Umbraco started when I had a discussion with Niels Hartvig (founder of Umbraco) at the end of 2007 when he was running training in Melbourne.
Back then C# 3.0 was just released, Visual Studio 2008 was just out and everyone was very excited about this new technology LINQ.</description>
    </item>
    
    <item>
      <title>C#/ .NET</title>
      <link>https://www.aaron-powell.com/posts/2010-04-07-csharp/</link>
      <pubDate>Wed, 07 Apr 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-04-07-csharp/</guid>
      <description>##My Projects
 AaronPowell.Dynamics Location Service with F# and Twitter  NuGet  How to install a package into all projects of a solution Creating a NuGet-based plugin engine Querying NuGet via LINQPad  LINQ Articles  LINQ to XML to&amp;hellip; Excel? Query Syntax vs Method Syntax  Lucene.Net  Overview  The dark arts  Reflection and Generics Recursive anonymous functions - the .NET version Why does this code work?</description>
    </item>
    
    <item>
      <title>Extending Umbraco Members</title>
      <link>https://www.aaron-powell.com/posts/2010-04-07-extending-umbraco-members/</link>
      <pubDate>Wed, 07 Apr 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-04-07-extending-umbraco-members/</guid>
      <description>Recently we&amp;rsquo;ve had several projects which have come through in which we are building a solution in Umbraco and the client wants to have memberships within the site.
Umbraco 3.x has a fairly neat membership system but it&amp;rsquo;s a bit limited when you want to interact with the member at a code level. Because members are just specialised nodes they can quite easily have custom properties put against them, but reading them in your code is less than appealing.</description>
    </item>
    
    <item>
      <title>Overview</title>
      <link>https://www.aaron-powell.com/posts/2010-04-07-linq-to-umbraco-overview/</link>
      <pubDate>Wed, 07 Apr 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-04-07-linq-to-umbraco-overview/</guid>
      <description>What? Anyone who has had to do a lot of work with the Umbraco API and interacting with nodes will know that using the .NET API isn&amp;rsquo;t great. It&amp;rsquo;s not bad, but in a strongly typed world a loosely typed objects are no where near as much fun.
Especially if you want to move around those items!
Umbraco is more than just a content management system, Umbraco a great application framework.</description>
    </item>
    
    <item>
      <title>Training Vidoes</title>
      <link>https://www.aaron-powell.com/posts/2010-04-07-training-videos/</link>
      <pubDate>Wed, 07 Apr 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-04-07-training-videos/</guid>
      <description>In an effort to get everyone up to speed with LINQ to Umbraco I have put together a series of videos. This series looks at how you can use LINQ to Umbraco to create a simple blog engine.
Session 1 Getting Stardted
In this session I&amp;rsquo;ll be looking at the basics of what is required for LINQ to Umbraco. We&amp;rsquo;ll look at how to generate the classes and some suggestions on how to get the best generated class names.</description>
    </item>
    
    <item>
      <title>Umbraco Members Profiles</title>
      <link>https://www.aaron-powell.com/posts/2010-04-07-umbraco-members-profiles/</link>
      <pubDate>Wed, 07 Apr 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-04-07-umbraco-members-profiles/</guid>
      <description>Almost 12 months ago I did a post looking at how to make .NET interaction with Umbraco Members easier (Extending Umbraco Members). This was for Umbraco 3.x, but now with Umbraco 4.x a question that has been coming up a lot on the Umbraco forums of recent is how to work with the Umbraco Membership. When Umbraco 4 was released it brought in the implementation of the ASP.NET Membership classes (MembershipProvider, RoleProvider and ProfileProvider).</description>
    </item>
    
    <item>
      <title>Random Stuff!</title>
      <link>https://www.aaron-powell.com/posts/2010-04-06-random/</link>
      <pubDate>Tue, 06 Apr 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-04-06-random/</guid>
      <description>##Random posts and Ranting##
 2009, a year in review Oh woe is (Mobile)Me 2010, a year in review  Useful Tools Developer Tools  LinqPad  Best way to test C# or VB.NET without having to create a console application  Notepad++  My choice for a Notepad replacement. Syntax highlighting in just about every language  RedGate&amp;rsquo;s Reflector  If you&amp;rsquo;re a .NET dev and don&amp;rsquo;t have this installed get out of my framework  Expresso  By far my favorite Regular Expression builder and tester  WinMerge  If you&amp;rsquo;re using SVN, or just need to be able to diff and merge files or folders this is what you want   Web Developer Tools  Charles  I was a fan of Fiddler but since using Charles I can&amp;rsquo;t go back.</description>
    </item>
    
    <item>
      <title>Web Development</title>
      <link>https://www.aaron-powell.com/posts/2010-04-04-web-dev/</link>
      <pubDate>Sun, 04 Apr 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-04-04-web-dev/</guid>
      <description>Being a web developer by trade, and primarily an ASP.NET developer I come across a few musings around fun things to do.
My Projects  JavaScript Tools Ole Slidee WhatKey.Net ServerHere - When you just need a webserver  Talks  JavaScript frameworks  ASP.NET  ASP.NET Web Forms MVP Contrib ASP.NET Web Forms MVP Yes, I LIKE WebForms  ASP.NET MVC  Model binding with implicit operators XML Action Result Using HttpCompression libraries and ASP.</description>
    </item>
    
    <item>
      <title>Umbraco</title>
      <link>https://www.aaron-powell.com/posts/2010-04-01-umbraco/</link>
      <pubDate>Thu, 01 Apr 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-04-01-umbraco/</guid>
      <description>LINQ to Umbraco LINQ to Umbraco is a new API which is coming in Umbraco 4.1 that will provide a provider-model LINQ API for working with Umbraco data.
 Overview Understanding LINQ to Umbraco Why no IQuerable in LINQ to Umbraco Training Videos Building LINQ to Umbraco Creating a RssDataProvider for LINQ to Umbraco  LINQ to Umbraco Extensions  Home Source  Creating a custom LINQ to Umbraco data provider  Implementing a Tree class  Umbraco API The Umbraco API is powerful, but it has some very fun things within it.</description>
    </item>
    
    <item>
      <title>The answer to why this code works</title>
      <link>https://www.aaron-powell.com/posts/2010-01-23-the-answer-to-why-this-cover-works/</link>
      <pubDate>Sat, 23 Jan 2010 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2010-01-23-the-answer-to-why-this-cover-works/</guid>
      <description>So at the start of this week I put up a blog asking Why this code works, and to be honest I&#39;ve grown quite a bit of an ego since then as no-one has been able to answer the question correctly.
One person did get close, but close doesn&#39;t quite cut it ;).
Well the answer is actually very simple, and it&#39;s a really handy feature of the C# language, explicit operators.</description>
    </item>
    
    <item>
      <title>Recursive anonymous functions - the .NET version</title>
      <link>https://www.aaron-powell.com/posts/2009-07-15-recursive-anonymous-functions-the-net-version/</link>
      <pubDate>Wed, 15 Jul 2009 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2009-07-15-recursive-anonymous-functions-the-net-version/</guid>
      <description>When playing around with JavaScript I decided to have a look at creating recursive anonymous functions, which are a good bit of fun.
Well I decided to have a challange, could you do it in .NET? Well lets ignore the pointlessness of the exercise and just enjoy the challenge.
Well, I did it, it&amp;rsquo;s sure as shit isn&amp;rsquo;t pretty but hey, it works. In this post I&amp;rsquo;ll show off how it works, but to sum it up - Reflection.</description>
    </item>
    
    <item>
      <title>People can come up with statistics to prove anything. 14% of people know that</title>
      <link>https://www.aaron-powell.com/posts/2009-06-13-people-can-come-up-with-statistics-to-prove-anything-14-of-people-know-that/</link>
      <pubDate>Sat, 13 Jun 2009 12:05:53 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2009-06-13-people-can-come-up-with-statistics-to-prove-anything-14-of-people-know-that/</guid>
      <description>Ok, I&#39;m going to go on a bit of a rant here.
I&#39;m a Mac user, have been for nearly 2 years now and I think buying a Mac was one of the smartest moves I made as a Microsoft developer; I can run virtual machines for everything I do, easily swapping between different OSes. I currently have XP, Vista and Win7 all on my Mac so I can easily test IE6 -&amp;gt; IE8 without any hacks.</description>
    </item>
    
    <item>
      <title>Creating an installer for a Single File Generator - Part 2</title>
      <link>https://www.aaron-powell.com/posts/2009-06-08-creating-an-installer-for-a-single-file-generator---part-2/</link>
      <pubDate>Mon, 08 Jun 2009 11:41:59 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2009-06-08-creating-an-installer-for-a-single-file-generator---part-2/</guid>
      <description>This post will be looking at another problem I had to overcome with creating the SFG for LINQ to Umbraco, this time I&#39;ll look at how to do an installer while using wild-card version numbering.
I&#39;m a big fan of wild-card versioning of assembliies, and if you&#39;re not familiar with what I&#39;m taking about I&#39;m referring to when you make the assembly version number end in a * within the AssemblyInfo.</description>
    </item>
    
    <item>
      <title>Creating an installer for a Single File Generator - Part 1</title>
      <link>https://www.aaron-powell.com/posts/2009-06-08-creating-an-installer-for-a-single-file-generator---part-1/</link>
      <pubDate>Mon, 08 Jun 2009 10:40:41 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2009-06-08-creating-an-installer-for-a-single-file-generator---part-1/</guid>
      <description>LINQ to Umbraco is trucking along brilliantly and I recently solved a really big problem that I had, creating a Single File Generator (SFG).
For anyone who&#39;s not familiar with a SFG it is a tool for Visual Studio which allows a document to have .NET code generated for it when the file is saved (or the custom tool is explicitly run). There&#39;s a very good example as part of the Visual Studio 2008 SDK which covers how to create a SFG (here is the documentation for it).</description>
    </item>
    
    <item>
      <title>Recursive Anonymous Functions</title>
      <link>https://www.aaron-powell.com/posts/2009-06-06-recursive-anonymous-functions/</link>
      <pubDate>Sat, 06 Jun 2009 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2009-06-06-recursive-anonymous-functions/</guid>
      <description>I was on StackOverflow the other day and I was reading a post about the strangest programming language you&amp;rsquo;ve ever used. While looking at what people have used I realized I haven&amp;rsquo;t worked with anything that strange.
But then I was thinking there is one language I used that&amp;rsquo;s a bit strange, JavaScript.
Without going into all the weirdness of the JavaScript language I&amp;rsquo;d like to focus on one bit craziness which I&amp;rsquo;m quite fond of, self executing recursive anonymous functions.</description>
    </item>
    
    <item>
      <title>Isolating vs Mocking</title>
      <link>https://www.aaron-powell.com/posts/2009-06-01-isolating-vs-mocking/</link>
      <pubDate>Mon, 01 Jun 2009 21:46:45 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2009-06-01-isolating-vs-mocking/</guid>
      <description>I&#39;ve been doing a lot of playing with testing frameworks and working out what&#39;s the best to use for the different needs. There&#39;s two kinds of frameworks out there for .NET, mocking frameworks and isolation frameworks.
There are different reasons for using the different framework types and I&#39;m to try and explain which one is a good choice for what you&#39;re trying to do.
&amp;nbsp;
What is mocking?
Mocking is the concept of producing fake versions of the objects you want to operate with.</description>
    </item>
    
    <item>
      <title>Using Umbraco in a WPF application</title>
      <link>https://www.aaron-powell.com/posts/2009-05-30-using-umbraco-in-a-wpf-application/</link>
      <pubDate>Sat, 30 May 2009 10:40:27 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2009-05-30-using-umbraco-in-a-wpf-application/</guid>
      <description>One of the goals of LINQ to Umbraco is to be able to have Umbraco applications which are done without a web context, starting to using Umbraco as a service.
Now there&#39;s been plenty of ways to do this in the past, you can quite easily have a web service which pushes out the data you require, but I wanted to do it entirely without web stuff.
With Code Garden coming up in a few weeks I decided to have a look into writing something to show off the concept I was thinking of, that you could write a WPF application which is entirely driven from Umbraco content.</description>
    </item>
    
    <item>
      <title>Windows 7, Virtual XP and I&#39;m worried</title>
      <link>https://www.aaron-powell.com/posts/2009-05-24-windows-7-virtual-xp-and-im-worried/</link>
      <pubDate>Sun, 24 May 2009 11:03:22 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2009-05-24-windows-7-virtual-xp-and-im-worried/</guid>
      <description>As most people are aware by now Windows 7 will be having the ability to run a virtualised version of Windows XP within it. Scott Hanselman has a good post up on it (see here), even Karl bounced a post about it.
Personally I&#39;m not that interested in it, in fact I think that the idea is very bad, by adding this it&#39;s essentially preventing to EOF of Windows XP.</description>
    </item>
    
    <item>
      <title>Query Syntax vs Method Syntax</title>
      <link>https://www.aaron-powell.com/posts/2009-05-19-query-syntax-vs-method-syntax/</link>
      <pubDate>Tue, 19 May 2009 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2009-05-19-query-syntax-vs-method-syntax/</guid>
      <description>While working on an IQueryable&amp;lt;T&amp;gt; provider I was having a problem when doing LINQ statements via the Query Syntax that wasn&amp;rsquo;t happening when using the Method Syntax (chained lambda expressions).
And that problem has lead to an observation I made about LINQ, well, about Expression-based LINQ (ie - something implementing IQueryable, so LINQ to SQL, etc).
I&amp;rsquo;ll use LINQ to SQL for the examples as it&amp;rsquo;s more accessible to everyone.</description>
    </item>
    
    <item>
      <title>Book review - Advanced ASP.NET AJAX Server Controls</title>
      <link>https://www.aaron-powell.com/posts/2009-05-17-book-review---advanced-aspnet-ajax-server-controls/</link>
      <pubDate>Sun, 17 May 2009 15:11:09 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2009-05-17-book-review---advanced-aspnet-ajax-server-controls/</guid>
      <description>A couple of months ago I picked up a cope of Advanced ASP.NET AJAX Server Controls&amp;nbsp;and read it cover-to-cover.
When ASP.NET AJAX was first released back in 2007 I bought Professional ASP.NET AJAX&amp;nbsp;and read it cover-to-cover, so this wasn&#39;t my first foray into .NET AJAX books. But I must say that i completely pales in comparison to Advanced ASP.NET AJAX Server Controls.
First impressions
When I started reading the book I was expecting it to be completely .</description>
    </item>
    
    <item>
      <title>LINQ to Umbraco update (number 2)</title>
      <link>https://www.aaron-powell.com/posts/2009-05-17-linq-to-umbraco-update-number-2/</link>
      <pubDate>Sun, 17 May 2009 14:44:04 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2009-05-17-linq-to-umbraco-update-number-2/</guid>
      <description>I thought today was an apt time to post another update on LINQ to Umbrace, as one month from today I&#39;ll be in Copenhagen Denmark preparing for the Umbraco retreat and then Code Garden &#39;09.
So what&#39;s the status? Anyone who follows the check-ins on Umbraco in Codeplex will have noticed that I haven&#39;t really done a lot lately.
I am&amp;nbsp;still working on it but I&#39;ve not recently had as much time as I would have liked.</description>
    </item>
    
    <item>
      <title>Is TDD worth it?</title>
      <link>https://www.aaron-powell.com/posts/2009-05-12-is-tdd-worth-it/</link>
      <pubDate>Tue, 12 May 2009 23:07:54 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2009-05-12-is-tdd-worth-it/</guid>
      <description>Today&amp;nbsp;Alistair&amp;nbsp;Denyes&amp;nbsp;finally gave the presentation on Integration Testing which he&#39;s been saying he&#39;d give for something like 12 months, so I thought it&#39;d be a good idea to get around to doing this post which I&#39;ve been putting off for quite a while.
First off I&#39;ll start by saying that this isn&#39;t about the concept of testing, I do think that testing (both Unit and Integration) is a good idea, it&#39;s Test Driven Development (TDD) which I have some problems with.</description>
    </item>
    
    <item>
      <title>LINQ in JavaScript - part 2</title>
      <link>https://www.aaron-powell.com/posts/2009-05-05-linq-in-javascript---part-2/</link>
      <pubDate>Tue, 05 May 2009 08:43:05 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2009-05-05-linq-in-javascript---part-2/</guid>
      <description>Recently I did a blog post on my implementation of LINQ in JavaScript&amp;nbsp;which was just talking about a little project I was working on to produce a LINQ-style API within JavaScript.
I had planned to release the source code in that post but due to a problem with my blogs Umbraco install I was unable to.
Well I&#39;ve finally got around to fixing the media section and now I can provide the code.</description>
    </item>
    
    <item>
      <title>Creating jQuery plugins for MS AJAX components, dynamically!</title>
      <link>https://www.aaron-powell.com/posts/2009-05-05-creating-jquery-plugins-from-ms-ajax-components/</link>
      <pubDate>Tue, 05 May 2009 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2009-05-05-creating-jquery-plugins-from-ms-ajax-components/</guid>
      <description>Bertrand Le Roy had an interesting post entitled Creating jQuery plug-ins from MicrosoftAjax components. It&amp;rsquo;s not a bad concept, but I miss read it when I first had a read, I thought it was creating all of certain types into a jQuery plug-ins.
But as I said I miss read it, no drama, I decided to create that on my own. So I created a simple function for Microsoft AJAX which will turn all the loaded Sys.</description>
    </item>
    
    <item>
      <title>Viralising via twitter</title>
      <link>https://www.aaron-powell.com/posts/2009-04-26-viralising-via-twitter/</link>
      <pubDate>Sun, 26 Apr 2009 21:33:16 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2009-04-26-viralising-via-twitter/</guid>
      <description>Yet another one of my posts about how I just don&#39;t get Twitter, this time it&#39;s about the way which sites can go viral via Twitter, and how quickly they spread.
A while ago a site started going around, called WeFollow, which is just a user directory. You can put yourself up on their directory, listing a few hashtags which you are primarily posting under.
I listed myself on there, and watch as the people I follow also listing themselves on there as well.</description>
    </item>
    
    <item>
      <title>Blog update, now with more syntax highlighting</title>
      <link>https://www.aaron-powell.com/posts/2009-04-23-blog-update-now-with-more-syntax-highlighting/</link>
      <pubDate>Thu, 23 Apr 2009 09:06:37 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2009-04-23-blog-update-now-with-more-syntax-highlighting/</guid>
      <description>I finally go around putting a proper syntax highlights on my blog, to fix up that I was previously hand-doing the UI for any code that I was putting into my blog.
I&#39;ve gone with the JavaScript tool Syntax Highlighter. It&#39;s really neat and very simple to add into a site and use.
I&#39;ve chosen the dark theme, to keep it closer to my actual Visual Studio theme (see this post as to why I use a black VS theme).</description>
    </item>
    
    <item>
      <title>LINQ in JavaScript</title>
      <link>https://www.aaron-powell.com/posts/2009-04-20-linq-in-javascript/</link>
      <pubDate>Mon, 20 Apr 2009 12:40:03 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2009-04-20-linq-in-javascript/</guid>
      <description>Let me start by saying that I am aware that there is a LINQ to JavaScript project on Codeplex&amp;nbsp;but this was done by me are more of an achidemic exercise/ challange.
So while I&#39;ve been working on LINQ to Umbraco I&#39;ve also been spending some time doing AJAX-y stuff, and I have been having a lot of fun playing with JavaScript.
And then one day I was thinking about how I would go about manipulating a collection entirely client-side, and realised that loops are ultimately the only way to go about it.</description>
    </item>
    
    <item>
      <title>SharePoint feature corrupts page layout</title>
      <link>https://www.aaron-powell.com/posts/2009-03-24-sharepoint-feature-corrupts-page-layout/</link>
      <pubDate>Tue, 24 Mar 2009 19:39:28 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2009-03-24-sharepoint-feature-corrupts-page-layout/</guid>
      <description>Something that I&#39;ve come across a few times when working on SharePoint/ MOSS 2007 features. When importing a Page Layout the ASPX some times becomes corrupt. You end up with additional HTML inserts once it&#39;s been imported into SharePoint.
The corruption is in the form of HTML tags, outside the last &amp;lt;/asp:Content&amp;gt; tag.
Well it turns out that the problem is caused when you import an ASPX that has a &amp;lt;/asp:content&amp;gt; tag it&#39;ll happen.</description>
    </item>
    
    <item>
      <title>Building a LINQ provider - Step 0</title>
      <link>https://www.aaron-powell.com/posts/2009-03-23-building-a-linq-provider---step-0/</link>
      <pubDate>Mon, 23 Mar 2009 08:48:02 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2009-03-23-building-a-linq-provider---step-0/</guid>
      <description>Since I&#39;ve started writing LINQ to Umbraco I have been doing a lot of investigation into the way that LINQ works and how to go about building your own custom LINQ provider. One thing I&#39;ve noticed is there is a distinct lack of information on the web in about how to do this. Matt Warren has a really good series on building a LINQ provider, but it&#39;s still related to SQL translations.</description>
    </item>
    
    <item>
      <title>LINQ to Umbraco update</title>
      <link>https://www.aaron-powell.com/posts/2009-03-20-linq-to-umbraco-update/</link>
      <pubDate>Fri, 20 Mar 2009 15:14:27 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2009-03-20-linq-to-umbraco-update/</guid>
      <description>As I mentioned in a previous post I&#39;m working on a LINQ provider for Umbraco, a proper one, not one which is exploiting the operations on LINQ to Objects.
Well I thought I&#39;d do an update on the progress that&#39;d been made thus far on it. This comes on the back of yesterdays post where I eluded to something exciting.
I&#39;ve completed the main codebase for the DocType Markup Language (DTML) generator last week.</description>
    </item>
    
    <item>
      <title>A LINQ observation</title>
      <link>https://www.aaron-powell.com/posts/2009-03-19-a-linq-observation/</link>
      <pubDate>Thu, 19 Mar 2009 12:44:44 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2009-03-19-a-linq-observation/</guid>
      <description>Well I&#39;m making good headway with LINQ to Umbraco, in the next few days I&#39;ll be doing a very interesting check in (which I&#39;ll also blog here about). My tweet-peeps already have an idea of what it entails, but there&#39;s a bit of a problem with it still which I want to address before the commit.
And that problem has lead to an observation I made about LINQ, well, about Expression-based LINQ (ie - something implementing IQueryable, so LINQ to SQL, or LINQ to Umbraco, etc).</description>
    </item>
    
    <item>
      <title>I still don&#39;t get Twitter</title>
      <link>https://www.aaron-powell.com/posts/2009-03-10-i-still-dont-get-twitter/</link>
      <pubDate>Tue, 10 Mar 2009 19:23:57 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2009-03-10-i-still-dont-get-twitter/</guid>
      <description>So Karl posted today (well, tomorrow at 2.29am or something, yeah my blog isn&#39;t the only one who&#39;s dates are freaky!) asking what value Twitter adds.
As I recently posted I have a twitter account and I don&#39;t really get the point either.
But I must confess, I&#39;m getting more into it, well, into it but still not getting its point.
Originally when I got onto as I was trying to get a hold of Niels, he was away from his email at the time and I knew he was still checking that :P</description>
    </item>
    
    <item>
      <title>A nifty Typemock extension on steroids</title>
      <link>https://www.aaron-powell.com/posts/2009-03-06-a-nifty-typemock-extension-on-steroids/</link>
      <pubDate>Fri, 06 Mar 2009 13:04:47 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2009-03-06-a-nifty-typemock-extension-on-steroids/</guid>
      <description>So in my last post I showed a nifty Typemock extension for doing repetition within Typemock&amp;rsquo;s AAA syntax on the WhenCalled method. When I wrote that extension it was only done in a rush and it had 1 flaw, you couldn&amp;rsquo;t do method chaining to do the n+1 action, you had to do it on a separate line.
Well I spent another 5 minutes on it and added this feature (plus a repeat on CallOriginal).</description>
    </item>
    
    <item>
      <title>A nifty Typemock extension</title>
      <link>https://www.aaron-powell.com/posts/2009-03-03-a-nifty-typemock-extension/</link>
      <pubDate>Tue, 03 Mar 2009 22:49:47 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2009-03-03-a-nifty-typemock-extension/</guid>
      <description>Using AAA with Typemock there&#39;s a bit of a problem if you want to repeat the returned value a number of times before then doing something different. It&#39;s very useful if you are accessing a mocked object within a loop and want to know the number of loop execution.
So I&#39;ve put together a simple little Typemock extension (but I&#39;m sure it&#39;d adaptable for any mock framework supporting AAA):
public static void WillReturnRepeat&amp;lt;TReturn&amp;gt;(this IPublicNonVoidMethodHandler ret, TReturn value, int numberOfReturns) { for (var i = 0; i &amp;lt; numberOfReturns; i++) ret.</description>
    </item>
    
    <item>
      <title>An observation on browsers</title>
      <link>https://www.aaron-powell.com/posts/2009-03-01-an-observation-on-browsers/</link>
      <pubDate>Sun, 01 Mar 2009 17:09:38 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2009-03-01-an-observation-on-browsers/</guid>
      <description>I&#39;ve been a big fan of the Opera web browser for a number of years, I&#39;ve used it since it&#39;s v4 days. I remember it being an ad-supported browser and I remember when it became free (that was a great day!). I remember it being a very innovative browser (and it still is) with this such as:
 Tabbed browsing Mouse gestures Speed Dial Session Management  It&#39;s served me well for a long time, on every platform from Windows to Linux to Mac OS X, and even mobile devices.</description>
    </item>
    
    <item>
      <title>Typemock AAA - Faking the same method with different parameters</title>
      <link>https://www.aaron-powell.com/posts/2009-02-25-typemock-aaa---faking-the-same-method-with-different-parameters/</link>
      <pubDate>Wed, 25 Feb 2009 20:36:49 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2009-02-25-typemock-aaa---faking-the-same-method-with-different-parameters/</guid>
      <description>As I stated in my last post (oh so 5 minutes ago! :P) I&#39;m working on a new project for the Umbraco team, one thing I&#39;m really focusing hard on with LINQ to Umbraco is Test Driven Development (TDD), and with that I&#39;m using Typemock as my mocking framework (since I scored a free license I thought I should use it).
The Arrange, Act, Assert (AAA) is really sweet, but it does have a problem, it doesn&#39;t support mocking a method call with different parameters.</description>
    </item>
    
    <item>
      <title>UIL v1.1 release, and some sadness</title>
      <link>https://www.aaron-powell.com/posts/2009-02-25-uil-v11-release-and-some-sadness/</link>
      <pubDate>Wed, 25 Feb 2009 20:14:20 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2009-02-25-uil-v11-release-and-some-sadness/</guid>
      <description>Well today I have produced the latest version of the UIL, v1.1, which can be downloaded here: http://www.codeplex.com/UIL/Release/ProjectReleases.aspx?ReleaseId=23765. This version addresses a problem found with the IsDirty state when opening existing documents.
During a development implementation of it there it was noticed that when you opened existing documents the IsDirty always returned true.
This is now fixed, and I also addressed another problem which was realised. It was actually a design limitation, not a bug (per-say).</description>
    </item>
    
    <item>
      <title>Programmatically modifying SharePoint workflows</title>
      <link>https://www.aaron-powell.com/posts/2009-02-22-programmatically-modifying-sharepoint-workflows/</link>
      <pubDate>Sun, 22 Feb 2009 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2009-02-22-programmatically-modifying-sharepoint-workflows/</guid>
      <description>First off, let me start by saying that I often really hate SharePoint. Well maybe I should be a bit more specific, I really hate Publsihing Portals in Microsoft Office SharePoint Server 2007.
Windows SharePoint Services 3.0 I think is a great product, and the MOSS extensions are really quite awesome (Excel Services, enterprise search, etc), but Publishing Portals are shit.
Ok, I better stop or I&#39;m going to keep ranting and not do this post.</description>
    </item>
    
    <item>
      <title>Umbraco 4 broke my project!</title>
      <link>https://www.aaron-powell.com/posts/2009-02-05-umbraco-4-broke-my-project/</link>
      <pubDate>Thu, 05 Feb 2009 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2009-02-05-umbraco-4-broke-my-project/</guid>
      <description>Umbraco 4 may have been out for a week now but I&#39;ve been busy and I am only slowly getting to upgrading a project I&#39;ve been working on to the current build.
But I finally got around to it, and because there&#39;s a big custom .NET component to it I compiled against the upgraded DLL&#39;s, but there was a problem, I got the following compile error:
The referenced assembly &#39;businesslogic, Version=1.</description>
    </item>
    
    <item>
      <title>Umbraco Interaction Layer v1.0 available</title>
      <link>https://www.aaron-powell.com/posts/2009-02-01-umbraco-interaction-layer-v10-available/</link>
      <pubDate>Sun, 01 Feb 2009 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2009-02-01-umbraco-interaction-layer-v10-available/</guid>
      <description>Well it&#39;s been 6 months since I first announced the Umbraco Interaction Layer project, but I&#39;m happy to announce that v1.0 is available on the CodePlex site for download!
*Pauses for dramatic effect*
The v1 release supports Umbraco 4.0.0 and Umbraco 3.0.x.
The following are the major changes between the UIL RC and v1.0 release:
 Fixed the DataContractAttribute so it is now included on all generated classes (I didn&#39;t realise it wasn&#39;t inherited!</description>
    </item>
    
    <item>
      <title>Custom eventing with jQuery</title>
      <link>https://www.aaron-powell.com/posts/2009-01-31-custom-eventing-with-jquery/</link>
      <pubDate>Sat, 31 Jan 2009 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2009-01-31-custom-eventing-with-jquery/</guid>
      <description>Last Thursday I attended a session through Victoria.NET on jQuery hosted by Damian Edwards.
It was a good beginner session on jQuery, I was familiar with most of it but there were a few sweet little gems shown.
During the session when Damian was talking about eventing with jQuery someone asked him a question about doing custom events. Damian wasn&#39;t sure how to go about this, or if it was possible.</description>
    </item>
    
    <item>
      <title>Not getting DropDownList value when setting it via JavaScript</title>
      <link>https://www.aaron-powell.com/posts/2009-01-30-not-getting-dropdownlist-value-when-setting-it-via-javascript/</link>
      <pubDate>Fri, 30 Jan 2009 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2009-01-30-not-getting-dropdownlist-value-when-setting-it-via-javascript/</guid>
      <description>So today I had a problem which was doing my head in. I had a form which has a bunch of DropDownLists on it, some of which are disabled (depending on the radio button selection). Regardless of whether the DropDownList was available I needed to read the value (which was often set via JavaScript) back on the server.
But I noticed that the value I was setting via JavaScript wasn&#39;t making it way back to the server if I read the dropDownList.</description>
    </item>
    
    <item>
      <title>Comment feeding and more dogfood</title>
      <link>https://www.aaron-powell.com/posts/2009-01-29-comment-feeding-and-more-dogfood/</link>
      <pubDate>Thu, 29 Jan 2009 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2009-01-29-comment-feeding-and-more-dogfood/</guid>
      <description>Well I&#39;ve been doing some more changes to my website (and not breaking it... much :P) and I&#39;ve finally got round to adding a feature that Ruben was nagging for, a comment RSS feed.
Now it&#39;s easier to stay up to date with the comments that are bouncing around posts (in particular like we saw on the recent post around extension methods.
I also decided to dogfood an old post I did about client side templating, so to go with a new comment RSS I have updated the comment engine to use jTemplates, and I&#39;ve also added Gravatar.</description>
    </item>
    
    <item>
      <title>Are extensions really evil?</title>
      <link>https://www.aaron-powell.com/posts/2009-01-25-are-extensions-really-evil/</link>
      <pubDate>Sun, 25 Jan 2009 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2009-01-25-are-extensions-really-evil/</guid>
      <description>Ruben (of Umbraco fame) recently wrote a post entitled Extension Methods: Silent static slaves which was in response to a comment I&#39;d left on a previous post about static classes and static method being evil.
If you haven&#39;t read Ruben post then I suggest you do before continue on with mine as a lot of what I&#39;ll be saying is in counter argument to him (including the comments).
Done? Good, continue on!</description>
    </item>
    
    <item>
      <title>It&#39;s still cool to pick on Microsoft</title>
      <link>https://www.aaron-powell.com/posts/2009-01-25-its-still-cool-to-pick-on-microsoft/</link>
      <pubDate>Sun, 25 Jan 2009 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2009-01-25-its-still-cool-to-pick-on-microsoft/</guid>
      <description>This is going to deviate from my standard brain dribble a bit and be more of an opinion piece.
So recently the EU has announced it is going to fine Microsoft again because Internet Explorer comes with Windows and isn&#39;t that lovely. This comes on the back of the fine they slapped on them last year for anti-competative behavior.
So Microsoft is still popular punching bag, I&#39;m sure most people remember when Microsoft was found and fined for monopolistic behavior.</description>
    </item>
    
    <item>
      <title>Twitterific</title>
      <link>https://www.aaron-powell.com/posts/2009-01-25-twitterific/</link>
      <pubDate>Sun, 25 Jan 2009 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2009-01-25-twitterific/</guid>
      <description>Well I&#39;m a whore in all it&#39;s forms now (well, actually it&#39;s been that way for a while), I&#39;m a twitter-er.
You&#39;ll find my occational tweets here.
I don&#39;t really find the appeal of twitter, I particularly don&#39;t understand the appeal of using it for something other than an outdated form of IRC.
But oh well, if you want to, there I am.</description>
    </item>
    
    <item>
      <title>Apologies to my loyal fans</title>
      <link>https://www.aaron-powell.com/posts/2009-01-21-apologies-to-my-loyal-fans/</link>
      <pubDate>Wed, 21 Jan 2009 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2009-01-21-apologies-to-my-loyal-fans/</guid>
      <description>Just a quick apology to anyone who has tried to submit a comment to my blog since I did the site refresh.
Part of my new code base around the comment submission was not working so I have not received any comment submissions since then.
So no, I haven&#39;t just been ignoring you ;)
It also means I found 2 new bugs in the UIL which I need to address before I can put v1 out!</description>
    </item>
    
    <item>
      <title>Fun with a Client Event Pool and modal popups</title>
      <link>https://www.aaron-powell.com/posts/2009-01-17-fun-with-a-client-event-pool-and-modal-popups/</link>
      <pubDate>Sat, 17 Jan 2009 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2009-01-17-fun-with-a-client-event-pool-and-modal-popups/</guid>
      <description>I read an article last year about implementing a Client Event Pool&amp;nbsp;and I really liked the concept. Joel shows a very good way to use it but I&#39;ve been doing my best to find a logical use for it myself.
Anyone not familiar with the concept of a Client Event Pool it&#39;s covered in Joel&#39;s post, but the short version is that a Client Event Pool is a browser-level event handler which is designed to allow events to be easily passed between unlinked components.</description>
    </item>
    
    <item>
      <title>Programmatically moving Umbraco nodes</title>
      <link>https://www.aaron-powell.com/posts/2009-01-15-programmatically-moving-umbraco-nodes/</link>
      <pubDate>Thu, 15 Jan 2009 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2009-01-15-programmatically-moving-umbraco-nodes/</guid>
      <description>The other month Ruben did a post on using the new Umbraco event model&amp;nbsp;and today I had to solve a problem which it seemed like it would be the best way.
I needed to have a document, when published, moved into a new folder (as we&#39;re using Umbraco to store some data used for some non-browsable data). This can be achieved with the old IActionHandler.Execute method, but it was a little problematic, you needed to have some way to check if it was running because you moved and republished, or the initial publish.</description>
    </item>
    
    <item>
      <title>Site refresh, now with more dog food</title>
      <link>https://www.aaron-powell.com/posts/2009-01-12-site-refresh-now-with-more-dog-food/</link>
      <pubDate>Mon, 12 Jan 2009 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2009-01-12-site-refresh-now-with-more-dog-food/</guid>
      <description>Any astute visitors to my website will have noticed a few changes today. And for those who didn&#39;t I don&#39;t really blame you, they aren&#39;t that obvious.
First off, I&#39;ve upgraded my site to be running Umbraco 4 RC 1. It&#39;s been out for a while so I thought it was time I joined the hip crowd and started running it. I have been using it since Beta 2 on another site, but now I have my own running it as well.</description>
    </item>
    
    <item>
      <title>Dude, where&#39;s my Canvas?</title>
      <link>https://www.aaron-powell.com/posts/2009-01-05-dude-wheres-my-canvas/</link>
      <pubDate>Mon, 05 Jan 2009 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2009-01-05-dude-wheres-my-canvas/</guid>
      <description>Although there&#39;s been big praise for the Umbraco 4 RC release, and after I upgraded a site I&#39;m working on to it, I had high hopes. One of the things I wanted to really play with is Canvas (formerly Live Edit).  But it wasn&#39;t to be, when ever I went to load up Canvas there was nothing happening. Well, I had a few points which I could see I needed to click on, but clicking them did nothing.</description>
    </item>
    
    <item>
      <title>A month with TypeMock</title>
      <link>https://www.aaron-powell.com/posts/2008-12-24-a-month-with-typemock/</link>
      <pubDate>Wed, 24 Dec 2008 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2008-12-24-a-month-with-typemock/</guid>
      <description>A month ago I did a post about the TypeMock mocking framework and the nice people at TypeMock were kind enough to give me a 1 year license for their software. Although I haven&#39;t really played with it as much as I hoped/ would have liked I have done a bit with it and though I&#39;d share some thoughts.  To have a bit of a base line I was doing my playing with both Typemock and RhinoMocks, just to have an example against a good free mocking framework.</description>
    </item>
    
    <item>
      <title>PDB != Product Deployable Bits</title>
      <link>https://www.aaron-powell.com/posts/2008-08-22-pdb-not-equal-product-deployable-bits/</link>
      <pubDate>Mon, 22 Dec 2008 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2008-08-22-pdb-not-equal-product-deployable-bits/</guid>
      <description>Something else I see all too often at work (although not as often as not understanding the difference between client and server) is the existance of the PDB file on a production web server.  PDB files are automatically created from Visual Studio through the .NET compilers, so why don&#39;t they belong on the production server?  First we need to look at what is the PDB file?  The PDB, or program database is a file generated from the .</description>
    </item>
    
    <item>
      <title>Should you catch System.Exception?</title>
      <link>https://www.aaron-powell.com/posts/2008-12-18-should-you-catch-system-exception/</link>
      <pubDate>Thu, 18 Dec 2008 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2008-12-18-should-you-catch-system-exception/</guid>
      <description>System.Exception is a funny class, it&#39;s a class that on its own isn&#39;t really that practical. In the talk that Brian Abrams talk on Framework Design Guidelines from PDC 2008 (a really interesting video) he mentions that if they could do it over again they would make System.Exception an abstract class.  And I completely agree. I hate nothing more than seeing code like this: throw new Exception(&#34;Something bad happened!</description>
    </item>
    
    <item>
      <title>I&#39;m now on Feedburner</title>
      <link>https://www.aaron-powell.com/posts/2008-12-15-im-now-on-feedburner/</link>
      <pubDate>Mon, 15 Dec 2008 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2008-12-15-im-now-on-feedburner/</guid>
      <description>Well I&#39;ve moved a step closer to having my entire life monitored by Google, I now have my feed monitored via Feedburner. You can find me here: http://feeds.feedburner.com/linqToAaronPowell. Anyone who is nice enough to actually subscribe to my RSS could you update to my FB link please :)</description>
    </item>
    
    <item>
      <title>What&#39;s in a name?</title>
      <link>https://www.aaron-powell.com/posts/2008-12-15-whats-in-a-name/</link>
      <pubDate>Mon, 15 Dec 2008 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2008-12-15-whats-in-a-name/</guid>
      <description>Something that really annoys me is that when people don&#39;t use the correct name of a product, and by not using the name of the product completely miss what the product is for.  I think that certain people do do it just to stire me up, but for example a product I do a lot of work with is RedDot CMS. But RedDot produce another product, RedDot LiveServer which is completely different in what it does.</description>
    </item>
    
    <item>
      <title>Are ORM&#39;s bad?</title>
      <link>https://www.aaron-powell.com/posts/2008-12-14-are-orms-bad/</link>
      <pubDate>Sun, 14 Dec 2008 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2008-12-14-are-orms-bad/</guid>
      <description>So an interesting post come up on Stack Overflow (which, if you&#39;re not into you really should be) which was on the idea of ORM&#39;s and whether why are they becoming popular.  I&#39;m a big fan of ORM&#39;s and I find that the responses in the topic are very interesting. By and large the responses from people are for ORM&#39;s, but this negative response got me thinking. The author makes a very valid point that with an ORM change release for minor change (I use the term loosly as there&#39;s never such a thing as a minor change.</description>
    </item>
    
    <item>
      <title>Microsoft Ajax &amp;lt;3 jQuery</title>
      <link>https://www.aaron-powell.com/posts/2008-12-13-microsoft-ajax-hearts-jquery/</link>
      <pubDate>Sat, 13 Dec 2008 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2008-12-13-microsoft-ajax-hearts-jquery/</guid>
      <description>All ASP.NET developers should know by now that Microsoft is officiall supporting jQuery as part of Visual Studio 2008 (and beyond).  Well I&#39;ve finally got to doing a project where I&#39;m doing some very heavy AJAX implementations, and since it&#39;s a .NET build MS AJAX is already part of the loaded scripts, so I&#39;m using jQuery in a supplimentary manner.  And loving it!  The jQuery vs-doc file makes life a so much easier, full intellisense support with code documentation.</description>
    </item>
    
    <item>
      <title>Don&#39;t you worry about Planet Express, let me worry about blank</title>
      <link>https://www.aaron-powell.com/posts/2008-12-11-dont-you-worry-about-planet-express-let-me-worry-about-blank/</link>
      <pubDate>Thu, 11 Dec 2008 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2008-12-11-dont-you-worry-about-planet-express-let-me-worry-about-blank/</guid>
      <description>Well avid reader I&#39;m sure you are able to work out what the title is in reference to (bonus points if you got the episode right). Well there is a bit of a reason for it, but it&#39;s really just a show of how massively nerdy a life I lead.  Since I&#39;ve started developing the UIL I&#39;ve been asked a few times what is the point of it. Most obvious one was from Warren Buckley when I released Beta 1.</description>
    </item>
    
    <item>
      <title>Combining Paths</title>
      <link>https://www.aaron-powell.com/posts/2008-12-05-combining-paths/</link>
      <pubDate>Fri, 05 Dec 2008 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2008-12-05-combining-paths/</guid>
      <description>Maybe I&#39;m a slow learner or maybe this is one of those beautifully hidden features of the .NET framework but I came across a nifty little static method (thanks to this post on StackOverflow), Path.Combine(string1, string2);  I can&#39;t count the number of times I&#39;d written a method to ensure a trailing \, and append one if it didn&#39;t exist, all because of some lack-of-knowledge.  So keep this method handy in your knowledge bag for next time you are building file system paths!</description>
    </item>
    
    <item>
      <title>Umbraco Interaction Layer - RC1</title>
      <link>https://www.aaron-powell.com/posts/2008-12-05-umbraco-interaction-layer-rc1/</link>
      <pubDate>Fri, 05 Dec 2008 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2008-12-05-umbraco-interaction-layer-rc1/</guid>
      <description>Well I&#39;ve gone and beaten the Umbraco guys to RC1, although I&#39;m sure v4 RC1 is just around the corner.  But, none the less I&#39;m happy to have RC1 of the UIL ready for download. There&#39;s actually very little changed between Beta 1 and RC1. There&#39;s a little bit of a code clean up, and I&#39;ve addressed a bug which was found by a colleague of mine. She found that if you didn&#39;t generate all the Doc Types an exception was thrown if you&#39;d omitted a Doc Type which was a child relation of anyother.</description>
    </item>
    
    <item>
      <title>Once you go black...</title>
      <link>https://www.aaron-powell.com/posts/2008-12-02-once-you-go-black/</link>
      <pubDate>Tue, 02 Dec 2008 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2008-12-02-once-you-go-black/</guid>
      <description>So about 2 months ago I decided to start playing around with Visual Studio schemes to find something that was just right for dev work.  I&#39;d always been a standard VS scheme user, white back, standard colours for the fonts. The only thing I did differently was use Consolas 10pt font.
Consolas is a beautiful font for coding in and I highly recommend anyone who hasn&#39;t tried it to get it going.</description>
    </item>
    
    <item>
      <title>Mocking with SharePoint</title>
      <link>https://www.aaron-powell.com/posts/2008-11-25-mocking-with-sharepoint/</link>
      <pubDate>Tue, 25 Nov 2008 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2008-11-25-mocking-with-sharepoint/</guid>
      <description>So while going through my blogs I came across one about a new mocking framework specifically designed for unit testing within SharePoint. The blog can be found here&amp;nbsp;and from their website they have several demos of using Isolator for SharePoint mocking.  I&#39;m interested in having more of a play with it, and Typemock are offering a free license for so: Typemock are offering their new product for unit testing SharePoint called Isolator For SharePoint, for a special introduction price.</description>
    </item>
    
    <item>
      <title>Umbraco Interaction Layer - Beta 1</title>
      <link>https://www.aaron-powell.com/posts/2008-11-19-umbraco-interaction-layer-beta-1/</link>
      <pubDate>Wed, 19 Nov 2008 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2008-11-19-umbraco-interaction-layer-beta-1/</guid>
      <description>Well loyal readers I am proud to announce the release of the Umbraco Interaction Layer&amp;hellip; Beta 1! Yep that&amp;rsquo;s right, I&amp;rsquo;ve completed my primary set of features and now it&amp;rsquo;s just a matter of testing and a full testing and v1 will be out the door.  This release brings a few new features, it also brings in a few breaking changes from the preview releases. An as with Preview 3 this release supports Umbraco v3 and v4 (although it&amp;rsquo;s only been tested againt v4 Beta 2 Take 2, but from my understanding of Take 3 there are no changes to the API sections the UIL relies upon).</description>
    </item>
    
    <item>
      <title>Maintaining client sessions</title>
      <link>https://www.aaron-powell.com/posts/2008-11-13-maintaining-client-sessions/</link>
      <pubDate>Thu, 13 Nov 2008 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2008-11-13-maintaining-client-sessions/</guid>
      <description>In my recent blog browsing I came across an interesting post from Joel at See Joel Program on maintaining an ASP.NET session within an AJAX application.  It&#39;s a very good post and a very good solution Joel has come up with. I&#39;m a big fan of Joel&#39;s work, I love the client event pool, it&#39;s such a useful way to have cross-eventing in RIA&#39;s.  In the end of his post though he states that it&#39;s not an overly useful solution and that you can increase the session timeout rather than using client eventing to refresh the session.</description>
    </item>
    
    <item>
      <title>Umbraco Interaction Layer - Preview 3, take 2</title>
      <link>https://www.aaron-powell.com/posts/2008-11-11-umbraco-interaction-layer-preview-3-take-2/</link>
      <pubDate>Tue, 11 Nov 2008 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2008-11-11-umbraco-interaction-layer-preview-3-take-2/</guid>
      <description>Well I release the UIL Preview 3, and in my work&amp;nbsp;to support&amp;nbsp;Umbraco v4 Beta 2 I found a change with the GetAll property signatures.  As you may notice reading the comments in my blog post the long-reaching effects of the change&amp;nbsp;were not really considered and it actually resulted in a lot of breakages!  Well the Umbraco team has release Umbraco v4&amp;nbsp;Beta 2, Take 2&amp;nbsp;which corrects the issue, but subsequently left the UIL not working in the latest official v4 release!</description>
    </item>
    
    <item>
      <title>Umbraco Interaction Layer - Preview 3</title>
      <link>https://www.aaron-powell.com/posts/2008-11-06-umbraco-interaction-layer-preview-3/</link>
      <pubDate>Thu, 06 Nov 2008 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2008-11-06-umbraco-interaction-layer-preview-3/</guid>
      <description>In between the time spent packing and unpacking while moving house I&amp;rsquo;ve been working on my next release of the UIL, and I&amp;rsquo;m happy to say that it is ready and it is exciting.  There is a breaking change between Preview 2 and Preview 3, but there are also a few new juicy features.  Breaking changes  The biggest breaking change with Preview 3 is that I have removed the interface IDocType.</description>
    </item>
    
    <item>
      <title>C# 4.0</title>
      <link>https://www.aaron-powell.com/posts/2008-10-31-csharp-4/</link>
      <pubDate>Fri, 31 Oct 2008 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2008-10-31-csharp-4/</guid>
      <description>As most people would know PDC is on at the moment over in the US and as usual Microsoft is showing their bag-o-tricks about what they are working on.  With PDC we saw a CTP release of Visual Studio 2010, and with this brings the .NET 4.0 framework and the next incantation of the C# language, C# 4.0.  I recently watched a screen cast session from PDC on the future of the C# language (link here), a session run by Anders Hejlsberg who is an excellent authority in the area of programming language design.</description>
    </item>
    
    <item>
      <title>When == isn&#39;t equal</title>
      <link>https://www.aaron-powell.com/posts/2008-10-25-when-equal-isnt-equal/</link>
      <pubDate>Sat, 25 Oct 2008 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2008-10-25-when-equal-isnt-equal/</guid>
      <description>Earlier this month I did a post about common mistakes made by developers new to JavaScript but there&#39;s a point I forgot to cover which I see a lot of.  Nearly every language has a different way in which it handles equality. SQL has a single equal sign ala: SELECT [COLUMN1] FROM [Table] WHERE [COLUMN2] = &#39;some value&#39;   Or you have compiled languages like C# which use ==: if(someValue == someOtherValue){ }   Or for some wierd reason LINQ uses the keyword equal when it does join operations.</description>
    </item>
    
    <item>
      <title>The difference between client and server</title>
      <link>https://www.aaron-powell.com/posts/2008-10-06-the-difference-between-client-and-server/</link>
      <pubDate>Mon, 06 Oct 2008 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2008-10-06-the-difference-between-client-and-server/</guid>
      <description>Recently I&#39;ve been doing a lot of AJAX work, I&#39;m preparing a presentation on best practices. I&#39;ve also been helping some people at work who has been working on a very AJAX rich website.  One thing I&#39;ve found a lot over the years is that people seem to get confused about the different between server and client and what can be done from one or the other.
And being web developers not understanding the differences can be a big issues.</description>
    </item>
    
    <item>
      <title>Using LINQ to do email templates</title>
      <link>https://www.aaron-powell.com/posts/2008-09-27-using-linq-to-do-email-templates/</link>
      <pubDate>Sat, 27 Sep 2008 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2008-09-27-using-linq-to-do-email-templates/</guid>
      <description>So recently I was working on project where a client wanted to have customisable email templates which could be merged with data from their database so we store the email as an XML document and have a series of placeholders within it to allow easy editing to customise the wording, layout, etc.  But because there&#39;s quite a lot of different email &#34;data sources&#34; we wanted a nice and easy way so we didn&#39;t have to constantly write merge methods, having a single method which handles it all is the best idea.</description>
    </item>
    
    <item>
      <title>LINQPad</title>
      <link>https://www.aaron-powell.com/posts/2008-09-25-linqpad/</link>
      <pubDate>Thu, 25 Sep 2008 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2008-09-25-linqpad/</guid>
      <description>I&#39;m sure that a lot of people have played with LINQPad and if you haven&#39;t I strongly suggest you do.  In short LINQPad is a C#, VB &amp;amp; SQL code snippet tester.  A lot of people first started playing with LINQPad when it was initially released as it is a great tool to get starting with LINQ to SQL, it allowed you to connect to a database and then start writing LINQ queries and view their execusion along with their generated SQL.</description>
    </item>
    
    <item>
      <title>LINQ to XML to... Excel?</title>
      <link>https://www.aaron-powell.com/posts/2008-09-16-linq-to-xml-to-excel/</link>
      <pubDate>Tue, 16 Sep 2008 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2008-09-16-linq-to-xml-to-excel/</guid>
      <description>The other day one of the guys I work with was trying to work out the best way to generate an Excel document from .NET as the client had some wierd requirements around how the numerical data needed to be formatted (4 decimal places, but Excel treats a CSV to only show 2).  The next day my boss came across a link to a demo of how to use LINQ to XML to generate a XML file using the Excel schema sets which allow for direct opening in Excel.</description>
    </item>
    
    <item>
      <title>Did you forget something in your Umbraco site?</title>
      <link>https://www.aaron-powell.com/posts/2008-09-15-did-you-forget-something-in-your-umbraco-site/</link>
      <pubDate>Mon, 15 Sep 2008 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2008-09-15-did-you-forget-something-in-your-umbraco-site/</guid>
      <description>When deploying Umbraco into a new environment (a UAT, a production, etc) everyone has a check list that the tick off against. This will cover items like:  Modifying the web.config to use the right connection string/ smtp/ etc Setting the permissions on the file system Remove the Install folder And so on&amp;nbsp;   Remove the Install folder, huh? To be honest this is a step I often forget, the Install folder tends to float around like a bad smell simply cuz no one has gotten around to removing it, but it can&#39;t be that bad.</description>
    </item>
    
    <item>
      <title>Not so tasty cookies</title>
      <link>https://www.aaron-powell.com/posts/2008-09-11-not-so-tasty-cookies/</link>
      <pubDate>Thu, 11 Sep 2008 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2008-09-11-not-so-tasty-cookies/</guid>
      <description>As a general rule I&amp;rsquo;ll avoid web cookies, they&amp;rsquo;ve got a bad wrap, and are too often used and abused.  But for storing long life information on a client there&amp;rsquo;s not really anything better.  So recently I was putting them into a site which would check when you first hit it if the cookie exists, if it didn&amp;rsquo;t then create it. Having not used cookies for a while I&amp;rsquo;d lost touch with how they operate, especially in the ASP.</description>
    </item>
    
    <item>
      <title>The SharePoint community is in morning</title>
      <link>https://www.aaron-powell.com/posts/2009-09-05-the-sharepoint-community-is-in-morning/</link>
      <pubDate>Fri, 05 Sep 2008 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2009-09-05-the-sharepoint-community-is-in-morning/</guid>
      <description>So I&#39;ve just sat down to read over the pilling up blogs from the last few days when I came across this one from Karine Bosch.  Patrick Tisseghem passed away earlier today. Anyone who&#39;s not familiar with his name will most likely be familiar with his work through U2U, blogs, articles, books and training courses.  I was lucky enough to have met Patrick last year at a 5 day SharePoint training session, it was a good great course, despite the disaster with the training material not arriving nor the books being available at the time.</description>
    </item>
    
    <item>
      <title>Does the world need another browser?</title>
      <link>https://www.aaron-powell.com/posts/2008-09-03-does-the-world-need-another-browser/</link>
      <pubDate>Wed, 03 Sep 2008 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2008-09-03-does-the-world-need-another-browser/</guid>
      <description>So today Google released their foray into the web browser market with Google Chrome and I&#39;m sitting here wondering does the world really need another browser?  Lets look at the big players in the browser market:  Internet Explorer Mozilla FireFox Apple&#39;s Safari Opera
   Then there&#39;s piles of smaller market share browsers (which argueably Opera and Safari fall into the category of).  Each browser offers its own pros and cons.</description>
    </item>
    
    <item>
      <title>Umbraco Membership Trap</title>
      <link>https://www.aaron-powell.com/posts/2008-09-02-umbraco-membership-trap/</link>
      <pubDate>Tue, 02 Sep 2008 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2008-09-02-umbraco-membership-trap/</guid>
      <description>So today I was working to fix a problem on a site of ours which was to do with logging out of a site which uses the Umbraco Membership as the authentication provider.
The bug was that when you had to click the logout button twice to log out. Clicking logout once would just refresh the page with nothing apparently happening.  Firing up the debugger I start have a look, making sure that the events are being fired when they should and so on.</description>
    </item>
    
    <item>
      <title>Optimising UpdatePanels</title>
      <link>https://www.aaron-powell.com/posts/2008-08-28-optimising-updatepanels/</link>
      <pubDate>Thu, 28 Aug 2008 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2008-08-28-optimising-updatepanels/</guid>
      <description>So it can be generally agreed that UpdatePanels are evil. Plenty of people have blogged about this, there&#39;s a good post here&amp;nbsp;which goes over it in more details.  To give a brief background the reason they are not a great idea is because of what they are, just a wrapper for the standard PostBack request to force it via XHttp rather than normal.  This results in more data being submitted and returned than is really needed, so on big pages, or big requests this can negate the point of using AJAX as you&#39;re still submitting a lot of data.</description>
    </item>
    
    <item>
      <title>Paging data client side</title>
      <link>https://www.aaron-powell.com/posts/2008-08-28-paging-data-client-side/</link>
      <pubDate>Thu, 28 Aug 2008 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2008-08-28-paging-data-client-side/</guid>
      <description>So in my last post I looked at how to use an UpdatePanel to do data paging and then optimising the HTML to get the best performance from our requests, but it still wasn&#39;t optimal.  Although we can optimise the UpdatePanel response we can&#39;t do much about the request, and especially with regards to the ViewState within a page, which is the real killer.
This is when we turn to doing client-side paging using client-side templates.</description>
    </item>
    
    <item>
      <title>Mac is dead again</title>
      <link>https://www.aaron-powell.com/posts/2008-08-21-mac-is-dead-again/</link>
      <pubDate>Thu, 21 Aug 2008 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2008-08-21-mac-is-dead-again/</guid>
      <description>Well again my MBP is back to the repairer, I&#39;ve been having intermitent issues with the keyboard and mouse since it last was repaired (on an unrelated matter) and finally I&#39;d had enough.  I took it down to the local Mac dealer and handed it over, to be told I&#39;d be without it for around 10 days :(  It&#39;s going to be a long 10 days, that&#39;s for sure.</description>
    </item>
    
    <item>
      <title>*Preview* - Umbraco interaction layer</title>
      <link>https://www.aaron-powell.com/posts/2008-08-13-preview-umbraco-interaction-layer/</link>
      <pubDate>Wed, 13 Aug 2008 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2008-08-13-preview-umbraco-interaction-layer/</guid>
      <description>So I&#39;ve been doing more and more work with the Umbraco API of recent (particularly in regards to my website) but I&#39;m getting more and more frustrated at the interaction which occurs at an API level (not to mention that it&#39;s rather ugly in some places).  When you&#39;re working with documents which are using extended document types (and how often will Id and Text be enough data?). You&#39;re constantly populating code with getProperty(alias) and performing null checks, default data handling, etc.</description>
    </item>
    
    <item>
      <title>ASP.NET Virtual Earth control</title>
      <link>https://www.aaron-powell.com/posts/2008-08-13-aspnet-virtualearth-control/</link>
      <pubDate>Wed, 13 Aug 2008 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2008-08-13-aspnet-virtualearth-control/</guid>
      <description>So I was going through my blog feeds the other and came across a post about the CTP release of an ASP.NET Virtual Earth server control (Channel9 video here).  I&#39;m doing quite a bit of work with Google Maps at the moment so I was interested in seeing what was available in this Microsoft incarnation.  Well to be honest I was really quite dissapointed in the attitude of the people doing this, in regards to what an ASP.</description>
    </item>
    
    <item>
      <title>AaronPowell.MSBuild.Tasks v0.2</title>
      <link>https://www.aaron-powell.com/posts/2008-08-09-aaronpowell-msbuild-tasks-v02/</link>
      <pubDate>Sat, 09 Aug 2008 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2008-08-09-aaronpowell-msbuild-tasks-v02/</guid>
      <description>Ok, well it&#39;s actually v0.2.3143.41238 but who&#39;s counting 😛  So I&#39;ve got a new version of my MSBuild tasks ready, and in this new minor release I added a new namespace and two new tasks. The new namespace is AaronPowell.MSBuild.Tasks.Sql and the new tasks are DatabaseBackup and DatabaseRestore.
I&#39;m sure you&#39;re smart enough to work out what these two tasks do, but for those who are a little slow to catch on.</description>
    </item>
    
    <item>
      <title>Extending Umbraco Members</title>
      <link>https://www.aaron-powell.com/posts/2008-08-07-extending-umbraco-members/</link>
      <pubDate>Thu, 07 Aug 2008 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2008-08-07-extending-umbraco-members/</guid>
      <description>Recently we&#39;ve had several projects which have come through in which we are building a solution in Umbraco and the client wants to have memberships within the site.  Umbraco 3.x has a fairly neat membership system but it&#39;s a bit limited when you want to interact with the member at a code level. Because members are just specialised nodes they can quite easily have custom properties put against them, but reading them in your code is less than appealing.</description>
    </item>
    
    <item>
      <title>Unit Testing LINQ to SQL</title>
      <link>https://www.aaron-powell.com/posts/2008-06-10-unit-testing-linq-to-sql/</link>
      <pubDate>Tue, 10 Jun 2008 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/posts/2008-06-10-unit-testing-linq-to-sql/</guid>
      <description>Unit testing is a vital role of development these days, and with recent development within the .NET framework and the Visual Studio system it is easier than ever to create unit tests.     One pain point with unit testing a database-driven application is always the state of the database prior to the tests and after the tests. You have to make a call as to whether you have a separate database which you run your tests against or use your primary database and potentially fill it with junk results all the time.</description>
    </item>
    
    <item>
      <title></title>
      <link>https://www.aaron-powell.com/about/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/about/</guid>
      <description>Hi, my name&amp;rsquo;s Aaron Powell and I&amp;rsquo;m a Technical Presales Consultant (formerly Principal Consultant) at Readify, one of Australia&amp;rsquo;s top software consultancies. My area of specialty is front-end web development, focusing on architecture around SPA and other UI-heavy web applications.
I&amp;rsquo;m also a passionate Open Source developer, with one of my main pet projects being Chauffeur an automation tool for the Umbraco CMS.
I do quite a bit of community work and public speaking, you&amp;rsquo;ll often find me at user groups in Sydney such as ALT.</description>
    </item>
    
    <item>
      <title></title>
      <link>https://www.aaron-powell.com/speaking/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://www.aaron-powell.com/speaking/</guid>
      <description>I&amp;rsquo;ve got a couple of upcoming speaking events:
 23rd Feb, Automating Umbraco @ Umbraco Down Under Festival, aka uduf 16th May, JavaScript Security @ NDC Security Australia 11th - 15th June, To be determined @ NDC Oslo  </description>
    </item>
    
  </channel>
</rss>