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.
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.
Oh yes, please check out the site and let me know what you think... link
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 :-)
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:
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.
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:
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.
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?
Sounds good to me, and this is how I find it fits into practice.
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.
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.