Monday, 9 November 2009

Passing a User Generated Image From Adobe Flash to ASP.NET

A few months ago I was browsing StackOverflow 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 across a question asking how to pass an image from Flash to ASP.NET and I thought "this is definitely one for me".

I have four years experience with ASP.NET from my day job at a Leading UK Marketing Agency and about a million years experience with Flash from being a student at the Hull School of art and Design, teaching Interactive Multimedia at the University of Lincoln and using it in personal and professional projects.

I'm a massive fan of StackOverflow 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.

Four months go by and finally, I get round to doing it. And so, you can now read about how to send a generated image from Adobe Flash (using ActionScript 3) to an ASP.NET backend and hopefully my karmic daemons will leave me alone for another week.

Tuesday, 20 October 2009

RSS Readers - I'm not sure I like them...

I recently had to format my laptop (again) after having successfully gregged it™ 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.

After exactly _zero_ seconds looking around I opted to go with Google Reader, 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.

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.

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 mental voice I associate with the author. It helps me read the post as if they were speaking or lecturing to me.

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.

All that said, I've only been using it for just under a week now, so I might be flying off the handle.
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.



  1. 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.

    See also broken.

Wednesday, 14 October 2009

Thoughts on EPiServer Customer and Partner Day 2009

Yesterday I was at The Cumberland Hotel in London 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.

Of the items on the itinerary the highlights for me were:
  • EPiServer B2B Adapt and EPiServer B2B Prospect
    These two new products (although based on existing technolgies) offer fantiastic insight and extreamely easy integration with your EPiServer sites.
  • EPiServer CMS 6 for Developers (and part 2)
    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.

    The Dynamic Data Store is built on a BigTable-esque schema and allows you (through the use of a few simple Class and Member attributes) to store and retieve any POCO or other class with ease.

    CMS 6 has a new user dashboard and we were also shown how to use ASP.NET MVC to build new dashboard widgets.

There wasn't really much bad 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 SLH and the MD of their digital agency, Fortune Cookie.

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.

Overall a good day, but I hope they pick a better closing act next time.

Saturday, 4 July 2009

Blogging and advertising. Pt.2

Back in May I posted that I was going to give AdWords a go on this blog 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.

My "audience" just isn't ready to make me a millionaire.

To me this means a few things:

  1. I just don’t pull enough traffic.
    As I’m sure most small-time bloggers think to themselves  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.
  2. The traffic I do pull isn’t the right type .
    My biggest hitters (in terms of traffic per post) are my article from 18 months ago about uploading and resizing images, accounting for roughly 50% of my hits per month, my post about multiple order-by’s in SQL (aprox 19%) and since I posted it on the 14th June, my post about getting the Subversion revision number into your project output 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.
    1. You do a Google search for what you need to do.
    2. You start clicking links.
    3. You read the first sentence or two to see if it sounds like you’ve landed on the right page.
      1. You either bail out because it’s not the right page or…
      2. You start scrolling up and down the article to see if there is a nice concise chunk of code you can copy.
      3. You bail out because you’ve got what you came for.

    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.
  3. My visitors are the wrong type of person.
    As I commented in my original post. I don’t click on advertising. I get this funny feeling inside that it’s a lie, that if I search for something, then The Google 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.
I don’t like the idea of advertising on my blog.

Well not this blog anyway! I’ve recently been listening to the Stack Overflow Podcast, a couple of times recently Jeff and Joel have mentioned Cognitive Dissonance. I’ll let you read the the first sentence of that page rather than me try and paraphrase it…

Any way, my point being, since I put the AdWords on here I’ve been checking Analytics 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.

This, it turns out,  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!)

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.

Sunday, 14 June 2009

Outputting the Subversion revision into your web page

A few months ago when I stared using stackoverflow I noticed that they output the current Subversion revision number into their html source.

Stackoverflow revision number

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.

Getting the tools

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 MSBuild Community Tasks Project hosted over at 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.

