Steve Woods, a freelance web designer and ASP.NET MVC Developer from Hull in the UK


29 August 2010New Russian Space Programme

Fueled entirely by airbags...

Poor bastard! XD


20 August 2010Improve your perception of productivity

How many of you have to-do lists that are massive? A never-ending ball-ache of textual monotony, staring you right in the face each morning as a constant reminder of how much shit you have to do over the next few days of your piss-boring life. Yea me too.

However, mine is big for a reason. And I am still talking about my to-do list here, Mr Saunders. I deliberately make larger tasks into smaller ones by dividing them up into subtasks, just so that I can click things off on a more regular basis.

Think about it - you have a task entitled "Build User Management Facility". That's great, but if it takes you 5 days to complete, that's Monday to Friday without ticking off anything on your to-do list at all. Completely demotivating, because you look at your list and see no progression.

If you divide "Build User Management Facility" into relevant subtasks, you can click off each one individually and actually see some progression even if the actual task it not completed. Example subtasks might be: "Produce 'User Listing' screen", "Produce 'User Create' screen", "Produce an 'Edit User' screen", "Allow users to be deleted", "Secure the module from unauthorised peons". Each one of those might take a few hours to a day to complete but before you know it, you're seeing progression on your way to the goal of completing the main task.

Try it - it's all in the mind. If you see yourself progressing, you're more likely to stay motivated.

11 August 2010Early run - and can you help?

Check me out - running at 5:30am without any kip! ~2.2 miles in a touch under half an hour isn't bad for me - managed to shave almost 2 mins off my "mile time" too... I'll have that, no bother.

