I went to PNWPHP again this year and again I was struck by how open and welcoming everyone was. I ended up leaving with a sense of inspiration and community. I truly feel like I’ve met some lifelong friends. Feelings isn’t the only thing I got, there were incredible talks about all kinds of interesting things. Some I knew a little bit about, others completely new to me.
I got a chance to talk with each of the speakers and ask questions about their talks. That kind of one on one interaction with people who are really passionate experts is truly invaluable.
Taylor Otwell (@taylorotwell) “Laravel: Design and Philosophy”
Taylor is the creator of Laravel and an idol to many in the PHP community. Laravel is always a hot topic at conferences and meetups around the world, so this talk was one that everyone was looking forward to. He talked about his experiences and philosophy when it comes to writing software.
I entered the auditorium expecting to hear a lecture on coding standards and principles from one of the most influential PHP developers today, but he enlightened us with a much more pragmatic and emotional approach to development. After explaining his background and highlighting that he didn't go to college for programming, he showed us how he always starts with his "Dream Syntax" or the syntax that his code would have in a perfect world, and works his way back from there.
Picture taken by @Adam___Klein
He highlighted the fact that developers can always just delete code and start over, and offered that writing code that suits that style of development will help you keep your code simple and help you stay true to your dream syntax. He also spoke about so called "superpower syntax" which he says has a focus on giving the developers using the code super powers.
Picture taken by @Adam___Klein
One thing that stood out to me is that he will open up a php file and try to reflect on the way the code makes him feel as a person. This allows him to keep clean code and gives him a bit of perspective into the mind of developers using his software.
Davey Shafik (@dshafik) “HTTP/2 And Async APIs”
Picture taken by @zaskoda
Davey spoke about the exciting new features that come with HTTP2. Things like single connection, server push combined with caching show huge improvements over http. You can pretty much just switch it on in Apache or Nginx without any changes to code. Paraphrasing, server push allows us to fulfill page dependencies before the user even requires them.
For example in concrete5 if the admin user logs in, you could use a server push to provide the assets for the dashboard so that there doesn't need to be additional requests in order to load assets. Using server push and "Multi-plexing", Davey showed extreme improvements for pages requiring multiple assets. Especially when it comes to mobile users who will have great amounts of latency, HTTP2 makes huge strides. Check out examples at http://http2.golang.org/gophertiles
This is something that I’m excited about because concrete5’s powerful asset system fits right in with the HTTP/2 server push model. Though browser support these days is relatively low, I’m eager to test out what kind of general improvements we can gain across concrete5 websites.
Edward Finkler (@funkatron) “Graph Databases Will Change Your Freaking Life”
Edward is a passionate PHP developer who has blurred the language lines with the OSMI project which spreads awareness for mental health in the tech community. He's also CEO of Graph Story, a company that provides graph databases as a service. Ed is another one of those guys you’re bound to run into in php circles, and he’s definitely worth meeting.
He made understanding what and when to use a graph database easy. He started explaining that a graph (that you’d draw) is just made up of dots and lines. If you’re familiar with relational databases, think of the dots as rows and the lines as relations. With this structure, extremely complex queries that make use of many sparsely interconnected nodes were simple to write and took milliseconds to resolve.
Picture taken by @dshafik
Questions like "Who are all of the bakers that live within 30 miles of veterinarians that have spent more than $100 on products that contain plastic." in relational databases - assuming you have all of those tables and relations - would take many many joins and probably quite some time to resolve unless you took great care in designing your schema to answer it. Even if you did design your schema to answer that question, what happens when the client all of a sudden wants only the bakers that drive Ford cars?
With a graph database, nodes and relations are first class citizens. A query that answers that question can be a single line of readable query language and it will respond with results within a few tenths of a millisecond.
Robert Mcfrasier (@rmcfrasier) “Why Your Mobile Website Matters”
Robert Mcfrasier is a Solutions Engineer working at Google with a lot of knowledge about mobile website. If you ever get the chance, find a way to hear this guy speak! He is so knowledgeable and well spoken that it’s very difficult to NOT listen to the guy.
For his talk, Robert went into statistics and observations on the market trends for mobile websites and showed statistics showing that the market of people who look up products using their cellphone has surpassed the people who use computers.
Robert instructed us to identify our own "Mobile moment" - or the moment that mobile users ended up being the majority of our traffic - and to use that information to make decisions for our mobile websites. He followed that saying "Responsive is not enough". He explained that mobile users do not have the time or focus to dig through the same content a desktop site might need.
Along the same line, he included that "Mobile First" is not enough and simply leads to a crippled ineffective desktop site. Instead he says that we should consider our user's mobile context and understand that the information that they need like the phone number or the business hours are what the user cares about and is the essentially the only thing that will leave the user satisfied with your website. In order to make a good mobile website we must remove features that seem helpful in the context of a person sitting at a computer, and focus on serving an experience to someone who perhaps doesn’t have the time or the focus to sort through all of our features.
Robert put into perspective the fact that mobile users typically don't get much time to research your product. Users on average have 45 seconds to research your product before they will give up on a mobile device. When this happens, Roberts statistics show that that experience has a negative impact not just for the product or information they were seeking but for brand as a whole. Pretty interesting stuff.
These are just a few of the awesome things I learned this year at PNWPHP. Shout outs to Tessa Mero, Jeremy Lindblom, and Andrew Woods for throwing an amazing PHP conference. It’s really awesome to get out from behind the screen and meet some of the people who are driving the web forward and you can expect to see me again next year!