I also downloaded the Visual Studio Web Deployment projects after having read ScottGu’s blog post regarding them. You can get the VS2008 version here or the VS2005 version here if you need it.

Getting the revision into your HTML

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.

<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.WebDeployment.targets.
<Target Name="BeforeBuild">
<Target Name="BeforeMerge">
<Target Name="AfterMerge">
<Target Name="AfterBuild">

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.

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.

<span id=”rev”>revision REVISION</span>

The SvnRevision task will get the revision number from our working copy and store it in a property name that we define.

We can then use another Community Task, FileUpdate, to update the master page after the build.

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.

<!-- Import the community build tasks-->
<Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets" />
<target name="AfterBuild">
<! -- Add the SvnVersion build task -->
<svnversion toolpath="$(ProgramFiles)\VisualSVN\bin" localpath="$(MSBuildProjectDirectory)">
<output propertyname="Revision" taskparameter="Revision" />
<fileupdate replacementtext="revision $(Revision)" regex="revision REVISION" files="$(Configuration)\Views\Shared\Site.Master" />

The FileUpdate finds the string defined in the regex attribute and replaces it with the string in the replacementText attribute. $(Revision) 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).

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.

Friday, 5 June 2009

Installing EPiServer and VMWare ESXi

Wednesday this week our group IT manager Gordon brought us some new hardware to play with in the form of 3 HP DL308's (two G4's and one G3) 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).

I caught Matt just in time as he was about to install Windows 2003 on one of the G4's and got him to let me install ESXi 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.

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.

Then came installing EPiServer CMS which was a completely painless task comprised of logging into EPiServer World 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.

Job done!

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.

Thursday, 4 June 2009

More CMS's, this time for PHP

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.

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.

I friend recomended Pixie which is a free, open source offering from toggle 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.

I recomend giving it a try!

Saturday, 9 May 2009

Someone else I know and like

Following on from my post the other day, I'd like to link you up to the musings of Oliver Dore.

I’ve known Oli for about 6 years now, since we met while I was teaching at the University of Lincoln.

He has worked at a few top class agencies here in the UK including mN and now works for HUGE, Brooklyn in New York.

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 his tumblelog.

Saturday, 2 May 2009

Blogging and Advertising

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.

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.

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.

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.

Here's hoping!

Wednesday, 22 April 2009

People I know and Like(?)

Quite a lot has happened in and around my little blogosphere in the last few months.

Back in February I mentioned the development blog of my friend, ex-colleague and ex-house-mate, James (Jay) Field's work for his Interactive Media MA project "Frontier".
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 Hull School of Art and Design.

Nearly a year and a half ago, Ryan and Andy bought a domain name and said they were going to produce a blog. Yesterday they launched "a day early".

Ryan is a Flash Developer here at twentysix Leeds and works across many large brands on both web and AIR based Flashieness.

Andy is our UI Developer working on many of the same clients and projects but does miraculous things with JavaScript and CSS.

Hopefully they'll have some interesting thoughts soon over at
About a month ago James and Tom C 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, a social to do list and they have an accompanying blog over at

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 one central repository of nonsense over at 26point1. Hop on over there to read about all kinds of rubbish, both technology-based and not...

Tuesday, 24 February 2009


I'm off to see Metallica at Nottingham Arena tomorrow night. Can't wait!

As you'll be able to see from my, I've been listening to a lot of it today and yesterday to get in the mood :)

Saturday, 14 February 2009

Final Frontier

My old friend James only just showed me the devblog for the project he's basing his masters work around. Swing on over to and check out the crazy work he's doing.

Saturday, 7 February 2009

Tidy Up

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.

Well, what else am I going to do at 8am on a Saturday :(

Wednesday, 28 January 2009

Getting to grips with EPiServer

A week ago I was in London for a 3 day training course for EPiServer CMS.

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.

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.

Watch this space for any tips and tricks I pick up along my way.