Lance Wicks
Kiwi,
Judoka,
Geek,
Husband
Daddy!

JudoGeek Blog

2014 and a obligatory Perl post. 

So 2014 has arrived and Perl is a dead language... still.

It's been dead for maybe a decade now, despite it celebrating its 25th birthday recently. As I drive to my dayjob each day where I get paid to wrote Perl code for one of the UKs leading websites I tip my hat to the dead language that keeps the bailiff from the door.

As all the other Perl Bloggers have already said. Perl is not dead; it's just not trendy. Perl was the original web language. It has lost this celebrity status. Yet, Perl is still behind many of the top websites and remains one of the most flexible and productive languages on the web... and yes I am completely biased.

For the past 3-4 years I have been back writing Perl day to day; and I am still struck by the sensation from the first few weeks"back in Perl" after some time in PHPland and elsewhere.

It was a pleasure coming back to Perl. Literally a pleasure.
Perl is a language first; a programming language second. It writes like a real language. A bit like English it can be written this way or that way and achieve the same end.

If you like a postfix IF statement, Perl is ready for it. If you hate indentation; Perl can do it! Want concise near magical code, Perl is the language for it. Want expansive expressive code, Perl can do it!

I have written in the last year or two some NodeJS and after adjusting to the whole non-blocking, assymetrical style I wrote some useable code. But for me it's harder work that Perl.

One of the strength of the web's new poster child (NodeJS) is NPM. NPM is the NodeJS equivalent of CPAN. Both allow you to do wonderful things with a simple install of a module from the community.

In 2013 I have layed the foundations to start writing better Perl (and better code in general). I have been exploring the higher order concepts and finding my way around dependency injection, service classes and the dreaded Perl Secrets (it's a cpan module).

The previous few years had really expanded my enterprise development and specifically Agile and Scrum in a large corporate setting. My team had spent a lot of time and energy on agile methods, team working, test driven development and continuous development. 2014 really looks to be a year where my Perl improves and hopefully the skills I pinked up elsewhere help me apply the knowledge I am gaining this year.

My goals for the first quarter of the year are:
1. To finally upload a CPAN and
2. To add a Perl example to at least one web API for a webservice.
3. Do at least one "side project" with Dancer

Having said that; I shall try keep a toe in the NodeJS camp as part of me wants to stay on something "sexy". And of course part of me loves the ideas of NodeJS. Those being that by using the V8 engine the language benefits from all the competition to make web browsers faster and faster. I also love the idea that one language provides serverside and clientside.

Anyway... my final goal this year is blog regularly. I used to be so regular but faded. This year I have resurrected my spreadsheet and shall be using it to cycle me through my various sites and help me blog regularly.

So folks, stay tuned and say hello.

Lance.
[ view entry ] ( 4650 views ) permalink
My ArchBookPro ;-) 

So whilst I was away in Miami, I took the plunge and started installing Linux on my MacBook Pro. Being me, I decided against the sensible option of something easy like Ubuntu. I went with ArchLinux, not Manjaro (again simpler), which meant I had more learning to do and more problems, but eventually and a trip to Rio later I now have a working ArchLinux laptop.

Excluding the very manual setup required as part of Arch, the main problem was negotiating UEFI on the Apple hardware. One I got aroun that, Linux worked great.

I have had a few issues; wifi needed some work (and is still not 100% how I want it). Recently, for some reason suspend/hibernate stopped working properly. So closing the lid does not put the machine to sleep, I'm sure I will get to it.

I love Arch, mainly as I hate software getting out of date. It's a rolling release distro, which stops that annoying having to do a major upgrade on a irregular basis like Ubuntu. I have been burned that way in the past.
I have used Arch on desktop office machines for a while, and I find that if you keep it up to date the small incremental updates causes less problems than further spaced out big updates.

It's also fast as hell!
With Arch you only install what you need, so for example I use XMonad so I don't have the big window manager daemons running. Of course I have a SSD which makes it faster yet.

I intended of keeping my OSX boot, but in the end I "manned up" and wiped all the disks and started fresh. So my SSD has my OS and user stuff on it (fast). My 1TB drive (slower) has all my data and works well for storing my larger files (video, old podcasts, etc).

It is really nice to have switched my personal machine to Linux, dev work is so much better in the Linux world. It's a bit similar actually to the Apple eco-system; Perl (my main language) and most of the dev tools of the universe are Linux based, so having a Linux laptop makes it so much better.

And Arch is very very cool in that it has AUR, which adds onto the standard repositories pretty much any software you will ever need!

I love Arch and my bizarre xmonad setup. People freak (especially galling for most people is I as a mac user am hooked on "natural scrolling" so everyone hates using my machines as scrolling is upside down.). They hate my xmonad as after login, all tehy get is a black screen, just that. :-)

The laptop has some tweaking to go but it's getting there fast.

I will eventually right up something more on how I got around my problems, but to be frank it's rather redundant... the ArchLinux wiki is stupendous! More than once I've found myself and others using Arch to solve problems on other operating systems.

So there you have it, gone is my life using a evil proprietary operating system on my shiny macbook pro. I have an open source operating system; a secure machine (I even encrypted my drives) and lots of great free and open software... tool of the month is BitMessage the secure messaging software that might be the peer to peer replacement for email; give it a go.

Drop me an email (or comment) if you have any questions or suggestions.

Lance
[ view entry ] ( 7751 views ) permalink related link
Change is a good thing... right? 

So.... where to start.
The last time I blogged (back in April) I wrote that I was changing from the PHP based web application team back to the Perl based test automation tools team. Well... since then the company I was at made some more changes and the Perl team was directed down a path to merge with some C tools of a similar type to the Perl ones.