I've got a problem though - the breathing is coming along nicely, I don't get as breathless now which is a definite plus - but my back is fucking killing! Right at the bottom, just above my arse. I'm guessing this is just due to muscle weakness but it's causing me a bit of bother and I keep having to stop (as you can see on the lower 'heartbeat style' graph which measures my speed on the image above. Any suggestions?

Plus I have sore chins but that's because I'm a big fat man bouncing up and down on skinny legs - hopefully it'll settle.

I'd really appreciate some pointers on the back issue though - is it just a case of keeping at it? Should I do less distance for a while?

Cheers


10 August 2010Response to Sexism in Web Design

This is my response to "Sexism in Web Design" - please read it. The exact same questions, answered by yours truly - a fifteen-stone skinhead geordie male.

Let's see:

How Did You Get Into the Web Design Industry?
Okay - What does this have to do with sexism in the web design industry? Gah - I did good work, shoved it in a portfolio and applied for a job. They liked it, I got in.

Do You Think There is a Lack of Female Web Designers?
At every single web agency I've worked for there have been females on the creative team, whether they be designers, developers or both. I have yet to see a completely male agency. Moreover, none of these females even when the ratio has favoured men, have ever complained about feeling, or been seen as, a less valued member of staff. Important sidenote - there is probably a lack of honestly GOOD web designers, but I really don't think it's anything to do with their sex.

Have You Ever Experienced Any Negativity or Sexism Being in This Industry?
Negativity? If you mean "did people not want to work with the team because there are women on board" then .. No. Quite the opposite actually. I think (and this only my opinion, woah there!) women bring a sense of personableness (it's a word dammit) to a team. As for sexism, I'd have to say yes. But only if you consider male banter inherently sexist in which case I suggest you loosen up and accept the fact that banter doesn't automatically mean sexist and, if it gets to that point, it's now sexual harrassment. As it happens none of the females I've ever worked with were made to feel uncomfortable (and in most cases were pretty capable of making a bloke go red in the face) - in short, if you're personable, male or female, you'll get on in the web industry. If you're not, don't blame it on a sexist issue that isn't there.

Do You Think Female Designers Have Advantages Over Their Male Counterparts?
No, I think that some projects suit some minds better than others. Whether that mind be accompanied by titties or bollocks is neither here nor there.

If You Were Not a Designer, What Would You Be?
As a male, I'd have to say sewing machine operator. Because in this world of equal opportunities I'd feel it my duty to do whatever makes me happy regardless of my perception of the lack of equality in life. And I really like clothes.

What is Your Biggest Challenge/Achievement?
Again, this isn't really a sexual equality question is it. It's actually two questions, so I'm not going to answer. *Miss Piggy Hmph*

Anything to Say to Other Female Designers?
Just because you're female doesn't mean that a) you're going to be shit on, b) you have a right to a free ride. Work your arse off, come up with kick-ass work and get on with people - otherwise you're in the wrong job anyway and no amount of hand waving about sexism is going to change the fact that you have much more real, personal issues. And are maybe just not as good as you think.

Now, if you'll excuse me I have some puppies to brush.


09 August 2010Run, Fatboy! Run!

Today marks my official promise to myself to run at least five miles a
week to get a bit more in shape.

i know its not a lot but if i set a huge amount, i'll fail for sure so,
i'm more inclined to be realistic. And that means no excuses.

Wish me luck! (and follow me on DailyMile or SportyPal!)

edit: formatting fixed - damn phone, so much for mobile blogging...


07 August 2010Some pro-bono work for a worthy cause

Last night I took some time out from work to create a simple new website for my wife, to celebrate the lives of some people who have died from cervical cancer.

My wife is part of the Jo's Cervical Cancer Trust community, which aims to bring awareness to cervical cancer and the fact that it kills many young women long before their time.

During her time in the community she has become friends with a number of women who have, sadly, passed on. She wanted to create a shrine to their memory instead of their stories being lost in a deluge of new forum threads. It's her way of paying tribute to these women and highlighting what they and their families went through.

The site uses Posterous to manage the content if you're interested :)

Check it out http://www.josgirlsmemorial.co.uk and don't forget to donate to Jo's Trust.


07 August 2010Chill out, Folks

"When I look back on all these worries, I remember the story of the old man who said on his deathbed that he had a lot of trouble in his life, most of which had never happened." 

- Winston Churchill


06 August 2010Busy as a Bee - Current Projects

As a freelance developer and designer, it's always good when I have plenty of work. Me and my family get to eat which is always a bonus :)

Currently I'm working on the following exciting projects for various clients and agencies, deliberately vague so as not to breach any confidentiality!

  • A new fully-content managed website for a country park.
  • A brand new e-commerce and content managed website for a supplier of hand-crafted goods.
  • A new community website for motoring fans
  • A fully content managed event planning and management website

Additionally, I have a number of personal projects I'm working towards completing as part of my personal "get off my ass and put my skills to good use" project

  • VatSimSigs improvements. Since I launched this site, I've had some really positive feedback from the community and have a number of improvements and additions I want to put forward.
  • Working on the blog, and the business websites to make them work harder for me
  • I really want to resurrect Twizzle, my simple Twitter client but I'm waiting to see what effect the discontinuation of Basic Authentication by Twitter has on their API before I do it - this will also be my first real application to be built for Windows Phone 7 and I can't wait to get cracking on it.

So, all is going well - this has been an excellent year for me in terms of new business - long may it continue (so that I can buy Walkers crisps instead of Tesco's). If you'd like to work with me, fire me an e-mail and we'll meet up for a pint.

Peace!

 


05 August 2010People these days are ignorant bastards

Today I did a good deed.

I was driving along to the shopping centre and turned into the road down to the shops, where I was confronted by a car in the centre lane coming the opposite way to me which had stopped and had it's hazards on.

Inside was an oldish woman, about fifty-five years old I'd wager, on the phone to whoever - it was obvious from the position of the car (and the hazard lights) that she'd broken down, so I pulled up at the side of the road, left my wife and kids in our car, and went to speak to her (in the middle of the road).

Turns out, she'd been there for ten minutes, stuck, unable to move the car and didn't have a clue what was wrong with it. "smoke came from the engine" she said. Regardless, the car had to move as it was becoming a problem to the other lanes of traffic which were having to drive around her.

I asked her if she needed a hand and she accepted gladly. So, I started to push her car out of the way. And some bastard drove around the car on the inside lane, where I was trying to push the car!  If you're reading this, You Sir, are a cock of the highest order.

It took me five more minutes of waiting, gesticulating for traffic to stop (and bear in mind this was a 30mph road, not exactly a motorway) and eventually someone stopped [daydreaming] so that I could push the car out of the way. At this point, a police car helpfully arrived and blocked the traffic anyway but by then I'd moved the car and she went to sit inside to wait for the breakdown truck, thanking me profusely.

Now, maybe I'm just old fashioned, but in my day (aagh!) if you saw someone stranded (especially a woman, no offense), you stopped to help because it was the decent thing to do. Not for reward or recompense or anything like that, just as a favour. There was no way this woman could move the car herself and probably felt pretty vulnerable for the ten minutes before I arrived. I was, frankly, disgusted that no-one else had bothered to stop.

People, how long does it take to help someone out? Wouldn't the world be a better place if we just slowed the fuck down, forgot about our hectic schedules (mostly brought on ourselves by lack of organisation) and just learned how to be decent human beings again? Seriously - if you see someone who needs a little bit of help, do the right thing - assist.

What's that phrase again? do unto others as you would have them do unto you

 


03 August 2010SportyPal - Getting me off my big fat arse

I'm not affiliated with this product, but I am fifteen stone. Fifteen. Fucking. Stone.

For those of you who know me, you'll remember me as the kid who was tiny. They even called me Littlewoods at school for christs sake, the fucking wags that they were! Hilarious! Even when I was twenty-three, I was still only nine and a half stone - now I weigh as much as a small car! what's going on?!

I blame getting married tbh - I eat more, and better. I'm content. They say that's what happens. But dammit I'm not ready for middle-aged spread just yet, so I need to do something about it!

Now granted, a lot of it is muscle (if I do say so myself :D). I've put on quite a bit of the good stuff since I started kickboxing and I feel pretty fit. But since I moved down south from the Toon, I've not been keeping up any kind of training ritual at all. Except for trips to the fridge. And if I'm honest, I feel the worse for it.

So, enter SportyPal. I've been using www.dailymile.com for a while to track my workouts, although admittedly they have been few and far between. It's good, but it's not enough. The reason for this is two-fold. One, I'm lazy. And two, I'm even lazier when it comes to typing all the information in about a run/walk/bike ride. I just cannot be bothered, it's the 10's for christ's sake and I'm a twenty-first century kinda bloke. Automation ftw!

SportyPal is different. It does it all for you, because I have a smartphone with a built in GPS. It can track my routes, tell me how long it took, how high I climbed, how fast I travelled - it's awesome. Not least because all I need to do to keep tabs on myself is to click "upload". All my workout data is sent over the interpipes and presented to me on Google Maps with more stats than I can dribble at.

There's no better motivation than seeing yourself rack up the miles - trust me, it's a good feeling when you see how much exercise you have done instead of being a lazy git. Plus, you can gloat by sharing it on Twitter/Facebook with the click of a button. "Hah, have that, you fat gits!", is my usual warble after a particularly energetic sesh!

Best of all - it's free! More money for mars bars, er... weightwatchers flapjacks! Hooray!

http://www.sportypal.com - add me, I'm woodss.


29 July 2010New Project Launch - VatSimSigs!

I'm an avid Flight Simulation fan, have been for years much to the mirth and merriment of the people I know. I enjoy nothing more (well, within reason) than filing a flight plan from one place to another and sitting online while I'm guided via live air traffic control - pretty much as real as it gets without setting foot into an actual plane.

The live air traffic control is from VATSIM, or more specifically the people connected to the VATSIM servers who have nothing but a simulated radar screen on their PC's with which to talk to and guide us armchair pilots from one place to the next, over the internet.
 
It's a lot of fun and it's the nearest I'll get to realising my childhood dream of being a pilot, because I have the worlds shittest right eye. I can see everything with it, only it's like looking through slightly frosted glass. So, Mr Woods isn't allowed to fly the Big Iron (though I *will* get my PPL one day).
 
I've been a member of the FlightSim community since about 1993 or 1994, (back in the dark days of FS4.0b with the aircraft and scenery design addon!) and during the years I've learned a LOT about piloting, navigation, radio communications, etiquette and aircraft stats. All of which appeal to me.
 
So it's my turn to give something back, no matter how trivial. Enter VatSimSigs.
 
VatSimSigs is, as the about page will tell you, simply a web application that allows you to display a signature on forums, reflecting your connection status to VATSIM - that is, online or offline. This is especially handy for those who browse the forums and are interested in seeing whether or not their buddies are online.
 
In addition, it also allows you to upload "sets" of images, which I have cunningly entitled "image sets" (genius!). These sets of images are a two-part group of signature images, one for online and one for offline statuses - but because the system generates HTML or UBB code links, you can have multiple different signatures running through your singular VatSimSigs account. 
 
What this means is that if you're a member of a virtual airline (and I am, I'm a First Officer rank on www.thomsonvirtual.com , defected from KnightAir ), you can have one signature for that forum and another for additional forums, such as BAVirtual or EasyJetVirtual or whatever other forum you frequent. All from one place, no administration necessary - VatSimSigs will do the processing and make sure the correct status image is served no matter which image is requested.
 
VatSimSigs is also free of charge - so enjoy, tell your friends and have three greens!
 
For those who are interested, It's built in ASP.NET MVC 2.0, and took about 19 hours to complete from start to finish including design / development / deployment - not bad going :)
 
Check it out!
http://www.vatsimsigs.co.uk
 

01 July 2010It must be a school holiday...

Seems to me that Posterous isn't all it's cracked up to be with regards comment spam - sorry for all the messages advertising sunglasses, lolitas and penis creams (none of which I have bought by the way, although I do need some new sunglasses) - normal service is hereby resumed.


06 May 2010Tyne Tunnel Webcams for Windows Mobile 6

As everyone who uses the Tyne Tunnel knows, sometimes it's good to be able to look ahead to see what road conditions are like, as it tends to get fairly busy at peak times of the day.
 
As a regular user of the Tunnel, last night I decided to build a simple application for my phone in C# using the Windows Mobile SDK so that I can quickly load up the webcams which are available at www.tt2.co.uk - hopefully it'll be of use to some other people with Windows Mobile phones, and i've made it available to download below.
 
Here's a few screenshots:
 
t_webcams01.png t_webcams02.png
 
t_webcams03.png t_webcams04.png
 
As you can see it's fairly basic but it has a user-selectable "auto update every X seconds" facility, a toggleable "auto cycle" through all available cameras facility, and that's er, pretty much it - obviously an internet connection is required and remember to close the app if you get charged for data (or it'll refresh every 30 seconds by default!)

This is only tested on an O2 XDA Orbit II handset - it requires QVGA Portrait mode and I have no idea whether it'll work on any other device - use at your own risk.
 
Download it from http://www.swoo.co.uk/public/TyneTunnelWebcams.zip (25Kb, drag the executable within to your device and run it).
 
I hope you find it useful - comments welcome :)
 

21 April 2010Facebook Like plugin - why something so small is so massive

Tonight I watched the Facebook Feight keynote where Facebook announced their new technologies and applications live to the world.

One thing that really stood out for me was something so simple you have to wonder at its genius. The like button.
 
You're probably familiar (at least if you use Facebook) with the like button. Essentially its purpose is to announce that you like a specific item someone has posted, be it a URL, a video or a picture, so that your friends on Facebook can see that you enjoyed it.
 
What Facebook have done is bring that Like button to the entire web. Any page. Any image. Any piece of content. You can announce that you like anything at all no matter which site it is featured on. All you have to do is incorporate a single line of code into your existing website which points to the item you wish to 'like'. This results in something like the following:
 
 
This is game changing.
 
Imagine, if you will, that you're called Bob and you own Bob's Online Makeup Emporium. You're doing pretty well selling lipstick and various concoctions that I have no idea about but you want to increase traffic to your site and you stumble upon this new 'Like' plugin. You spend two or three minutes integrating the code into your website and to test it out you load up a browser, visit your Makeup Emporium, select one of the products and click "Like".
 
By liking that product what you have done is told Facebook that you liked the product. Facebook adds something like this to your profile:
 
Pretty cool. But the beauty of it is in its simplicity. You haven't just liked something, you've told every single person on your Facebook contact list that you liked something because they see the same thing on their Facebook news feed. What if you have 500 friends, and they all think "hmm, I like lipstick I'll check that out..." then click on that link? You know what happens, they arrive on the page and potentially buy the product, but if they TOO click on 'Like' then they announce to all of their friends on Facebook in exactly the same way. If they have 500 more friends, then that's another 500 potential purchasers. Who, if they too 'Like' the item, will in turn announce it to all of their friends This is huge.
 
The reason this is so massive is because traditionally you had to reach out with AdWords based on specific keywords, paying a premium to be top of the sponsored listings, or employ various tricks and techniques to shoehorn yourself to the top of Google's listings. 
 
Now, however, all you have to do is Like something and there's an immediate potential snowball effect. One "Like" turns into 10 "Likes", which turns into 50 "Likes" which in turn gets exponentially bigger and bigger and bigger. Each one of these visitors is a potential customer (because who doesn't like things that their friends like?) and you have to do zero marketing to encourage it - your friends and their friends and their friends' friends are doing it for you - simply because you have provided a product that people like.
 
