{"id":1101,"date":"2012-03-04T23:52:24","date_gmt":"2012-03-04T23:52:24","guid":{"rendered":"http:\/\/davstott.me.uk\/?p=1101"},"modified":"2012-04-29T19:27:33","modified_gmt":"2012-04-29T19:27:33","slug":"php-uk-2012","status":"publish","type":"post","link":"https:\/\/davstott.me.uk\/index.php\/2012\/03\/04\/php-uk-2012\/","title":{"rendered":"PHP UK 2012"},"content":{"rendered":"<p>Hello internet, remember me from 7 months ago? What&#8217;s that, you ask? Yes, I&#8217;m still alive but it&#8217;s taken me until now to recover from a veritable barrage of poor excuses as to why I should stop spending time writing Stuff. There&#8217;s another 2 or 3 interesting recipes on their way soon, but what better way to resume from hiatus but with a rambling piece of vanity editorial opinion.<\/p>\n<p>Last autumn was taken over by the idea that I had time to do two evening classes in a single term. It turns out that I could, but that it didn&#8217;t leave much time to write home about it afterwards. The dinner party cooking class was as good as ever, but the real wake up call was doing <a href=\"https:\/\/www.ai-class.com\/\">Stanford University&#8217;s Introduction to Artificial Intelligence class<\/a>. I&#8217;ve never had much of a computer science background and yet I&#8217;ve made a career out of bending computers to my will, so this was wonderful opportunity to find out if I could still learn university level stuff after 12 years. The answer was yes I could, but it helped that I was properly interested in learning it and it was taught by two experts both in their subject matter and in teaching it to people. Whilst I am proud of getting an &#8220;84%&#8221; for my efforts, there were enough other people in the class of dozens of thousands who were distraught at the idea of not getting 100%, so that was a different idea of &#8216;normal&#8217; I hadn&#8217;t met before.  I could write pages and pages about my experiences, and perhaps I will, but this isn&#8217;t yet the time. <\/p>\n<p>What has really rekindled my energy and focus was a game changing conference I attended in London last weekend, <a href=\"http:\/\/phpconference.co.uk\/\">PHP UK 2012<\/a>.  I&#8217;ve been to a few techy conferences before, organised by The IET,  vendors, or by the community of customers they serve. <a href=\"http:\/\/scotch-on-the-rocks.co.uk\/\">Scotch on the Rocks<\/a> has been, and will probably continue to be my primary conference simply because it&#8217;s based on the language I&#8217;m most practiced in, but CFML will never have the same sized audience as PHP.<\/p>\n<p>The <a href=\"http:\/\/www.phplondon.org\/\">London PHP user group<\/a> has retained enough critical mass to host an increasingly awesome conference for 7 years now, attracting some top tier speakers and a good sized audience, but not so big that you can&#8217;t move or get close to the speakers or exhibitors. Who do I call a top tier speaker?  You&#8217;ve probably come across names like eBay, the BBC, WordPress.com, Etsy.com and Rasmus Lerdorf, but there were some excellent talks from engineers closer to those I would consider my peers. I took home nearly as many points on presentation skills as I did technical ideas. I was able to speak with a few of speakers and many had spent weeks of their spare time preparing, practicing and refining their 40 minute presentations for this event, which is an inspiring amount of effort.<\/p>\n<p>I realise that we were in the capital city, but I was surprised by how many people wrote on their delegate badges, or on their presentation slides &#8220;we&#8217;re hiring&#8221;. Some people even trolled the twitterfall (more on that in another post) to say things like &#8216;I&#8217;m hiring, DM me&#8217;. Thinking about it, it&#8217;s a great way to meet like minded people who might want to help you do whatever it is you&#8217;re trying to do, but I hadn&#8217;t encountered it before.<\/p>\n<p>One of the more interesting debates was on release controls. How often should one release code and how easy should it be to release code? I&#8217;ve always been lucky enough to think that you should trust your developers, that you should have a team who&#8217;s not afraid to learn, and that you learn most quickly when you&#8217;re fixing a bug that you&#8217;ve just deployed to your application \ud83d\ude42<\/p>\n<p>Did you take more than 10 seconds to revert the change once you realised something was wrong? Did anybody die? Did your company lose a significant amount of trust, goodwill or money? If the answer to all of the above was &#8216;no&#8217;, then no harm was done and aforementioned developer has just learned some very valuable lessons and won&#8217;t be doing that again in a hurry. Clearly this approach only applies to a certain category of applications and user bases, you wouldn&#8217;t want to bork something like Amazon&#8217;s checkout system, or Google&#8217;s landing page for even a couple of seconds, but I believe that the person who best understands the implications of releasing some code is the person who&#8217;s just written it.<\/p>\n<p>This approach works in practice if you force yourself to make lots of small releases, rather than fewer enormous ones, so it only really works for web-based projects.  To quote Mike Williams (one of <a href=\"http:\/\/en.wikipedia.org\/wiki\/Erlang_%28programming_language%29\">Erlang&#8217;s<\/a> inventors): &#8220;Make mistakes on a small scale, not in a production project.&#8221;<\/p>\n<p>I think the audience was split 50\/50 between those that thought this approach was normal and why would you take the time to do it another way, and those that couldn&#8217;t believe somebody could even contemplate such a thing and how could they get away with such a cowboy attitude, but it can&#8217;t be all that terrible with services like Flickr and WordPress doing it. Some people call this continuous deployment, for me this falls into the mantra of &#8216;minimum necessary to get the job done well&#8217;. <\/p>\n<p>From a personal point of view, the biggest &#8216;whoa&#8217; moment came out of a panel discussion on scalability. Like most of the panel members, I think scalability is a function of systems architecture and how inspired your engineers are, not the programming language you use (assuming one&#8217;s code isn&#8217;t crap of course), so the conversation was widely applicable. It was a very good discussion and well worth the time to re-watch. <\/p>\n<p>I&#8217;ll have to wait for the videos to be edited and published to check the exact words, but one question was about fixing technical problems when a bug only manifests for 1\/4% of your 10^7 hits. <a href=\"http:\/\/hughewilliams.com\/2012\/02\/26\/php-at-scale-panel-at-the-php-uk-conference-2012\/\">Hugh E Williams<\/a> from eBay said that if you hired engineers who were good at learning then they&#8217;d figure out almost anything, but it helped to be able to wheel out &#8216;that one guy&#8217; who had that rare blend of curiosity, enthusiasm and doggedness who&#8217;s highly skilled in system operations and software engineering who could meditate on the problem (<a href=\"http:\/\/en.wikipedia.org\/wiki\/Guru_Meditation\">Amiga style<\/a>) for a week and then fix it.  Rasmus weighed in with a comment along the lines of &#8216;hire him. just hire him&#8217;.<\/p>\n<p>A few people in the audience weren&#8217;t certain what they meant, isn&#8217;t this a really big single point of failure and anyway the split between <a href=\"http:\/\/msdn.microsoft.com\/\">programming<\/a> and <a href=\"http:\/\/technet.microsoft.com\/\">sysops<\/a> exists for a reason. I think halfway through the explanation, Rasmus said something like &#8216;yep, we get it&#8217;. I don&#8217;t know whether it&#8217;s the weight of culture or if <a href=\"http:\/\/en.wikipedia.org\/wiki\/DevOps\">devops<\/a> has taken sufficient root in The Valley for this to be normal, but whatever the understanding, it was like they&#8217;d just described me and what I do in just a few words. Whoa. <\/p>\n<p>So there we have it, <a href=\"http:\/\/sqlbits.com\/\">community<\/a> <a href=\"http:\/\/whiskyweb.co.uk\/\">conferences<\/a> make you feel more connected with other people doing what you do. <a href=\"http:\/\/conferences.theiet.org\/yp-summit\/index.cfm\">Who knew<\/a>? <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hello internet, remember me from 7 months ago? What&#8217;s that, you ask? Yes, I&#8217;m still alive but it&#8217;s taken me until now to recover from a veritable barrage of poor excuses as to why I should stop spending time writing Stuff. There&#8217;s another 2 or 3 interesting recipes on their way soon, but what better [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1101","post","type-post","status-publish","format-standard","hentry","category-general"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/davstott.me.uk\/index.php\/wp-json\/wp\/v2\/posts\/1101","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/davstott.me.uk\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/davstott.me.uk\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/davstott.me.uk\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/davstott.me.uk\/index.php\/wp-json\/wp\/v2\/comments?post=1101"}],"version-history":[{"count":13,"href":"https:\/\/davstott.me.uk\/index.php\/wp-json\/wp\/v2\/posts\/1101\/revisions"}],"predecessor-version":[{"id":1182,"href":"https:\/\/davstott.me.uk\/index.php\/wp-json\/wp\/v2\/posts\/1101\/revisions\/1182"}],"wp:attachment":[{"href":"https:\/\/davstott.me.uk\/index.php\/wp-json\/wp\/v2\/media?parent=1101"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/davstott.me.uk\/index.php\/wp-json\/wp\/v2\/categories?post=1101"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/davstott.me.uk\/index.php\/wp-json\/wp\/v2\/tags?post=1101"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}