<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:blogChannel="http://backend.userland.com/blogChannelModule" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>Dave Hawes Blog</title>
    <description>It is all about delivering</description>
    <link>http://blog.davehawes.com/</link>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>BlogEngine.NET 1.5.0.7</generator>
    <language>en-GB</language>
    <blogChannel:blogRoll>http://blog.davehawes.com/opml.axd</blogChannel:blogRoll>
    <blogChannel:blink>http://www.dotnetblogengine.net/syndication.axd</blogChannel:blink>
    <dc:creator>David Hawes</dc:creator>
    <dc:title>Dave Hawes Blog</dc:title>
    <geo:lat>0.000000</geo:lat>
    <geo:long>0.000000</geo:long>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/DaveHawesBlog" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
      <title>Coding for Charity @ CharityHack ‘09</title>
      <description>&lt;p&gt;I signed up for this &lt;a href="http://www.x.com"&gt;Paypal&lt;/a&gt; event 5 weeks ago when I first saw it on Twitter - &lt;a href="http://charityhack.org/"&gt;CharityHack&lt;/a&gt;. I thought it was going to be a couple of days of workshops where Paypal show developers how to use their new Adaptive Payments API…. how wrong was I!&lt;/p&gt;  &lt;p&gt;The penny only dropped  about what the event was really going to be like last Thursday morning, 2 days before the event. I was reading their website and reading the “What to bring” section and it included a sleeping bag, I had never been to a workshop like this before.&lt;/p&gt;  &lt;p&gt;See &lt;a href="https://www.paypal-talk.co.uk/About-us/News-stories/News/September-2009/PayPal-UK-Charity-Hack/"&gt;PayPals lets talk page&lt;/a&gt; for a more detailed run down (plus a video which I get a couple of seconds in!)&lt;/p&gt;  &lt;p&gt;The event was in fact an opportunity for Paypal, &lt;a href="http://www.justgiving.com"&gt;JustGiving&lt;/a&gt; and &lt;a href="http://www.missionfish.org.uk"&gt;MissionFish&lt;/a&gt; to talk to developers about their new APIs then us developers were given 24hours to create an application that could raise money for charity (preferably using the APIs we had been told about). &lt;/p&gt;  &lt;p&gt;The idea I came up with in the hour after the penny dropped was to create an application that local volunteers can log their expenses when doing charity work on a website. The charity that they work for would then approve the expenses and they become visible to the public to pay on the charities behalf. If at the end of the month the expense had not been paid then the charity would have to settle up as they are obliged to do.&lt;/p&gt;  &lt;p&gt;A member of the public would be able to donate with just a few easy steps:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Search for volunteers in their area with a postcode / radius search &lt;/li&gt;    &lt;li&gt;Select the volunteers they want to pay &lt;/li&gt;    &lt;li&gt;Click “Donate” and make a single payment to the charity for the amount. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Using the new Paypal adaptive payment API it is possible to split the donation behind the scenes and distribute it to the individual volunteers automatically, which is really cool. This is called a “Chained Payment”.&lt;/p&gt;  &lt;p&gt;Our team name – &lt;/p&gt;  &lt;h3&gt;Redbull and Coffee&lt;/h3&gt;  &lt;p&gt;&lt;a href="http://blog.davehawes.com/image.axd?picture=redbull-can.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="redbull-can" border="0" alt="redbull-can" src="http://blog.davehawes.com/image.axd?picture=redbull-can_thumb.jpg" width="120" height="120" /&gt;&lt;/a&gt; &lt;a href="http://blog.davehawes.com/image.axd?picture=cup-of-coffee.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="cup-of-coffee" border="0" alt="cup-of-coffee" src="http://blog.davehawes.com/image.axd?picture=cup-of-coffee_thumb.jpg" width="154" height="117" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;I teamed up with one of the only other .Net developers in the room of over 100. His name was &lt;a href="http://www.ice32.co.uk"&gt;Lee Mallon&lt;/a&gt; and immediately struck up a great working relationship. Lee has a great idea as well around allowing skilled professionals to donate their time to charity, however after discussing it further we felt that idea was just too big for a 24hour effort.&lt;/p&gt;  &lt;p&gt;The Paypal venue was great and the Paypal team kept everyone very well fed and watered through the 24hours. There were lots of ideas being developed and a really nice feel to the whole event. Lee and myself were on a roll and before we knew it we had spent 16hours straight working on the application and it sort of worked! Other attendees were also hard at work, the &lt;a href="http://www.lovep.ie/"&gt;LovePie&lt;/a&gt; team had event resorted to getting their sweatbands out. &lt;/p&gt;  &lt;p&gt;&lt;iframe align="center" src="http://www.flickr.com/slideShow/index.gne?set_id=72157622306877865" width="500" height="500" frameBorder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;center&gt;&lt;small&gt;Created with &lt;a href="http://www.flickrslideshow.com"&gt;flickr slideshow&lt;/a&gt;.&lt;/small&gt;&lt;/center&gt;&lt;/p&gt;  &lt;p&gt;Lee and I then spent another 7 hours making it look sort of presentable and testing that it all worked. After 23hours and 30mins we had finished out “Local Volunteers” charity application! We were very very chuffed.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.davehawes.com/image.axd?picture=CH09-Finished.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="CH09-Finished" border="0" alt="CH09-Finished" src="http://blog.davehawes.com/image.axd?picture=CH09-Finished_thumb.jpg" width="184" height="244" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I must state again how great the Paypal team where. The had flown their key personnel over from the American who were on hand through the night to help when we had questions and even helped me debug a rather tricky error which turned out to be a copy and paste error by me :s (sorry Rob – it was 2.30am). There were also techies from JustGiving and MissionFish on hand as well.&lt;/p&gt;  &lt;p&gt;After 24hours all the teams were invited to present what they had achieved in the previous 24hours. There were many ideas which can be found on the Charity Hack wiki. I got a particular buzz when Musaab At-Taras, the Director of PayPal Platform commented that we had done “a really great job”.&lt;/p&gt;  &lt;p&gt;There was one team that had worked on a particularly good idea, called CharityFrag, which I feel will have great appeal to a largely untapped community by charities. It was a mod for a First Person Shooter game. Players pledged money to charity before entering the game and picked their own charity. When they killed someone in game they took some of that persons money for their charity, equally when they were killed some of their money went to their opponents charity. This was all fed to a website keeping a real-time tracking on who had donated what charities – it is a truly great idea I hope their prize of a trip for San Fran to attend the Paypal conference there is the springboard required to get this idea into a production quality solution.&lt;/p&gt;  &lt;p&gt;Lee and I were told we came a close second and got a special mention for our effort, which means a lot. Talking to Lee afterwards we both agreed that the best team had won.&lt;/p&gt;  &lt;p&gt;So my hacking weekend cherry is broken and I would strongly recommend developers should seek out and got to these sort of events – it is a great social event and you can learn lots of new skills. My goal is to do one every 6 months.&lt;/p&gt;  &lt;p&gt;I also plan to get our Local Volunteers application live in the next 3 weeks and hope that it will be a useful tool for raising money.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/xsCL7TGeAtWuBOk-N9q2ETRzBd4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xsCL7TGeAtWuBOk-N9q2ETRzBd4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/xsCL7TGeAtWuBOk-N9q2ETRzBd4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xsCL7TGeAtWuBOk-N9q2ETRzBd4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DaveHawesBlog/~4/pzTTCzuKQmM" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/DaveHawesBlog/~3/pzTTCzuKQmM/post.aspx</link>
      <author>davehawes</author>
      <comments>http://blog.davehawes.com/post/2009/09/22/Coding-for-Charity-CharityHack-e2809809.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.davehawes.com/post.aspx?id=6dbc247f-2fec-4610-9fed-19f29e27dabe</guid>
      <pubDate>Tue, 22 Sep 2009 13:11:03 +0000</pubDate>
      <category>C#</category>
      <category>charity</category>
      <category>hacking</category>
      <category>paypal</category>
      <dc:publisher>davehawes</dc:publisher>
      <pingback:server>http://blog.davehawes.com/pingback.axd</pingback:server>
      <pingback:target>http://blog.davehawes.com/post.aspx?id=6dbc247f-2fec-4610-9fed-19f29e27dabe</pingback:target>
      <slash:comments>18</slash:comments>
      <trackback:ping>http://blog.davehawes.com/trackback.axd?id=6dbc247f-2fec-4610-9fed-19f29e27dabe</trackback:ping>
      <wfw:comment>http://blog.davehawes.com/post/2009/09/22/Coding-for-Charity-CharityHack-e2809809.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.davehawes.com/syndication.axd?post=6dbc247f-2fec-4610-9fed-19f29e27dabe</wfw:commentRss>
    <feedburner:origLink>http://blog.davehawes.com/post.aspx?id=6dbc247f-2fec-4610-9fed-19f29e27dabe</feedburner:origLink></item>
    <item>
      <title>Using CAPTCHA in the physical world</title>
      <description>&lt;p&gt;One thing that I have had to do over the last year is to hire people to help build by websites. Anyone that has been in the hiring position will know the pain that follows placing an advert… the deluge of CV’s which are generally very poor quality. I was discussing recently with some colleagues the filtering technique for applicants I use which has been very successful for me. It was pointed out to me that I was essentially implementing a &lt;a title="Wikipedia link to definition of CAPTCHA" href="http://en.wikipedia.org/wiki/Captcha" target="_blank"&gt;CAPTCHA&lt;/a&gt; system – but in the physical rather than virtual world.&lt;/p&gt;  &lt;p&gt;The idea is  simple, just create a simple task which makes the applicant think and spend a little bit of time on, just to show they are not just carpet bombing jobs with their CV. I generally choose the task to match the job. &lt;/p&gt;  &lt;p&gt;For example:&lt;/p&gt;  &lt;p&gt;1) If I’m looking for a web developer I might ask them to list 3 websites they like and why and / or write 150 words on an Internet trend they find interesting.&lt;/p&gt;  &lt;p&gt;2) If I’m looking for someone to talk to customers I have setup a voicemail box and ask them to call it and read out a simple set passage.&lt;/p&gt;  &lt;p&gt;What has been my success? Applicant numbers were well down but I’ve have a high percentage of hires from the people I interview. I am still looking for a MS Access developer after 6 weeks but I am not wasting my time going through sub-standard CV’s or having awkward interviews where the person is clearly not up to the job. I still find it amazing that people submit CV’s and expect me to give then a job worth 10’s of 1000’s of pounds even though they cannot be bothered to complete a simple task for me.&lt;/p&gt;  &lt;p&gt;I’m sure people can dream up their own small tests just to make sure that the person applying has properly read the job description and really does want the job – rather than the robotic mass submitting that seems to go on.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/zwdZoZXK2dIpmoTJgXURvyA1bks/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zwdZoZXK2dIpmoTJgXURvyA1bks/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/zwdZoZXK2dIpmoTJgXURvyA1bks/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zwdZoZXK2dIpmoTJgXURvyA1bks/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DaveHawesBlog/~4/lvoO4Xu-Nb8" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/DaveHawesBlog/~3/lvoO4Xu-Nb8/post.aspx</link>
      <author>davehawes</author>
      <comments>http://blog.davehawes.com/post/2009/08/27/Using-CAPTCHA-in-the-physical-world.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.davehawes.com/post.aspx?id=d487ceaf-0050-4cff-ab0a-a3d24b1bdf2d</guid>
      <pubDate>Thu, 27 Aug 2009 11:27:58 +0000</pubDate>
      <category>Software Developement</category>
      <category>Human Interaction</category>
      <dc:publisher>davehawes</dc:publisher>
      <pingback:server>http://blog.davehawes.com/pingback.axd</pingback:server>
      <pingback:target>http://blog.davehawes.com/post.aspx?id=d487ceaf-0050-4cff-ab0a-a3d24b1bdf2d</pingback:target>
      <slash:comments>4</slash:comments>
      <trackback:ping>http://blog.davehawes.com/trackback.axd?id=d487ceaf-0050-4cff-ab0a-a3d24b1bdf2d</trackback:ping>
      <wfw:comment>http://blog.davehawes.com/post/2009/08/27/Using-CAPTCHA-in-the-physical-world.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.davehawes.com/syndication.axd?post=d487ceaf-0050-4cff-ab0a-a3d24b1bdf2d</wfw:commentRss>
    <feedburner:origLink>http://blog.davehawes.com/post.aspx?id=d487ceaf-0050-4cff-ab0a-a3d24b1bdf2d</feedburner:origLink></item>
    <item>
      <title>Talking about my websites @ The Skiff in Brighton and a reflection on working for The Man</title>
      <description>&lt;p&gt;It was 2 weeks ago now but I had the privilege of giving a 20 minute talk at the £5 App event in Brighton.&lt;/p&gt;  &lt;p&gt;My slide deck of the talk will be at the bottom of this post for download if anyone is interested. The event was recorded by &lt;a title="Ian Ozsvald blog" href="http://ianozsvald.com/" target="_blank"&gt;Ian Ozsvald&lt;/a&gt; and posted on his blog as well as the &lt;a title="£5 App Event" href="http://fivepoundapp.com/meetup/18/" target="_blank"&gt;£5 App website&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;I talked about quitting my job and hiring a small team to help develop the websites I had created into something with more quality and could be a commercial success. I wish I had had a little more time as I didn’t get do demo any of the functionality but it was great to be able to talk about them! The websites are &lt;a href="http://www.skillbook.co.uk"&gt;http://www.skillbook.co.uk&lt;/a&gt; &lt;a href="http://www.safetytrainingnetwork.co.uk"&gt;http://www.safetytrainingnetwork.co.uk&lt;/a&gt; and &lt;a href="http://www.trainingcoursebooker.com"&gt;http://www.trainingcoursebooker.com&lt;/a&gt; .&lt;/p&gt;  &lt;p&gt;On reflection there was one point which I wish I had made. I have spent most of my career working for large companies which we can call ‘The Man’ and at the talk I was congratulated for ditching ‘The Man’ and doing my own thing. However this implies that working for ‘The Man’ is a bad thing and this is where I wish I had made the following point.&lt;/p&gt;  &lt;p&gt;In my opinion getting experience working for ‘The Man’ is a very valuable as long as you use it in the right way. There is no doubt that the companies I have worked for have exploited my skills to make them money, however I have learnt a lot about how things should be done and taken advantage of the opportunities they had to offer. I have been sent on lots of training, worked with very experience people, worked on large projects, given teams of people to run, worked with new technologies, been show technical best practice and this is only on the professional side of things. Don’t forget that you can earn a very good salary from The Man and have added benefits such as pensions and health insurance, these are all things that I have had to give up to follow my dream. My main bit of advice is to update your CV every year when working for The Man, if you find you have nothing to add to it one year then it is time to move on or up, don’t get stuck in a rut.&lt;/p&gt;  &lt;p&gt;So here I am now after spending all the money I had and borrowing as much as I can to finance my websites. They have just started to generate a trickle of income which seems to be building week on week and I am wondering what options I have in front of me to keep my dream going, as I think I just need more time for things to pick up now. I have looked at grants but this doesn’t seem possible, I have spoken to Business Link who were as helpful as a chocolate teapot, I have spoken to the bank who will want the rest of the equity in my house and proof my website can make money, I’ve maxed out the overdraft at the bank of Mum and Dad, do I start looking for an Angel investor – quiet possibly – but do I need to give away equity at this stage? Get rid of my team? NO NO NO – I have a great team and they have to stay and work on the sites. The solution I have come up with is to go back to ‘The Man’ as a contractor. This time it is a large utility company, the pay is good and should cover the salaries of the rest of the team while the contract lasts and in a few months I am expecting the trickle of income to have swelled to a decent stream or perhaps a river, if it hasn’t then perhaps another avenue will be pursued.&lt;/p&gt;  &lt;p&gt;My point here is that having had experience in the past working for ‘The Man’ has given me options now to find a new job for ‘The Man’ in the middle of the recession to continue financing my project. You can only get these jobs if you have the right experience so working for ‘The Man’ is not always a bad thing – just always try your hardest, don’t get too comfortable and become stuck in a rut!&lt;/p&gt; &lt;object width="400" height="227"&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=5664766&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" /&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=5664766&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="227"&gt;&lt;/embed&gt;&lt;/object&gt;  &lt;p&gt;&lt;a href="http://vimeo.com/5664766"&gt;£5 App #18 - David Hawes on Safety Training Network&lt;/a&gt; from &lt;a href="http://vimeo.com/user1893982"&gt;Ian Ozsvald&lt;/a&gt; on &lt;a href="http://vimeo.com"&gt;Vimeo&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.davehawes.com/file.axd?file=2009%2f8%2fFivePoundApp.ppt" target="_blank"&gt;My slide deck&lt;/a&gt; (very basic I’m afraid!!)&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/QXX72GF5Z2AkZwdbDMIplC-Dd6g/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/QXX72GF5Z2AkZwdbDMIplC-Dd6g/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/QXX72GF5Z2AkZwdbDMIplC-Dd6g/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/QXX72GF5Z2AkZwdbDMIplC-Dd6g/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DaveHawesBlog/~4/oYGa4AI9ZdY" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/DaveHawesBlog/~3/oYGa4AI9ZdY/post.aspx</link>
      <author>davehawes</author>
      <comments>http://blog.davehawes.com/post/2009/07/28/Talking-about-my-websites-The-Skiff-in-Brighton-and-a-reflection-on-working-for-The-Man.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.davehawes.com/post.aspx?id=f9613401-1541-4ce0-afb3-1a9af9bd7570</guid>
      <pubDate>Tue, 28 Jul 2009 01:03:00 +0000</pubDate>
      <category>Projects</category>
      <category>Software Developement</category>
      <dc:publisher>davehawes</dc:publisher>
      <pingback:server>http://blog.davehawes.com/pingback.axd</pingback:server>
      <pingback:target>http://blog.davehawes.com/post.aspx?id=f9613401-1541-4ce0-afb3-1a9af9bd7570</pingback:target>
      <slash:comments>11</slash:comments>
      <trackback:ping>http://blog.davehawes.com/trackback.axd?id=f9613401-1541-4ce0-afb3-1a9af9bd7570</trackback:ping>
      <wfw:comment>http://blog.davehawes.com/post/2009/07/28/Talking-about-my-websites-The-Skiff-in-Brighton-and-a-reflection-on-working-for-The-Man.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.davehawes.com/syndication.axd?post=f9613401-1541-4ce0-afb3-1a9af9bd7570</wfw:commentRss>
    <feedburner:origLink>http://blog.davehawes.com/post.aspx?id=f9613401-1541-4ce0-afb3-1a9af9bd7570</feedburner:origLink></item>
    <item>
      <title>When explicitly binding asp:ListView the first item’s EditItem == null in the ItemUpdating event</title>
      <description>&lt;p&gt;I have just had one of those weeks where nothing seems to be simple, now finally after countless hours of head scratching I think I have a solution to a problem that has dogged me for over a month now.&lt;/p&gt;  &lt;p&gt;I am using an asp:ListView on the Online File Store of my &lt;a href="http://www.skillbook.co.uk"&gt;http://www.skillbook.co.uk&lt;/a&gt; website (check it out, it’s free to sign up to!!). I decided to explicitly bind my data to the control rather than use the &amp;lt;%# Bind(“”) %&amp;gt; syntax for reasons that are not important. During testing we had reports that when saving an edit of the first item in a page an exception was being thrown the good old ‘object reference is not equal to an object’.&lt;/p&gt;  &lt;p&gt;Back on the Dev environment I could not reproduce it. On the internal server I could not reproduce it. On the live server it was falling over like my 5 week old baby trying to stand when I clicked save.&lt;/p&gt;  &lt;p&gt;I have found other people with this problem:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://forums.asp.net/p/1275744/2424258.aspx#2424258" href="http://forums.asp.net/p/1275744/2424258.aspx#2424258"&gt;http://forums.asp.net/p/1275744/2424258.aspx#2424258&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.ureader.com/msg/14254035.aspx" href="http://www.ureader.com/msg/14254035.aspx"&gt;http://www.ureader.com/msg/14254035.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;but no solution. With the pressure on to fix this in the live environment I have finally found a solution that seems to work, and I’m afraid that it is &lt;a href="http://www.urbandictionary.com/define.php?term=phugly" target="_blank"&gt;phugly&lt;/a&gt; code.&lt;/p&gt;  &lt;p&gt;With the listView.EditItem == null the answer for me was just to get the item out of the ListView using the index that is sent through as part of the ListViewUpdateEventArgs.&lt;/p&gt;  &lt;p&gt;So instead of:&lt;/p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ASPxTextBox txtName = (ASPxTextBox)listView.&lt;font color="#ff0000"&gt;EditItem&lt;/font&gt;.FindControl(&amp;quot;txtName&amp;quot;);  &lt;br /&gt;  &lt;p&gt;It becomes:&lt;/p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ASPxTextBox txtName = (ASPxTextBox)listView.&lt;font color="#ff0000"&gt;Items[e.ItemIndex].&lt;/font&gt;FindControl(&amp;quot;txtName&amp;quot;);  &lt;br /&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I really hope this helps some people out there!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ivFxMiBmkfDsP5voV_YJGWgClHQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ivFxMiBmkfDsP5voV_YJGWgClHQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ivFxMiBmkfDsP5voV_YJGWgClHQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ivFxMiBmkfDsP5voV_YJGWgClHQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DaveHawesBlog/~4/fZHRD7Px5zQ" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/DaveHawesBlog/~3/fZHRD7Px5zQ/post.aspx</link>
      <author>davehawes</author>
      <comments>http://blog.davehawes.com/post/2009/07/27/When-explicitly-binding-aspListView-the-first-iteme28099s-EditItem-3d3d-null-in-the-ItemUpdating-event.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.davehawes.com/post.aspx?id=0d9f7808-b49a-4c59-afc9-5b3ce585f26e</guid>
      <pubDate>Mon, 27 Jul 2009 22:51:40 +0000</pubDate>
      <category>ASP.net</category>
      <dc:publisher>davehawes</dc:publisher>
      <pingback:server>http://blog.davehawes.com/pingback.axd</pingback:server>
      <pingback:target>http://blog.davehawes.com/post.aspx?id=0d9f7808-b49a-4c59-afc9-5b3ce585f26e</pingback:target>
      <slash:comments>17</slash:comments>
      <trackback:ping>http://blog.davehawes.com/trackback.axd?id=0d9f7808-b49a-4c59-afc9-5b3ce585f26e</trackback:ping>
      <wfw:comment>http://blog.davehawes.com/post/2009/07/27/When-explicitly-binding-aspListView-the-first-iteme28099s-EditItem-3d3d-null-in-the-ItemUpdating-event.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.davehawes.com/syndication.axd?post=0d9f7808-b49a-4c59-afc9-5b3ce585f26e</wfw:commentRss>
    <feedburner:origLink>http://blog.davehawes.com/post.aspx?id=0d9f7808-b49a-4c59-afc9-5b3ce585f26e</feedburner:origLink></item>
    <item>
      <title>A geo-location and postcode search API based on problems I’ve solved for other projects</title>
      <description>&lt;p&gt;
