Those of you on the mailing list, or following along on Twitter will know that over the weekend of the 3rd & 4th October, I was out and about at PHP North West 2015.
Thankfully, this year we had a bit of a heatwave so being up and about early on both the Saturday and Sunday was not the icy frost-fest that last year entailed.
I booked my ticket as
an early blind bird this year – on the day they were announced if I recall correctly – and I was still ticket #49. That should give you an idea how popular this conference is.
And there is the un-con to get too, the line-up for which isn’t announced until the day.
A quick note on the venue – super easy to find, a £2 all-day car park (each day) right next door, and plenty of space for however many delegates there were (
300+? 425!). Same venue as last year, hope it’s the same next year.
Keynote – Stealing People Lessons from Artificial Intelligence
Saturday kicked off to a jam packed room with the keynote from Meri Williams.
I was left feeling really happy after this talk.
There was a slide on Motivation. I didn’t get a shot of it unfortunately, so here’s a screencap from Meri’s website:
I answered YES to each of these questions for both Code Review Videos, and for my client work. Awesome.
There was also this slide:
Finding people in the top right has enabled me to grow both personally and to help grow Code Review this year. For that I am extremely grateful.
What To Expect from PHP7
After the coffee break, I returned to the main hall to catch Lorna Jane’s talk on PHP7.
I can’t photo, but:
After listening to Lorna’s talk, I too am convinced.
I must confess to having not yet had a chance to play with PHP7. I have heard it is lovely and fast, but in truth, I always found PHP5 to be pretty fast compared to doing the same things manually… especially if you remove all the layers of ‘stuff’ that we pile on top of it.
The speed improvements do sound nice, but the syntax improvements are the bigger news for me. Particularly the null coalesce operator. A crazy name for a very useful concept. Also, Googling for this has to be easier than the first time I Googled for what turned out to be the ternary operator (‘question mark colon php’?)
A quick code sample:
// $a is not set
$b = 16;
echo $a ?? 2; // outputs 2
echo $a ?? $b ?? 7; // outputs 16
(Full credit – Lorna Jane)
Lorna has a write up on this very topic so be sure to check the credit above from the full article.
A First Look at ZF3
This was a very enjoyable and informative talk by Rob Allen, who I had previously managed to watch on YouTube regarding PSR7 (audio ain’t great unfortunately, so watch with decent headphones).
I am really interested in what the future holds for Zend Framework.
The early part of this talk was encouraging – ZF3 has got it’s act together with regards to project maintainability. Like it’s competitors, ZF3 is now much more modular and (properly) made up of composable components managed with Composer 😉
If you are a mailing list subscriber you won’t be so surprised to hear I was very much enthralled by the section on Middleware.
I genuinely think this is going to be biggest thing in PHP – except for PHP7 – this year. Ok, well… there’s not much left of 2015, but 2016 is definitely definitely going to be a big year for Middleware in PHP.
I also really liked what I heard about how ZF3 will enable the construction of “specific builds” – a ZF3 build for web apps (MVC), a ZF3 build for APIs, etc. That sounds awesome.
Middleware sounds like it’s going to be huge for ZF, and they are even porting integration into ZF 1.13.
The food was really nice. However, hot and spicy chilli chicken with no napkins?
Come on now.
Hitting the Uncon
The uncon unfortunately didn’t have a time sheet outside the door. Instead, attendees were asked to head over to the Joind.in page to figure out what was on when. These talks were mingled in to the main track talks which was a bit messy and harder to follow than it need have been.
Please put out a proper written list in the future if possible.
The PHP Framework Engine (PPI)
The first talk I caught was by Paul Dragoonis, introducing a PHP Framework that’s not a framework – PPI.
Now, PPI is a bit of a tricky name to compete for as it’s a very spammy term and a thoroughly dodgy industry. Paul’s framework that’s not a framework had had the name before PPI became a thing, so he was sticking with it.
From what I gathered, Paul and the PPI Framework are pushing boundaries – perhaps two to three years ahead of where the mainstream frameworks are.
His idea is that you can combine all the best bits of each framework – using Aura for Routing, Symfony and Doctrine for entity management, and Laravel for templating.
I can’t say I fully understood how this all worked together, but the concept is certainly fascinating.
How to Migrate Anything with DDD
I really liked Gabriel’s presentation. He was speaking about Baleen Migrations, and managed to get a tech demo in there (that all worked flawlessly).
There’s only so much that can be covered within 25 minutes, and unfortunately the architectural side of the project (the DDD part of the talk title) wasn’t covered.
As a tool however, this looks really, really nice.
Also, after having Googled for Baleen, it turns out that Baleen is a type of Whale – hence the name for a migrations library. Nice touch.
Driving Design through Examples
Ciaran McNulty’s talk on BDD and DDD with Behat and PHPSpec was perhaps the most personally relevant talk I saw all day.
The big win for me – I have been doing DDD and BDD right!
This is great as I’ve done an absolute ton of reading on BDD – how to best write specs, how to improve the specs by asking questions, and really drilling down into the detail of a problem by asking questions.
However, I still learned an absolute ton. Ciaran and the rest of the Inviqa team are – as far as I am aware – the foremost experts on this subject in the UK, and any opportunity to learn from them and improve my own processes and development is always extremely welcome.
Unfortunately, the pictures I took of this talk are amongst the worst of them all – which is saying something as the rest are pretty bad to begin with.
If you squint hard enough, what you can see here is named constructors in action. Very cool.
Thoroughly enjoyed this talk!
A small confession. I have listened to (almost) every episode of That Podcast, so stole in extra early to this one to say hello in person to Beau Simensen. Amazingly, Dave then walked in and I got to meet him too.
And then, because I was on the front row with all the A-Listers, I got to meet Rob Allen and Lorna Jane – speakers from earlier in the day, for those not paying attention – so this was all kinds of awesome.
Everyone was super nice and that was a great way to (almost) end the day.
Beau’s talk was very interesting. Being dedicated to PSR7, and with a longer time slot than I had seen of Rob Allen’s PSR7 talk mentioned earlier (the YouTube link), I got a better / more in-depth understanding of the topic.
I came out of this talk convinced that PHP is, on some levels at least, going to be able to offer somewhat similar functionalities to something like Express JS in the not too distant future.
That was it for me for the first day. I didn’t stay around for the closing remarks of day 1 as I had to be home to take over family duties.
In my absence, I somehow managed to win a book:
Agile Project Management and Scrum
I’m not sure who I won that from, or why, but thank you all the same.
I arrived on the Sunday morning in good time and found the halls largely empty. Yikes. However, I need not have worried as it seemed everyone had skipped the coffee and pastries areas and headed straight for the three conference rooms.
Getting things done with ElasticSearch
I learned a ton in this talk.
I’ve used Solr for a previous project and have been wanting to properly dive into Elasticsearch for ages now.
The main thing stopping me from doing so is the seemingly over large depth of knowledge required just to get started.
After listening to Thijs Feryn break down the overarching concepts, I did feel a little more at ease.
There’s so much cool stuff in there. Stuff that can really add value to a wide range of projects:
Elasticsearch – or search in general – has to be the next thing to add at Code Review. It shames me that it isn’t there yet.
Ways To Measure Your ORM’s Cost
Stuart Herbert is clearly not only just a very smart and knowledgeable guy, but you can tell he has been there and earned his stripes first hand.
All the problems and solutions discussed in this talk were aimed at growing, through to larger businesses. It’s nice to have tons of traffic, but that brings with it a new set of problems.
Suddenly your site is slow. Is the solution to add more servers? Possibly, but that brings with it a new set of headaches. Those early short cuts you took with straight-outta-the-manual Doctrine :
$products = $repository->findByPrice(19.99);
What’s that really doing behind the scenes now that you have 40 other entities all hanging off it?
Those sorts of questions.
I have done some videos on this topic as it’s really not that much harder to do it right first time.
I knew from the first few slides that I was going to enjoy this one:
This chart was really eye opening. Pretty obvious really when it’s pointed out to you.
Your laptop’s hard drive is nothing like your servers. You definitely need to be measuring the real world.
Great talk, with tons of take away points and a really open presenting style that brought out some interesting and relevant audience participation.
Closing Keynote: Developers are just like humans
I ended up in the overflow room for this. That’s a nice thing in a way – proves that Sunday was very popular, just as last year.
I found this one a nice way to end the conference.
I would have been happy just getting the Behat stickers.
The Sky bag came with a ton of freebies. Thanks, though the chocolate bar tasted like cooking chocolate… yikes. Feel free to feed that back to Rupert.
That little grey and green thing in the top centre? It’s a phone stand. No one seemed to know. I had to ask. If a conference full of devs don’t have a clue, I’d say someone at Merch HQ needs to go on a UX course.
And so that was that.
Now I just need a weekend to recover.