Lance Wicks
Kiwi,
Judoka,
Geek,
Husband
Daddy!

JudoGeek Blog

Perl, TDD, CI, Scrum and the universe. 

So, those who read this blog will have picked up that it has been gathering dust as other projects have soaked up my time and energy. Which is not a good thing as I firmly believe that blogging is a important reflective practice that makes me better at the other things I do.

Anywho...

So the "stuff" I mentioned above is mainly two things, a great gig writing perl code and secondly working for the European Judo Union and International Judo Federation on their IT teams. The EJU and IJF stuff is amazing and awesome and great, but I'll save that for my blog over at http://www.judocoach.com

The perl stuff has been awesome too.
Perl was the first language that "stuck" for me, the first one where I really truely got beyond Hello world and occasional hacking. In Perl I discovered creating stuff. Later PHP took centre stage, but Perl held a special place in my heart.

Recently (ok since about October 2011), I had a chance to write lots of perl code in a corporate environment and damn has it been great.

Perl as a language for some reason reads nicely for me. It has a rhythm that makes sense to me. Beyond that it has flexibility and power. It has CPAN and it has a strong community. So returning to Perl has been really enjoyable and writing code everyday is great, you learn something new all the time and that tangible improvement is addictive.

I'm also lucky as I work on a small agile team using the scrum methodology. I am enjoying scrum alot as it really encourages you to work hard and fast, but in short bursts (sprints, tasks and pomodoros). It is a flexible framework that encourages the team to improve it's own working habits and processes, so during and after each sprint there is lively debate over what we do well, what we do poorly, what we can change, what we should change etc etc. Scrum teams are self-organising, so everyone is encouraged to take responsibility for the team and contribute. It's really enjoyable.

I operate partially as a member of the dev team and partially as the scrum-master for two scrom teams. I am enjoying the technical coding side and the more human oriented helping the teams side.

One of the things that we have done (self-organised) is moved to a Continuous Integration way of working using unit and functional tests powered by Jenkins-CI tool. Being a Perl shop we use Test::More for the unit testing and the TAP plugin and Jenkins to pull our code from Git and test it when changes get merged into the main code base.

The flow-on change from this is our gradual movement towards purely test driven development. I have experimented and tried to work that way in the past and even blogged on this site about it in the past. Working that way again has been great and encouraging others to work that way is great too.
What I find is that at first there is a struggle to make the change, but once you strike gold once or twice and write a chuck of code in the TDD style; you get hooked and realise how much time and pain it saves you. That time saving is real and untill you get it right a couple of times I think people struggle to believe that all the test first effort will actually work for them.

So I am really busy, travelling a lot and working hard writing code plus delivering live video streams for Judo. Add to this my coaching at two Judo clubs and running local kids Judo events and I have been stretched pretty darn thin.

But I am getting the balance right more often now and with the lul in the Judo calendar due to London2012, I hope to recover a bit before launching solidly into the last part of the year!

Stay tuned as I hope to blog more frequently as I get the balancing/juggling right.
[ add comment ] ( 3886 views ) permalink
Feeding my sons obsession. 

My son is very keen, as many boys his age are, on video games.

Xbox, Wii, Playstation, Nintendo, flash games, Scratch, Bin Weevels; it goes on and on.
It's what he loves and especially things like scratch.mit.edu are where I try and push him with the hope that it will encourage him to learn more about the world of technology and how games and computers generally work.

Recently, I discovered "Gamestar Mechanic" and interesting site that lets him play a young game player come game game designer who must go through a variety of quests Pokemon style.
Whats nice about the site is that it teaches game design not just game playing. The NPCs in the quests and the levels in the quests teach him about how games work and he gets to design his own games too.

Embedded below is one of his first attempts, a two level affair. Which I must confess I can't beat, give it a go! :-)


[ add comment ] ( 3055 views ) permalink related link
Perl baby! 

So in my $dayjob, I have for the last couple of months been working almost exclusively in Perl development.

I have mainly been doing PHP web stuff for the last couple of years, so it's been interesting looking at Perl again. Coming back to Perl has reminded me how nice a language it is to work in and how many powerful tools it has.

What is interesting coming back to it is noticing how much talk there is about how Perl has lost ground to PHP, Python, Ruby etc. There is the Modern Perl movement and a push currently to up the social media war. For example the "Ironman" challenge trying to get modern articles on Perl online.

What has not changed is Perl 6 is still vapourware prety much.

Anyway...

So Perl Best Practices is great, especially when coupled with PerlCritic.
My tendency is to work like this:

1. Run PerlTidy on whatever code I am working on.
I have some local standards setup to match the style of the team I work with.

2. Hack away
Preferably I "try" to start by writing a t test file or a script that automates testing the script I am working on when the code is not a module. So TDD with unit tests where possible and TDD with regression testing when a script.
I'd love some guidance in this area if anyone wants to comment.

3. Run the code through PerlTidy again

4. Run the code through PerlCritic.
I have this setup at level 3 or 4 currently. Depending on how clever I am feeling or how messy the code is, I tend to run PerlCritic over and over at different levels and try and fix up as many things as I can.