This article goes through a simple api I have created and released to enable people to integrate postcode lookup features in their own applications. In a nutshell people give me the ids and postcodes of their items, which I store. Then these id&amp;rsquo;s can be searched for by providing a postcode and a radius. 
&lt;/p&gt;
&lt;p&gt;
I created this service after having had a couple of enquires to my business about people wanting to have the postcode lookup feature I have got on my on my &lt;a href="http://www.safetytrainingnetwork.co.uk" target="_blank" title="Safety Training Network website"&gt;www.safetytrainingnetwork.co.uk&lt;/a&gt; and &lt;a href="http://www.trainingcoursebooker.com" target="_blank" title="Training Course Booker website"&gt;www.trainingcoursebooker.com&lt;/a&gt; websites in their software. 
&lt;/p&gt;
&lt;p&gt;
I&amp;nbsp;have just extended the service to us the free&amp;nbsp;&lt;a href="http://www.freethepostcode.org/"&gt;http://www.freethepostcode.org/&lt;/a&gt;&amp;nbsp;service which I think is a great idea and I hope it continues to grow as it removes the licencing headaches I was having by using Multimap. My service can still use Multimap for the Geolocation data as long as the user has a valid Multimap&amp;nbsp;account (contact me if you need more details). 
&lt;/p&gt;
&lt;p&gt;
 
