11 Apr 2012

How I moved to ICS on my Galaxy S2

(Just thought I'd let folks know what I did)

Being an owner of the Samsung Galaxy S2 I've eagerly been waiting for my bite of ICS loveliness which never seemed to be coming. Turns out that I have even longer to wait seeing as I was one of those splendid people that bought an unbranded sim-free version online rather than from a carrier. A spokesperson announced that us folks would be last in the queue so I decided to move to ICS with by moving to the nightly builds of Cyanogen mod 9.

Step 1. Due to the locked boot loader I followed the directions here at CNet UK (Link via Andy Gibson) to root the phone. Note that: -

  • I had to follow the link off the XDA forum to the older kernels for my phone.
  • I put the secure kernel back on.
Step 2. Install Cyanogen mod via ROM manager as detailed here (again link via Andy Gibson).

On this step I found that for some reason I was getting errors after attempting to boot in recovery mode and so was unable to apply the ROM. I have to apply a version of the clockwork recovery that was 5.0.2.3 which was linked off of XDA developers. After applying this I was able to flash on Cyanogen mod via the SD card.

Job done, I had a Galaxy S2 running Cyanogen mod 9.

The next day I decided that I did not like the yellow triangle on my boot screen and thought I would be okay to flash on the original secure kernel. Big mistake. I now had a phone that would not boot. Fortunately I could boot to download mode (via key press) and so I reapplied that clockwork mod kernel and then had to reinstall Cyanogen mod and the Google apps. At this point I decided I was now okay with the yellow triangle on start up but for some reason now when I went in to recovery mode I was now in the version of recovery that came with ROM manager.

So there you go... not as easy as it should be but I got there in the end. To be clear, I'm not recommending this as a specific method that may work with you, I just thought I'd share my experience with the whole process.

Good luck, I'll see you on ICS.


24 Jan 2012

Gratuitous desk shot

After a tidy up and fixing the driver issues I had I am finally back on more than 2 monitors and I have a nice clean space in which to work. So... Gratuitous desk shot!


Note: the keyboard is a Saitek thing and frankly it's awful.

11 Jan 2012

What I got out out of a day of global code retreat

Back in December of 2011 I attended a Code Retreat in Glasgow which was part of the global day of code retreat. In short code retreat is a day of TDD and pair programming in which we all work on the same problem for 45 minutes a session, have a retrospective discussion about the last session and delete the code then change pair and repeat. The day was global in the sense the same thing was happening in 90+ cities around the world.
(If you'd like to know more about code retreat go to coderetreat.org and have a click around).

Now that I've had time to more than enough time to reflect on the day, I thought I'd write up what I think I learned on the day. Some may be totally obvious, some perhaps not so obvious... lets see where it goes shall we.

I don't know Ruby.
I went to code retreat with effectively one language I could work in and that was C#. Why was this? Well C# is my day job language and to be honest over the last few years I've not had the energy in the evenings to tinker with other languages after I have done my fatherly duties for the evening. Now that the kids are getting just that little bit older I'm slowly recovering both free time and energy meaning I can actually sit in front of a PC at night and not just fall asleep. So should I learn another language? Well yes, but not yet. Other languages will I'm certain expand my thinking and will no doubt improve my general coding skill but now is not the time. There are other lessons that I feel must come before this.

I haven't done pair programming.
Pair programming was a real eye opener for me. Obviously I've heard/read many people say many good things about it, but it was interesting for me to actually use it for the first time. The only downside is that due to the 45min time limit on a single pair it was hard to get in to a good flow before the dynamics would all change again. It's definitely something I'd like to try more, but I don't think it would be wise to pair with many of the individuals at my current employer as I really think it is worth working with someone that knows what they are doing. I could not bring myself to call some of these individuals "developers", I know that sounds bad and indeed they may read this but I think it's justified.

I'm comfortable.
Yes I'm a comfortable guy safe in the knowledge that I can work with the problem domain presented to me each day at work. Although the requirements evolve and change they do so at a speed that I rarely need to write brand new components or applications. The trouble is being comfortable like this is not good, this means when I'm starting something new I start it with a lot of doubt that prevents me from getting a lot done. The solution to this is clear...practice. Pick some code katas and start plugging away at them (more on that in a later post I think).

My development environment needs set up for productivity.
I turned up to the day with Visual Studio nearly in its default factory released state. With the minor exception of having installed nunit and testdriven.net. I was pretty much starting with a blank screen each time and I was getting mighty fed up of writing the same thing over and over again "test....void...public... test name" etc.
I've realised that I need to install just enough of the right tools and create just enough snippets to reduce the time I doing just simple but long typing. I need to work with and learn how to maximise tools such as ReSharper.

My head needs set up with TDD in mind.
More on this in a later post but I'll say this quickly, when first starting TDD getting your head in to the mind set of actually doing real TDD is actually quite difficult but only time and practice will improve this. This is what code kata is for, doing a simple problem you've probably done a few times means you can focus on writing good code in the way it should be done.

So I was measured, do I really need to practice?
Actually speaking of practice, this is the whole point of code retreat. We are there to practice, away from delivery dates and support requests. It was said by Corey Haines (one of the founders of code retreat) that there is the kind of code we'd like to write each day at work and then there is the actual code we end up having to write and that the difference in these is merely a measure of how much we suck. So I need to spend time writing good solid code and reduce that gap I measured for myself.

There are people who care and are willing to listen.
In my opinion I've saved the best till last. The people that attended the code retreat in Glasgow were everything you could have hoped they'd be, especially the guys that organised it @mowat27@joe_jag and @roblally and this fine chap @paulanthonywils who's company coughed up the money to pay for the day. Let me be completely honest, though I was really looking forward to the day I was totally bricking it. I knew I was going to be in a room of people who were smart and really cared about code and there was me that on paper looked like one of the common (or garden) clock on clock off dev that spend their career only using if, else and switch and combinations there of. I was really made to feel welcome by everyone there and some of the guys I paired with who to me seemed clearly in advance of my level almost seemed glad to get the chance to pass on what they had learned. It was like I had made the choice to be there on a Saturday so I implicitly had earned their respect not to be a waste of anyone's time and this was refreshing and mind blowing at the same time.

So where has code retreat left me?
Well going to code retreat has been like another part of the journey that I have been on in the last year or so since my first DDD Scotland event. Each step of this journey is exponentially lighting the light bulbs of my brain and is ultimately going to increase my career's health and happiness. Now if you'll excuse me I have some kata to get on with.

8 May 2011

DDD Scotland 2011

Well that's DDD Scotland over for another year. Really good line up spreakers this year and it was pretty hard to pick the sessions to go to. This year I went for: -
  • Creating your Own Software Company: A Survival Guide (with Kendall Miller)
  • Asymptotics and Algorithms (with Gary Short)
  • Unit Testing, Test Driven Development and the Walking Skeleton (with Seb Rose)
  • Is your code S.O.L.I.D ? (with Nathan Gloyn)
  • Produce Cleaner Code with Aspect-Oriented Programming (AOP) (with Gael Fraiteur)
Was hard to pick sessions for this year but my focus this year was around improving code quality and certainly these have given me a lot to think about and more importantly lot to read up on. Now I just need to find time to read up on it all.
One thing I felt this year is that aside from the presenters I was one of the very few that turned up with something with a real keyboard. It was like an android and iphone owners club. :)