There were some other large changes in management (direct and above) and the big picture is that both my immediate manager and then later I decided to move on from the company.

I handed in my notice and decided to look in other directions (more on that later). So the end of July marked the end of that adventure and August is the start of another period of change for me.

August is a fun month for me as I shall be in the USA and Brazil with the IJF IT team for most of it. I will be working to help stream live video (via Youtube) of the World Cadet and World Senior championships. Of course I'll be helping with the electronic scoreboard system and will be running my NodeJS based live tweeting software also ( http://twitter.com/judoticker ).

So why move on?
Lots of people have asked why I am moving on from my current $dayjob. And like all decisons of this sort it is not a simple decision. A big part of the decision was that my immediate manager moved on, he acted as the "Product Owner" for our scrum team and was also the champion of scrum in the company.

So his departing left a big hole, one a non scrum manager stepped into and tried to fill. But sadly the manager was a "scrum but" practitioner and after some very heated attempts at resolving it I "inspected" and the result is my leaving (adapting). Although my temptation and initial reaction was to stay and fight the system; I realised that as AnnMarie De Mars put it, there is a level of futility to doing so. Even if you win you lose as you feel all the pain to get very little reward.

Equally, the technical direction was going the wrong way. Many of our technical improvements were being undone and the work the team was being directed towards were not aligned with my personal direction. In other words, I am a Perl developer who took the role to sharpen my Perl skills and work in an agile environment. Sadly, the company was/is unable to go that direction so I decided that I wanted to grow further. So I'm looking forwards and looking for agile Perl roles, where I hopefully can continue to sharpen my Perl skills and also contribute by sharing the high quality of Agile/scrum with a new team and drive some technical practises in a new environment. Thats the plan at least... lets see what comes about.

Looking out there I am pleased to see the job market is healthy, literally within hours of posting my CV online I was receiving calls. What was of interest too was that there are some good Perl jobs on offer out there. And not just in London. There are Perl jobs all across my part of the south coast of England and up the M3 to London.

So that is really positive!

So the next time I post hopefully I'll be able to share some good news on having found an exciting new challenge!

Lance
[ view entry ] ( 4765 views ) permalink
Inspect and adapt! 

Hi all,
so life on the new team was short lived; I am back in the Perl team and working on a new "Acceptance Test Driven Development (ATDD)" project. This is a relatively new approach for the Scrum team I work on and a new part of the product we are testing.

ATDD for this team is basically automating the running of tests that confirm that the product "does what it says on the tin". In other words, we are creating a barrage of tests that run regularly (hourly) and confirm that the product conforms to a set of formal documents. These documents range from standards from industry to product specific behaviours.

Rather than testing edge cases and behaviours, what we are mainly doing is testing the products output in standard situations. Confirming that as it iterates towards the production version the standard outputs remain constant. In our case we are working on something new, so we are coding tests for things as or in places before the product actually does what it should.

So our test dashboards are turning red now, and slowly turning green as other teams enable the functionality we are testing. It is a interesting and rewarding way of working. You setup a test and see it fail, then some time (days or even weeks) later, it magically turns green when the other teams release the latest version of the product and the test starts passing.

One of the key things we did early on was tie our tests to the specification and standards documents. This has proven to be really key as we have in the test results (specifically in the failures) references to shared documents. So when we say to a member of another team "oph hey, feature x is failing because the widget says bing instead of bong" and the person knee jerks a response like "oh thats how it should be". We are able to say "REALLY???... Thats not what document X says. It says it should be bong, see right here on page 42..."

This is helpful for preventing the very human thing of batting things from one team to another as an immediate reaction to someone on another team saying what you have done is wrong. It's a programmatic way of solving a human problem.
We are using code that refers to documents to prevent people arguing. :-)

Beyond this aspect of $dayjob, the team is continuing to develop it's use of TDD (Test Driven Development) and Pair Programming with mixed results.


[ view entry ] ( 10543 views ) permalink
A small change in situation. 

So it is February already, wow what happened to Janaury!

Thought I should write something to clear my head. This week I head to Paris with the IJF to work at the Paris Grand Slam judo event. Should be good. I am taking my Raspberry Pi with me and then I'll be sending it with colleagues until I meet up with it again in Samsun Turkey in March. I hope I have it setup correctly!

On the $dayjob side of things, this month marks a small change in my role in the office. Whilst remaining the scrummaster for my old team I become a dev team member of a new (related) team. The change is minor but interesting.

My old team is a primarily Perl team, doing console server applications. In the new team as well as Perl, there is PHP and Javascript involved in an internal web application. So I'll be brushing up on my PHP and getting a daily dose of PHP and JQuery.

It's one of those interesting changes in situation that comes along and if you roll with it you learn a lot along the way. I am fortunate that as the existing scrum master for both teams, this is not a case of meeting new people. Sure I have to learn a new codebase and coding style and standard; but I know the team members and all that good stuff.

Back on the Judo side, but locally. My club(s) are going strong; the Southampton club just regained the third place position in the Hampshire Team Championships and we are preparing for the Hampshire Individual Championships.
I am the competitions organiser so it was great to see a good turn out for the team championships and to be seeing entries for the individual championships coem in steadily already.

Anyway... the only real issue is the old work/life balance.
I'm doing my usual trick of burning the candle at both ends and in the middle. :-) Stay tuned for updates on things.

Lance

P.s. hello, if you are reading this please let me know either in a comment or via email. I am always curious if this cathartic exercise of blogging is purely for me, or if there are people out there reading these words.
[ view entry ] ( 3229 views ) permalink

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