&lt;/p&gt;
&lt;p&gt;
My initial thought was to be hired to do a bit of work on their projects but this has not always been as easy as it first seams, especially with geographical location problems! So I decided it would be best to create an easy and simple api for people to signup and use. I released the first version yesterday and I&amp;rsquo;ll give a brief outline of how it is put together here. 
&lt;/p&gt;
&lt;p&gt;
The first consideration is that I need to store the user&amp;rsquo;s data in my database to enable me to search for items within a certain radius. But why would I want all the data? Some of it might be commercially sensitive and not allowed to be stored in a 3rd party&amp;rsquo;s database. The only thing I really need is the an id and the postcode of whatever the user is wanting to make searchable. I can return these Id&amp;rsquo;s to them as part of a search enabling them to retrieve the data from their database. 
&lt;/p&gt;
&lt;p&gt;
To capture the data I need to make it easy for users to give and maintain their data in my system. I needed a simple Create, Retrieve, Update and Delete (CRUD) for my service. As this is a web service I decided to use a simple querystring API. 
&lt;/p&gt;
&lt;h3&gt;&lt;u&gt;Creating and Updating Data&lt;/u&gt;&lt;/h3&gt;
&lt;p&gt;
Lets deal with the Create and Updates first. To add data you need an account (please &lt;a href="http://blog.davehawes.com/contact.aspx"&gt;contact me&lt;/a&gt; if you want one &amp;ndash; i&amp;rsquo;ll be coming up with a subscription package over the next few weeks). You can then create a &amp;lsquo;Group&amp;rsquo; and you add items to that group. I&amp;rsquo;ve created a demo account for people to play with, to add an item to the database use the following url: 
&lt;/p&gt;
&lt;p&gt;
&lt;a rel="nofollow" href="http://services.seethelink.co.uk/api/AddItemStoreageItem.ashx?accountId=319b8e52-5197-428a-b67a-a884acf76b9a&amp;amp;groupId=1&amp;amp;externalId=5&amp;amp;postcode=PO49JS" target="_blank" title="Add data to api service"&gt;http://services.seethelink.co.uk/api/AddItemStoreageItem.ashx?accountId=319b8e52-5197-428a-b67a-a884acf76b9a&amp;amp;groupId=1&amp;amp;externalId=5&amp;amp;postcode=PO49JS&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
So the accountId parameter is what you get when you subscribe. 
&lt;/p&gt;
&lt;p&gt;
The groupId parameter is so you can have different collections in our account that you can query. 
&lt;/p&gt;
&lt;p&gt;
The externalId is the Id of the object in the users system. 
&lt;/p&gt;
&lt;p&gt;
The postcode is, well, the postcode of the item. 
&lt;/p&gt;
&lt;p&gt;
That&amp;rsquo;s it. If you want to update an items location just send in the query string again with the same externalId parameter. 
&lt;/p&gt;
&lt;h3&gt;&lt;u&gt;Retrieving Data&lt;/u&gt;&lt;/h3&gt;
&lt;p&gt;
This is the useful bit of the whole service. The query string is this: 
&lt;/p&gt;
&lt;p&gt;
&lt;a rel="nofollow" href="http://services.seethelink.co.uk/api/GetItems.ashx?accountId=319b8e52-5197-428a-b67a-a884acf76b9a&amp;amp;groupId=1&amp;amp;postcode=PO49JS&amp;amp;radius=60" target="_blank" title="Postcode search link"&gt;http://services.seethelink.co.uk/api/GetItems.ashx?accountId=319b8e52-5197-428a-b67a-a884acf76b9a&amp;amp;groupId=1&amp;amp;postcode=PO49JS&amp;amp;radius=60&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
This query will return all items in group 1 within 60 miles of the postcode PO49JS as a simple xml document: 
&lt;/p&gt;
&lt;p&gt;
It gives the user a list of id&amp;rsquo;s and the distance that id is from the source postcode. The user can then use this list of id&amp;rsquo;s to retrieve the relevant items from their own database and display to their users. 
&lt;/p&gt;
&lt;h3&gt;&lt;u&gt;Deleting Data&lt;/u&gt;&lt;/h3&gt;
&lt;p&gt;
I won&amp;rsquo;t put an actual url in that deletes data because the next google bot that visits this site will start removing things from my database!! I suppose they will but them back if I put the add link at the end of the article! 
&lt;/p&gt;
&lt;p&gt;
&lt;a rel="nofollow" href="http://services.seethelink.co.uk/api/DeleteItemStoreageItem.ashx?accountId=319b8e52-5197-428a-b67a-a884acf76b9a&amp;amp;groupId=1&amp;amp;externalId=234234" target="_blank" title="Delete api data link"&gt;http://services.seethelink.co.uk/api/DeleteItemStoreageItem.ashx?accountId=319b8e52-5197-428a-b67a-a884acf76b9a&amp;amp;groupId=1&amp;amp;externalId=234234&lt;/a&gt; 
&lt;/p&gt;
&lt;h3&gt;&lt;u&gt;Final thoughts&lt;/u&gt;&lt;/h3&gt;
&lt;p&gt;
While it is poor technical practice and breaks the idea of a Restful webservice to delete data using an http get request I have implemented it this way as I believe it will make my service easier for people to use. Most developers I have met do not know the http verbs PUT, POST, GET and DELETE and their differences but they all know how to create a url GET request. Perhaps I will create a proper RESTful version of this webservice for those who want to use it! 
&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/GLDoCqNQy_fkEzqaEAC9pr0ceiw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/GLDoCqNQy_fkEzqaEAC9pr0ceiw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/GLDoCqNQy_fkEzqaEAC9pr0ceiw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/GLDoCqNQy_fkEzqaEAC9pr0ceiw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DaveHawesBlog/~4/6wtZv1GBh2g" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/DaveHawesBlog/~3/6wtZv1GBh2g/post.aspx</link>
      <author>davehawes</author>
      <comments>http://blog.davehawes.com/post/2009/06/09/A-geo-location-and-postcode-search-API-based-on-problems-Ie28099ve-solved-for-other-projects.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.davehawes.com/post.aspx?id=3498147f-fbef-451c-af93-578585932b66</guid>
      <pubDate>Tue, 09 Jun 2009 12:18:00 +0000</pubDate>
      <dc:publisher>davehawes</dc:publisher>
      <pingback:server>http://blog.davehawes.com/pingback.axd</pingback:server>
      <pingback:target>http://blog.davehawes.com/post.aspx?id=3498147f-fbef-451c-af93-578585932b66</pingback:target>
      <slash:comments>13</slash:comments>
      <trackback:ping>http://blog.davehawes.com/trackback.axd?id=3498147f-fbef-451c-af93-578585932b66</trackback:ping>
      <wfw:comment>http://blog.davehawes.com/post/2009/06/09/A-geo-location-and-postcode-search-API-based-on-problems-Ie28099ve-solved-for-other-projects.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.davehawes.com/syndication.axd?post=3498147f-fbef-451c-af93-578585932b66</wfw:commentRss>
    <feedburner:origLink>http://blog.davehawes.com/post.aspx?id=3498147f-fbef-451c-af93-578585932b66</feedburner:origLink></item>
    <item>
      <title>Up in the Cloud and getting Noded</title>
      <description>&lt;p&gt;I had a very busy and interesting day yesterday. There was an event by Amazon, drinks with like minded techies and finished off we a good dose of comedy!&lt;/p&gt;  &lt;p&gt;First stop was an event put on by Amazon at the British Museum all about their Cloud technologies call Amazon Web Services (AWS).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.davehawes.com/image.axd?picture=WindowsLiveWriter/UpintheCloudandgettingNoded_A95C/dave-aws-event_2.jpg"&gt;&lt;img title="dave-aws-event" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; margin-left: 0px; margin-right: 0px; border-right-width: 0px" height="244" alt="dave-aws-event" src="http://blog.davehawes.com/image.axd?picture=WindowsLiveWriter/UpintheCloudandgettingNoded_A95C/dave-aws-event_thumb.jpg" width="195" align="left" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;There was a very good introduction about why Amazon have this business and an explanation of where and why they are wanting to take the business.&lt;/p&gt;  &lt;p&gt;This was followed by presentations from three companies that are using AWS, Skipso, Turbo10.com and Orbyte.&lt;/p&gt;  &lt;p&gt;It was really interesting to see how they had architected their solutions and has given be ideas on how I could improve my own setup.&lt;/p&gt;  &lt;p&gt;I was particularly please to get chatting to Nigel Hamilton from Turbo10.com. He runs a Tech Pub Crawl for IT Professionals. &lt;a href="http://flag-and-bell.com"&gt;http://flag-and-bell.com&lt;/a&gt; Which I will be attending next week!&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.davehawes.com/image.axd?picture=WindowsLiveWriter/UpintheCloudandgettingNoded_A95C/noded-book_2.jpg"&gt;&lt;img title="noded-book" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; margin-left: 0px; margin-right: 0px; border-right-width: 0px" height="244" alt="noded-book" src="http://blog.davehawes.com/image.axd?picture=WindowsLiveWriter/UpintheCloudandgettingNoded_A95C/noded-book_thumb.jpg" width="184" align="right" border="0" /&gt;&lt;/a&gt; After that I headed over to a &lt;a title="Noded Tweetup" href="http://twtvite.com/wwkcle" target="_blank"&gt;tweetup&lt;/a&gt; put on by the authors Noded &lt;a href="http://www.noded.biz"&gt;http://www.noded.biz&lt;/a&gt; and sponsored by &lt;a href="http://www.huddle.net"&gt;http://www.huddle.net&lt;/a&gt; . They were a really interesting crowd and I got a crash course introduction the concept of ‘Noded’ and I really like the idea. My understanding at the moment is that it is a way of skill individuals pooling together to deliver big projects. The reason I am particularly excited by this idea is because it seems to fit a model I am trying to put together for my &lt;a title="Safety Training Network" href="http://www.safetytrainingnetwork.co.uk" target="_blank"&gt;www.safetytrainingnetwork.co.uk&lt;/a&gt; website. I am going to have to sit down, read and digest the book before making up my mind if it would work but it looks really promising.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Finally I ended by at the Rocket in Acton for a comedy night put on by my good friend &lt;a title="Tony Tinman website" href="http://www.tonytinman.co.uk" target="_blank"&gt;Tony Tinman&lt;/a&gt; that was really enjoyable and all the acts were excellent. I did particularly like the headline act &lt;a href="http://www.hahaheehee.com/comedians/junior_simpson.html" target="_blank"&gt;Junior Simpson&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/lyzNvgNhXhD-LsvfyVPhgTgVZs4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lyzNvgNhXhD-LsvfyVPhgTgVZs4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/lyzNvgNhXhD-LsvfyVPhgTgVZs4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lyzNvgNhXhD-LsvfyVPhgTgVZs4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DaveHawesBlog/~4/3-yJUH1bXyU" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/DaveHawesBlog/~3/3-yJUH1bXyU/post.aspx</link>
      <author>davehawes</author>
      <comments>http://blog.davehawes.com/post/2009/04/29/Up-in-the-Cloud-and-getting-Noded.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.davehawes.com/post.aspx?id=78fdc9a4-0cbf-4032-b55e-2a5cd1a7adfb</guid>
      <pubDate>Wed, 29 Apr 2009 12:02:36 +0000</pubDate>
      <category>Cloud</category>
      <category>Concepts</category>
      <dc:publisher>davehawes</dc:publisher>
      <pingback:server>http://blog.davehawes.com/pingback.axd</pingback:server>
      <pingback:target>http://blog.davehawes.com/post.aspx?id=78fdc9a4-0cbf-4032-b55e-2a5cd1a7adfb</pingback:target>
      <slash:comments>11</slash:comments>
      <trackback:ping>http://blog.davehawes.com/trackback.axd?id=78fdc9a4-0cbf-4032-b55e-2a5cd1a7adfb</trackback:ping>
      <wfw:comment>http://blog.davehawes.com/post/2009/04/29/Up-in-the-Cloud-and-getting-Noded.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.davehawes.com/syndication.axd?post=78fdc9a4-0cbf-4032-b55e-2a5cd1a7adfb</wfw:commentRss>
    <feedburner:origLink>http://blog.davehawes.com/post.aspx?id=78fdc9a4-0cbf-4032-b55e-2a5cd1a7adfb</feedburner:origLink></item>
    <item>
      <title>When ASP.net, Url re-writing and search engines do not play nicely</title>
      <description>&lt;p&gt;