5. Commit the code and get a colleague to review the code.

6. Fix the changes recommended and send it back fro review again until it passes.

7. Merge it into the main codebase.


It's been great to get back into Perl and I shall post more about it over the coming days, weeks, months. :-)

P.s. If you are interested in Learning Perl, you should check out Gabor Szabo's Beginner Perl Maven course on Udemy.

[ add comment ] ( 1138 views ) permalink related link
Digital Natives, Social Media, Social Hardware. 

On the 27th of October I was lucky enough to have the opportunity to deliver a talk at Anglia Ruskin University on coaching digital natives, social media and social hardware.

The talk is the v2.0 of the original DIgital Natives talk I gave at the University of Bath in 2008.

In the talk I tried to cover in a fairly short time what a digital native is, what social media is and why either of them matter. I also added a section on Social Hardware or the "Internet of Things" and how it relates to coaching.

Anyway... I was able to take a video of the talk and here it is:





Lance
If you can't see the video, try it on Archive.org:
http://www.archive.org/details/DigitalN ... lMediaTalk
[ add comment ] ( 2924 views ) permalink related link
Reflections on becoming a Marathoner. 

On Sunday September 25th 2011, I became a marathoner. I completed the New Forest Marathon in the abysmal time of five hours and forty minutes. It was one of the most painful experiences in my life and I have informed my wife that she has permission to slap me if I ever suggest I run another!

The idea for running a Marathon has been bubbling under the surface for quite a few years. Mainly thanks to the Pheidipidations podcast from Steve Runner. I've previously run a ten mile race and a half marathon (January this year).

As with my half marathon, I used a training program from Runkeeper.com.
Sadly, unlike the half marathon, this time I slacked off the last two months before the marathon! And that is what did me in!

I had been training like a trooper, keeping to the program, fitting in the scheduled runs. But unfortunately for me, all that great base work was wasted. The way my run went proved the old adage that "Piss poor preparation, leads to piss poor performance".

When I look at the mile times I did, I also suspect I went too fast too soon. I didn't feel like I was running hard, but all of my first 5 miles were run under 9:30 pace. In fact only two of my first 10 miles were over ten minutes per mile.

After about 15 miles it all went horribly wrong. From about 16 miles my leagues were cramping and the going was bad, really bad. I tried to walk some of it off, but I was walking REALLY slow. The alternative was trying to run through the cramps, but that hurt and tended to generate more cramps.

I was hurting and came very VERY close to quitting a bunch of times. It was on reflection, interesting how my mind played tricks on me. At about 19 miles for example; I decided a marathon was only 23 miles long. So I only had 4 miles to go. A couple of miles later, my mind realized that a marathon is 26.2 miles. Weird. Two miles of confusion.

I don't know where it happened, but around the 23 miles mark, the sweeper vehicle caught me up. The sweeper, is a van that comes around and picks up stragglers or hands out disclaimers saying you are outside the end of the race and you are on your own.

Being caught by the sweeper van, spurred me on and I managed to catch up with the van and overtake it and get "back in the race". Shortly afterwards I was overtaken again; then overtook it again with maybe two miles to go. And I stayed ahead till the race finished!

Coming down the final length, I was greeted by my wife and my twin 8 year olds. And they ran with me the last 200 yards or so and the ordeal was over!


I am very happy to have finished the race, it hurt like hell. But I am pleased I finished. One of the little conversations I had with myself, was saying that I had to finish, else I would feel like I had to run another one so I had actually completed one… and there was no way I wanted to go through that again.

The interesting think about running the 26.2 miles that makes a marathon is that you body is not designed to do it. You can't run that distance without training, nutrition, hydration and lots of perspiration.

It is obvious to me that the last two months of training is key to a marathon. I had hoped that the base training I had done would carry me through; but it was no where needed. I needed a lot more miles under my belt and more long runs.

I had good hydration and nutrition, plenty of sweets and carb gel packs. And I drank at every drink station (approx every 4 miles). Which was something i worked on and planned for.

The legs were what gave out. And today I know they gave out bad. I have a sore lower back and also pain around my lower ribs. I am presuming the lower back is form the strain and the ribs from the grunting, groaning, wheezing and swearing and of course gasping for breath as I tried to run.

I should have seen it coming, the last few runs I did managed to fit in that were of reasonable length (8-10 miles) I felt some discomfort/pain in my upper thighs/hips. This was what I felt at about 10-11 miles into the marathon, before it expanded and blew up into full blown cramps shortly after.

It was rather an emotional experience, I was a broken man by the end. I gave it my all, more than I knew I had in me. I managed to finish in a poor time, but I finished just inside the official race period (out running that evil sweeper van).

I don't desire to run another marathon, I am happy to have completed a huge challenge. Even if I didn't get the performance/time I had hoped for.

An ordeal, but the marathon is supposed to be an ordeal, a trial. I made it the full distance and that is enough for me, I feel like I discovered and exceeded a physical/emotional/mental limit within myself. And for that experience the 5 hours and 40 minutes of pain was worth it perhaps.

[ 1 comment ] ( 1143 views ) permalink

<Back | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Next> Last>>