About Chisel

I've been interested in technology since my childhood (my Acorn Electron era). Commercially I've worked with C and VBA (Access) [but we don't talk about that]. In 2000 I secured my first role as a Perl Programmer and that's been my primary language since then. I dabble in bash, puppet, and a few other skills that help me dip my toe in the DevOps water, or provide a conduit beween the dev and ops worlds. I joined Net-A-Porter in November 2006 and have been happily evolving with the business since then.
Perl

Learning the perl debugger: Lesson 3

pbug-workshop-attendees

This post follows on from lesson 2 in this series of posts.

If you’ve followed the lessons so far you’ll have some basic knowledge around starting the debugger and examining variables.

It’s time to find out how to descend into the depths of some code, stepping into functions.

Continue reading

Hack Days

Raspberry Photo Booth

IMG_20140123_102849
At a recent meeting, some ideas for an office event were being discussed, and people were considering hiring a photo-booth for the evening. I had a huge lightbulb moment: we’ve had a photo booth in the office and at some staff events already — why do we keep paying other people to do this? Surely we can create our own for a fraction of the cost?

How hard can it be?

This is the question I set out to answer in our most recent Hack Day.

Continue reading

Architecture

When Latency Strikes

As a developer-by-nature, I’ve been fortunate not have to understand
global networking, and the effect of the speed of light, in any great detail.
I’ve been in the lucky position where I have been able to write code that
“does what it’s supposed to” without much thought to global server
positioning.

This changed quickly and suddenly for me towards the end of 2012.

Continue reading

Miscellaneous

Six Years Later

I joined NET-A-PORTER on 6th November 2006. A lot has occurred in the time since I joined the company and I’d like to share with you some of the things I remember from my time here.

This doesn’t reflect the full history of the last six years, and only represents my thoughts on some of the amazing things I’ve seen since I joined.

The Early Days

When I first joined, there were three other permanent Perl developers, and one contractor. In my time at the company, the number of Perl developers has grown to over two dozen. To me, it feels that every time we grow the team to meet the business’s needs and wishes, they come up with even more needs and wishes. I’m not saying this is a bad thing — if they ever run out of wishes, I need to start looking for a new job!

The technology stack wasn’t too shocking for its time, and definitely no shocks for a Perl application:

Continue reading

Perl

Easy Data::Printer in the perl debugger

I find myself often wanting the magic of Data::Printer when I’m debugging. Sometimes ‘x’ just doesn’t cut the mustard.

I’ve finally got bored of typing:

use Data::Printer alias => dp; 

in the debugger, and have taken some time to make it available automatically.

If you want to try it, add the following to $HOME/.perldb:

$DB::alias{dp} = 's/dp/DB::dp/';
sub DB::dp {
    eval { 
        require Data::Printer; 
        Data::Printer->import(colored=>1,use_prototypes=>0);
    }; 
    if ($@=~/Can't locate/) { 
        print 'Data::Printer is not installed';
        return;
    };
    print Data::Printer::p(@_);
}

You can test it works with the following:

perl -d -e '$DB::single=1; $a'
main::(-e:1):   $DB::single=1; $a
auto(-1)  DB<1> v
1==>     $DB::single=1; $a
  DB<1> dp { foo => bar }
{ 
    foo   "bar"
} 
  DB<2>

(Yes, you can use ‘-e 1’, but I have NonStop=1 in my parse_options() setting.)

[This entry was originally posted on my perl blog]