<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8978965543926914572</id><updated>2012-01-26T09:56:01.470Z</updated><category term='inyerface theatre company'/><category term='NapalmSquid'/><category term='Windows XP'/><category term='technology'/><category term='SQL'/><category term='waste of time'/><category term='Friends'/><category term='ActionScript'/><category term='Security'/><category term='Advertising'/><category term='Horsforth'/><category term='Search Providers'/><category term='Easter Eggs'/><category term='ASP.NET'/><category term='Code'/><category term='mystery people'/><category term='Orange'/><category term='Flash'/><category term='RSS'/><category term='Singleton Pattern'/><category term='Balloons'/><category term='Nick Goward'/><category term='Photoshop CS3'/><category term='Student work'/><category term='.net'/><category term='Recruitment Consultants'/><category term='Android'/><category term='work'/><category term='Works Do&apos;s'/><category term='tax return'/><category term='FireFox'/><category term='Reviews'/><category term='Mail'/><category term='Craziness'/><category term='MAtt'/><category term='Binge Drinking'/><category term='cobblers'/><category term='Internet'/><category term='Running'/><category term='Static Classes'/><category term='.net-3.5 .net-3.0'/><category term='Subversion'/><category term='Music'/><category term='definitions'/><category term='shit'/><category term='Jobs'/><category term='Noise'/><category term='Distraction'/><category term='ASP'/><category term='Adobe AIR'/><category term='10Km'/><category term='MSBuild'/><category term='Inspiration'/><category term='Heidi'/><category term='Google'/><category term='Banana Cake'/><category term='Game Development'/><category term='C#'/><category term='PHP'/><category term='Linux'/><category term='twitter'/><category term='ROCK'/><category term='twentysix Leeds'/><category term='play'/><category term='Eclipse'/><category term='EPiServer'/><category term='CMS'/><category term='Outlook 2007'/><category term='pain in the arse'/><category term='Hardware'/><category term='On Aire'/><category term='IE'/><category term='James Field'/><category term='SQL Express'/><category term='fun'/><category term='Metallica'/><category term='Pixie'/><category term='blogging'/><category term='gregged'/><category term='Microsoft office'/><category term='Books'/><title type='text'>absolute cobblers</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>68</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-5379820577353580439</id><published>2010-02-16T21:30:00.000Z</published><updated>2010-02-16T21:33:07.997Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='NapalmSquid'/><category scheme='http://www.blogger.com/atom/ns#' term='Game Development'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>Napalm Squid launches it's first game: the Daily Slide Puzzle</title><content type='html'>It is coming to the end of the financial year at work and having not taken much time off from my day job as an ASP.NET developer in the last twelve months I had a bunch of holiday to use up before February 28th. I had the last five days off  last week and I used them to finish up a little side project I've had running for a while now.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Napalm Squid&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A few months ago myself and a friend, Damien, decided to have a go at making some casual games and see if we couldn't make a few quid along the way.  We originally talked about this back in October 2009, Damien had a domain name that he's been sitting on for a while and logo to go with it, &lt;a href="http://www.napalmsquid.co.uk/"&gt;Napalm Squid Games&lt;/a&gt; was born.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;The Idea&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Back in October I had been messing around writing some collision detection in ActionScript and I had a little tech demo of some arbitrary shapes that slid against each other but never overlapped. Playing around with this demo reminded me of the &lt;a href="http://en.wikipedia.org/wiki/Sliding_puzzle"&gt;slide puzzles&lt;/a&gt; I used to have as a kid and I started thinking that a slide puzzle might be a good 1st attempt at a game for us as they are pretty simple, the rules are basic and well known so there wasn't much for us to think about. In the interest of getting to version 1 and actually launch something we decided to go with this concept for our first game.&lt;br /&gt;&lt;br /&gt;Now, I'm not fooling myself. This is in no way the sexiest game ever made, nor will it make us our millions, but you have to start somewhere and keeping it fairly simple has allowed us to produce something to a reasonable quality in a fairly short time frame and &lt;a href="http://www.codinghorror.com/blog/2009/12/version-1-sucks-but-ship-it-anyway.html"&gt;it's important to get something out of the door&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Building The Game&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;These days there are a hundred and one platforms you could go with for developing casual games all with their pros and cons. The iPhone is the obvious one, everyone has heard at least one incredibly success story of how a guy spends an afternoon locked up in his room and emerges with some game on the App Store making ridiculous amounts of money. Then there's old faithful Flash. Flash has been around since the dawn of time and folks like Shockwave.com have been using it since the then-Macromedia (and now Adobe) set the site up in 1999. The original Shockwave platform is a bit to old and dormant for my liking to be considered a serious contender. Plus, I've grown to loath Lingo even though eight years ago it was the best thing in the world and really got me started in programming.&lt;br /&gt;&lt;br /&gt;There's also a bunch of other new(ish) web based platforms that I'm keeping in mind like &lt;a href="http://unity3d.com/webplayer/"&gt;Unity&lt;/a&gt;, which looks really nice as it can publish to the Web, iPhone and to the Wii, and would allow me to develop in my beloved C#, as would  Microsoft's &lt;a href="http://www.xna.com/"&gt;XNA&lt;/a&gt;, which can be used to publish to &lt;a href="http://zone.msn.com/en/microsoftcasualgames"&gt;Windows&lt;/a&gt; and the &lt;a href="http://marketplace.xbox.com/en-GB/games/default.htm"&gt;XBox Live Arcade&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Most of these would involve some learning on my part as the developer (Damien is a game designer), even the ones which use C# naively as there are whole new class libraries(XML) or programming paradigms to learn (Unity) . Having been a big fan of Flash and ActionScript for years and being well versed in the MovieClip I chose to go with what I know.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Other Stuff&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In getting this 1st game released there has been so much other stuff that's taken a bunch of time too.&lt;br /&gt;&lt;br /&gt;Making Money&lt;br /&gt;&lt;br /&gt;Ahh money, we love it! and if this is ever going to be a viable concern there has to be a way to make money from it. After a little bit of research I found &lt;a href="https://www.mochimedia.com/r/6c554b56d721eab7"&gt;Mochi Ads from Mochi Media&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Getting this up and running was possibly the easiest thing I've ever done. Sign up, create a profile for the game, download some ActionScript and add one line of code to the game. Monetization sorted...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Websites&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We obviously needed a website or two. It's no good having a web game if you don't have a website to host it on.&lt;br /&gt;&lt;br /&gt;Being a web developer in my 9-to-5 meant this wasn't such an issue. I got some &lt;a href="http://www.dreamhost.com/r.cgi?566070"&gt;cheap but good quality hosting from Dreamhost&lt;/a&gt; which I've been really impressed with to date, you get full &lt;a href="http://en.wikipedia.org/wiki/Shell_(computing)"&gt;Shell&lt;/a&gt; access to your account which is always a bonus and you can host as many domains as you want, use as much disk space as you want and thrash as much bandwidth as you need.&lt;br /&gt;&lt;br /&gt;In office hours I'm an ASP.NET developer and I love it, years ago I was all about PHP but I've grown to realise there are better ways to spend your life. That being said, the cheap hosting is Linux hosting and so in the interest of getting to version 1, I went with the PHP based &lt;a href="http://framework.zend.com/"&gt;Zend Framework&lt;/a&gt;. I'd had a look at the Zend Framework about 6 months ago when I first me our current student placement, &lt;a href="http://www.ben-waine.co.uk/blog"&gt;Ben Waine&lt;/a&gt;, who was singing it's praises. I like ZF, it works as nice as any other MVC library I've seen, however; at the end of the day, you still have to write your logic in PHP which makes me feel ill.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;What Next&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Getting our first game released has given us a real buzz! Since I put the site live last Wednesday (7 days ago) I've fixed a bunch of bugs and made a few tweaks to the game. Nothing gives you the impetus to fix an issue more than having the bug out in the wild and visible to your users.&lt;br /&gt;&lt;br /&gt;Damien is working on up the idea for our next game while I do some R&amp;amp;D on the programming side. We'll also be doing a few updates to Daily Slide Puzzle, largest of which will be the ability to play previous puzzles.&lt;br /&gt;&lt;br /&gt;It's exciting times and we've certainly got our work cut out for us.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-5379820577353580439?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/5379820577353580439/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2010/02/napalm-squid-launches-its-first-game.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/5379820577353580439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/5379820577353580439'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2010/02/napalm-squid-launches-its-first-game.html' title='Napalm Squid launches it&apos;s first game: the Daily Slide Puzzle'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-7239547367021077692</id><published>2010-01-10T18:37:00.006Z</published><updated>2010-01-10T18:46:06.264Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><title type='text'>Error when Running or Debugging an Android app from Eclipse with your Phone plugged in</title><content type='html'>&lt;p&gt;As you can &lt;span id="SPELLING_ERROR_0" class="blsp-spelling-corrected"&gt;probably&lt;/span&gt; guess from this post, I've got my self a new phone. It's a T-Mobile G2, otherwise known as an &lt;span id="SPELLING_ERROR_1" class="blsp-spelling-error"&gt;HTC&lt;/span&gt; Hero.&lt;/p&gt;&lt;p&gt;I've been &lt;span id="SPELLING_ERROR_2" class="blsp-spelling-error"&gt;dicking&lt;/span&gt; around with the &lt;span id="SPELLING_ERROR_3" class="blsp-spelling-error"&gt;SDK&lt;/span&gt; and the &lt;span id="SPELLING_ERROR_4" class="blsp-spelling-error"&gt;Eclipse&lt;/span&gt; &lt;span id="SPELLING_ERROR_5" class="blsp-spelling-error"&gt;ADT&lt;/span&gt; &lt;span id="SPELLING_ERROR_6" class="blsp-spelling-error"&gt;plugin&lt;/span&gt; since I got it on Friday.&lt;/p&gt;&lt;p&gt;Today, I've started running into an error where Eclipse says an error &lt;span id="SPELLING_ERROR_7" class="blsp-spelling-corrected"&gt;occurred&lt;/span&gt; when I try to Run or Debug the application on my hardware (not an &lt;span id="SPELLING_ERROR_8" class="blsp-spelling-error"&gt;AVD&lt;/span&gt;).&lt;/p&gt;&lt;p&gt;Here is the full error from the Eclipse error log.&lt;/p&gt;&lt;pre&gt;null&lt;br /&gt;Error&lt;br /&gt;Sun Jan 10 18:27:37 GMT 2010&lt;br /&gt;An internal error occurred during: "Launching &lt;span id="SPELLING_ERROR_9" class="blsp-spelling-error"&gt;Notepadv&lt;/span&gt;2".&lt;br /&gt;&lt;br /&gt;java.lang.NullPointerException&lt;br /&gt;at com.android.ide.eclipse.adt.internal.launch.AndroidLaunchController.launch(Unknown Source)&lt;br /&gt;at com.android.ide.eclipse.adt.internal.launch.LaunchConfigDelegate.doLaunch(Unknown Source)&lt;br /&gt;at com.android.ide.eclipse.adt.internal.launch.LaunchConfigDelegate.launch(Unknown Source)&lt;br /&gt;at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:853)&lt;br /&gt;at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:703)&lt;br /&gt;at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:866)&lt;br /&gt;at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1069)&lt;br /&gt;at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="CLEAR: both"&gt;&lt;/span&gt;&lt;br /&gt;&lt;p&gt;So, I started Googling and didn't really find much but I do seem to have sorted it.All I did was close Eclipse, unplug my phone from the &lt;span id="SPELLING_ERROR_10" class="blsp-spelling-error"&gt;USB&lt;/span&gt; lead. Reconnect my phone, and fire Eclipse up again.&lt;/p&gt;&lt;p&gt;That seems to do the trick.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-7239547367021077692?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/7239547367021077692/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2010/01/error-when-running-or-debugging-android.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/7239547367021077692'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/7239547367021077692'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2010/01/error-when-running-or-debugging-android.html' title='Error when Running or Debugging an Android app from Eclipse with your Phone plugged in'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-3545963555002387597</id><published>2009-11-09T08:44:00.003Z</published><updated>2009-11-09T08:56:44.194Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='.net-3.5 .net-3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='ActionScript'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Code'/><title type='text'>Passing a User Generated Image From Adobe Flash to ASP.NET</title><content type='html'>A few months ago I was browsing &lt;span id="SPELLING_ERROR_0" class="blsp-spelling-error"&gt;StackOverflow&lt;/span&gt; while waiting for a question I had asked to be answered (typical SO user behaviour or am I a bit of a freeloader?) when I came &lt;span id="SPELLING_ERROR_1" class="blsp-spelling-corrected"&gt;across&lt;/span&gt; a question asking &lt;a href="http://stackoverflow.com/questions/928508/pass-image-from-flash-to-asp-net/1688492#1688492"&gt;how to pass an image from Flash to ASP.NET&lt;/a&gt; and I thought "this is definitely one for me".&lt;br /&gt;&lt;br /&gt;I have four years experience with ASP.NET from my day job at a &lt;a href="http://www.twentysixdigital.com/"&gt;Leading UK Marketing Agency&lt;/a&gt; and about a million years experience with Flash from being a student at &lt;a href="http://www.artdesignhull.ac.uk/"&gt;the Hull School of art and Design&lt;/a&gt;, teaching Interactive Multimedia at &lt;a href="http://www.lincoln.ac.uk/home/"&gt;the University of Lincoln&lt;/a&gt; and using it in personal and professional projects.&lt;br /&gt;&lt;br /&gt;I'm a massive fan of &lt;span id="SPELLING_ERROR_2" class="blsp-spelling-error"&gt;StackOverflow&lt;/span&gt; and find it an invaluable resource, so in the interest of giving a little bit back to the community, I placed a bookmark on my desktop with the intention of writing a solid answer to the question.&lt;br /&gt;&lt;br /&gt;Four months go by and finally, I get round to doing it. And so, you can now read about&lt;a href="http://stackoverflow.com/questions/928508/pass-image-from-flash-to-asp-net/1688492#1688492"&gt; how to send a generated image from Adobe Flash (using &lt;span id="SPELLING_ERROR_3" class="blsp-spelling-error"&gt;ActionScript&lt;/span&gt; 3) to an ASP.NET &lt;span id="SPELLING_ERROR_4" class="blsp-spelling-error"&gt;backend&lt;/span&gt;&lt;/a&gt; and hopefully my karmic &lt;span id="SPELLING_ERROR_5" class="blsp-spelling-corrected"&gt;daemons&lt;/span&gt; will leave me alone for another week.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-3545963555002387597?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/3545963555002387597/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2009/11/passing-user-generated-image-from-adobe.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/3545963555002387597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/3545963555002387597'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2009/11/passing-user-generated-image-from-adobe.html' title='Passing a User Generated Image From Adobe Flash to ASP.NET'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-5257599990388113204</id><published>2009-10-20T21:00:00.000+01:00</published><updated>2009-10-20T20:42:11.092+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='RSS'/><category scheme='http://www.blogger.com/atom/ns#' term='gregged'/><title type='text'>RSS Readers - I'm not sure I like them...</title><content type='html'>I recently had to format my laptop (again) after having successfully &lt;em&gt;&lt;a href="http://absolutecobblers.blogspot.com/2009/10/gregged.html"&gt;gregged&lt;/a&gt; it&lt;/em&gt;™ and it was shortly after this point, when I fired up Internet Explorer and realised that I didn't have any bookmarks, that I started to think about using an online RSS reader, to remember them all for me.&lt;br /&gt;&lt;br /&gt;After exactly _zero_ seconds looking around I opted to go with &lt;a href="http://www.google.com/reader"&gt;Google Reader&lt;/a&gt;, mainly because "Google" is synonymous with "Homepage" these days, and so I've spent the last few days remembering which blogs I read, which one's I only read because they were in my Favourites Bar (I might bookmark something, but the number of times I actually use a bookmark that isn't on my favourites bar is few and far between) and which ones I really didn't give a toss about any more.&lt;br /&gt;&lt;br /&gt;So now I've got 16 blogs wired into Reader and I've been using it for a few days and I'm first reaction is one of discontent! This discontent is spawned of a few symptoms of using RSS and an RSS reader, so not Googles fault.&lt;br /&gt;&lt;br /&gt;Firstly, it doesn't feel right. To me, part of the reading experience is visiting the authors site to see if they have written anything new. Seeing the page layout, the fonts and colours help me find the &lt;em&gt;mental voice&lt;/em&gt; I associate with the author. It helps me read the post as if they were speaking or lecturing to me.&lt;br /&gt;&lt;br /&gt;My second issue with the RSS reader is how some sites choose only to publish a snippet of the article on the feed, so you have to click through to their site to read the full story. This breaks the spell for me, before I used an RSS reader I was going to visit these sites regardless. Now that I do use a reader, and don't always get the full story, it feels like I've just added an extra step to the process of reading these articles. Granted I can see which blogs have new articles and which don't, you could argue this saves me time, but combined with the experience of reading feeling different, it compounds the dissatisfaction with the experience.&lt;br /&gt;&lt;br /&gt;All that said, I've only been using it for just under a week now, so I might be flying off the handle.&lt;br /&gt;I'm going to stick it out for a couple of weeks and see if it improves my quality of life. It will also give me something to write about too.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-5257599990388113204?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/5257599990388113204/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2009/10/rss-readers-im-not-sure-i-like-them.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/5257599990388113204'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/5257599990388113204'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2009/10/rss-readers-im-not-sure-i-like-them.html' title='RSS Readers - I&apos;m not sure I like them...'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-4775206174733217409</id><published>2009-10-20T20:22:00.002+01:00</published><updated>2009-10-20T20:25:59.756+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gregged'/><category scheme='http://www.blogger.com/atom/ns#' term='definitions'/><title type='text'>Gregged</title><content type='html'>&lt;em&gt;-adjective&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Make a computer Operating System nigh-on unusable within a relatively short period of time, usually in the region of 6 months after re-installing the operating system and all required software.&lt;br /&gt;&lt;br /&gt;See also &lt;em&gt;&lt;a href="http://dictionary.reference.com/browse/broken"&gt;broken&lt;/a&gt;&lt;/em&gt;.&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-4775206174733217409?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/4775206174733217409/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2009/10/gregged.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/4775206174733217409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/4775206174733217409'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2009/10/gregged.html' title='Gregged'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-3945788535449554988</id><published>2009-10-14T14:35:00.003+01:00</published><updated>2009-10-14T15:05:47.434+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='EPiServer'/><title type='text'>Thoughts on EPiServer Customer and Partner Day 2009</title><content type='html'>Yesterday I was at &lt;a href="http://www.cumberlandhotel-london.co.uk/"&gt;The Cumberland Hotel in London&lt;/a&gt; for this years EPiServer Customer and Partner day. It was the first time I've been to the event so I wasn't sure what to expect but over all I enjoyed the day.&lt;br /&gt;&lt;br /&gt;Of the &lt;a href="http://www.episerver.com/en/Events/Upcoming_Events/EPiServer-Customer-and-Partner-Day-2009/Agenda/"&gt;items on the itinerary&lt;/a&gt; the highlights for me were:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.episerver.com/en/Events/Upcoming_Events/EPiServer-Customer-and-Partner-Day-2009/Registration-London-2009/Breakout-session-22/"&gt;EPiServer B2B Adapt and EPiServer B2B Prospect&lt;/a&gt;&lt;br /&gt;These two new products (although based on existing technolgies) offer fantiastic insight and extreamely easy integration with your EPiServer sites. &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.episerver.com/en/Events/Upcoming_Events/EPiServer-Customer-and-Partner-Day-2009/Registration-London-2009/Breakout-session-41/"&gt;EPiServer CMS 6 for Developers&lt;/a&gt; (and &lt;a href="http://www.episerver.com/en/Events/Upcoming_Events/EPiServer-Customer-and-Partner-Day-2009/Registration-London-2009/EPiServer-CMO-from-a-technical-point-of-view/"&gt;part 2&lt;/a&gt;)&lt;br /&gt;In these two talks we were shown how some of the new features of CMS 6 work which look like they're going to bring a lot of power and flexibility to the system.&lt;br /&gt;&lt;br /&gt;The Dynamic Data Store is built on a &lt;a href="http://en.wikipedia.org/wiki/BigTable"&gt;BigTable&lt;/a&gt;-esque schema and allows you (through the use of a few simple &lt;a href="http://msdn.microsoft.com/en-us/library/z0w1kczw.aspx"&gt;Class and Member attributes&lt;/a&gt;) to store and retieve any &lt;a href="http://stackoverflow.com/questions/250001/define-poco"&gt;POCO&lt;/a&gt; or other class with ease.&lt;br /&gt;&lt;br /&gt;CMS 6 has a new user dashboard and we were also shown how to use ASP.NET MVC to build new dashboard widgets.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;There wasn't really much &lt;em&gt;bad&lt;/em&gt; stuff throughout the day, it was the usual mix of marketing babble and product releases, with the exception of one event. There was a presentation from the marketing director for &lt;a href="http://www.slh.com/"&gt;SLH&lt;/a&gt; and the MD of their digital agency, Fortune Cookie. &lt;/p&gt;&lt;p&gt;I felt this talk lacked a real purpose as it meandered on for 40 minutes. Don't get me wrong, the guys doing the presentation seemed lively enough, but the thousands of bulleted slides didn't hold anything for the two audiences. To me, the Customers (of the Customers and Partners day) would have likes to be shown how SLH used specific features of EPiServer to achieve their business goals, and I don't mean shown like a "demonstration", just saying "XXX helped us achieve YYY", and as a Partner, I would have liked to have seen similar things.&lt;/p&gt;&lt;p&gt;Overall a good day, but I hope they pick a better closing act next time.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-3945788535449554988?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/3945788535449554988/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2009/10/thoughts-on-episerver-customer-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/3945788535449554988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/3945788535449554988'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2009/10/thoughts-on-episerver-customer-and.html' title='Thoughts on EPiServer Customer and Partner Day 2009'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-3408415585947291474</id><published>2009-07-04T19:07:00.001+01:00</published><updated>2009-07-04T19:07:30.749+01:00</updated><title type='text'>Blogging and advertising. Pt.2</title><content type='html'>&lt;p&gt;Back in May I posted that &lt;a href="http://absolutecobblers.blogspot.com/2009/05/blogging-and-advertising.html"&gt;I was going to give AdWords a go on this blog&lt;/a&gt; and see what came of it. Well after two months, 722 visits and 856 page views the results are in... It didn't work, I'm still not a millionaire. But I think I have learned a few things over the last couple of months.&lt;/p&gt;  &lt;h5&gt;My &amp;quot;audience&amp;quot; just isn't ready to make me a millionaire.&lt;/h5&gt;  &lt;p&gt;To me this means a few things:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;I just don’t pull enough traffic.      &lt;br /&gt;As I’m sure most small-time bloggers think to themselves&amp;#160; every so often, why would anyone want to read anything I’ve got to say. Well, I often think this but then I check my analytics and notice that I’ve been getting around 320 visitors a month and to someone as small-time™ as I am, this is incredibly encouraging and impressive. &lt;/li&gt;    &lt;li&gt;The traffic I do pull isn’t the right type .      &lt;br /&gt;My biggest hitters (in terms of traffic per post) are &lt;a href="http://absolutecobblers.blogspot.com/2008/02/aspnet-image-upload-and-resize-in-c-net.html"&gt;my article from 18 months ago about uploading and resizing images&lt;/a&gt;, accounting for roughly 50% of my hits per month, &lt;a href="http://absolutecobblers.blogspot.com/2008/02/sql-multiple-order-bys.html"&gt;my post about multiple order-by’s in SQL&lt;/a&gt; (aprox 19%) and since I posted it on the 14th June, my post about &lt;a href="http://absolutecobblers.blogspot.com/2009/06/outputting-subversion-revision-into.html"&gt;getting the Subversion revision number into your project output&lt;/a&gt; has been responsible for 17% of my traffic. What does this have to do with the point I’m making? Well these articles are technical “how-to” kind of articles, and being a programmer myself, I know how people read these things.       &lt;ol&gt;       &lt;li&gt;You do a Google search for what you need to do. &lt;/li&gt;        &lt;li&gt;You start clicking links. &lt;/li&gt;        &lt;li&gt;You read the first sentence or two to see if it sounds like you’ve landed on the right page.          &lt;ol&gt;           &lt;li&gt;You either bail out because it’s not the right page or… &lt;/li&gt;            &lt;li&gt;You start scrolling up and down the article to see if there is a nice concise chunk of code you can copy. &lt;/li&gt;            &lt;li&gt;You bail out because you’ve got what you came for. &lt;/li&gt;         &lt;/ol&gt;       &lt;/li&gt;     &lt;/ol&gt;      &lt;br /&gt;What this means is that the visitors aren’t here to read what I have to say, they aren’t going to browse around the site, they definitely aren’t going to be bothered to click on advertising.&lt;/li&gt;    &lt;li&gt;My visitors are the wrong type of person.     &lt;br /&gt;As I commented in &lt;a href="http://absolutecobblers.blogspot.com/2008/02/aspnet-image-upload-and-resize-in-c-net.html"&gt;my original post&lt;/a&gt;. I don’t click on advertising. I get this funny feeling inside that it’s a lie, that if I search for something, then &lt;em&gt;&lt;a href="http://infolab.stanford.edu/pub/voy/museum/pictures/display/0-4-Google.htm"&gt;The Google&lt;/a&gt;&lt;/em&gt; is good enough on it’s own to find the right thing, and that anything that has been surreptitiously crammed in at the top, with a different colour background to draw my eye, is just bad.&lt;/li&gt; &lt;/ol&gt;  &lt;h5&gt;I don’t like the idea of advertising on my blog.&lt;/h5&gt;  &lt;p&gt;Well not this blog anyway! I’ve recently been listening to the Stack Overflow Podcast, a couple of times recently &lt;a href="http://www.codinghorror.com/blog/"&gt;Jeff&lt;/a&gt; and &lt;a href="http://www.joelonsoftware.com/"&gt;Joel&lt;/a&gt; have mentioned &lt;a href="http://en.wikipedia.org/wiki/Cognitive_dissonance"&gt;Cognitive Dissonance&lt;/a&gt;. I’ll let you read the the first sentence of that page rather than me try and paraphrase it… &lt;/p&gt;  &lt;p&gt;Any way, my point being, since I put the AdWords on here I’ve been checking &lt;a href="http://google.com/analytics"&gt;Analytics&lt;/a&gt; with vague regularity to see how much I haven’t made. I’ve been trying to think of all-star topics to write about in order to earn me a million. I applied extra pressure to something I was trying to do for personal improvement reasons. &lt;/p&gt;  &lt;p&gt;This, it turns out,&amp;#160; is beyond useless, as I can barely write anyway (although I’m doing OK today!), having this extra pressure made me super-illiterate. (Let’s not even mention spelling!)&lt;/p&gt;  &lt;p&gt;The upshot of all this is, after a little over two months, I’ve removed AdWords in an attempt to lower the pressure and enable me to write a bit more freely. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-3408415585947291474?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/3408415585947291474/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2009/07/blogging-and-advertising-pt2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/3408415585947291474'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/3408415585947291474'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2009/07/blogging-and-advertising-pt2.html' title='Blogging and advertising. Pt.2'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-3637987613726881764</id><published>2009-06-14T20:40:00.002+01:00</published><updated>2009-06-14T20:44:11.748+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Subversion'/><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='MSBuild'/><category scheme='http://www.blogger.com/atom/ns#' term='Code'/><title type='text'>Outputting the Subversion revision into your web page</title><content type='html'>&lt;p&gt;A few months ago when I stared using &lt;a href="http://stackoverflow.com/" target="_blank"&gt;stackoverflow&lt;/a&gt; I noticed that they output the current Subversion revision number into their html source.&lt;/p&gt;&lt;p align="center"&gt;&lt;img title="Stackoverflow revision number" alt="Stackoverflow revision number" src="http://farm3.static.flickr.com/2444/3626361686_3562068f91.jpg?v=0" /&gt; &lt;/p&gt;&lt;p&gt;This is both cool and useful and as I’m about to become a SVN Nazi and make sure that all new projects at work are placed under source control (only a few are at present) I wanted to know how to do it. &lt;/p&gt;&lt;h4&gt;Getting the tools&lt;/h4&gt;&lt;p&gt;Most of our projects are built using ASP.NET so I wanted to know how to get this working from within Visual Studio. Thankfully this didn’t take long, a few Google’s turned up &lt;a href="http://msbuildtasks.tigris.org/" target="_blank"&gt;MSBuild Community Tasks Project&lt;/a&gt; hosted over at &lt;a href="http://www.tigris.org/" target="_blank"&gt;Tigris.org&lt;/a&gt; who are the good folks behind Subversion and many many Subversion tools. I had a quick look over the list of tasks and spotted the “SvnVersion” task and thought that sounds about right. I downloaded and installed the Community Tasks.&lt;/p&gt;&lt;p&gt;I also downloaded the Visual Studio Web Deployment projects after having read &lt;a href="http://weblogs.asp.net/scottgu/archive/2005/11/06/429723.aspx" target="_blank"&gt;ScottGu’s blog post regarding them&lt;/a&gt;. You can &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=0AA30AE8-C73B-4BDD-BB1B-FE697256C459&amp;amp;displaylang=en" target="_blank"&gt;get the VS2008 version here&lt;/a&gt; or &lt;a href="http://msdn.microsoft.com/en-us/asp.net/aa336619.aspx" target="_blank"&gt;the VS2005 version here&lt;/a&gt; if you need it.&lt;/p&gt;&lt;h4&gt;Getting the revision into your HTML&lt;/h4&gt;&lt;p&gt;To get the revision number into my HTML I chose to add a Web Deployment project (right click on your website/web app in the solution explorer and “Add web deployment project” then right click on this new project and “Open project file”. What you’ll see now is the XML of the MSBuild file and towards the bottom of this file should be a comment with four target tags in it like this.&lt;/p&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;!-- To modify your build process, add your task inside one of the targets below and uncomment it.&lt;br /&gt;        Other similar extension points exist, see Microsoft.WebDeployment.targets.&lt;br /&gt;    &amp;lt;Target Name="BeforeBuild"&amp;gt;&lt;br /&gt;    &amp;lt;/Target&amp;gt;&lt;br /&gt;    &amp;lt;Target Name="BeforeMerge"&amp;gt;&lt;br /&gt;    &amp;lt;/Target&amp;gt;&lt;br /&gt;    &amp;lt;Target Name="AfterMerge"&amp;gt;&lt;br /&gt;    &amp;lt;/Target&amp;gt;&lt;br /&gt;    &amp;lt;Target Name="AfterBuild"&amp;gt;&lt;br /&gt;    &amp;lt;/Target&amp;gt;&lt;br /&gt;--&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;We’re going to use the AfterBuild target so to place the revision number in a little bit of HTML that’s going to live in a master page, so let’s set up the master page first.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;My site is a .NET MVC application and I’m going to add the revision number to the Site.Master. To do this I added the following HTML to the footer of the master page.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;span id=”rev”&amp;gt;revision REVISION&amp;lt;/span&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;The SvnRevision task will get the revision number from our working copy and store it in a property name that we define.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;We can then use another Community Task, FileUpdate, to update the master page after the build.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Here is the XML of the AfterBuild target looks, note also that before the target I have imported the Community Tasks that we downloaded and installed earlier.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;code&gt;&amp;lt;!-- Import the community build tasks--&amp;gt;&lt;br /&gt;    &amp;lt;Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets" /&amp;gt;&lt;br /&gt;    &amp;lt;target name="AfterBuild"&amp;gt;&lt;br /&gt;    &amp;lt;! -- Add the SvnVersion build task --&amp;gt;&lt;br /&gt;    &amp;lt;svnversion toolpath="$(ProgramFiles)\VisualSVN\bin" localpath="$(MSBuildProjectDirectory)"&amp;gt;&lt;br /&gt;    &amp;lt;output propertyname="Revision" taskparameter="Revision" /&amp;gt;&lt;br /&gt;    &amp;lt;/svnversion&amp;gt;&lt;br /&gt;    &amp;lt;fileupdate replacementtext="revision $(Revision)" regex="revision REVISION" files="$(Configuration)\Views\Shared\Site.Master" /&amp;gt;&lt;br /&gt;    &amp;lt;/target&amp;gt;&lt;/code&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;The FileUpdate finds the string defined in the regex attribute and replaces it with the string in the replacementText attribute. &lt;em&gt;$(Revision)&lt;/em&gt; is MSBuild syntax for a property (like a variable in other languages) where “Revision” is the property name. The files attribute tells the fileUpdate action which file to work with when doing this replacemnet. In this example $(Configuration) is a property that the build engine creates which contains the name of the current build configuration (Debug or Release are the defaults).&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;So to see this in action, right click on the Web Deployment Project and click Build. Then navigate to the solution folder. Inside that folder should be another folder named the same as your Web Deployment Project and in there, a folder for what ever configuration you had selected in Visual Studio (Debug is the default). Open this folder then browse to the folder containing the master page and open the master page in your favourite text editor. Find the span from the earlier step and you should see that the uppercase “REVISION” has been replaced with the current revision of your working copy.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-3637987613726881764?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/3637987613726881764/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2009/06/outputting-subversion-revision-into.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/3637987613726881764'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/3637987613726881764'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2009/06/outputting-subversion-revision-into.html' title='Outputting the Subversion revision into your web page'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-6675255298177913896</id><published>2009-06-05T16:01:00.000+01:00</published><updated>2009-06-05T16:05:02.790+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='EPiServer'/><category scheme='http://www.blogger.com/atom/ns#' term='Hardware'/><category scheme='http://www.blogger.com/atom/ns#' term='work'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Express'/><category scheme='http://www.blogger.com/atom/ns#' term='CMS'/><title type='text'>Installing EPiServer and VMWare ESXi</title><content type='html'>&lt;p&gt;Wednesday this week our group IT manager Gordon brought us some new hardware to play with in the form of 3 HP DL308's (&lt;a href="http://h18000.www1.hp.com/products/quickspecs/12028_div/12028_div.html"&gt;two G4's&lt;/a&gt; and &lt;a href="http://h18000.www1.hp.com/products/quickspecs/11473_div/11473_div.HTML"&gt;one G3&lt;/a&gt;) which I think and hope we're going to consolidate our jumble sale of a server room onto for the most part with the use of VMWare's wonderful ESXi (version 3.5 because version 4 requires 64bit hardware and the VMWare compatibility list says the G3 and G4 are only compatible with 3.5).&lt;/p&gt;&lt;p&gt;I caught &lt;a href="http://www.26point1.com/"&gt;Matt&lt;/a&gt; just in time as he was about to install Windows 2003 on one of the G4's and got him to let me install &lt;a href="http://www.vmware.com/products/esxi/"&gt;ESXi&lt;/a&gt; on it. Which I did without hitch (except for when I couldn't get the networking to work, then I realised the Ethernet cable wasn't plugged in). Then it was a cinch to download the Infrastructure Client from the box and spin up a new VM and get Windows 2003 installed. Within an hour I'd got a new virtual development server up and running. Happy man. &lt;/p&gt;&lt;p&gt;Next up I downloaded and installed SQL Server 2005 Express, which didn't go quite to plan as the installer kept complaining that the SQL Native client installer package was missing. This was fixed by going into add/remove programs and uninstalling the (failed) Native Client install and starting the whole thing again. &lt;/p&gt;&lt;p&gt;Then came installing EPiServer CMS which was a completely painless task comprised of logging into &lt;a href="http://world.episerver.com/"&gt;EPiServer World&lt;/a&gt; and downloading the latest stable release (CMS 5 R2) and installing it, I then used the Deployment Centre utility to install the demo site for the team here to have a play with. &lt;/p&gt;&lt;p&gt;Job done! &lt;/p&gt;&lt;p&gt;Over the coming weeks I'm going to be posting a bunch more articles about my trials and tribulations with EPiServer which I'm looking forward to and hope will provide a nice chage from building brochure ware sites for purfume brands.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-6675255298177913896?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/6675255298177913896/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2009/06/installing-episerver-and-vmware-esxi.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/6675255298177913896'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/6675255298177913896'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2009/06/installing-episerver-and-vmware-esxi.html' title='Installing EPiServer and VMWare ESXi'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-5980918453743329944</id><published>2009-06-04T13:45:00.000+01:00</published><updated>2009-06-04T13:46:06.270+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='Pixie'/><category scheme='http://www.blogger.com/atom/ns#' term='CMS'/><category scheme='http://www.blogger.com/atom/ns#' term='Code'/><title type='text'>More CMS's, this time for PHP</title><content type='html'>I recently had a requirement for a CMS to run on a Linux server. For 99% of my day-job I use ASP.NET but I am an old hand at PHP and I'm not overly familiar with the syntax of Ruby or Python so PHP was my language of choice.&lt;br /&gt;&lt;br /&gt;I was after a small, easy to set up, flexible solution which wasn't going to take ages to install and configure and that also didn't require me to use a massive framework.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I friend recomended &lt;a href="http://getpixie.co.uk/"&gt;Pixie&lt;/a&gt; which is a free, open source offering from &lt;a href="http://www.toggle.uk.com/"&gt;toggle&lt;/a&gt; and I've got to say that I was pleasantly supprised. Admittedly it's a million miles away from the object oriented nature of .NET that I'm so used to but it does have a plugin architecture and is easily skinnable.&lt;br /&gt;&lt;br /&gt;I recomend giving it a try!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-5980918453743329944?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/5980918453743329944/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2009/06/more-cmss-this-time-for-php.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/5980918453743329944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/5980918453743329944'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2009/06/more-cmss-this-time-for-php.html' title='More CMS&apos;s, this time for PHP'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-8665838301798733880</id><published>2009-05-09T11:16:00.002+01:00</published><updated>2009-05-09T11:25:04.996+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Friends'/><category scheme='http://www.blogger.com/atom/ns#' term='blogging'/><title type='text'>Someone else I know and like</title><content type='html'>Following on from my post the other day, I'd like to link you up to &lt;a href="http://oliverdore.tumblr.com/"&gt;the musings of Oliver Dore&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I’ve known Oli for about 6 years now, since we met while I was teaching at the University of Lincoln.&lt;br /&gt;&lt;br /&gt;He has worked at a few top class agencies here in the UK including &lt;a href="http://mnatwork.com/#/?state=0"&gt;mN&lt;/a&gt; and now works for &lt;a href="http://www.hugeinc.com/"&gt;HUGE, Brooklyn&lt;/a&gt; in New York.&lt;br /&gt;&lt;br /&gt;Oli is a fantastic developer with a very strong eye for design and he’s possibly one of the most thoughtful people I’ve ever met! Go check him out on &lt;a href="http://oliverdore.tumblr.com/"&gt;his tumblelog&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-8665838301798733880?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/8665838301798733880/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2009/05/someone-else-i-know-and-like.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/8665838301798733880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/8665838301798733880'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2009/05/someone-else-i-know-and-like.html' title='Someone else I know and like'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-5884800421634457905</id><published>2009-05-02T17:13:00.003+01:00</published><updated>2009-05-02T17:31:43.216+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Advertising'/><category scheme='http://www.blogger.com/atom/ns#' term='blogging'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Blogging and Advertising</title><content type='html'>I've been blogging on and off for just over a year now and I'm consistently getting around 300 hits per month which I'm really impressed with. Most of my traffic (about 50%) comes through a single post about resizing images which leads me to believe that 90% of the folks that read this blog are developers like my self. And I guess this was alway my intention as I doubt anyone really wants to read about how I just mowed the lawn after playing 9 holes of golf, but I had reason to believe (and now have proof) that a few of my ramblings would hold some interest for a few people out there.&lt;br /&gt;&lt;br /&gt;As a web developer I don't really like banner ads and rarely ever click on them (I think I've clicked on maybe 2 in my 10+ years of internetting) and a never click the sponsored links that show up at the top of Google, they're only at the top because someone paid for them, and to me that spells a false positive. The non-sponsored links below stand a very strong chance of being more relevant.&lt;br /&gt;&lt;br /&gt;So, anyway, as a bit of an experiment and a completely transparent attempt to make a quick buck I've taken advantage of the quick and easy method blogger now provides to "Monetise your blog" and lobbed AdWords on here.&lt;br /&gt;&lt;br /&gt;Obviously I hope I make my millions from it but I'd like to see if I actually make anything from it at all. I'd like to see if all developers are like me and see right through online advertising. Or if it's just me that thinks I can do a better job of finding what I'm after than Google can.&lt;br /&gt;&lt;br /&gt;Here's hoping!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-5884800421634457905?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/5884800421634457905/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2009/05/blogging-and-advertising.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/5884800421634457905'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/5884800421634457905'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2009/05/blogging-and-advertising.html' title='Blogging and Advertising'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-5635949593362262063</id><published>2009-04-22T10:38:00.007+01:00</published><updated>2009-04-22T15:38:21.528+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='James Field'/><category scheme='http://www.blogger.com/atom/ns#' term='Friends'/><category scheme='http://www.blogger.com/atom/ns#' term='work'/><category scheme='http://www.blogger.com/atom/ns#' term='twentysix Leeds'/><category scheme='http://www.blogger.com/atom/ns#' term='blogging'/><category scheme='http://www.blogger.com/atom/ns#' term='MAtt'/><title type='text'>People I know and Like(?)</title><content type='html'>Quite a lot has happened in and around my little blogosphere in the last few months.&lt;br /&gt;&lt;br /&gt;Back in February I &lt;a href="http://absolutecobblers.blogspot.com/2009/02/final-frontier.html"&gt;mentioned&lt;/a&gt; the &lt;a href="http://www.frontier.lincoln.ac.uk/devblog"&gt;development blog of my friend&lt;/a&gt;, ex-colleague and ex-house-mate, James (Jay) Field's work for his &lt;a href="http://www.frontier.lincoln.ac.uk/"&gt;Interactive Media MA project "Frontier"&lt;/a&gt;.&lt;br /&gt;Frontier is a massively multiplayer online game that Jay is building in Flash. The blog has gone a bit quite at the moment since he was made senior lecturer at the &lt;a href="http://www.artdesignhull.ac.uk/"&gt;Hull School of Art and Design&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;iheartspaceships&lt;/span&gt;&lt;br /&gt;Nearly a year and a half ago, &lt;a href="http://twitter.com/thisisryan"&gt;Ryan&lt;/a&gt; and &lt;a href="http://twitter.com/AJinthe80s"&gt;Andy&lt;/a&gt; bought a domain name and said they were going to produce a blog. Yesterday they &lt;a href="http://twitter.com/heartspaceships/statuses/1576816071"&gt;launched "a day early"&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Ryan is a Flash Developer here at twentysix Leeds and works across many large brands on both web and &lt;a href="http://www.adobe.com/products/air"&gt;AIR&lt;/a&gt; based Flashieness.&lt;br /&gt;&lt;br /&gt;Andy is our UI Developer working on many of the same clients and projects but does miraculous things with JavaScript and CSS.&lt;br /&gt;&lt;br /&gt;Hopefully they'll have some interesting thoughts soon over at &lt;a href="http://iheartspaceships.com/"&gt;iheartspaceships.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;niid.to&lt;/span&gt;&lt;br /&gt;About a month ago &lt;a href="http://twitter.com/jameswykes"&gt;James&lt;/a&gt; and &lt;a href="http://twitter.com/tomcavill"&gt;Tom C&lt;/a&gt; left twentysix Leeds to persue a life of love and freedom as freelance developer and designer respectively. Amongst various freelance work that they won't tell us about they also founded &lt;a href="http://www.niid.to/"&gt;&lt;em&gt;niid.to&lt;/em&gt;, a social to do list&lt;/a&gt; and they have an accompanying blog over at &lt;a href="http://niidto.blogspot.com/"&gt;http://niidto.blogspot.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;26point1&lt;/span&gt;&lt;br /&gt;Our Technical Director, Matt, used to run two blogs for the different types of nonsense he likes to spout off about. "matts 2 minute reviews" and "matts random days". Not that long ago, he merged them into &lt;a href="http://26point1.com/"&gt;one central repository of nonsense over at 26point1&lt;/a&gt;. Hop on over there to read about all kinds of rubbish, both technology-based and not...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-5635949593362262063?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/5635949593362262063/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2009/04/people-i-know-and-like.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/5635949593362262063'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/5635949593362262063'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2009/04/people-i-know-and-like.html' title='People I know and Like(?)'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-5005642319978069146</id><published>2009-02-24T10:43:00.002Z</published><updated>2009-02-24T10:52:47.413Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Music'/><category scheme='http://www.blogger.com/atom/ns#' term='ROCK'/><category scheme='http://www.blogger.com/atom/ns#' term='Metallica'/><title type='text'>Metallica</title><content type='html'>I'm off to see Metallica at Nottingham Arena tomorrow night. Can't wait!&lt;br /&gt;&lt;br /&gt;As you'll be able to see from &lt;a href="http://www.last.fm/user/gregbrant"&gt;my Last.fm&lt;/a&gt;, I've been listening to a lot of it today and yesterday to get in the mood :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-5005642319978069146?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/5005642319978069146/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2009/02/metallica.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/5005642319978069146'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/5005642319978069146'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2009/02/metallica.html' title='Metallica'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-554686866775595147</id><published>2009-02-14T11:21:00.001Z</published><updated>2009-02-14T11:23:04.928Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='James Field'/><category scheme='http://www.blogger.com/atom/ns#' term='Friends'/><category scheme='http://www.blogger.com/atom/ns#' term='blogging'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>Final Frontier</title><content type='html'>My old friend James only just showed me the devblog for the project he's basing his masters work around. Swing on over to &lt;a href="http://www.frontier.lincoln.ac.uk/devblog/"&gt;http://www.frontier.lincoln.ac.uk/devblog/&lt;/a&gt; and check out the crazy work he's doing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-554686866775595147?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/554686866775595147/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2009/02/final-frontier.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/554686866775595147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/554686866775595147'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2009/02/final-frontier.html' title='Final Frontier'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-3110061541674557323</id><published>2009-02-07T08:11:00.002Z</published><updated>2009-02-07T08:13:49.266Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='blogging'/><title type='text'>Tidy Up</title><content type='html'>I just deleted all my old half started posts in an attempt to get some more writing done, I figured I would never finish these posts now or in the future as the moment really has passed and would seem even less applicable as time crawles on.&lt;br /&gt;&lt;br /&gt;Well, what else am I going to do at 8am on a Saturday :(&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-3110061541674557323?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/3110061541674557323/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2009/02/tidy-up.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/3110061541674557323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/3110061541674557323'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2009/02/tidy-up.html' title='Tidy Up'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-5032739037641209042</id><published>2009-01-28T20:50:00.003Z</published><updated>2009-01-31T11:31:02.249Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='EPiServer'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP'/><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><title type='text'>Getting to grips with EPiServer</title><content type='html'>A week ago I was in London for a 3 day training course for &lt;a href="http://www.episerver.com/"&gt;EPiServer CMS&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I really enjoyed the course and learning about the CMS, it looks like EPiServer could be one of the best commercial CMS's out there.&lt;br /&gt;&lt;br /&gt;It comes with integration packages for Visual Studio which make using the features a doddle and I'm looking forward to using it on some projects in the future.&lt;br /&gt;&lt;br /&gt;Watch this space for any tips and tricks I pick up along my way.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-5032739037641209042?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/5032739037641209042/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2009/01/getting-to-grips-with-episerver.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/5032739037641209042'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/5032739037641209042'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2009/01/getting-to-grips-with-episerver.html' title='Getting to grips with EPiServer'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-7377154691542337395</id><published>2008-11-17T17:08:00.003Z</published><updated>2008-11-17T17:13:27.083Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Friends'/><category scheme='http://www.blogger.com/atom/ns#' term='blogging'/><title type='text'>The Pixel Chicken</title><content type='html'>I just found out that my mate Liz has buggered off back to Australia without somuch as a good bye! The cow!&lt;br /&gt;&lt;br /&gt;So anyway, I thought I'd link her up... If you're reading this, you're based in Sydney and you're looking for a top class interactive designer / developer then give &lt;a href="http://www.linkedin.com/in/pixelchicken"&gt;Liz&lt;/a&gt; a shout and check out her &lt;a href="http://www.pixelchicken.com/"&gt;blog&lt;/a&gt; over at &lt;a href="http://www.pixelchicken.com/"&gt;www.pixelchicken.com&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Liz, next time try saying good bye ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-7377154691542337395?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/7377154691542337395/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2008/11/pixel-chicken.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/7377154691542337395'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/7377154691542337395'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2008/11/pixel-chicken.html' title='The Pixel Chicken'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-8320032129669917676</id><published>2008-11-12T09:00:00.001Z</published><updated>2008-11-12T09:03:15.706Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Reviews'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP'/><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='Books'/><title type='text'>Book Review : ASP.NET 2.0 Step by Step</title><content type='html'>Just over a month ago I moved in with Smithy, during the expected packing and unpacking I came across a book that I bought close to 3 years ago when I started working at &lt;a href="http://www.twentysixleeds.com/"&gt;twentysix Leeds&lt;/a&gt; and was &lt;em&gt;forced&lt;/em&gt; to learn .NET.&lt;br /&gt;&lt;br /&gt;The book is "&lt;a href="http://www.amazon.co.uk/Microsoft-ASP-NET-2-0-Step/dp/0735622019"&gt;ASP.NET 2.0 Step by Step&lt;/a&gt;" from the Microsoft Press which and I've got to say, my initial opinion was not a good one, after getting just over half way through, I became disenchanted with and put to one side. I have since spent the last 8 months looking high and low for it, and even accusing my co-workers of losing it for me :S (sorry guys) as I found a desire to finish it.&lt;br /&gt;&lt;br /&gt;My first attempt at reading the book was not a good one. I was coming from a solid 5 years of scripting things like Lingo, ActionScript, JavaScript and most importantly PHP; I was struggling with the structured and strict way that ASP.NET works when compared to (loose and, dare I say, sloppy) PHP pages. It also seemed a bit wordy for my liking. Some of my favourite programming books are the O'Reilly cookbook series which give you examples based around short, concise scenarios.&lt;br /&gt;&lt;br /&gt;So, armed with my now solid 2 years of experience with C# and the .NET Framework I picked up the book again, found my old bookmark still stuck in at the end of chapter 13 and decided to have a little flick.&lt;br /&gt;&lt;br /&gt;It just so happened that the next couple of chapters concerned subjects that have been on the agenda quite a bit recently, namely the caching of data and output within a web application.&lt;br /&gt;&lt;br /&gt;These two chapters give a good introduction and now, with just over two years experience with C# and the .NET framework I find these chapters to be just enough to get me going on a subject. I now know how and where to look for further information on a subject from my time searching the usual places.&lt;br /&gt;&lt;br /&gt;Having re-read the first 13 chapters I take back most of what I thought about it in the first place and can see that my original lack of enthusiasm for the book was not down to the book, but due to my inexperience with ASP.NET and all its in's and outs. I actually love this book now as it gives you insights into many of the key tools that you might use day to day in a ASP.NET web app.&lt;br /&gt;&lt;br /&gt;Good book, get it read!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-8320032129669917676?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/8320032129669917676/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2008/11/book-review-aspnet-20-step-by-step.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/8320032129669917676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/8320032129669917676'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2008/11/book-review-aspnet-20-step-by-step.html' title='Book Review : ASP.NET 2.0 Step by Step'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-8664799914450868820</id><published>2008-11-11T20:00:00.001Z</published><updated>2009-01-28T21:01:54.817Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Singleton Pattern'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP'/><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='Static Classes'/><title type='text'>The ASP.NET Singleton, Singleton classes for ASP.NET</title><content type='html'>This is a little trick I learned recently. I had a situation where I needed to use a static class in one of my ASP.NET web apps. I wanted it to provide functionality on a per-user basis, but when I put this in to practice I got some funny results and then I realised the obvious. Static classes are shared throughout any single instance of a .NET application, and each website runs within it's own w3wp.exe process, as a self contained application. This explained the funny behaviour.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;So I did a little digging around and found the following code, which adapts the singleton pattern to store the instance in a per-user manner.&lt;/p&gt;&lt;p&gt;Each user is assigned an HttpContext for thier time visiting an ASP.NET web application. This Context object allows you to store objects.&lt;/p&gt;&lt;p&gt;So a classic Singleton might look something like this&lt;/p&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt; font-size: small;&lt;br /&gt; color: black;&lt;br /&gt; font-family: Consolas, "Courier New", Courier, Monospace;&lt;br /&gt; background-color: #ffffff;&lt;br /&gt; /*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;&lt;br /&gt;.csharpcode .alt&lt;br /&gt;{&lt;br /&gt; background-color: #f4f4f4;&lt;br /&gt; width: 100%;&lt;br /&gt; margin: 0em;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;br /&gt;&lt;/style&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;class&lt;/span&gt; Singleton {&lt;br /&gt;  &lt;br /&gt;    &lt;span class="rem"&gt;// private instance field&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; Singleton _instance;&lt;br /&gt;  &lt;br /&gt;    &lt;span class="rem"&gt;// public read-only instance property&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; Singleton Instance {&lt;br /&gt;        get{&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt;(_instance == &lt;span class="kwrd"&gt;null&lt;/span&gt;){&lt;br /&gt;                _instance = &lt;span class="kwrd"&gt;new&lt;/span&gt; Singleton();&lt;br /&gt;            }&lt;br /&gt;          &lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; _instance;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span class="rem"&gt;// private constructor&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;private&lt;/span&gt; Singleton() {&lt;br /&gt;        &lt;span class="rem"&gt;// constructor logic here&lt;/span&gt;&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;All we have to do is to replace the private field for an Item in the HttpContect object, like so...&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt; font-size: small;&lt;br /&gt; color: black;&lt;br /&gt; font-family: Consolas, "Courier New", Courier, Monospace;&lt;br /&gt; background-color: #ffffff;&lt;br /&gt; /*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;&lt;br /&gt;.csharpcode .alt&lt;br /&gt;{&lt;br /&gt; background-color: #f4f4f4;&lt;br /&gt; width: 100%;&lt;br /&gt; margin: 0em;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;br /&gt;&lt;/style&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;class&lt;/span&gt; Singleton {&lt;br /&gt;  &lt;br /&gt;    &lt;span class="rem"&gt;// public read-only instance property&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; Singleton Instance {&lt;br /&gt;        get{&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt;(HttpContext.Current.Items[&lt;span class="str"&gt;"SingltonInstance"&lt;/span&gt;] == &lt;span class="kwrd"&gt;null&lt;/span&gt;){&lt;br /&gt;                HttpContext.Current.Items.Add(&lt;span class="str"&gt;"SingltonInstance"&lt;/span&gt;, &lt;span class="kwrd"&gt;new&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Singleton());&lt;br /&gt;            }&lt;br /&gt;          &lt;br /&gt;            &lt;span class="rem"&gt;// cast the item to a singleton because it is stored as a generic object&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; (Singleton)HttpContext.Current.Items[&lt;span class="str"&gt;"SingltonInstance"&lt;/span&gt;];&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span class="rem"&gt;// private constructor&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;private&lt;/span&gt; Singleton() {&lt;br /&gt;        &lt;span class="rem"&gt;// constructor logic here&lt;/span&gt;&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-8664799914450868820?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/8664799914450868820/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2008/11/aspnet-singleton-singleton-classes-for.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/8664799914450868820'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/8664799914450868820'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2008/11/aspnet-singleton-singleton-classes-for.html' title='The ASP.NET Singleton, Singleton classes for ASP.NET'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-4717475319515666843</id><published>2008-09-30T15:09:00.004+01:00</published><updated>2008-09-30T15:18:22.452+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pain in the arse'/><category scheme='http://www.blogger.com/atom/ns#' term='Horsforth'/><category scheme='http://www.blogger.com/atom/ns#' term='work'/><category scheme='http://www.blogger.com/atom/ns#' term='Running'/><category scheme='http://www.blogger.com/atom/ns#' term='shit'/><category scheme='http://www.blogger.com/atom/ns#' term='10Km'/><title type='text'>Working from home</title><content type='html'>So this Sunday I ran in the Horsforth 10Km race and finished in 46mins, not my personal best but it was a hilly course so it was always going to be difficult achieving that, and to boot I had pulled my left knee a little bit in training the Tuesday before.&lt;br /&gt;&lt;br /&gt;This little pull has turned into a full blown injury which sees me working from home today and tomorrow and with a physio appointment 1st thing on Thursday.&lt;br /&gt;&lt;br /&gt;Working from home has for a long time been a nightmare of mine. Simply because I do not (or did not) possess enough self dicipline to put in a full and productive days work. Until now!&lt;br /&gt;&lt;br /&gt;I used to work part time at &lt;a href="http://www.lincoln.ac.uk/home/"&gt;a University&lt;/a&gt; and then, in my "spare" time work on a few freelance bits and pieces, which seemed like a chore and I would always have to work late into the night to get to a point where I had achieved enough *work* for the day.&lt;br /&gt;&lt;br /&gt;But I'm setting the record straight today. I was up at 7am with Smithy (mainely because I had a doctors appointment to get to) and then when I got back I was straight to the laptop and into the working. Had 40 mins for lunch and then more working. It feels good, this home working lark...&lt;br /&gt;&lt;br /&gt;Luck I've got another day of it tomorrow then!...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-4717475319515666843?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/4717475319515666843/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2008/09/working-from-home.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/4717475319515666843'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/4717475319515666843'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2008/09/working-from-home.html' title='Working from home'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-4449277391440990278</id><published>2008-09-22T10:54:00.002+01:00</published><updated>2008-09-22T11:09:44.862+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Horsforth'/><category scheme='http://www.blogger.com/atom/ns#' term='Running'/><category scheme='http://www.blogger.com/atom/ns#' term='10Km'/><title type='text'>Racing Time</title><content type='html'>&lt;p&gt;Next Sunday sees &lt;a href="http://www.horsforthharriers.co.uk/content/horsforth10k.php"&gt;the 24th Horsforth 10Km race&lt;/a&gt; which I will be running in.&lt;/p&gt;&lt;p&gt;I’ll be racing against some of my workmates, James, Tom, Jen and Sarah. So there should be some good fun and I’m looking to beat my most recent time at the &lt;a href="http://nikeplus.nike.com/nikeplus/emea/v1/race/index.html?datapath=/nikeplus/emea/v1/race/race_run/en/great_yorkshire_run/&amp;amp;lang=en#/graph?user=1412"&gt;Great Yorkshire run&lt;/a&gt; last month in Sheffield where I posted a time of 45:45 for 10Km.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-4449277391440990278?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/4449277391440990278/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2008/09/racing-time.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/4449277391440990278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/4449277391440990278'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2008/09/racing-time.html' title='Racing Time'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-2722760816483242146</id><published>2008-09-11T17:17:00.003+01:00</published><updated>2008-09-11T17:19:28.444+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Adobe AIR'/><title type='text'>How to uninstall Adobe AIR on Windows</title><content type='html'>Here's some linkage for how to uninstall Adobe AIR on windows.&lt;br /&gt;&lt;br /&gt;Download the latest installer and then from the dcommand line give it some of this&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;AdobeAIRInstaller.exe -uninstall&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Thanks to flashmech for the &lt;a href="http://blog.flashmech.net/2008/05/this-is-how-you-uninstall-adobe-air/"&gt;original post (http://blog.flashmech.net/2008/05/this-is-how-you-uninstall-adobe-air/)&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-2722760816483242146?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/2722760816483242146/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2008/09/how-to-uninstall-adobe-air-on-windows.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/2722760816483242146'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/2722760816483242146'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2008/09/how-to-uninstall-adobe-air-on-windows.html' title='How to uninstall Adobe AIR on Windows'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-7097608680309152608</id><published>2008-08-27T16:42:00.007+01:00</published><updated>2008-08-28T08:58:34.275+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='Code'/><title type='text'>How to de-dupe a record set using a temporary table (MSSQL)</title><content type='html'>&lt;p&gt;Following on from the SQL Fire we witnessed a while ago I've just wrote this rather snazzy little query that does something similar. &lt;/p&gt;&lt;p&gt;&lt;span style="font-size:130%;"&gt;The Problem:&lt;br /&gt;&lt;/span&gt;The original problem is we have a little game with a scoreboard and one very dedicated player. Well, not only one player, many players but one is more determined to win than the rest. So to keep the small scoreboard looking inviting we decided to only show each player once, and to only show that players highest score. &lt;/p&gt;&lt;p&gt;I really wanted to do this in SQL as I figured it’s sorting and ordering abilities would be far easier than writing something in C#.&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:130%;"&gt;The Solutions:&lt;br /&gt;&lt;/span&gt;Select the data into a temporary table which has a unique index on the user ID. The order of the select will ensure that only the highest score for each user will make it into the temporary table. Then select everything out of said temptable. &lt;/p&gt;&lt;p&gt;&lt;span style="font-size:130%;"&gt;The Practical:&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;-- CREATE THE TEMPORARY TABLE&lt;br /&gt;CREATE TABLE #tmpTable (&lt;br /&gt;    strFirstName NVARCHAR(255),&lt;br /&gt;    strLastName NVARCHAR(255),&lt;br /&gt;    intScore INT,&lt;br /&gt;    intUserID_PK INT&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;-- ADD THE UNIQUE INDEX&lt;br /&gt;CREATE UNIQUE INDEX ix0 ON #tmpTable (intUserID_PK) WITH (ignore_dup_key = ON)&lt;br /&gt;&lt;br /&gt;-- INSERT THE DATA&lt;br /&gt;INSERT INTO #tmpTable SELECT strFirstName,strLastName,strValue, intUserID_FK&lt;br /&gt;    FROM tblScores&lt;br /&gt;&lt;br /&gt;-- THE ORDER IS THE WRONG WAY TO WHAT YOU THINK&lt;br /&gt;-- IT SHOULD BE, ASC NOT DESC...&lt;br /&gt;-- TRY IT THE OTHER WAY AND YOU SHOULD GET THE LOWEST SCORES&lt;br /&gt;    ORDER BY intScore ASC&lt;br /&gt;-- SELECT THE DATA&lt;br /&gt;SELECT * FROM #tmpTable&lt;br /&gt;-- WITH THE CORRECT ORDER BY&lt;br /&gt;ORDER BY intScore DESC&lt;br /&gt;GO -- CALL GO SO THIS BATCH GETS EXECUTED AND THE TABLE IS NOLONGER USED&lt;br /&gt;DROP TABLE #tmpTable&lt;br /&gt;GO -- DROP THE TABLE SO IT IS NOLONGER IN MEMORY&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Update: If you use this within a stored procedure you will need to remove the &lt;span style="font-family:courier new;"&gt;GO&lt;/span&gt; statements or the SP won't compile&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-7097608680309152608?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/7097608680309152608/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2008/08/how-to-de-dupe-record-set-using.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/7097608680309152608'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/7097608680309152608'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2008/08/how-to-de-dupe-record-set-using.html' title='How to de-dupe a record set using a temporary table (MSSQL)'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-808026345980862975</id><published>2008-08-26T08:52:00.004+01:00</published><updated>2008-08-26T08:59:05.967+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='cobblers'/><title type='text'>Code updated, Blog not-so-updated</title><content type='html'>After a comment that an anonymous reader made I have revised and updated the &lt;a href="http://absolutecobblers.blogspot.com/2008/02/aspnet-image-upload-and-resize-in-c-net.html"&gt;ASP.NET Image Upload and Resize article&lt;/a&gt;. So BIG thanks to Anonymous for that one!&lt;br /&gt;&lt;br /&gt;I''m struggling to finish the couple of posts i've started about recent activities so in absence of any real new content why not check out some of my other &lt;a href="http://absolutecobblers.blogspot.com/search/label/C%23"&gt;C# posts&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-808026345980862975?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/808026345980862975/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2008/08/code-updated-blog-not-so-updated.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/808026345980862975'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/808026345980862975'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2008/08/code-updated-blog-not-so-updated.html' title='Code updated, Blog not-so-updated'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-1005304693754184006</id><published>2008-08-11T14:20:00.004+01:00</published><updated>2008-08-11T14:26:44.254+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Photoshop CS3'/><category scheme='http://www.blogger.com/atom/ns#' term='shit'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows XP'/><title type='text'>Photoshop CS3 (Wndows XP) Crashes when I open more than one document.</title><content type='html'>The last couple of weeks at work have been HELL! All of a sudden Photoshop started bombing out any time I tried to have more than one image open at a time.&lt;br /&gt;&lt;br /&gt;If I opened 2 or more images at the same time... CRASH!&lt;br /&gt;If I created two new images... CRASH!&lt;br /&gt;If I created one image then opened another from disk... CRASH!&lt;br /&gt;If I opened an image from disk then created a new one... CRASH!&lt;br /&gt;&lt;br /&gt;Why? Because I'd recently deleted a printer and set a new one as my default.&lt;br /&gt;&lt;br /&gt;I just reinstalled Photoshop.. still the same.&lt;br /&gt;&lt;br /&gt;Simply changing the default printer however; That sorted it out...&lt;br /&gt;Come on Adobe, such an amature piece of codeing... How can opening multiple documents rely on the default printer... sort it out!&lt;br /&gt;&lt;br /&gt;Check out &lt;a href="http://kb.adobe.com/selfservice/viewContent.do?externalId=kb402704"&gt;http://kb.adobe.com/selfservice/viewContent.do?externalId=kb402704&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-1005304693754184006?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/1005304693754184006/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2008/08/photoshop-cs3-wndows-xp-crashes-when-i.html#comment-form' title='18 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/1005304693754184006'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/1005304693754184006'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2008/08/photoshop-cs3-wndows-xp-crashes-when-i.html' title='Photoshop CS3 (Wndows XP) Crashes when I open more than one document.'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>18</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-5785532726932583716</id><published>2008-08-02T12:03:00.005+01:00</published><updated>2008-08-11T13:44:51.976+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><category scheme='http://www.blogger.com/atom/ns#' term='work'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>Saturday Morning: Website Security Time...</title><content type='html'>Recently a couple of our sites have been subject to SQL Injection Attacks but non have suffered so hard as the one I'm currently securing.&lt;br /&gt;&lt;br /&gt;I spent all day yesterday on it and I've been up since 9AM when the head IT guy from our client called (and woke) me.&lt;br /&gt;&lt;br /&gt;So after I get this thing done, and then enjoy what is left of my weekend I plan on writing up my learnings and educating my co-workers. Keep an eye out for a blog post or two.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-5785532726932583716?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/5785532726932583716/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2008/08/saturday-morning-website-security-time.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/5785532726932583716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/5785532726932583716'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2008/08/saturday-morning-website-security-time.html' title='Saturday Morning: Website Security Time...'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-1272114100893075378</id><published>2008-07-21T15:00:00.005+01:00</published><updated>2008-07-21T16:31:22.623+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='twentysix Leeds'/><category scheme='http://www.blogger.com/atom/ns#' term='Jobs'/><title type='text'>twentysix Leeds are recruiting again!</title><content type='html'>We're looking for a couple of graduate Flash monkeys/developers to come in and help us out on some top class work for about a 6 month period.&lt;br /&gt;&lt;br /&gt;Applicants should be strong annimators with good ActionScript skills.&lt;br /&gt;&lt;br /&gt;We're looking for people who can start ASAP!&lt;br /&gt;&lt;br /&gt;So if you're in the Leeds area, rock Flash daily and want some high profile work at an ACE digital agency, then hit me up at &lt;a href="mailto:greg.brant@twentysixleeds.com"&gt;greg.brant@twentysixleeds.com&lt;/a&gt; and check out our work. &lt;a href="http://www.twentysixleeds.com/"&gt;www.twentysixleeds.com&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-1272114100893075378?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/1272114100893075378/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2008/07/twentysix-leeds-are-recruiting-again.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/1272114100893075378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/1272114100893075378'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2008/07/twentysix-leeds-are-recruiting-again.html' title='twentysix Leeds are recruiting again!'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-7676763354242742401</id><published>2008-07-21T14:45:00.004+01:00</published><updated>2008-09-23T16:54:27.273+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Friends'/><category scheme='http://www.blogger.com/atom/ns#' term='inyerface theatre company'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet'/><title type='text'>Shout out's...</title><content type='html'>Just a quick shout out to &lt;a href="http://twitter.com/penguinzoo"&gt;Gav&lt;/a&gt; who's just got &lt;a href="http://www.sublunary.co.uk/"&gt;his blog&lt;/a&gt; up and running by the looks of things.&lt;br /&gt;&lt;br /&gt;Check out &lt;a href="http://www.sublunary.co.uk/"&gt;http://www.sublunary.co.uk/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And to the &lt;a href="http://www.inyerfacetheatrecompany.co.uk/"&gt;inyerface&lt;/a&gt; folks for another excellent production this Friday and Saturday at the &lt;a href="http://en.wikipedia.org/wiki/Sheffield_Central_Library"&gt;Library Theater in Sheffield&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-7676763354242742401?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/7676763354242742401/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2008/07/shout-outs.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/7676763354242742401'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/7676763354242742401'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2008/07/shout-outs.html' title='Shout out&apos;s...'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-8213392545399086351</id><published>2008-07-15T13:36:00.003+01:00</published><updated>2008-07-15T13:40:35.533+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='Search Providers'/><category scheme='http://www.blogger.com/atom/ns#' term='twentysix Leeds'/><title type='text'>PHP Search plugin link updated</title><content type='html'>We just moved offices (&lt;a href="http://www.flickr.com/photos/greglio/sets/72157605842739854/"&gt;Photo's here&lt;/a&gt; and &lt;a href="http://www.flickr.com/photos/mattpallatt/sets/72157606139088851/"&gt;here&lt;/a&gt;) and as such some of our IP addresses changed.&lt;br /&gt;&lt;br /&gt;I've recently had a couple of hits to the &lt;a href="http://absolutecobblers.blogspot.com/2008/01/firefox-php-function-search-plugin.html"&gt;"Firefox PHP function search plugin" post&lt;/a&gt;. So I updated the link so &lt;a href="http://84.92.194.43/search.html"&gt;you can now download it again&lt;/a&gt;. Sorry for the slight outage.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-8213392545399086351?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/8213392545399086351/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2008/07/php-search-plugin-link-updated.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/8213392545399086351'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/8213392545399086351'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2008/07/php-search-plugin-link-updated.html' title='PHP Search plugin link updated'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-5240808922615592506</id><published>2008-06-26T12:42:00.012+01:00</published><updated>2011-02-08T15:48:44.256Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP'/><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='work'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet'/><category scheme='http://www.blogger.com/atom/ns#' term='Code'/><title type='text'>How to move the viewstate to the bottom of your page source (C# ASP.NET 2.0, 3.0, 2.5, Visual Studio 2005, Visual Studio 2008)</title><content type='html'>Last week one of our new SEO bod, Ryan, asked &lt;a href="http://twitter.com/AJinthe80s"&gt;Sel&lt;/a&gt; to move the viewstate to the bottom of the page source for &lt;a href="http://www.rest-assured.co.uk/"&gt;the rest assured site&lt;/a&gt;. This helps to improve your SEOness as a lot of search engines &lt;a href="http://www.google.co.uk/search?hl=en&amp;amp;q=how+much+of+your+page+source+does+google+spider&amp;amp;meta="&gt;only take so much of your source into account when spidering&lt;/a&gt;. So you really don't want to be feeding them 32k of base64 encoded gibberish when you could be giving them some beautifully crafted copy!&lt;br /&gt;&lt;br /&gt;Andy did a couple of Google's and &lt;a href="http://www.hanselman.com/blog/MovingViewStateToTheBottomOfThePage.aspx"&gt;found some code which did the trick perfectly&lt;/a&gt;.&lt;br /&gt;&lt;pre style="BORDER-BOTTOM: #999999 1px dashed; BORDER-LEFT: #999999 1px dashed; PADDING-BOTTOM: 5px; LINE-HEIGHT: 14px; BACKGROUND-COLOR: #eee; PADDING-LEFT: 5px; WIDTH: 100%; PADDING-RIGHT: 5px; FONT-FAMILY: Andale Mono, Lucida Console, Monaco, fixed, monospace; COLOR: #000000; FONT-SIZE: 12px; OVERFLOW: auto; BORDER-TOP: #999999 1px dashed; BORDER-RIGHT: #999999 1px dashed; PADDING-TOP: 5px"&gt;protected override void Render(System.Web.UI.HtmlTextWriter writer) {&lt;br /&gt;    System.IO.StringWriter stringWriter = new System.IO.StringWriter();&lt;br /&gt;    HtmlTextWriter htmlWriter = new HtmlTextWriter(stringWriter);&lt;br /&gt; &lt;br /&gt;    base.Render(htmlWriter);&lt;br /&gt;    string html = stringWriter.ToString();&lt;br /&gt; &lt;br /&gt;    int StartPoint = html.IndexOf("&amp;lt;input type="hidden" name="__VIEWSTATE");&lt;br /&gt; &lt;br /&gt;    if (StartPoint &amp;gt;= 0) {&lt;br /&gt;        int EndPoint = html.IndexOf("/&amp;gt;", StartPoint) + 2;&lt;br /&gt;        string viewstateInput = html.Substring(StartPoint, EndPoint - StartPoint);&lt;br /&gt;        html = html.Remove(StartPoint, EndPoint - StartPoint);&lt;br /&gt;        int FormEndStart = html.IndexOf("&amp;lt;/form&amp;gt;") - 1;&lt;br /&gt;        if (FormEndStart &amp;gt;= 0) {&lt;br /&gt;            html = html.Insert(FormEndStart, viewstateInput);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;    writer.Write(html);&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;This was ace and so today when I was asked to upload some ammends to a couple more of our clients sites I thought I would implement this for the same reasons as it only takes two seconds.&lt;br /&gt;&lt;br /&gt;While it worked a treat on one of the sites, the other was not so good. Here's what the page should look like:&lt;br /&gt;&lt;br /&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; DISPLAY: block; CURSOR: hand" id="BLOGGER_PHOTO_ID_5216166545189160098" border="0" alt="" src="http://2.bp.blogspot.com/_fNhrMpOqRwg/SGOL1h9GxKI/AAAAAAAAACs/RmHKL_juDi4/s400/xxx_correct.jpg" /&gt;And here's what I got:&lt;br /&gt;&lt;br /&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; DISPLAY: block; CURSOR: hand" id="BLOGGER_PHOTO_ID_5216166536126430002" border="0" alt="" src="http://2.bp.blogspot.com/_fNhrMpOqRwg/SGOL1AMYezI/AAAAAAAAACk/Ecfroe5OiEg/s400/xxx_wrong.jpg" /&gt;&lt;br /&gt;What has happened is this. The un-styled UL that you can see at the top of the page is the top half of the left hand navigation you can see in the 1st picture. This menu was implemented as a .NET user control and as such is treated like a page all of its own. The reason this happened is because the page was rendering out via our overridden method, but the control was not. So the HTML that the control generated was getting written to the output stream before the HTML of the Page (&lt;a href="http://msdn.microsoft.com/en-us/library/system.web.ui.page.aspx"&gt;"Page" in the .NET Class sense&lt;/a&gt;, not the "web page" sense).&lt;br /&gt;&lt;br /&gt;So this got me thinking, wouldn't it be nice to be able to have a single piece of code that could be applied to a site once, regardless of UserControls, MasterPages or any other intricacy, that would take care of moving the ViewState on every page of the site!?!&lt;br /&gt;&lt;br /&gt;The answer: Yes!&lt;br /&gt;The solution: an HttpModule...&lt;br /&gt;&lt;br /&gt;An &lt;a href="http://msdn.microsoft.com/en-us/library/zec9k340(VS.71).aspx"&gt;HttpModule&lt;/a&gt; is a piece of code that sits between your web application and IIS on the web server. What this module is going to do is intercept every response our application makes to a client and then, if the response is a HTML (read ASPX) page, look for and move the ViewState.&lt;br /&gt;&lt;br /&gt;To do this we will filter the response stream using the &lt;a href="http://msdn.microsoft.com/en-us/library/system.web.httpresponse.filter.aspx"&gt;Response.Filter&lt;/a&gt; property. I'll leave the full code until the end of the post but here are the main bits.&lt;br /&gt;&lt;br /&gt;1) Create a new class that implements IHttpModule.&lt;br /&gt;&lt;pre style="BORDER-BOTTOM: #999999 1px dashed; BORDER-LEFT: #999999 1px dashed; PADDING-BOTTOM: 5px; LINE-HEIGHT: 14px; BACKGROUND-COLOR: #eee; PADDING-LEFT: 5px; WIDTH: 100%; PADDING-RIGHT: 5px; FONT-FAMILY: Andale Mono, Lucida Console, Monaco, fixed, monospace; COLOR: #000000; FONT-SIZE: 12px; OVERFLOW: auto; BORDER-TOP: #999999 1px dashed; BORDER-RIGHT: #999999 1px dashed; PADDING-TOP: 5px"&gt;&lt;code&gt;public sealed class IHttpViewstateMover : IHttpModule {&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;2) Add an event handler to the current request. This even then decides weather to add our filter to the response stream based on if it is outputting HTML.&lt;/p&gt;&lt;pre style="BORDER-BOTTOM: #999999 1px dashed; BORDER-LEFT: #999999 1px dashed; PADDING-BOTTOM: 5px; LINE-HEIGHT: 14px; BACKGROUND-COLOR: #eee; PADDING-LEFT: 5px; WIDTH: 100%; PADDING-RIGHT: 5px; FONT-FAMILY: Andale Mono, Lucida Console, Monaco, fixed, monospace; COLOR: #000000; FONT-SIZE: 12px; OVERFLOW: auto; BORDER-TOP: #999999 1px dashed; BORDER-RIGHT: #999999 1px dashed; PADDING-TOP: 5px"&gt;&lt;code&gt;public void Init (HttpApplication context) {&lt;br /&gt;    context.ReleaseRequestState += new EventHandler(context_ReleaseRequestState);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void context_ReleaseRequestState (object sender, EventArgs e) {&lt;br /&gt;    HttpResponse response = HttpContext.Current.Response;&lt;br /&gt;&lt;br /&gt;    if ( response.ContentType == "text/html" ) {&lt;br /&gt;        response.Filter = new ViewstateMover(response.Filter);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;3) If the entire HTML file has been output ...&lt;/p&gt;&lt;pre style="BORDER-BOTTOM: #999999 1px dashed; BORDER-LEFT: #999999 1px dashed; PADDING-BOTTOM: 5px; LINE-HEIGHT: 14px; BACKGROUND-COLOR: #eee; PADDING-LEFT: 5px; WIDTH: 100%; PADDING-RIGHT: 5px; FONT-FAMILY: Andale Mono, Lucida Console, Monaco, fixed, monospace; COLOR: #000000; FONT-SIZE: 12px; OVERFLOW: auto; BORDER-TOP: #999999 1px dashed; BORDER-RIGHT: #999999 1px dashed; PADDING-TOP: 5px"&gt;&lt;code&gt;Regex eof = new Regex("&amp;lt;/html&amp;gt;", RegexOptions.IgnoreCase);&lt;br /&gt;&lt;br /&gt;if ( !eof.IsMatch(strBuffer) ) {&lt;br /&gt;    // code to follow...&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;re-position the viewstate and output the altered HTML to the stream.&lt;br /&gt;&lt;/p&gt;&lt;pre style="BORDER-BOTTOM: #999999 1px dashed; BORDER-LEFT: #999999 1px dashed; PADDING-BOTTOM: 5px; LINE-HEIGHT: 14px; BACKGROUND-COLOR: #eee; PADDING-LEFT: 5px; WIDTH: 100%; PADDING-RIGHT: 5px; FONT-FAMILY: Andale Mono, Lucida Console, Monaco, fixed, monospace; COLOR: #000000; FONT-SIZE: 12px; OVERFLOW: auto; BORDER-TOP: #999999 1px dashed; BORDER-RIGHT: #999999 1px dashed; PADDING-TOP: 5px"&gt;&lt;code&gt;    string finalHtml = _output_buffer.ToString();&lt;br /&gt;&lt;br /&gt;    int StartPoint = finalHtml.IndexOf("&amp;lt;input type="hidden" name="__VIEWSTATE");&lt;br /&gt;    if ( StartPoint &amp;gt;= 0 ) {&lt;br /&gt;        int EndPoint = finalHtml.IndexOf("/&amp;gt;", StartPoint) + 2;&lt;br /&gt;        string viewstateInput = finalHtml.Substring(StartPoint, EndPoint - StartPoint);&lt;br /&gt;        finalHtml = finalHtml.Remove(StartPoint, EndPoint - StartPoint);&lt;br /&gt;        int FormEndStart = finalHtml.IndexOf("&amp;lt;/form&amp;gt;") - 1;&lt;br /&gt;        if ( FormEndStart &amp;gt;= 0 ) {&lt;br /&gt;            finalHtml = finalHtml.Insert(FormEndStart, viewstateInput);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    byte[] data = UTF8Encoding.UTF8.GetBytes(finalHtml);&lt;br /&gt;&lt;br /&gt;    _output_stream.Write(data, 0, data.Length);&lt;/code&gt;&lt;/pre&gt;Simple as!&lt;br /&gt;&lt;p&gt;Now all you need to do us take the full code listing (below) and paste it into a C# file. Then add the following to your web.config inside the &lt;system.web&gt;element:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;system.web&gt;&lt;br /&gt;&lt;httpmodules&gt;&lt;br /&gt;&lt;add type="IHttpViewstateMover" name="IHttpViewstateMover"&gt;&lt;br /&gt;&lt;/httpmodules&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;So here's the code.&lt;pre style="BORDER-BOTTOM: #999999 1px dashed; BORDER-LEFT: #999999 1px dashed; PADDING-BOTTOM: 5px; LINE-HEIGHT: 14px; BACKGROUND-COLOR: #eee; PADDING-LEFT: 5px; WIDTH: 100%; PADDING-RIGHT: 5px; FONT-FAMILY: Andale Mono, Lucida Console, Monaco, fixed, monospace; COLOR: #000000; FONT-SIZE: 12px; OVERFLOW: auto; BORDER-TOP: #999999 1px dashed; BORDER-RIGHT: #999999 1px dashed; PADDING-TOP: 5px"&gt;&lt;code&gt;// Source code for IHttpViewstateMover.cs&lt;br /&gt;using System;&lt;br /&gt;using System.IO;&lt;br /&gt;using System.Text;&lt;br /&gt;using System.Text.RegularExpressions;&lt;br /&gt;using System.Web;&lt;br /&gt;&lt;br /&gt;/// &amp;lt;summary&amp;gt;&lt;br /&gt;/// IHttpViewstateMover is a HttpModule that moves the viewstate&lt;br /&gt;/// to the bottom of the HTML source to help with SEO&lt;br /&gt;/// &amp;lt;/summary&amp;gt;&lt;br /&gt;public sealed class IHttpViewstateMover : IHttpModule {&lt;br /&gt;    // the class is sealed so it cannot be inherited&lt;br /&gt;&lt;br /&gt;    public void Dispose () {&lt;br /&gt;        // nothing to dispose&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void Init (HttpApplication context) {&lt;br /&gt;        context.ReleaseRequestState += new EventHandler(context_ReleaseRequestState);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    void context_ReleaseRequestState (object sender, EventArgs e) {&lt;br /&gt;        HttpResponse response = HttpContext.Current.Response;&lt;br /&gt;&lt;br /&gt;        // Uncomment the following line if you only want to recieve a single call to ViewstateMover.Write&lt;br /&gt;        // context.Response.Buffer = true;&lt;br /&gt;&lt;br /&gt;        if ( response.ContentType == "text/html" ) {&lt;br /&gt;            response.Filter = new ViewstateMover(response.Filter);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    /// &amp;lt;summary&amp;gt;&lt;br /&gt;    /// ViewstateMover is the workhorse of the IHttpViewstateMover&lt;br /&gt;    /// &amp;lt;/summary&amp;gt;&lt;br /&gt;    private class ViewstateMover : Stream {&lt;br /&gt;        // this class is private as it serves no real purpose outside this implementation&lt;br /&gt;&lt;br /&gt;        private Stream _output_stream;&lt;br /&gt;        private long _position;&lt;br /&gt;        private StringBuilder _output_buffer;&lt;br /&gt;&lt;br /&gt;        /// &amp;lt;summary&amp;gt;&lt;br /&gt;        /// Creates a new instance of the ViewstateMover class&lt;br /&gt;        /// &amp;lt;/summary&amp;gt;&lt;br /&gt;        /// &amp;lt;param name="input_stream"&amp;gt;The HttpResponse.Filter to work with&amp;lt;/param&amp;gt;&lt;br /&gt;        public ViewstateMover (Stream input_stream) {&lt;br /&gt;            _output_stream = input_stream;&lt;br /&gt;            _output_buffer = new StringBuilder();&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        #region Stream Members&lt;br /&gt;&lt;br /&gt;        public override bool CanRead {&lt;br /&gt;            get { return true; }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public override bool CanSeek {&lt;br /&gt;            get { return true; }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public override bool CanWrite {&lt;br /&gt;            get { return true; }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public override void Close () {&lt;br /&gt;            _output_stream.Close();&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public override void Flush () {&lt;br /&gt;            _output_stream.Flush();&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public override long Length {&lt;br /&gt;            get { return 0; }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public override long Position {&lt;br /&gt;            get { return _position; }&lt;br /&gt;            set { _position = value; }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public override long Seek (long offset, SeekOrigin origin) {&lt;br /&gt;            return _output_stream.Seek(offset, origin);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public override void SetLength (long length) {&lt;br /&gt;            _output_stream.SetLength(length);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public override int Read (byte[] buffer, int offset, int count) {&lt;br /&gt;            return _output_stream.Read(buffer, offset, count);&lt;br /&gt;        }&lt;br /&gt;        #endregion&lt;br /&gt;&lt;br /&gt;        public override void Write (byte[] buffer, int offset, int count) {&lt;br /&gt;            string strBuffer = UTF8Encoding.UTF8.GetString(buffer, offset, count);&lt;br /&gt;&lt;br /&gt;            // check for the closing HTML tag&lt;br /&gt;            Regex eof = new Regex("&amp;lt;/html&amp;gt;", RegexOptions.IgnoreCase);&lt;br /&gt;&lt;br /&gt;            if ( !eof.IsMatch(strBuffer) ) {&lt;br /&gt;                _output_buffer.Append(strBuffer);&lt;br /&gt;            } else {&lt;br /&gt;                _output_buffer.Append(strBuffer);&lt;br /&gt;                string finalHtml = _output_buffer.ToString();&lt;br /&gt;&lt;br /&gt;                // original code from http://www.hanselman.com/blog/MovingViewStateToTheBottomOfThePage.aspx&lt;br /&gt;                int StartPoint = finalHtml.IndexOf("&amp;lt;input type="hidden" name="__VIEWSTATE");&lt;br /&gt;                if ( StartPoint &amp;gt;= 0 ) {&lt;br /&gt;                    int EndPoint = finalHtml.IndexOf("/&amp;gt;", StartPoint) + 2;&lt;br /&gt;                    string viewstateInput = finalHtml.Substring(StartPoint, EndPoint - StartPoint);&lt;br /&gt;                    finalHtml = finalHtml.Remove(StartPoint, EndPoint - StartPoint);&lt;br /&gt;                    int FormEndStart = finalHtml.IndexOf("&amp;lt;/form&amp;gt;") - 1;&lt;br /&gt;                    if ( FormEndStart &amp;gt;= 0 ) {&lt;br /&gt;                        finalHtml = finalHtml.Insert(FormEndStart, viewstateInput);&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                byte[] data = UTF8Encoding.UTF8.GetBytes(finalHtml);&lt;br /&gt;                // write the page countents out to the user&lt;br /&gt;                _output_stream.Write(data, 0, data.Length);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;As ever, the code is provided as is, with no kind of waranty so please test thoroughly before you place in a production environment. You use this code at your own risk.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-5240808922615592506?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/5240808922615592506/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2008/06/how-to-move-viewstate-to-bottom-of-your.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/5240808922615592506'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/5240808922615592506'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2008/06/how-to-move-viewstate-to-bottom-of-your.html' title='How to move the viewstate to the bottom of your page source (C# ASP.NET 2.0, 3.0, 2.5, Visual Studio 2005, Visual Studio 2008)'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_fNhrMpOqRwg/SGOL1h9GxKI/AAAAAAAAACs/RmHKL_juDi4/s72-c/xxx_correct.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-640674508610982066</id><published>2008-06-20T14:55:00.004+01:00</published><updated>2008-08-05T12:38:34.783+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pain in the arse'/><category scheme='http://www.blogger.com/atom/ns#' term='Outlook 2007'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft office'/><category scheme='http://www.blogger.com/atom/ns#' term='shit'/><title type='text'>How to stop Outlook 2007 from letting off a beep when a new email lands</title><content type='html'>This is possibly the single most annoying thing Microsoft have ever done!&lt;br /&gt;&lt;br /&gt;Especially when you're listening to some really loud music with ear plugs in.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;&lt;strong&gt;*BEEP*&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;"&lt;em&gt;Mother F***er&lt;/em&gt;" !&lt;br /&gt;&lt;br /&gt;So, how to get rid of it...&lt;br /&gt;&lt;br /&gt;Check out this guys post on &lt;a href="http://discuss.joelonsoftware.com/default.asp?joel.3.142549.7"&gt;how to stop outlook 2007 beeping at you when you get a new email&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-640674508610982066?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/640674508610982066/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2008/06/how-to-stop-outlook-2007-from-letting.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/640674508610982066'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/640674508610982066'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2008/06/how-to-stop-outlook-2007-from-letting.html' title='How to stop Outlook 2007 from letting off a beep when a new email lands'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-4791442115626092365</id><published>2008-06-16T13:45:00.005+01:00</published><updated>2008-06-16T14:23:47.511+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Student work'/><category scheme='http://www.blogger.com/atom/ns#' term='Orange'/><category scheme='http://www.blogger.com/atom/ns#' term='Nick Goward'/><category scheme='http://www.blogger.com/atom/ns#' term='Balloons'/><title type='text'>Not the "world's first internet balloon race"</title><content type='html'>Just seen &lt;a href="http://www.playballoonacy.com/"&gt;the Orange online balloon race&lt;/a&gt; and I really like the creative of the site though I do need to correct their incorrect claim in their title bar that it is the "worlds first internet balloon race".&lt;br /&gt;&lt;br /&gt;I'm gonna take this opportunity to big up on of my ex-students, &lt;a href="http://www.sicklittlefox.com/"&gt;Nick Goward&lt;/a&gt; for the work he did in his 3rd year at &lt;a href="http://www.bima.co.uk/bima-award/060A131707/bima-awards-2006/view-shortlist/18/"&gt;the Hull School of Art and Design&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.bigballoonrace.com/"&gt;Nicks Big Balloon Race&lt;/a&gt; was his major project which took him about 9 months to build and after all that hard work he not only &lt;a href="http://www.bima.co.uk/bima-award/060A131707/bima-awards-2006/view-shortlist/18/"&gt;won the Student category at the 2006 BIMA&lt;/a&gt;, he also won that years Grand Prix for his efforts.&lt;br /&gt;&lt;br /&gt;So nice website Orange, but get your facts right ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-4791442115626092365?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/4791442115626092365/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2008/06/now-worlds-first-internet-balloon-race.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/4791442115626092365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/4791442115626092365'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2008/06/now-worlds-first-internet-balloon-race.html' title='Not the &quot;world&apos;s first internet balloon race&quot;'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-1540362305420471817</id><published>2008-06-14T22:58:00.002+01:00</published><updated>2008-06-14T23:22:48.012+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Distraction'/><category scheme='http://www.blogger.com/atom/ns#' term='work'/><category scheme='http://www.blogger.com/atom/ns#' term='twentysix Leeds'/><category scheme='http://www.blogger.com/atom/ns#' term='On Aire'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet'/><title type='text'>On Aire</title><content type='html'>I started thinking about On Aire ages ago as a project that would enable me and &lt;a href="http://mattsrandomdays.blogspot.com/"&gt;my&lt;/a&gt; &lt;a href="http://www.iheartspaceships.com/"&gt;work&lt;/a&gt; &lt;a href="http://opinions.twentysixleeds.com/"&gt;mates&lt;/a&gt; to do things we don't get chance to look at and explore in &lt;a href="http://www.twentysixleeds.co.uk/"&gt;our 9-to-5&lt;/a&gt; but to date all that has come from it is &lt;a href="http://onaire.twentysixleeds.com/"&gt;a blog post&lt;/a&gt; and &lt;a href="http://www.onaire.co.uk/"&gt;a domain registration&lt;/a&gt;...&lt;br /&gt;&lt;br /&gt;Now that summer has (almost) got a hold of the UK I find that Gina and myself are asking more and more where we could go out for food or a relaxed drink in comfortable yet stylish (poncy twat?) sorroundings.&lt;br /&gt;&lt;br /&gt;And so this has started me thinking again about the idea behind On Aire, to provide a personalized guide to *evening entertainments* (tm) in the area of &lt;a href="http://maps.google.co.uk/maps?f=q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=river+aire,+Leeds&amp;amp;ie=UTF8&amp;amp;ll=53.819111,-1.59761&amp;amp;spn=0.0095,0.027294&amp;amp;t=h&amp;amp;z=16&amp;amp;iwloc=A"&gt;the river Aire&lt;/a&gt; (which is about 90% of Leeds depending on how liberal you are).&lt;br /&gt;&lt;br /&gt;So hopefully my ever expanding network of half started projetcs will be growing once again with the addition of a social network stylée food/drink bar/resturante recomendation thing.&lt;br /&gt;&lt;br /&gt;I'm going to try and get &lt;a href="http://www.twitter.com/thisisryan"&gt;Brain&lt;/a&gt; and the Flash guys on board with a nice AIR app (half of the projects name sake, trying to be all web 2.ohhhhhhhhhhhhhhhhhhh or something) that will make suggestions where you might eat or drink that day or evening.&lt;br /&gt;&lt;br /&gt;In theory this could be expanded to any and all kind of events and other fandangled features but I think I want to get some feature, no matter how small, online soon so that it might start getting used and so spur me and the (possible) team on to expan the thing.&lt;br /&gt;&lt;br /&gt;So hopefully I and some of the other guys at work will start posting over on &lt;a href="http://onaire.twentysixleeds.com/"&gt;the On Aire blog&lt;/a&gt; and might even get something on the site. I've got some ideas for the design of the site and features of the app so I'm gonna try and pitch them to the lads and see if I can get something rolling.&lt;br /&gt;&lt;br /&gt;Watch this (&lt;a href="http://onaire.twentysixleeds.com/"&gt;or that&lt;/a&gt;) space for more...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-1540362305420471817?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/1540362305420471817/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2008/06/on-aire.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/1540362305420471817'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/1540362305420471817'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2008/06/on-aire.html' title='On Aire'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-2835869892578529935</id><published>2008-05-28T09:11:00.004+01:00</published><updated>2008-05-28T12:33:49.320+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blogging'/><category scheme='http://www.blogger.com/atom/ns#' term='cobblers'/><title type='text'>The internet is a funny thing</title><content type='html'>When I first started this blog I couldn't help feeling a little self concious about "baring my soul" to the internet and thinking, what is the point? What have I got to say that anyone might be even slightly interested in?&lt;br /&gt;&lt;br /&gt;However; In true Field of Dreams "If you build it, they will come!" styleee this blog has gone from getting bugger all hits to now getting "a few" hits from all over the world, and the bounce rate, time on site and pages per visit are on the decline/up/up respectively.&lt;br /&gt;&lt;br /&gt;It's interesting to see which articles are getting the most traffic, courrently most popular is &lt;a href="http://absolutecobblers.blogspot.com/2008/02/aspnet-image-upload-and-resize-in-c-net.html"&gt;my little write up of an easy way to upload and resize in C#&lt;/a&gt;. Which is almost nice to see as I did intend on making that one quite big on the search engine front. So that seems to have worked / It's a very popular search topic (which is why I wrote it, Because I was sick of searching for it so I thought I'd use my blog as a kind of extended / shared note book for code snippets).&lt;br /&gt;&lt;br /&gt;So the ramblings keep on coming (although I had another drought the last month or so) but I think the next thing I'm going to try and write will be an article on securing ASP.NET applications as we recently had a little incident at work where some rogue links go into one of our site and as a result I got volunteered to write some best practices. Bugger... and on the theme of writing articles I'm going to look at an article on versioning web services too. I know there has been pleanty written about this already but I haven't really read any of it and it's one of the things I want get my head around and writing it up will probably help me drum it in.&lt;br /&gt;&lt;br /&gt;So watch this space for more absolute cobblers and other possibly useful things.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-2835869892578529935?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/2835869892578529935/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2008/05/internet-is-funny-thing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/2835869892578529935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/2835869892578529935'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2008/05/internet-is-funny-thing.html' title='The internet is a funny thing'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-6421161203764431824</id><published>2008-04-18T09:30:00.003+01:00</published><updated>2008-04-18T12:19:00.615+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Distraction'/><category scheme='http://www.blogger.com/atom/ns#' term='inyerface theatre company'/><title type='text'>Ohhh so close</title><content type='html'>Christ I'm slack!&lt;br /&gt;&lt;br /&gt;About a million years ago I prommissed some old friends a website for their youth theatre group, I said I'd do it for free as they have alway been good to me and so I set about being really really reaaaalllyyyy lethargic about the whole thing! It comes in fits and spurts, that last one being around the &lt;a href="http://absolutecobblers.blogspot.com/2008/02/done-it-again.html"&gt;beginning of February&lt;/a&gt;, which as Is pretty slack.&lt;br /&gt;&lt;br /&gt;So I've done it again; I'm spurting into another fit of enthusiasm and I'm going to put it to good use! I spent an hour last night and I was in the office at 7AM this morning getting it ready. I'm going to sent Hillary and Steve a link and isntructions to the first version of the site, Complete with a few basic pages, a news section and a place where they can document the past, pressent and future production of the theatre company.&lt;br /&gt;&lt;br /&gt;I'm going to hold their hand through the innitial setup and hopefully watch the traffic pour in!&lt;br /&gt;&lt;br /&gt;The photo gallery bit is about 70% done but I'm going to go live without it now as I reckon watching the hits pile (?? trickle) in on google analytics will spur me on some more to get the gallery up and running. The site looks a bit bare without it so it definitely needs to happen, and this time I think it will! i really really reaaallllyyyy do!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-6421161203764431824?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/6421161203764431824/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2008/04/ohhh-so-close.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/6421161203764431824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/6421161203764431824'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2008/04/ohhh-so-close.html' title='Ohhh so close'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-2986298250723389513</id><published>2008-04-10T13:33:00.003+01:00</published><updated>2008-04-10T17:52:50.570+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pain in the arse'/><category scheme='http://www.blogger.com/atom/ns#' term='technology'/><category scheme='http://www.blogger.com/atom/ns#' term='IE'/><category scheme='http://www.blogger.com/atom/ns#' term='waste of time'/><category scheme='http://www.blogger.com/atom/ns#' term='shit'/><title type='text'>Beta software, Microsoft, Windows and other shit things</title><content type='html'>A while ago when the first release candidate of Windows XP Servcie pack 3 came out I read a couple of reviews and got sold on the fact that it promised some speed increases over SP2. Now I'm no fool and I knew it wouldn't be anywhere near the equivalent of getting some hardware underneath the thing but I didn't think I'd experience anything near as retarded as I have done.&lt;br /&gt;&lt;br /&gt;Shortly after the release candidate was made available I formatted my laptop ready for a clean install. The first thing I installed after my fresh windows was SP 3. Now I know you're about to say "It's your own fault for using pre-release software" and it completely is! I doubt I'll ever use a pre-release of something so fundamental as an operating system ever again.&lt;br /&gt;&lt;br /&gt;So what happened? Well, I came into the office Tuesday after being ill on Monday to find I couldn't use remote desktop as "this beta software has expired"...&lt;br /&gt;After a quick chat to James I discovered he had had the same problems and that you needed to install a "technical refresh". This involved uninstalling the previous version, which was installed before any other software on my system.&lt;br /&gt;&lt;br /&gt;So I uninstalled it, spent about half an hour trying to get IE back on my system as the uninstall had shagged it up royal and made the decision never to use pre-release software again.&lt;br /&gt;&lt;br /&gt;Now I don't blame myself completely for my world of shit. Sure I installed it in the first place but Microsoft made it a bag of shit!!!&lt;br /&gt;&lt;br /&gt;Why and how?? Well this is many-fold&lt;br /&gt;&lt;br /&gt;1) By making it time limited in some way&lt;br /&gt;&lt;br /&gt;This is ridiculous; if someone has gone to the trouble of installing Beta/RC software you can pretty much guess they are going to be tech-savvy enough to know when to upgrade to the full release or get the new / updated release candidate. Don’t all of a sudden make their system unusable!&lt;br /&gt;&lt;br /&gt;2) Make uninstallers that work.&lt;br /&gt;&lt;br /&gt;Once I’d taken the plunge into uninstalling SP3, and waited hours for it to happen I decided NOT to install the technical refresh and stick with good old SP2. Which you would have imagined would be what I was left with after removing SP3 as it was a SP2 disk I used in the first place. But no, it wasn’t! It was some clagged up hybrid crock of shit which windows update wouldn’t even recognise. I had to download the SP2 installer and run all of that again to get my system back to “working”&lt;br /&gt;&lt;br /&gt;2.1) Make installers that work / don’t fuck your computer up&lt;br /&gt;&lt;br /&gt;So after all that I was left with IE6 so I installed IE7 and which now refuses to accept cookies, loads of sites complain about security and loads of other shit has gone wrong.&lt;br /&gt;&lt;br /&gt;At 1st opportunity I’m installing Mac OS 8.1 and having done with it! Well maybe not but it just baffles me why developers make things so overly complicated. Ok, it’s Beta and you’d prefer people not to run it forever so stick a warning in there. Don’t cripple their system for them and force them to brick their computers. You have a responsibility to the end user as much as to the business objectives, unless one of those objectives it to piss users off!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-2986298250723389513?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/2986298250723389513/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2008/04/beta-software-microsoft-windows-and.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/2986298250723389513'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/2986298250723389513'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2008/04/beta-software-microsoft-windows-and.html' title='Beta software, Microsoft, Windows and other shit things'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-3075613584463874332</id><published>2008-04-01T10:17:00.003+01:00</published><updated>2008-04-01T10:29:19.150+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Recruitment Consultants'/><category scheme='http://www.blogger.com/atom/ns#' term='work'/><category scheme='http://www.blogger.com/atom/ns#' term='twentysix Leeds'/><category scheme='http://www.blogger.com/atom/ns#' term='MAtt'/><title type='text'>Recruitment consultants are a special breed of idiot</title><content type='html'>Following up on &lt;a href="http://opinions.twentysixleeds.com/2008/03/recruitment-consultants-destroy-our.html"&gt;Matt's article about recruitment consultants&lt;/a&gt; I want to rant about them myself!&lt;br /&gt;&lt;br /&gt;Ten minutes ago I recieved an email from someone at Senitor offering me an excelent Desktop Support candidate.&lt;br /&gt;&lt;br /&gt;Now, having nothing to do with desktop support as all our IT is provided by our parent group I wrote said recruitment consultant a polite but concise email stating that I am a web developer, I am only concirned with web development and that I wish to be removed from any mailing lists for IT Support staff, but that it was fine for them to keep emailing me about Flash or Web Development candidates they might have.&lt;br /&gt;&lt;br /&gt;So two mins later I recieve my read-receipt and all is well. THEN, five minutes after that I get a phone call from some other chap at senitor saying he's just recieved word from this other chap (who I just emailed) saying that I'm looking for a freelancer and can he be of any help.&lt;br /&gt;&lt;br /&gt;So I spent five minutes explaining what I had previously wrote in my email and then informed him that &lt;a href="http://jobs.twentysixleeds.com/"&gt;we are acutally looking for a Permanent Senior Flash Developer&lt;/a&gt; and that he could rind Matt about that.&lt;br /&gt;&lt;br /&gt;He mumbled that one of collegues deals with permanent developers and said he would get him to ring through. The conversation ended.&lt;br /&gt;&lt;br /&gt;Wonder if I'll get any more IT support emails from them, or maybe a freelance chef or a mechanic?&lt;br /&gt;&lt;br /&gt;Good work recruitment consultants!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-3075613584463874332?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/3075613584463874332/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2008/04/recruitment-consultants-are-special.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/3075613584463874332'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/3075613584463874332'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2008/04/recruitment-consultants-are-special.html' title='Recruitment consultants are a special breed of idiot'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-8818817366590204297</id><published>2008-03-29T10:19:00.001Z</published><updated>2008-03-29T10:19:53.585Z</updated><title type='text'>Drunk please</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;a href="http://3.bp.blogspot.com/_fNhrMpOqRwg/R-4XxwanNII/AAAAAAAAAA8/0uNDbTrly-g/s1600-h/image-upload-6-791506.jpe"&gt;&lt;img src="http://3.bp.blogspot.com/_fNhrMpOqRwg/R-4XxwanNII/AAAAAAAAAA8/0uNDbTrly-g/s320/image-upload-6-791506.jpe"/&gt;&lt;/a&gt;&lt;br /&gt;&lt;span&gt;Nothing sorts a hang over like a full english! &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-8818817366590204297?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/8818817366590204297/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2008/03/drunk-please.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/8818817366590204297'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/8818817366590204297'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2008/03/drunk-please.html' title='Drunk please'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_fNhrMpOqRwg/R-4XxwanNII/AAAAAAAAAA8/0uNDbTrly-g/s72-c/image-upload-6-791506.jpe' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-4060825825845680225</id><published>2008-03-26T17:18:00.003Z</published><updated>2008-03-26T17:38:40.771Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Distraction'/><category scheme='http://www.blogger.com/atom/ns#' term='technology'/><category scheme='http://www.blogger.com/atom/ns#' term='work'/><category scheme='http://www.blogger.com/atom/ns#' term='twentysix Leeds'/><category scheme='http://www.blogger.com/atom/ns#' term='Adobe AIR'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>Adobe AIR comes to the UK</title><content type='html'>On April the 9th me and &lt;a href="http://twitter.com/thisisryan"&gt;Brian&lt;/a&gt; (I wish he would start to update his twitter again) will be attending the Adobe AIR tour in London.&lt;br /&gt;&lt;br /&gt;I'm going to try and think up a little AIR app to celebrate this but I'm going to wait untill the top secret project has finished before I get stuck into that.&lt;br /&gt;&lt;br /&gt;I'm also going to try and get Brian to help me out with the ideas and production.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-4060825825845680225?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/4060825825845680225/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2008/03/adobe-air-comes-to-uk.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/4060825825845680225'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/4060825825845680225'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2008/03/adobe-air-comes-to-uk.html' title='Adobe AIR comes to the UK'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-1973290860267462821</id><published>2008-03-26T13:15:00.002Z</published><updated>2008-03-26T13:20:15.542Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Distraction'/><category scheme='http://www.blogger.com/atom/ns#' term='Easter Eggs'/><category scheme='http://www.blogger.com/atom/ns#' term='play'/><category scheme='http://www.blogger.com/atom/ns#' term='Craziness'/><title type='text'>Easter</title><content type='html'>&lt;div&gt;Over the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;Easter&lt;/span&gt; weekend Gina and myself went up to Newcastle and spent a few days with her family.&lt;br /&gt;&lt;br /&gt;Her mom came up with the crazy idea of &lt;a href="http://www.flickr.com/photos/greglio/sets/72157604243249700/"&gt;making some &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;Easter&lt;/span&gt; eggs&lt;/a&gt;... and &lt;a href="http://www.flickr.com/photos/greglio/sets/72157604243249700/"&gt;here are the results&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/greglio/sets/72157604243249700/"&gt;http://www.flickr.com/photos/greglio/sets/72157604243249700/&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://farm3.static.flickr.com/2192/2361791420_4fc88d3fe4.jpg?v=0" border="0" /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-1973290860267462821?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/1973290860267462821/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2008/03/easter.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/1973290860267462821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/1973290860267462821'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2008/03/easter.html' title='Easter'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-5568576275808990558</id><published>2008-03-25T16:44:00.003Z</published><updated>2008-03-26T13:20:28.719Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='pain in the arse'/><category scheme='http://www.blogger.com/atom/ns#' term='work'/><category scheme='http://www.blogger.com/atom/ns#' term='waste of time'/><category scheme='http://www.blogger.com/atom/ns#' term='twentysix Leeds'/><category scheme='http://www.blogger.com/atom/ns#' term='MAtt'/><title type='text'>How many developers does it take to figure out some stats</title><content type='html'>&lt;p align="center" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;a href="http://3.bp.blogspot.com/_fNhrMpOqRwg/R-kr3AanNHI/AAAAAAAAAA0/2vo_aHH5nNs/s1600-h/image-upload-23-751835.jpe"&gt;&lt;img src="http://3.bp.blogspot.com/_fNhrMpOqRwg/R-kr3AanNHI/AAAAAAAAAA0/2vo_aHH5nNs/s320/image-upload-23-751835.jpe" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;br /&gt;&lt;span style="font-size:0;"&gt;Matt, Andy and Rich stress over some numbers&lt;/span&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-5568576275808990558?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/5568576275808990558/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2008/03/how-many-developers-does-it-take-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/5568576275808990558'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/5568576275808990558'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2008/03/how-many-developers-does-it-take-to.html' title='How many developers does it take to figure out some stats'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_fNhrMpOqRwg/R-kr3AanNHI/AAAAAAAAAA0/2vo_aHH5nNs/s72-c/image-upload-23-751835.jpe' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-6998561294402713776</id><published>2008-03-25T12:55:00.002Z</published><updated>2008-03-25T12:57:00.152Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='technology'/><category scheme='http://www.blogger.com/atom/ns#' term='twitter'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet'/><category scheme='http://www.blogger.com/atom/ns#' term='cobblers'/><title type='text'>Mumblings of a web developer</title><content type='html'>Thought I'd link up my twitter in here&lt;br /&gt;&lt;br /&gt;&lt;a href="http://twitter.com/GregB"&gt;http://twitter.com/GregB&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;check it out if you dare&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-6998561294402713776?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/6998561294402713776/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2008/03/mumblings-of-web-develoepr.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/6998561294402713776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/6998561294402713776'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2008/03/mumblings-of-web-develoepr.html' title='Mumblings of a web developer'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-174374719830711916</id><published>2008-03-25T12:11:00.002Z</published><updated>2008-03-25T12:24:13.079Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='work'/><category scheme='http://www.blogger.com/atom/ns#' term='twentysix Leeds'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><category scheme='http://www.blogger.com/atom/ns#' term='Jobs'/><title type='text'>Help wanted</title><content type='html'>Apply within,&lt;br /&gt;&lt;br /&gt;As you may or may not have read, recently I have been revisiting places long forgotten in im persona and filling some boots as a hardcore Flash developer. During this time it has become apparent that &lt;a href="http://jobs.twentysixleeds.com/"&gt;we need a Senior Flash Developer&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;So it gives me great pleasure to announce that &lt;a href="http://www.twentysixleeds.com/"&gt;the company I work for, twentysix Leeds&lt;/a&gt; are &lt;a href="http://jobs.twentysixleeds.com/"&gt;recruiting a new Senior Flash Developer&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://jobs.twentysixleeds.com/"&gt;The role&lt;/a&gt; requires years and years of expert experiance of Adobe Flash, ActionScript 2 and ActionScript 3. Knowlage of Object Oriented techniques and all the other usual stuff is a must! Knowlage of other web technologies are a bonus so don't forget to tell us about them when &lt;a href="mailto:matt.pallatt@twentysixleeds.com"&gt;you email Matt with your application (matt.pallatt@twentysixleeds.com )&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If you think you might be interested then why not head over to &lt;a href="http://www.twentysixlondon.com/work/"&gt;our portfolio&lt;/a&gt; and see what kind of work we do for fantastic clients such as &lt;a href="http://www.hugofragrances.com/"&gt;HUGO&lt;/a&gt; &lt;a href="http://www.bossfragrances.com/"&gt;BOSS Fragrances&lt;/a&gt;, &lt;a href="http://www.lacostepink.com/"&gt;Lacoste&lt;/a&gt; and &lt;a href="http://www.silentnight.co.uk/"&gt;Silent Night Beds&lt;/a&gt; &lt;a href="http://www.twentysixlondon.com/work/"&gt;amongst others&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-174374719830711916?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/174374719830711916/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2008/03/help-wanted.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/174374719830711916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/174374719830711916'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2008/03/help-wanted.html' title='Help wanted'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-482194760300302856</id><published>2008-03-15T13:16:00.003Z</published><updated>2008-03-26T13:20:49.801Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Binge Drinking'/><category scheme='http://www.blogger.com/atom/ns#' term='Works Do&apos;s'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet'/><category scheme='http://www.blogger.com/atom/ns#' term='shit'/><title type='text'>Click this shit</title><content type='html'>&lt;p align="center" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;a href="http://4.bp.blogspot.com/_fNhrMpOqRwg/R9vMFcRpxXI/AAAAAAAAAAs/beoketUgJ1I/s1600-h/image-upload-18-765007.jpe"&gt;&lt;img src="http://4.bp.blogspot.com/_fNhrMpOqRwg/R9vMFcRpxXI/AAAAAAAAAAs/beoketUgJ1I/s320/image-upload-18-765007.jpe" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;br /&gt;&lt;span style="font-size:0;"&gt;Just found this on my phone along with a bunch more crazy photos of last nights ridiculousness. Might get up and get a shower, or i might lay here and feel sorry for my self some more.&lt;br /&gt;&lt;br /&gt;Click that shit!&lt;/span&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-482194760300302856?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/482194760300302856/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2008/03/click-this-shit.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/482194760300302856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/482194760300302856'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2008/03/click-this-shit.html' title='Click this shit'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_fNhrMpOqRwg/R9vMFcRpxXI/AAAAAAAAAAs/beoketUgJ1I/s72-c/image-upload-18-765007.jpe' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-986275945894962896</id><published>2008-03-14T17:59:00.001Z</published><updated>2008-03-14T18:01:18.258Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Binge Drinking'/><category scheme='http://www.blogger.com/atom/ns#' term='Works Do&apos;s'/><category scheme='http://www.blogger.com/atom/ns#' term='twentysix Leeds'/><title type='text'>The Razz</title><content type='html'>&lt;a href="http://www.twentysixleeds.com/"&gt;we're&lt;/a&gt; off out on it! Our 1st birthday. Photo's to follow...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-986275945894962896?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/986275945894962896/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2008/03/razz.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/986275945894962896'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/986275945894962896'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2008/03/razz.html' title='The Razz'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-8747853662008959700</id><published>2008-03-07T10:27:00.003Z</published><updated>2008-06-25T15:14:28.562+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='technology'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>HTTP monitoring on windows</title><content type='html'>As a web developer watching data being sent over your network connection is often important and sometimes essential for reliably debugging your work (when you're not sure if you clagged togheter code is making spurious requests in the background or not).&lt;br /&gt;&lt;br /&gt;Today I'm still &lt;a href="http://absolutecobblers.blogspot.com/2008/02/western-front.html"&gt;building the top secret Flash project&lt;/a&gt; which is going well and is now into thousands of lines of code and it's starting to get complicated. Flash 8 on my Dell M70 takes around 30 seconds to build the swf.&lt;br /&gt;&lt;br /&gt;Any way, so I needed to watch the HTTP trafic coming out of my SWF to make sure it was doing what it was supposed to do. I considdered running it through a web page and using firebug's net monitor or getting Charles installed but it occured to me that the most reliable source (on windows at least) would be a microsoft tool that I'd seen Matt pratting about with a while ago, &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=18b1d59d-f4d8-4213-8d17-2f6dde7d7aac&amp;amp;displaylang=en"&gt;Microsoft Network Monitor 3.1&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Once you have downloaded and installed that, simply click "Create a new capture tab" and then in capture filter tab paste the following:&lt;br /&gt;&lt;br /&gt;contains (Property.HttpHost, "the.domain.name")&lt;br /&gt;&lt;br /&gt;where "the.domain.name" is the host name of the server you wish to watch traffic for then press the start button and you will see all your HTTP (web) traffic from any application to that domain&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-8747853662008959700?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/8747853662008959700/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2008/03/http-monitoring-on-windows.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/8747853662008959700'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/8747853662008959700'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2008/03/http-monitoring-on-windows.html' title='HTTP monitoring on windows'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-31518733054914034</id><published>2008-02-29T14:24:00.004Z</published><updated>2008-02-29T14:31:54.547Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='ActionScript'/><category scheme='http://www.blogger.com/atom/ns#' term='Craziness'/><category scheme='http://www.blogger.com/atom/ns#' term='work'/><title type='text'>The western front...</title><content type='html'>All is quiete around here and has been for a while.&lt;br /&gt;&lt;br /&gt;This is mainly due to me having to learn ActionScript (again) to pull a project out of the gutter so I will be spending most of the weekend (and any other *spare* time I might have) living and breathing AS2 classes and wishing I was a lot better versed in the drawing API and the old EventDispatcher. Although I'm not doing bad having not done any &lt;em&gt;serious&lt;/em&gt; ActionScript in the last 18 is months.&lt;br /&gt;&lt;br /&gt;The project is top secret so I can't say much more but maybe I'll have some lovely little learnings to write about if and when I get the time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-31518733054914034?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/31518733054914034/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2008/02/western-front.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/31518733054914034'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/31518733054914034'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2008/02/western-front.html' title='The western front...'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-5224485571134809875</id><published>2008-02-26T14:32:00.003Z</published><updated>2008-02-26T14:38:12.352Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='Code'/><title type='text'>Shrinking Log files in SQL Server 2005</title><content type='html'>So you, like I, have a database in SQL Server 2005 who's log file (.ldf) has grown massive.&lt;br /&gt;&lt;br /&gt;Here is a quick but of SQL that should help you shrink the file to reclaim some disk space. be warned, this might impeed your ability to restore the database later if it all goes wibble.&lt;br /&gt;&lt;br /&gt;First run the following&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="source-code"&gt;&lt;code&gt;USE nameOfTheDatabaseHere&lt;br /&gt;SELECT * FROM sysfiles &lt;/code&gt;&lt;/pre&gt;&lt;pre class="source-code"&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Now, take note of the fileid of the log file (usualy 2 for most databases) then do&lt;br /&gt;&lt;br /&gt;&lt;pre class="source-code"&gt;&lt;code&gt;DBCC SHRINKFILE&lt;br /&gt;    ( fileIDGoesHere, TRUNCATEONLY )&lt;/code&gt;&lt;/pre&gt;&lt;pre class="source-code"&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;This will truncate the log file to as small as the DB Server will allow.&lt;br /&gt;&lt;br /&gt;See &lt;a href="http://msdn2.microsoft.com/en-us/library/aa258824.aspx"&gt;http://msdn2.microsoft.com/en-us/library/aa258824.aspx&lt;/a&gt; for more info&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-5224485571134809875?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/5224485571134809875/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2008/02/shrinking-log-files-in-sql-server-2005.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/5224485571134809875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/5224485571134809875'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2008/02/shrinking-log-files-in-sql-server-2005.html' title='Shrinking Log files in SQL Server 2005'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-1921524162136048835</id><published>2008-02-21T16:27:00.002Z</published><updated>2008-02-21T16:29:54.026Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Craziness'/><category scheme='http://www.blogger.com/atom/ns#' term='technology'/><category scheme='http://www.blogger.com/atom/ns#' term='IE'/><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet'/><title type='text'>WOW</title><content type='html'>This is ace.&lt;br /&gt;&lt;br /&gt;It's like all that microsoft *&lt;a href="http://labs.live.com/Seadragon.aspx"&gt;seadragon&lt;/a&gt;* or what ever it was called&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.cooliris.com/"&gt;http://www.cooliris.com/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-1921524162136048835?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/1921524162136048835/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2008/02/wow.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/1921524162136048835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/1921524162136048835'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2008/02/wow.html' title='WOW'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-8894482621790526499</id><published>2008-02-20T14:27:00.000Z</published><updated>2008-02-20T14:28:15.828Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP'/><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet'/><category scheme='http://www.blogger.com/atom/ns#' term='Code'/><title type='text'>Downloading and Deleting Temporary Files</title><content type='html'>Recently while working on some functionality for &lt;a href="http://www.bayergarden.co.uk/"&gt;one of our clients&lt;/a&gt; I found myself in a position where I needed to add some images to a zip file. This zip file then needed to be sent to the end user as a download (&lt;em&gt;Content-disposition: attachment;&lt;/em&gt;).&lt;br /&gt;&lt;br /&gt;Once the user had downloaded the file, the zip file needed to be deleted so as not to leave temp files on the servers disk.&lt;br /&gt;&lt;br /&gt;I tried a few things like calling &lt;em&gt;File.Delete("path/to/file.zip")&lt;/em&gt; after doing &lt;em&gt;Response.TransferFile()&lt;/em&gt; or &lt;em&gt;Response.WriteFile()&lt;/em&gt; but I found that the page never loaded. I guess it was deleting the file bfore it had chance to stream the file to the client.&lt;br /&gt;&lt;br /&gt;Eventually I came up with the code below which reads the entire file into a BinaryWriter and the write it out to the Response's OutputStream. The stream is then flushed and the file can be deleted.&lt;br /&gt;&lt;pre class="source-code"&gt;&lt;code&gt;    string theFile = "path/to/your.file";&lt;br /&gt;    FileInfo theFileInfo = new FileInfo(theFile);&lt;br /&gt;&lt;br /&gt;    if(theFileInfo.Exists) {&lt;br /&gt;        // Clear any output&lt;br /&gt;        Response.Clear();&lt;br /&gt;        Response.BufferOutput = true;&lt;br /&gt;        // should be the MIME-Type of your file&lt;br /&gt;        Response.ContentType = "application/x-zip-compressed";&lt;br /&gt;        // set the name of the file as it will be downloaded&lt;br /&gt;        Response.AddHeader("Content-Disposition", "attachment; filename=the.file");&lt;br /&gt;&lt;br /&gt;        // Open the OutputStream into a BinaryWriter&lt;br /&gt;        BinaryWriter br = new BinaryWriter(Response.OutputStream);&lt;br /&gt;        // Read the entire temporary file and write it into the BinaryWriter&lt;br /&gt;        br.Write(File.ReadAllBytes(theFileInfo.FullName));&lt;br /&gt;        // Flush and Close the Writer&lt;br /&gt;        br.Flush();&lt;br /&gt;        br.Close();&lt;br /&gt;  &lt;br /&gt;        // Fulsh the Response object&lt;br /&gt;        Response.Flush();&lt;br /&gt;  &lt;br /&gt;        // Delete the temporary file&lt;br /&gt;        File.Delete(theFileInfo.FullName);&lt;br /&gt;        // End the execution of the page&lt;br /&gt;        Response.End();&lt;br /&gt;    }&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;While this does get the job done it isn't perfect. The entire file is read into memory before being sent to the client. This means if you are sending large files to many clients at the same time you could have some trouble with the server running out of memory and all manner of other crazy things happening (possibly).&lt;br /&gt;&lt;br /&gt;As ever, use at your own risk.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-8894482621790526499?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/8894482621790526499/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2008/02/downloading-and-deleting-temporary.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/8894482621790526499'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/8894482621790526499'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2008/02/downloading-and-deleting-temporary.html' title='Downloading and Deleting Temporary Files'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-5246075314151557185</id><published>2008-02-18T12:18:00.003Z</published><updated>2008-02-19T08:49:40.988Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Craziness'/><category scheme='http://www.blogger.com/atom/ns#' term='technology'/><category scheme='http://www.blogger.com/atom/ns#' term='blogging'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet'/><title type='text'>IPod what!</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/__yPfvJ2i9EU/R7l3jj7jImI/AAAAAAAAAAM/0R012VdgPJI/s1600-h/image-upload-76-700162.jpe" border="0"&gt;&lt;img src="http://1.bp.blogspot.com/__yPfvJ2i9EU/R7l3jj7jImI/AAAAAAAAAAM/0R012VdgPJI/s320/image-upload-76-700162.jpe" /&gt;&lt;/a&gt;&lt;br /&gt;I'm sat on to virgin cross country service from Leeds to Sheffield and there is a girl sat next to me seemingly using an old laptop kitted out with iTunes to do nothing else but listen to music. I on the other hand am listening to music on my IPod, while blogging from my phone. Technology ay?!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-5246075314151557185?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/5246075314151557185/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2008/02/ipod-what.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/5246075314151557185'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/5246075314151557185'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2008/02/ipod-what.html' title='IPod what!'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/__yPfvJ2i9EU/R7l3jj7jImI/AAAAAAAAAAM/0R012VdgPJI/s72-c/image-upload-76-700162.jpe' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-3444711357729872493</id><published>2008-02-15T09:06:00.001Z</published><updated>2008-02-15T09:07:57.900Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='work'/><category scheme='http://www.blogger.com/atom/ns#' term='blogging'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet'/><title type='text'>More...</title><content type='html'>More mindless drivel and ramblings now available free over at &lt;a href="http://opinions.twentysixleeds.com/"&gt;twentysix Opinions&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-3444711357729872493?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/3444711357729872493/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2008/02/more.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/3444711357729872493'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/3444711357729872493'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2008/02/more.html' title='More...'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-7221132724119584416</id><published>2008-02-13T14:55:00.004Z</published><updated>2008-02-13T14:59:40.553Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Noise'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='MAtt'/><title type='text'>SQL Noise</title><content type='html'>Someone's going to be annoyed when they end up here looking for how to add "noise" to an SQL query.. oh well, sorry...&lt;br /&gt;&lt;br /&gt;However, it is an appropriate title because after adapting &lt;a href="http://matts2minutereviews.blogspot.com/"&gt;Matt's&lt;/a&gt; &lt;a href="http://mattsrandomdays.blogspot.com/2008/01/sql-on-fire.html"&gt;SQL on FIRE&lt;/a&gt;, I truly feel I'm bringing the noise (to SQL [in my own little way])!&lt;br /&gt;&lt;br /&gt;Today really is SQL Day 2008 (another dead end search result there! :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-7221132724119584416?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/7221132724119584416/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2008/02/sql-noise.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/7221132724119584416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/7221132724119584416'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2008/02/sql-noise.html' title='SQL Noise'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-917239309717621209</id><published>2008-02-13T14:05:00.002Z</published><updated>2008-02-13T14:16:46.505Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='Code'/><title type='text'>SQL : Multiple Order By's</title><content type='html'>Just trying to sort a query with an ORDER BY clause where I needed to order by two columns in different directions so I tried it and it works! Didn't know you could do that...&lt;br /&gt;&lt;pre class="source-code"&gt;&lt;code&gt;SELECT * FROM tblTableName&lt;br /&gt;WHERE column1='x'&lt;br /&gt;AND column2='y'&lt;br /&gt;ORDER BY column3 ASC, column4 DESC&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;Nice!&lt;br /&gt;&lt;br /&gt;(tested in MySQL and MS SQL)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-917239309717621209?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/917239309717621209/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2008/02/sql-multiple-order-bys.html#comment-form' title='14 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/917239309717621209'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/917239309717621209'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2008/02/sql-multiple-order-bys.html' title='SQL : Multiple Order By&apos;s'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>14</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-5122739391924806815</id><published>2008-02-11T15:56:00.001Z</published><updated>2008-02-13T15:00:27.726Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Banana Cake'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet'/><title type='text'>Banana Cake v0.011111 alpha beta gama delta something or other LIVE!</title><content type='html'>Today I put the first version of &lt;a href="http://absolutecobblers.blogspot.com/search/label/Banana%20Cake"&gt;Banana Cake&lt;/a&gt; live on an internal web server and invited my co-developers here at &lt;a href="http://www.twentysixleeds.com/"&gt;twentysix leeds&lt;/a&gt; to become my testers.&lt;br /&gt;&lt;br /&gt;We've got a couple of current projects set up on there and I hope the guys will use it to track what they are doing and hopefully provide me with some excellent and useful feedback over the next few weeks.&lt;br /&gt;&lt;br /&gt;If they do and and they find it useful day to day then my plan is to roll it out to the entire office ( a whole 25 users !) . With a bit of luck I'll have come up with a real name for it by then and sorted out the dicey interface although &lt;a href="http://www.facebook.com/people/Dave_Ellis/693840124"&gt;gay Dave&lt;/a&gt; says he likes the way it looks as it is...&lt;br /&gt;&lt;br /&gt;I'm off to look at the bugs list for Banana Cake and get some issues  sorted.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-5122739391924806815?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/5122739391924806815/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2008/02/banana-cake-v0011111-alpha-beta-gama.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/5122739391924806815'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/5122739391924806815'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2008/02/banana-cake-v0011111-alpha-beta-gama.html' title='Banana Cake v0.011111 alpha beta gama delta something or other LIVE!'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-6385903419251912468</id><published>2008-02-09T09:03:00.000Z</published><updated>2008-02-09T09:05:04.107Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet'/><title type='text'>Read the comments</title><content type='html'>the first four comments are definitely worth a giggle&lt;br /&gt;&lt;br /&gt;&lt;a href="http://valleywag.com/352426/11-million-paid-for-worlds-stupidest-domain-name/"&gt;http://valleywag.com/352426/11-million-paid-for-worlds-stupidest-domain-name/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-6385903419251912468?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/6385903419251912468/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2008/02/read-comments.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/6385903419251912468'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/6385903419251912468'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2008/02/read-comments.html' title='Read the comments'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-6257728034621403255</id><published>2008-02-06T14:01:00.000Z</published><updated>2008-02-06T14:03:29.656Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='blogging'/><category scheme='http://www.blogger.com/atom/ns#' term='Code'/><title type='text'>Blog code formatting tool</title><content type='html'>While I was writing that last post I went hunting for a code formatting tool for my code inserts and came across &lt;a href="http://formatmysourcecode.blogspot.com/"&gt;Format MY Source Code for Blogging&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;It's not quite what I wanted but I'm not about to write a C# syntax highlighter so it'll do for now&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-6257728034621403255?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/6257728034621403255/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2008/02/blog-code-formatting-tool.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/6257728034621403255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/6257728034621403255'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2008/02/blog-code-formatting-tool.html' title='Blog code formatting tool'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-2389523492545467087</id><published>2008-02-05T16:21:00.008Z</published><updated>2008-08-26T08:50:45.617+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP'/><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='Code'/><title type='text'>ASP.net Image Upload and Resize (in C# .net 2.0, 3.0, 3.5, visual studio 2005, visual studio 2008)</title><content type='html'>Please excuse the ridiculously long title but I kinda want to make search engines love this post because I keep having to google for it.&lt;br /&gt;&lt;br /&gt;What follows is what I have found to be the simplest and most elegant method of uploading, resizing and saving an image in ASP.NET. So let's get to it.&lt;br /&gt;&lt;br /&gt;Ok, lets assume we have a FileUpload control (named fuImageFile) and a Button control (btnUpload) and we're going to upload the image when we click our button. The simplest method of uploading our file might look something like this&lt;br /&gt;&lt;pre class="source-code"&gt;&lt;code&gt;&lt;br /&gt;protected string savePath = "~/uploaded/";&lt;br /&gt;&lt;br /&gt;protected void btnUpload_Click (object sender, EventArgs e) {&lt;br /&gt;   string fileName = fuImageFile.FileName;&lt;br /&gt;   string saveName = Server.MapPath(savePath) + fileName;&lt;br /&gt;   fuImage.SaveAs(saveName);&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;So now we can upload an image to our server, what about resizing that image? For this to work you will need to add a using directive for System.Drawing and System.Drawing.Imaging&lt;br /&gt;&lt;pre class="source-code"&gt;&lt;code&gt;&lt;br /&gt;using System.Drawing;&lt;br /&gt;using System.Drawing.Imaging;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;Next we'll look at how we go about resizing an image (in the form of a Bitmap object) and then at how to integrate that into our upload page.&lt;br /&gt;&lt;pre class="source-code"&gt;&lt;code&gt;&lt;br /&gt;public Bitmap ResizeBitmap (Bitmap src, int newWidth, int newHeight) {&lt;br /&gt;    Bitmap result = new Bitmap(newWidth, newHeight);&lt;br /&gt;    using ( Graphics g = Graphics.FromImage((System.Drawing.Image)result) ) {&lt;br /&gt;        g.DrawImage(src, 0, 0, newWidth, newHeight);&lt;br /&gt;    }&lt;br /&gt;    return result;&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;This method takes a Bitmap object and two numbers specifying the height and width of the required image. We then create a new empty Bitmap at the desired size (&lt;span style="FONT-STYLE: italic"&gt;result&lt;/span&gt;) , we then obtain a Graphics object from it (NB: the Graphics object remains associated with the Bitmap) and draw our source image into it.&lt;br /&gt;&lt;br /&gt;When we return the &lt;span style="FONT-STYLE: italic"&gt;result&lt;/span&gt; we have an Bitmap object with the image data we drew into the Graphics object.&lt;br /&gt;&lt;br /&gt;So now lets work it into our page&lt;br /&gt;&lt;pre class="source-code"&gt;&lt;code&gt;&lt;br /&gt;protected void btnUpload_Click (object sender, EventArgs e) {&lt;br /&gt;    string fileName = fuImageFile.FileName;&lt;br /&gt;&lt;br /&gt;    // Get the bitmap data from the uploaded file&lt;br /&gt;    Bitmap src = Bitmap.FromStream(fuImageFile.PostedFile.InputStream) as Bitmap;&lt;br /&gt;&lt;br /&gt;    // Resize the bitmap data&lt;br /&gt;    Bitmap result = ResizeBitmap (src, 200, 200);&lt;br /&gt;&lt;br /&gt;    string saveName = Server.MapPath(savePath) +  fileName;&lt;br /&gt;    result.Save(saveName, ImageFormat.Jpeg);&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;What we do here is take the InputStream of the FileUpload's PostedFile property and create a Bitmap with it, once we have this bitmap object we can call it's Save method to save it to the local disk.&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Proportional Resizing&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The problem with this ResizeBitmap is that it will stretch and pull your input image to fit the dimensions supplied which 99% of the time is not what we will want. We usually want to scale an image keeping its proportions. Take a look at the ProportionallyResizeBitmap method below:&lt;br /&gt;&lt;br /&gt;&lt;pre class="source-code"&gt;&lt;code&gt;&lt;br /&gt;public Bitmap ProportionallyResizeBitmap (Bitmap src, int maxWidth, int maxHeight) {&lt;br /&gt;    // original dimensions&lt;br /&gt;    int w = src.Width;&lt;br /&gt;    int h = src.Height;&lt;br /&gt;&lt;br /&gt;    // Longest and shortest dimension&lt;br /&gt;    int longestDimension = (w&amp;gt;h)?w: h;&lt;br /&gt;    int shortestDimension = (w&amp;lt;h)?w: h;&lt;br /&gt;&lt;br /&gt;    // propotionality&lt;br /&gt;    float factor = ((float)longestDimension) / shortestDimension;&lt;br /&gt;&lt;br /&gt;    // default width is greater than height&lt;br /&gt;    double newWidth = maxWidth;&lt;br /&gt;    double newHeight = maxWidth/factor;&lt;br /&gt;&lt;br /&gt;    // if height greater than width recalculate&lt;br /&gt;    if ( w &lt; h ) {&lt;br /&gt;        newWidth = maxHeight / factor;&lt;br /&gt;        newHeight = maxHeight;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    // Create new Bitmap at new dimensions&lt;br /&gt;    Bitmap result = new Bitmap((int)newWidth, (int)newHeight);&lt;br /&gt;    using ( Graphics g = Graphics.FromImage((System.Drawing.Image)result) )&lt;br /&gt;        g.DrawImage(src, 0, 0, (int)newWidth, (int)newHeight);&lt;br /&gt;    return result;&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;This method takes a maxWidth and a maxHeight instead of a newWidth and newHeight, it then does a bit of maths to figure out which is the longest, the original height or the original width, works out the ratio of these two numbers and applies them appropriatley to the target size and resizes the image accordingly.&lt;br /&gt;&lt;br /&gt;Just like ResizeBitmap, ProportionallyResizeBitmap returns a Bitmap object so you can simply substitute the call to ResizeBitmap in the button click method and it will all play nicely!&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Gotchas&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you get a "Generic Error from GDI +" like &lt;span style="FONT-STYLE: italic"&gt;Exception Details: System.Runtime.InteropServices.ExternalException: A generic error occurred in GDI+&lt;/span&gt; then you should check the following points:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Make sure the destination folder exists&lt;/li&gt;&lt;li&gt;Make sure the the local machine user ISS_WPG has write permissions to the destination folder&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Make sure the save path is correctly escaped&lt;/li&gt;&lt;/ul&gt;[more to follow maybe]&lt;br /&gt;&lt;br /&gt;See &lt;span id="header1"&gt;&lt;span id="PostView1"&gt;&lt;span class="normalTextSmall"&gt;the Microsoft Knowlage Base article &lt;a href="http://support.microsoft.com/?id=814675"&gt;http://support.microsoft.com/?id=814675&lt;/a&gt; for more posibilities&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-2389523492545467087?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/2389523492545467087/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2008/02/aspnet-image-upload-and-resize-in-c-net.html#comment-form' title='35 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/2389523492545467087'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/2389523492545467087'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2008/02/aspnet-image-upload-and-resize-in-c-net.html' title='ASP.net Image Upload and Resize (in C# .net 2.0, 3.0, 3.5, visual studio 2005, visual studio 2008)'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>35</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-4965597629370420850</id><published>2008-02-05T09:14:00.000Z</published><updated>2008-02-05T14:44:22.836Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Distraction'/><category scheme='http://www.blogger.com/atom/ns#' term='inyerface theatre company'/><title type='text'>Done it again</title><content type='html'>So I did it again... I was close to getting inyerface ready for it's next/first launch and then I started faffing with Banana Cake which is getting near a point where I feel I might let the gang on the development team at work be my alpha testers although I've realised there are a few more  little features need adding before it is actually useful.&lt;br /&gt;&lt;br /&gt;Then, I've decided, for the inyerface image management module, instead of learning ActionScript 3 I'm going to cobble it out in AS1/2 just to get it up and running then maybe one day I'll re-make it in AS&lt;span style="font-style: italic;"&gt;Whatever.&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-4965597629370420850?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/4965597629370420850/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2008/02/done-it-again.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/4965597629370420850'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/4965597629370420850'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2008/02/done-it-again.html' title='Done it again'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-367058466048973802</id><published>2008-01-27T12:11:00.000Z</published><updated>2008-01-27T12:18:05.732Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='pain in the arse'/><category scheme='http://www.blogger.com/atom/ns#' term='tax return'/><category scheme='http://www.blogger.com/atom/ns#' term='waste of time'/><category scheme='http://www.blogger.com/atom/ns#' term='shit'/><title type='text'>Shit</title><content type='html'>Tax returns are shit, I've decided.&lt;br /&gt;&lt;br /&gt;Come tomorrow I shall be promptly de-registering as self employed after having  just submitted (well almost) a tax return for gross annual earnings of ZERO pounds and ZERO pence.&lt;br /&gt;&lt;br /&gt;What a fucking waste of time and all for the luxury of potentially being fined or dragged through court if I, in my flagrant disregard for the laws of this lovely land, have inadvertently made  a bollocks of of the frickin thing.&lt;br /&gt;&lt;br /&gt;Ohh well, I can only sit here and cross my fingers and hope that I'm not one of the unlucky percentage that actually get their forms checked over and that I will *get away with it*.&lt;br /&gt;&lt;br /&gt;Christ, It's hard work being a honest citizen!&lt;br /&gt;&lt;br /&gt;Pissing governments...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-367058466048973802?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/367058466048973802/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2008/01/shit.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/367058466048973802'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/367058466048973802'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2008/01/shit.html' title='Shit'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-2961913711162478788</id><published>2008-01-25T12:35:00.000Z</published><updated>2008-01-25T12:52:35.295Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='mystery people'/><category scheme='http://www.blogger.com/atom/ns#' term='blogging'/><category scheme='http://www.blogger.com/atom/ns#' term='cobblers'/><title type='text'>My Transatlantic Lover</title><content type='html'>So I've been blogging now for all of 3 weeks and I completely wasn't expecting anybody to read this diatribe at all. I didn't even think my work mates would find it mildly amusing...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://i101.photobucket.com/albums/m49/clbruno/_39367963_dumbledore.jpg"&gt;HOWEVER&lt;/a&gt;; wading through the four visitors I've had, google analytics has revealed that I've had a visitor from &lt;a href="http://maps.google.com/maps?f=q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;time=&amp;amp;date=&amp;amp;ttype=&amp;amp;q=Reston&amp;amp;ie=UTF8&amp;amp;ll=38.959409,-77.354736&amp;amp;spn=0.337976,0.629654&amp;amp;z=11&amp;amp;iwloc=addr&amp;amp;om=0"&gt;Reston&lt;/a&gt; in Virginia.&lt;br /&gt;&lt;br /&gt;Who are you mystery person? and did you find my blog interesting&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-2961913711162478788?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/2961913711162478788/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2008/01/my-transatlantic-lover.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/2961913711162478788'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/2961913711162478788'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2008/01/my-transatlantic-lover.html' title='My Transatlantic Lover'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-3393734552396525092</id><published>2008-01-25T09:39:00.000Z</published><updated>2008-01-25T09:42:04.743Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Binge Drinking'/><category scheme='http://www.blogger.com/atom/ns#' term='Works Do&apos;s'/><category scheme='http://www.blogger.com/atom/ns#' term='Heidi'/><title type='text'>Good Morning</title><content type='html'>So last night was Heidi's leaving do! good luck (riddance?) Heidi in Japan. Enjoy it as much as I'm enjoying my hangover. It's ace.&lt;br /&gt;&lt;br /&gt;Here's to binge drinking&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-3393734552396525092?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/3393734552396525092/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2008/01/good-morning.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/3393734552396525092'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/3393734552396525092'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2008/01/good-morning.html' title='Good Morning'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-2861462380398482187</id><published>2008-01-24T17:25:00.000Z</published><updated>2008-01-24T17:33:10.323Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Craziness'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Mail'/><title type='text'>Mail Me Do!</title><content type='html'>So today, on of our servers wouldn't send emails from a registration form which lead to a few of us scratching our heads (non of us are linux nerds [appart from jim - a bit]).&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;After a bit of digging we remembered that the server relays it's mail through one of the windows workstations. Matt checked the mail root on this box to find that it was crammed full. The drop box had 11,000 unsent mails from the last two days. The bad mail folder wouldn't open.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So Matt started set about deleting the items from a command prompt... It's now been running for over two hours and no sign of easing up. We're guessing at a couple of million emails in there.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Maybe it'll be done by tomorrow morning&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-2861462380398482187?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/2861462380398482187/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2008/01/mail-me-do.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/2861462380398482187'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/2861462380398482187'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2008/01/mail-me-do.html' title='Mail Me Do!'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-5939370076435492346</id><published>2008-01-22T16:36:00.000Z</published><updated>2008-01-22T17:17:38.648Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Banana Cake'/><category scheme='http://www.blogger.com/atom/ns#' term='inyerface theatre company'/><category scheme='http://www.blogger.com/atom/ns#' term='tax return'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet'/><title type='text'>Still no internet</title><content type='html'>The internet at work is still Jaffed so for the last two days I've been using my K800i as a modem via the &lt;a href="http://dictionary.reference.com/browse/Disappointing"&gt;wonderful&lt;/a&gt; &lt;a href="http://www.t-mobile.co.uk/shop/mobile-phones/price-plans/pay-monthly/webnwalk/plans/?ref=newhome_wnwplan"&gt;T-Mobile Web 'n' Walk plus&lt;/a&gt; which connects at a staggering 115Kbps (about 40KB/s download if i'm lucky) which beats the pants off our poxy broadband here at work(connects at 8Mbps and downloads at about 2KB/s. But hopefully that should all be changing next week when we get a second line installed.&lt;br /&gt;&lt;br /&gt;So for now, I'm not doing much online (this blog is turning into a blog about not being able to style up this blog!) but I have got a couple of other things on the go.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;a href="http://www.inyerfacetheatrecompany.co.uk/"&gt;inyerface theatre company&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;This website is a favour for some friends and I'm going to meet them soon to get phase 1 (news and performances sections)  live while I work on phase 2 which will bring images to the site in the form of photo galleries.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Banana Cake...&lt;/span&gt;&lt;br /&gt;... is the working name for a simple bug tracking app that I'm in the process of building.&lt;br /&gt;This came about after my moan the other day that I was bored with work/the internet and so I decided to get off my arse and do something about it.&lt;br /&gt;&lt;br /&gt;Banana Cake is about 15% done (in about 4hrs spread over 2 and a half evenings) so I'm hopeful I'll actually produce something before I lose steam (like I usually do). Once I've got it to a reasonable state I'm going to unleash it on my work colleagues where it will hopefully fill a gap in our infrastructure (have you ever tried setting up bugzilla, nightmare) and get some useful feedback for it.&lt;br /&gt;&lt;br /&gt;I might even buy a domain for it and try and make something of it! But before any of that happens I've got my tax return to do before the end of the month... bloody inland revenue!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-5939370076435492346?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/5939370076435492346/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2008/01/still-no-internet.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/5939370076435492346'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/5939370076435492346'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2008/01/still-no-internet.html' title='Still no internet'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-6173024533163220393</id><published>2008-01-17T16:57:00.002Z</published><updated>2008-07-15T13:36:19.079+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='Search Providers'/><category scheme='http://www.blogger.com/atom/ns#' term='IE'/><category scheme='http://www.blogger.com/atom/ns#' term='FireFox'/><title type='text'>Firefox PHP Function search plugin</title><content type='html'>15/07/2008 : Updated the link to the plugin as we have moved offices. I might try and get a wordpress blog set up instead of this thing.&lt;br /&gt;&lt;br /&gt;A while ago I was bored in the office so I decided to have a faff about for twenty minutes making something that might be useful to the folks I work with.&lt;br /&gt;&lt;br /&gt;Most of the development work we do here at twentysix Leeds is done in .NET but most of us (everyone apart from the TD) are from a PHP background and while at one point it was my language of preference, the amount of .NET I have learnt recently has forced most of the PHP knowledge out the other ear! and this seems to be the situation for the other lads too. So I thought I'd do something about it and create a search plug-in for Firefox and IE7 that allowed us to search the on-line PHP docs directly from your browser.&lt;br /&gt;&lt;br /&gt;So after having&lt;a href="http://developer.mozilla.org/en/docs/Creating_OpenSearch_plugins_for_Firefox"&gt; read a few&lt;/a&gt; &lt;a href="http://www.opensearch.org/Specifications/OpenSearch/1.1#OpenSearch_description_document"&gt;articles&lt;/a&gt; I wrote the &lt;a href="http://84.92.194.43/search.html"&gt;plug-in that is now available from this page&lt;/a&gt;, just click the search provider in Firefox (next to the search field) and then click ‘Add “PHP Function Search: By Greg Brant” ' and there you go.&lt;br /&gt;&lt;br /&gt;I would apologies to IE users but I'm not going to because it's not my fault that it wont work for you guys. My original intention was that the plug-in would work for Firefox and IE after having read that they both support the &lt;a href="http://www.opensearch.org/"&gt;OpenSearch&lt;/a&gt; format for search providers (Firefox also supports &lt;a href="http://developer.mozilla.org/en/docs/Category:Search_plugins"&gt;MozSearch plugins&lt;/a&gt; too). However; the PHP search only works with GET method forms and IE only supports search providers the use POST.&lt;br /&gt;&lt;br /&gt;OK. so, this software (if you can in fact call a search provider software) is provided free of charge with no warranty of any kind what-so-ever! install it at your own risk. All copyrights remain with the owner and all the rest of it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-6173024533163220393?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/6173024533163220393/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2008/01/firefox-php-function-search-plugin.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/6173024533163220393'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/6173024533163220393'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2008/01/firefox-php-function-search-plugin.html' title='Firefox PHP Function search plugin'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-1551609417836649582</id><published>2008-01-15T11:01:00.000Z</published><updated>2008-01-15T11:05:14.196Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='blogging'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet'/><title type='text'>Damn Internet</title><content type='html'>So after my post last week about redesigning this blog the internet at work has been bloody slow so all I have managed to do is hack the template and change the background colour.&lt;br /&gt;&lt;br /&gt;But I like it. One day I'll follow up what I say...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-1551609417836649582?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/1551609417836649582/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2008/01/damn-internet.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/1551609417836649582'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/1551609417836649582'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2008/01/damn-internet.html' title='Damn Internet'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8978965543926914572.post-5566894762568825493</id><published>2008-01-09T14:07:00.000Z</published><updated>2008-01-09T14:18:15.821Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='play'/><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><category scheme='http://www.blogger.com/atom/ns#' term='work'/><category scheme='http://www.blogger.com/atom/ns#' term='Inspiration'/><title type='text'>back to work</title><content type='html'>I'm back in work today after a long weekend (Friday to Tuesday)  in the lakes with Gina and I'm feeling a little bit uninspired.&lt;br /&gt;&lt;br /&gt;We had a team meating before lunch where a few of the guys recounted some notes on industry events they have attended recently and it made me realise that not so long ago I was interested and messed around with far mor than I do at the moment. Right now I just seem to be building .NET shopping cart after .NET shopping cart and I'm a bit bored with it so I've decided to start getting back into things, exploring bits and pieces around the web and making bits and pieces that are fun.&lt;br /&gt;&lt;br /&gt;I think I'm going to start by (re-)designing this blog with a nice stylesheet and naybe a JPEG or two.&lt;br /&gt;&lt;br /&gt;Lets see how it goes from there...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8978965543926914572-5566894762568825493?l=absolutecobblers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://absolutecobblers.blogspot.com/feeds/5566894762568825493/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://absolutecobblers.blogspot.com/2008/01/back-to-work.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/5566894762568825493'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8978965543926914572/posts/default/5566894762568825493'/><link rel='alternate' type='text/html' href='http://absolutecobblers.blogspot.com/2008/01/back-to-work.html' title='back to work'/><author><name>greglio</name><uri>http://www.blogger.com/profile/10108970643733679224</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
