Monday, September 6, 2010

This blog has moved




Hi,

My blog has moved to here, please check it out and let me know what you think.

Sunday, February 21, 2010

Silverlight and Flash WhatEVA.. I got CSS and javascript


I've recently had to do a website for a client. She had a lot of really creative ideas and wanted some nice effects. Initially I thought to be able to create the effects she wanted I would have to use Silverlight or Flash. Neither of them I am that familiar with.

After some investigation into javascript I was blown away by the sheer power of it and the great plugins people had written for it. I have only done some minor javascript work so I was not that famliar with it. But it was really easy to get going using the powerful plugins written and using jQuery makes it just plain sweet.

Plugins I used:

  1. jQuery The awesomeness.. need I say more.

  2. Yahoo CSS reset This is the first time I have used a css reset. I really liked it and I found it helped me with the website design

  3. The anything slider was used to slide between sections in the website.

  4. The lightBox plugin was used to display the pictures in the gallery. This had great flexibility to resize the images and had a really classy feel and suited the website perfectly.

Before starting this I was quite naive and thought to get a website with fades and dynamic effects I needed Silverlight or Flash. I now realize that this is not true. I think that in most cases with web design, css and javascript is the way to go. Its easy to use, it works with most browsers including iphone and uncomplicated.

I have seen some great sites developed with Flash and Silverlight but now I really dont see a reason to learn either technology. After trying to get to learn Silverlight a while back and getting very stuck with XAML, most of it can be replicated in javascript and the learning curve is not as steep.

So moral of the story, javascript combined with the power of jQuery gets my stamp of approval

Oh yes, please check out the site and let me know what you think... link

Wednesday, October 28, 2009

Start of a new job

With much excitement and a little trepidation, I leave my current company and I will start work on Monday at Driven Software

Kevin asked me about two months ago to come join him at Driven Software and I couldn't resist. The work looks to be really interesting and to get some proper experience in a Agile/Scrum environment is exactly what I want.

Will be changing my blog profile -------------------------------------------------------------->
soon to reflect this.

Oh and some added extra news is I have managed to convince myself that the only possible laptop that could make me successful in my new role with Driven Software is a Macbook Pro... Cant wait :-)


Thursday, September 17, 2009

Getting to know .net build tools



I've recently been looking into using a build script to make building/testing my code easier. I've also wanted to implement a CI build server and using a build script makes it a lot easier to implement.

Small steps with Nant

I decided to first look at the tried and tested Nant build tool. Nant is a free build tool based on the Java Ant. The build script is a xml script that Nant then uses to build your project. I used the AutoMapper build script as an example. This along with the Nant wiki helped me to write a basic script that could compile my code, check some sql scripts out of SVN and rename a file for me. The script below is what I wrote.

Its not perfect and I'm not sure if I got all the naming of the tasks correct, however it did the job and I was quite happy with it as my first attempt.

Sharpening my Rake

I've been reading plenty of good reviews on using Rake as a build tool for .net projects, so I decided to try this as well. Rake is a build program written in Ruby. With a bit of help I downloaded IronRuby and installed Rake with it. I then read a nice intro on rake, I then used this example to copy my Nant script. This is what I ended up with:


The Analysis

Nant has been used a lot in .net projects and is definitely worth learning. I will definitley spend some more time and get a better understanding of it. However Rake is just so cool. Its really nice to use something that is easy to read, and very powerful as you can use Ruby to write custom methods and objects. Using IronRuby gives you the power to access all you .net code which definitely has its benefits. Its also just plain fun using a dynamic language.

I recommend all .net developers to give Rake a bash.

Sunday, September 13, 2009

Curriculum Vitae Retrospective


I recently had to update my CV or for my American readers, my resume. Initially I had writers block so I avoided it for a couple days. However after some research I eventually stopped procrastinating and got down to it.

A CV is always tricky business as you don't want to come across as a bragger or worse under sell yourself. Finding the correct balance is always tricky. Trying to keep it brief and insightful is important, along with making it appeal to your audience.

I founds some really useful blogs on writing a good, eye catching CV. I certainly think they will appeal to managers as well as fellow developers. If you're in the process of writing your own CV, I'd suggest checking them out:

Max Pool, on his blog Codequeeze has written a nice couple of articles covering some useful topics and he also supplies a nice template to get you started

Rands, on his blog RandinRepose writes about a few key items that need to be included in your CV, in order to catch a manager's eye. I assure you that all of them are absolutely legal! In fact they are incredible gems that will make your CV stand out from all the others in pile.

Writing a CV is also a great retrospective to see what you have achieved since you last updated it. I realised that I am a bit of a Jack of all Trades and probably should look at focusing a bit more.

I strongly recommend updating your CV every 6 months even if its just a way at reflecting on your progress as a developer. Why not just hand it out to friends and family to determine if its a good reflection of you and you never know what contacts will emerge.


Sunday, August 9, 2009

The Perfect Kiss

The acronym KISS (Keep It Simple Stupid) is used a lot when talking about code. What does it actually mean and how do we actually adhere to this principle?

Programmers justify many evil things in the name of KISS. Things like adding unnecessary complexity, procedural code and god objects spring to mind... And don't think that bundling code up in comments suddenly makes it all simpler.

But what does it actually mean to keep your code simple?

In Lean Software Development the elimination of waste by removing unnecessary code and functionality would be keeping it simple. Extreme Programming says that simple code:
  1. Runs all the tests.
  2. Expresses every idea that we need to express.
  3. Says everything OnceAndOnlyOnce.
  4. Has no superfluous parts.
Sounds good to me, and this is how I find it fits into practice.

Maintainable code

Maintainable Code is code that after a nice long summer holiday on the beach is still easy to add to or change. That means good code coverage, so that if I make a change the tests will tell me if I have broken anything. The code's tests must be self documenting, if I want to know how to use the code I can look through the tests for a explanation.

Readable code

This follows on from maintainable code - code must be easy to read. Having to stare at a for loop for hours to understand what it is doing is quite tedious. Comments don't necessarily make code more readable. As Kent Beck said through Ron Jeffries "comment is the code's way of telling us that it wants to be more clear". Making code modular and keeping methods short, with loosely coupled code and good level of extraction all help contribute to making code more readable.
Simplest possible

An extreme principle that is very valid here is Doing the simplest thing that could possible work. This is by far the hardest thing to do and requires dedication and focus. Refactoring is helpful here to remove complex code. Making code simpler will make the code more maintainable and easier to read and ultimately cleaner.


Short Kiss Goodbye

From my short experience in software development these principles have proved invaluable, however if I have left anything out or there are other things to consider, please add them in the comments and if they are really good, I will update them in the blog.



Wednesday, August 5, 2009

Twitter


I've decided to join all the cool kids, I'm now on twitter: http://www.twitter.com/garrensmith
:-)
 
Afrigator