I have been using Url re-writing on my new website &lt;a href="http://www.trainingcoursebooker.com"&gt;www.trainingcoursebooker.com&lt;/a&gt; to try and make friendly, human readable urls which are good for both people and search engines. There is a very subtle problem which I finally found and more importantly found a solution to.
&lt;/p&gt;
&lt;p&gt;
Everything works great in testing and in live. However my email inbox was suddenly filled with notifications of errors on the site (I&amp;rsquo;ve written code that notifies me of all errors via email so I don&amp;rsquo;t have to check event logs). The important part of the exception message is: 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Message: Cannot use a leading .. to exit above the top directory.&lt;/strong&gt; 
&lt;/p&gt;
&lt;p&gt;
After a google around most of the answers seemed to be in the fact I would be using some kind of ../../../ notation to reference a stylesheet or something. After going through all my code multiple times I was sure it wasn&amp;rsquo;t that. I could not reproduce the errors and was very puzzled. 
&lt;/p&gt;
&lt;p&gt;
It then occurred to me that it might not be a user browsing the site triggering this but a search engine crawling it. Sure enough with another google around I found this great article which found out that the browsers search engine crawlers use are not recognised by ASP.net and so my application was assuming that cookies are not supported which in turn causes this problem &amp;ndash; for the full explanation please read the original article: 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://weblogs.asp.net/dfindley/archive/2006/09/05/Problems-with-RewritePath-and-Search-Engines_2E00_.aspx" title="http://weblogs.asp.net/dfindley/archive/2006/09/05/Problems-with-RewritePath-and-Search-Engines_2E00_.aspx"&gt;http://weblogs.asp.net/dfindley/archive/2006/09/05/Problems-with-RewritePath-and-Search-Engines_2E00_.aspx&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
I plumbed for creating a browser file to tell my application that the search engine browsers do support cookies which has fixed the problem and I haven&amp;rsquo;t received an error notification since :D 
&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/3-CV5FE87Wr-Eqo32Q4CH4Cn1Tc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3-CV5FE87Wr-Eqo32Q4CH4Cn1Tc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/3-CV5FE87Wr-Eqo32Q4CH4Cn1Tc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3-CV5FE87Wr-Eqo32Q4CH4Cn1Tc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DaveHawesBlog/~4/5yiqPjr5cN0" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/DaveHawesBlog/~3/5yiqPjr5cN0/post.aspx</link>
      <author>davehawes</author>
      <comments>http://blog.davehawes.com/post/2009/03/28/When-ASPnet-Url-re-writing-and-search-engines-do-not-play-nicely.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.davehawes.com/post.aspx?id=65fbb2be-3370-4987-8561-aa8ddf83fe28</guid>
      <pubDate>Sat, 28 Mar 2009 21:33:00 +0000</pubDate>
      <category>ASP.net</category>
      <category>SEO</category>
      <dc:publisher>davehawes</dc:publisher>
      <pingback:server>http://blog.davehawes.com/pingback.axd</pingback:server>
      <pingback:target>http://blog.davehawes.com/post.aspx?id=65fbb2be-3370-4987-8561-aa8ddf83fe28</pingback:target>
      <slash:comments>66</slash:comments>
      <trackback:ping>http://blog.davehawes.com/trackback.axd?id=65fbb2be-3370-4987-8561-aa8ddf83fe28</trackback:ping>
      <wfw:comment>http://blog.davehawes.com/post/2009/03/28/When-ASPnet-Url-re-writing-and-search-engines-do-not-play-nicely.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.davehawes.com/syndication.axd?post=65fbb2be-3370-4987-8561-aa8ddf83fe28</wfw:commentRss>
    <feedburner:origLink>http://blog.davehawes.com/post.aspx?id=65fbb2be-3370-4987-8561-aa8ddf83fe28</feedburner:origLink></item>
    <item>
      <title>MVC.net and YUI (Yahoo UI) Brown bag session on 14th March</title>
      <description>&lt;p&gt;I have managed to arrange &lt;a title="Ian Crowther blog" href="http://infinitefocus.blogspot.com/" target="_blank"&gt;Ian Crowther&lt;/a&gt;, an ex-colleague from &lt;a title="Avanade" href="http://www.avanade.com/uk/" target="_blank"&gt;Avanade&lt;/a&gt;, to come and do a &lt;a title="Brown bag seminar" href="http://en.wikipedia.org/wiki/Brown_bag_seminars" target="_blank"&gt;brown bag&lt;/a&gt; session for me and my employees this Saturday 14th March at my office near Haslemere in the UK.&lt;/p&gt;  &lt;p&gt;Ian has been working a lot with Microsoft’s MVC.net and Yahoo UI recently. He is going to give a presentation and then run a practical coding workshop on Microsoft’s MVC.net and Yahoo UI showing how to combine them to produce some sexy looking websites. In the workshop we are going to attempt to re-implement a recent asp.net web forms project &lt;a title="See The Link" href="http://www.seethelink.co.uk" target="_blank"&gt;See The Link&lt;/a&gt; have been working on as an asp.net MVC.net project. I’m really excited to find out more about how this will work and what the result will be! If they are good I’m hoping to put the MVC.net version live instead of the original web forms version.&lt;/p&gt;  &lt;p&gt;I know that it is short notice but I am opening up this event to any techies who might be interested. I have space for another 3 people so if you want to come along then ping me an email before this Friday. We will be starting at 10am on Saturday going onto whenever (hopefully be about 4-6 hours or so)!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/0StY4w5zkAuCjQQajIYSyqAss5o/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0StY4w5zkAuCjQQajIYSyqAss5o/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/0StY4w5zkAuCjQQajIYSyqAss5o/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0StY4w5zkAuCjQQajIYSyqAss5o/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DaveHawesBlog/~4/kdNBtbcrTAo" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/DaveHawesBlog/~3/kdNBtbcrTAo/post.aspx</link>
      <author>davehawes</author>
      <comments>http://blog.davehawes.com/post/2009/03/11/MVCnet-and-YUI-(Yahoo-UI)-Brown-bag-session-on-14th-March.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.davehawes.com/post.aspx?id=a357c397-2ae6-419c-86cc-abcf6c4fc96a</guid>
      <pubDate>Wed, 11 Mar 2009 13:36:19 +0000</pubDate>
      <category>ASP.net</category>
      <category>MVC</category>
      <category>C#</category>
      <category>Software Developement</category>
      <dc:publisher>davehawes</dc:publisher>
      <pingback:server>http://blog.davehawes.com/pingback.axd</pingback:server>
      <pingback:target>http://blog.davehawes.com/post.aspx?id=a357c397-2ae6-419c-86cc-abcf6c4fc96a</pingback:target>
      <slash:comments>54</slash:comments>
      <trackback:ping>http://blog.davehawes.com/trackback.axd?id=a357c397-2ae6-419c-86cc-abcf6c4fc96a</trackback:ping>
      <wfw:comment>http://blog.davehawes.com/post/2009/03/11/MVCnet-and-YUI-(Yahoo-UI)-Brown-bag-session-on-14th-March.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.davehawes.com/syndication.axd?post=a357c397-2ae6-419c-86cc-abcf6c4fc96a</wfw:commentRss>
    <feedburner:origLink>http://blog.davehawes.com/post.aspx?id=a357c397-2ae6-419c-86cc-abcf6c4fc96a</feedburner:origLink></item>
    <item>
      <title>Success in using Blogengine.net as a lightweight CMS</title>
      <description>&lt;p&gt;