Expect to see loads of these Like buttons on sites from now on - you'd have to be crazy to pass up the opportunity to appeal to such a massive potential market with barely any outlay or effort required.
 
Oh - and well done Facebook!

21 April 2010Turn your iPhone into an iPad

 
Worth a giggle I thought :) With thanks.
 

17 April 2010We're so small


While I was out and about this evening, I was fortunate enough to be driving along as the Sun set in the sky. Straight in front of me it shone, very low (and large) in the sky and for some reason (perhaps the ash cloud from the Icelandic volcanic eruption lately, or just the fact that it was so low that the atmosphere filtered some of it's intensity out), I could stare straight at it.

It was amazing - here I was, tootling along in my car, living my life, doing my thing and in a couple of inches of view ahead of me, was over a million miles worth of burning, boiling, beautiful, floating light. A million miles. That's a long, long way! Think about it; you probably only get about 150,000 miles out of the life of your car and it takes you 10 years to travel them. Think about how far you travel in ten years in your car up and down the motorways, to the shops, on holidays... this was ten times that distance, visible straight in front of me, and I imagined a line barely reaching a quarter of the way across. That's how far I'd have driven.

It makes you think, you know, this beautiful ball of light is floating around in the empty darkness of space about 95 million miles away from where you live your life. There's barely anything in between, and it sometimes looks like you could just reach out and touch it. Perhaps the human mind is incapable of comprehending such distances, but I know that while I was looking at this amazing spectacle, I felt extremely insignificant.

And insignificant I am. We all are. We're tiny little ants in the massive black farm we call the Universe, and sadly being so small we'll never see most of it. Check out this video which puts a sense of scale on things.

So, since I'll never see most of the amazing wonders this Universe contains, I'll have to make the most of the ones I can see, and enjoy my insignificance as much as I can.

As long as I get to see the Sun like I did tonight, it's not that hard to do.


17 April 2010Lightbulb Joke

How many SEO copywriters does it take to change a lightbulb, light bulb, light, bulb, lamp, bulbs, filament....

Thanks to @misteroneill and @justinlilly


15 April 2010New York City 3D in Google Earth

Am I the only one totally blown away by the level of detail? Truely, we're on the frontier of great things now that technologies are starting to mature.

This industry never, ever gets boring, that's for sure!


15 April 2010Using Posterous as a platform via the API

Hey folks, long time no see!

As you can probably see, there have been a canny few changes around here, but one which you might not notice is the fact that I've now switched from a custom-made blogging system to the fantastic Posterous.com service.

Posterous, a free blogging service, is a piece of piss to set-up. All you have to do is e-mail some images, text, links to YouTube etc to the "post@posterous.com" account and bam, it's instantly converted to a nicely formatted blog post with embedded video links, galleries etc. 

Normally Posterous blogs are hosted using the format "yourhostname.posterous.com", but you can point your DNS to the Posterous servers in order to use your own domain. Useful for some, but not for me because I do other things on this domain such as display my portfolio of work, and other stuff that I maybe haven't implented yet. If I pointed my DNS away I'd lose the ability to do this.

For those reasons, I decided that I was going to use the Posterous API to query my Posterous account, and read in the blog posts as if they were hosted here. Thanks to the PosterAPI project written in C# by Nuane, I can do this no problem at all (although the Posterous API only returns the previous 50 items, which is a bit pap). See the links in the footer for more details on how this works.

Sooo - since it's a bit easier to post and edit, you might find this blog gets updated a bit more frequently! Enjoy!

Edit: Bear with me while I import all of my previous articles - it's a pain in the arse, since I didn't have an XML-RPC enabled blog beforehand so I'm having to do it manually...

Also, it appears that Posterous severely buggers up any attempt at making your pages validate properly, with its YouTube embed code - bah! Something I'll have to live with I think!


14 April 2010Celebrating Awesome Music #1


13 March 2010Incorporating common ViewData into multiple Controllers in ASP.NET MVC without duplicating code

In this short tutorial I will show you how to make common ViewData information available to your Views in ASP.NET MVC, without having to duplicate ViewData[] variables in each seperate controller

During my learning phase of ASP.NET MVC, one of my bugbears was that when I wanted to display information from my database on multiple Views, I had to load that data in during the running of each Controller Action, and essentially duplicating code across multiple Controller Actions.

For instance, if I wanted a list of categories for my products on the Master Page, in each controller I might have something like:

ViewData["Categories"] = (from c in db.Categories where c.isEnabled = true orderby c.Title descending select c)

If you imagine that code repeated throughout the perhaps 20 or 30 Controller Actions within the application, you can see the kind of problems you'd have maintaining it - it's a violation of the DRY (Don't Repeat Yourself) principle for starters.

Essentially the solution is very simple and involves creating a new abstract class of Controller called "CommonController" (or XController, or whateverController you like) and placing the code in there instead of your actual controller.

When you create a controller normally, this is the code you use:

public class HomeController : Controller

Create a new controller, and use this instead:

public abstract class CommonController : Controller

Notice the "abstract" keyword in there, that's the only difference.

Now, in your actual Controllers, you need them to inherit this CommonController instead of the normal Controller, so instead of using:

public class HomeController : Controller

You need to use:

public class HomeController : CommonController

Now, in this class instead of the usual ActionResult methods, you'll have a void method set up like so:

public void GlobalController() {
ViewData["MyVariable"] = value;
}

Now that you've done that, all of the ViewData variables set in CommonController will be available to the Views returned from your Controller.

Simples!