So Saturday past, 29th January 2011, was DDD9, Organised by Craig Murphy, Phil Winstanley and Dave Sussman et all. All I can say is what a thoroughly enjoyable day. As I was speaking in the last session of the day, I was a bit too nervous to go to every session. But I dipped in and out of a few. Here’s my highlights:
.Net Collections Deep Dive – Gary Short
Well I have seen Gary present before and I think he's an awesome presenter but I hadn’t seen this session. So I thought I could learn a lot. I wasn’t wrong – I learned a lot of new data structures that I didn’t know existed as I don’t use them for anything.
This session has prompted me to really think about what I use and for what scenarios. Shame there wasn’t time for more of this talk – but the questions kept on coming for Gary and people made him run out of time I think.
Functional Alchemy: Tricks to keep your C# DRY – Mark Rendle
What can we say about Mark – his sessions are fun. This is like the 4th time I have seen this session and I keep picking up new parts to it. What made it even better was the interaction between Jon Skeet and Mark on ways which things could be done differently to Marks way
Is your code S.O.L.I.D ? – Nathan Gloyn
I has seen a lot of talks on SOLID and have been inspired by quite a few but this one was completely different. Nathan related the SOLID principles to real world code and that made such a huge difference. Well delivered and with good explanations.
It’s a real shame that I wasn’t able to watch the end of the session since my laptop started to not work well when I was messing with some demos before my own session
Enforcing Code ‘Beauty’ With StyleCop – Guy Smith-Ferrier
I have to admit I was a bit interested in this session as I have had some interesting times with StyleCop before so i thought I’d go along. I was actually going to go to Colin Gemmell’s session (I’ll have to catch that another time). Good fun session and really made me see the benefit of Style Cop – I shall be trying this product out more soon
Great day with lots of good people and good sessions. I can’t wait for DDD Scotland and DDD SouthWest this year. I will be at both! Massive thanks to all the team for the day and thanks to all the people who voted my session in! Got to meet loads of people I have been talking to on Twitter (too many to mention) but shame I couldn't meet more. I'm gutted I couldn't clone myself so I could have been to more talks but human cloning is a taboo topic.....
I have today just set up a Google Apps account to replace my old email addresses as they have started spamming consistently. So I wanted to add my Google apps account to my Samsung Galaxy S but when going to Gmail and trying to add an account it was telling me:
Your phone is communicating with Google servers and setting up your
account. This may take up to five minutes."
This was then followed by the message:
"Can't establish a reliable data connection to the server.
This could be a temporary problem or your SIM card may not be provisioned
for data services. If it continues, call Customer Care."
I've been racking my brains all day on how to fix this. I have Googled it and read all sorts of articles that suggest a factory reset will help. I really didn't want to do that. I tried using Google talk and trying that – still nothing
I finally read that if i tried to sign into the build in YouTube application on my phone then it would work! I tried it – success!
What a ridiculous bug – in order to add a second Google mail account to my phone I had to sign into YouTube? This is the type of thing that will ruin an OS as its been a bug since early 2010. I'm sure i wouldn't have had this trouble with a WP7
I am writing this post as a follow up to a post I wrote about recruitment. In that post I specifically asked for developers with passion. On reflection over the past few days, I felt I needed to actually think about what passion means to me. I think I’m passionate about what I do. I say think because my definition for passion may be different to others.
What do I feel passion is?
Passion, for me, is about wanting to make a difference. Its about communication of ideas and feelings to my peers. In order to be able to communicate those ideas, they need to be researched. Passionate people tend to work hard and really get something good out of helping or working with others. So in essence Passion is a good attribute to have. It can also be bad though – passion can drive confrontations or dictatorial people. But unless this is malicious then it may only be because people have conflicting ideas.
I do believe that passion can really motivate people. I’d say it’s a positive attribute in software
Why am I passionate?
I absolutely love what I do for a living. i get a kick out of researching new things and finding out how these things help me. Scott Hanselman said in a podcast -
[When showing liquid nitrogen to people for the first time] “There’s 2 kinds of people, there’s like dude we have to freeze a banana and smash it on the ground. then there's the other people in the world, which are like oh that's interesting and then they walk away.”
I certainly tend to think of myself as being in the first type. I love looking at new things and technology and I love bringing those new things to others around me – especially my team when I feel it would help. I love pushing myself outside of my comfort zone. Those who know me and have worked with me have seen that sometimes I can be confrontational but there’s no malice in that at all, I can get “hot headed” since I truly believe what I try and bring to a team will help them even if people cannot see that at the time. As I get more experienced, my confrontational side is ebbing as I realise that others are passionate about their ideas too.
So why do I want to work with passionate developers?
I want to get better at what I do. The day I feel I know everything is the day I think my career in development may be over. I have realised there is way too much out there for everyone to learn. Therefore I want to work/surround myself with passionate people so we can share ideas together. As we share, we can truly understand a topic or a challenge.
These types of developers will push me outside my comfort zone to enhance my knowledge or figure out a solution. I understand this will may cause friction, but we are grownups so we can get over that factor - right?. I’m hoping that passion in my colleagues combined with my own passion will help keep the team motivated about what they do!
Hopefully I’m not living in a dream world! My recruitment drive continues…….
I have been trying to recruit now for a good few months and we don’t seem to be having much luck. I’m not asking for much in a developer – I not looking for an expert in any particular field, in fact I think I'm looking for just some core skills that a good mid-level/ senior developer should have.
Here’s what core skills I’m looking for:
- ASP.NET/ C# 3.5 - 4.0
- LINQ2SQL or Entity Framework 4
- Unit Testing Skills
- WCF / Web Services
Desirable skills I'd like:
- MVC 2 ( or 3)
- Good grounding in Design Patterns
- Agile Experience
- Experience with Continuous Integration
- Social media API Experience
The desirables are just that – desirable! They are not required for this! There is 1 other thing that I really want in a developer – passion! I want a developer to enjoy what they do and to be able to work in a team that requires good knowledge share and good communication skills
I cannot find developers never mind the developers that fit the bill – am I looking for the wrong type of developer? I've been told that all the good developers have changed to be contractors - is this the case? Do the skills I require seem to be so far out of left field that developers don’t have them? I’m honestly stumped!!
I am working on a new application at work that’s an MVC3 app that talks to a WCF Service. I use a number of 3rd party libraries:
- Ninject WCF
- Ninject MVC
- Ninject Logging Extensions
- Fluent Validation
So when i had to upgrade to MVC3 RTM I had to see what happened to these 3rd party systems – FYI I had a bit of a nightmare! It happened in the following order:
MVCContrib – I was a bit ahead of the game here and checked out latest branch and build from source – SORTED!
Fluent Validation – Luckily Jeremy Skinner tweeted that Fluent Validation for MVC3 was available – SORTED!
Ninject – I had to download this from github, update the solution to run as .Net 4.0 and add the new MVC3 System.Web.MVC dll to it and build from source – SORTED!
Now things started getting a bit weird!
Ninject MVC – this required the solution to be downloaded from github, upgraded to .net 4, the MVC3 System.Web.MVC dll and the previously compiled ninject dll
Ninject WCF - this required the solution to be downloaded from github, upgraded to .net 4 and the previously compiled ninject dll
Ninject Logging - this required the solution to be downloaded from github, upgraded to .net 4 and the previously compiled ninject dll
This was a horrendous task! I’m not sure I'd want to upgrade something so complex again but its all for a good cause as I can now use the Razor view engine :)
EDIT: Those awesome codebetter guys have created these upgrades of Ninject on their build server so you don't have to - http://teamcity.codebetter.com/
Word of warning: DON’T TRY THIS AT HOME!
For the past few years I have been
annoying introducing all of the people I have worked with to automated testing. The tool I showed was Cuke4nuke. Now this has been a great tool for me. Its a way to run Cucumber style tests written in asp.net code (read more about it at the link above)
I think the time has come for me to finally move away from this. This is no reflection on the product itself, I think Richard Lawrence has done a fantastic job on the product, but the reason I’m moving away from the product is that it is no longer feasible for me to be able to run my tests using a ruby console. The team I currently work with are having trouble with ruby installations etc. so I made the decision to move to Specflow as it’s a asp.net BDD tool.
What advantages will specflow give me over cuke4nuke?
1st, and the main advantage, is that the tests written with specflow can be run directly from Visual Studio Unit test sessions. For my test this is very important as we are trying to get the tests run on a regular basis as they do their work.
2nd the developers will no longer need to have a ruby installation. For me, having Ruby isn’t too much of an issue as I’m interested in learning it and looking at it, but for other developers they see this as a bit of a chore to run the tests via ruby console and command line.
3rd is that the developers who run the tests can debug the tests themselves as they are running inside the Visual Studio environment. Again I’m not saying that tests always need debugged but it helps them when it’s needed
I’ll still be keeping an eye on the project as I have very much enjoyed using it. I guess my thanks have to go to Richard Lawrence and Goyko Adzic for blogging about the product and its uses