I have been using Blogengine.net for over a year now and have thought it is a great application. In this post I will tell you how I have successfully tweaked it to deliver a lightweight CMS system that I required. (I have published the source code at the bottom of this article)
&lt;/p&gt;
&lt;p&gt;
At the time of writing I have successfully implemented a few websites powered completely with Blogengine.net: 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.seethelink.co.uk" target="_blank" title="See The Link website"&gt;http://www.seethelink.co.uk&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.petersfieldparish.org.uk" target="_blank" title="Petersfield Parish website"&gt;http://www.petersfieldparish.org.uk&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.tonytinman.co.uk"&gt;http://www.tonytinman.co.uk&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.marvelav.com"&gt;http://www.marvelav.com&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Some of the things that I really like about Blogengine.net is how it can run just using Xml file out of the box and if you want to use a database you can. I like all the Search Engine Optimizations you get for free, I like how it implements semantic web technologies, I like how you can use 3rd Party tools to edit content (Live Writer for example)... the list goes on and on. 
&lt;/p&gt;
&lt;p&gt;
I have recently quit my job at &lt;a href="http://www.avanade.com/uk/" target="_blank" title="Avanade Website"&gt;Avanade&lt;/a&gt; and have setup my own &lt;a href="http://www.safetytrainingnetwork.co.uk" target="_blank" title="Safety Training Network website"&gt;website&lt;/a&gt; which I&amp;#39;m hoping to make a living out of. To pay the bills in the mean time I have been picking up small projects along the way. One of these was for a local parish church &lt;a href="http://www.petersfieldparish.org.uk" target="_blank" title="Petersfield Parish website"&gt;Petersfield Parish website&lt;/a&gt;. The main thing they wanted was a calendar of events &amp;amp; services which I completed using a standard asp.net website. They also wanted to allow members of the parish to contribute news items to the site which I thought was a perfect candidate for a blog solution. 
&lt;/p&gt;
&lt;p&gt;
I initially setup the blog with BlogEngine.net in a separate site and created an RSS reader to pull through the latest articles to the main site. However it wasn&amp;#39;t the best solution as it would be nicer to have it all under one roof. I was also having problems with the site&amp;#39;s webmaster has he used a Mac and Dreamweaver which was having all sorts of problems understanding the asp.net pages and breaking the site when new content was uploaded. 
&lt;/p&gt;
&lt;p&gt;
With these two problems to solve I decided to look at using BlogEngine.net to host all the content as well as the blog so the the webmaster could create and maintain content online with no risk of breaking the site and the contributors and blog articles would be under one roof. 
&lt;/p&gt;
&lt;p&gt;
I found this &lt;a href="http://blog.spontaneouspublicity.com/post/2008/02/29/Using-BlogEnginenet-as-a-General-Purpose-Content-Management-System-Part-I.aspx" target="_blank" title="Using Blogengine.net as a CMS"&gt;article&lt;/a&gt; about using Blogengine.net as a CMS solution but it seemed kind of fiddly as all the pages had to be standard.net pages with a usercontrol embedded in them for the content which would still leave me with my webmaster problem and I also thought this is essentially what Blogengine.net pages do. 
&lt;/p&gt;
&lt;p&gt;
So I decided to see if I could use the standard BlogEngine.net functionality to create the whole site. To my joy it was pretty straight forward to get 80% of the way there. I created a new theme based on the original site I had created and it looked the business. However there were a number of problems. The pages were in a random order and I wasn&amp;#39;t sure how to get my funky calendar controls to work. 
&lt;/p&gt;
&lt;p&gt;
Fixing the page sort order was pretty straight forward as I just added a new property to the page entity in the XmlProvider to take an integer. I then amended the PageSiteMap class to sort the pages based on the new value and then Robert is your fathers brother. 
&lt;/p&gt;
&lt;p&gt;
I was still struggling with the calendar controls when I spied something in the BlogEngine.net source code 
&lt;/p&gt;
&lt;p&gt;
[UserControl:~/path/usercontrol.ascx] 
&lt;/p&gt;
&lt;p&gt;
Here was some standard functionality that I had not known about allowing me to drop usercontrols in to the generated pages. As I had already put my funky calendar controls in usercontrols so it was pretty straight forward to pop them in my new Blogengine.net pages. Then I had exactly what I wanted and a very happy customer (I had over delivered and undercharge.... again!) 
&lt;/p&gt;
&lt;p&gt;
Here is a link to the services usercontrol embedded in a page: &lt;a href="http://www.petersfieldparish.org.uk/page/Services.aspx" title="Petersfield Parish Services"&gt;http://www.petersfieldparish.org.uk/page/Services.aspx&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
The homepage has a few usercontrols, a couple pulling the last 3 articles contributed through as a summary and one showing today&amp;#39;s services. 
&lt;/p&gt;
&lt;p&gt;
I then got my graphic designer to knock up a new theme for my company&amp;#39;s, &lt;a href="http://www.seethelink.co.uk" target="_blank" title="See The Link"&gt;See The Link&lt;/a&gt;, website and very quickly I had a great looking website which is easy to maintain 100% created with Blogengine.net for us as well. 
&lt;/p&gt;
&lt;p&gt;
It has just re-enforced my view that is this a great product! 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.davehawes.com/file.axd?file=2009%2f4%2fDaveHawes.BlogEngineTweaks.zip"&gt;DaveHawes.BlogEngineTweaks.zip (12.59 kb)&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/hgIAeJhhLaAsARhtS9N2BsajDhw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hgIAeJhhLaAsARhtS9N2BsajDhw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/hgIAeJhhLaAsARhtS9N2BsajDhw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hgIAeJhhLaAsARhtS9N2BsajDhw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DaveHawesBlog/~4/B9UKNwptQXc" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/DaveHawesBlog/~3/B9UKNwptQXc/post.aspx</link>
      <author>davehawes</author>
      <comments>http://blog.davehawes.com/post/2009/02/06/Success-in-using-Blogenginenet-as-a-lightweight-CMS.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.davehawes.com/post.aspx?id=6909fd66-7b4b-4a5a-ad7c-dbe2fd2b6f99</guid>
      <pubDate>Fri, 06 Feb 2009 09:47:00 +0000</pubDate>
      <category>ASP.net</category>
      <category>BlogEngine.NET</category>
      <category>C#</category>
      <category>Software Developement</category>
      <dc:publisher>davehawes</dc:publisher>
      <pingback:server>http://blog.davehawes.com/pingback.axd</pingback:server>
      <pingback:target>http://blog.davehawes.com/post.aspx?id=6909fd66-7b4b-4a5a-ad7c-dbe2fd2b6f99</pingback:target>
      <slash:comments>156</slash:comments>
      <trackback:ping>http://blog.davehawes.com/trackback.axd?id=6909fd66-7b4b-4a5a-ad7c-dbe2fd2b6f99</trackback:ping>
      <wfw:comment>http://blog.davehawes.com/post/2009/02/06/Success-in-using-Blogenginenet-as-a-lightweight-CMS.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.davehawes.com/syndication.axd?post=6909fd66-7b4b-4a5a-ad7c-dbe2fd2b6f99</wfw:commentRss>
    <feedburner:origLink>http://blog.davehawes.com/post.aspx?id=6909fd66-7b4b-4a5a-ad7c-dbe2fd2b6f99</feedburner:origLink></item>
    <item>
      <title>Getting my new business up and running for the Safety Training Industry</title>
      <description>&lt;p&gt;It has been all change for me recently. I have left my job at Avanade and have setup my own business developing a website full time that I've been working on for nearly a year now.&lt;/p&gt; &lt;p&gt;The website is &lt;a title="Safety Training Network" href="http://www.safetytrainingnetwork.co.uk/" target="_blank"&gt;www.safetytrainingnetwork.co.uk&lt;/a&gt; and is aimed  at providing services to make business easier for organisations and people involved in delivering Safety Training in the UK. The standard service is free. For this you get:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;An online calendar which allows you to share your availability with others&lt;/li&gt; &lt;li&gt;Portfolio Builder to manage and share you continuous professional development portfolios (which is a requirement for being a First Aid Trainer for example)&lt;/li&gt; &lt;li&gt;Skill profiles, which allow you to say what skills you have and where (geographically) you are prepared to use them&lt;/li&gt; &lt;li&gt;Online profile which displays a summary of your portfolios / skills you have made public&lt;/li&gt; &lt;li&gt;Feedback - you can receive feedback on training which is again a requirement for delivering first aid training in the UK.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;I am publishing the progress of this venture on a dedicated &lt;a title="Safety Training Network blog" href="http://blog.safetytrainingnetwork.co.uk/" target="_blank"&gt;Safety Training Network blog&lt;/a&gt;. All I can report currently is that progress is steady even if a lot slower than I was hoping!!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/eWHbcSoMHkjl2JEede3O9VVTuPM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/eWHbcSoMHkjl2JEede3O9VVTuPM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/eWHbcSoMHkjl2JEede3O9VVTuPM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/eWHbcSoMHkjl2JEede3O9VVTuPM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DaveHawesBlog/~4/EWDvjZvB2x4" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/DaveHawesBlog/~3/EWDvjZvB2x4/post.aspx</link>
      <author>davehawes</author>
      <comments>http://blog.davehawes.com/post/2008/12/10/Getting-my-new-business-up-and-running-for-the-Safety-Training-Industry.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.davehawes.com/post.aspx?id=9bdc9b54-3b43-44f9-aa84-4e950cb2b6df</guid>
      <pubDate>Wed, 10 Dec 2008 00:14:01 +0000</pubDate>
      <category>Projects</category>
      <dc:publisher>davehawes</dc:publisher>
      <pingback:server>http://blog.davehawes.com/pingback.axd</pingback:server>
      <pingback:target>http://blog.davehawes.com/post.aspx?id=9bdc9b54-3b43-44f9-aa84-4e950cb2b6df</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://blog.davehawes.com/trackback.axd?id=9bdc9b54-3b43-44f9-aa84-4e950cb2b6df</trackback:ping>
      <wfw:comment>http://blog.davehawes.com/post/2008/12/10/Getting-my-new-business-up-and-running-for-the-Safety-Training-Industry.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.davehawes.com/syndication.axd?post=9bdc9b54-3b43-44f9-aa84-4e950cb2b6df</wfw:commentRss>
    <feedburner:origLink>http://blog.davehawes.com/post.aspx?id=9bdc9b54-3b43-44f9-aa84-4e950cb2b6df</feedburner:origLink></item>
  </channel>
</rss>
