The New Zealand PHP Conference 2015 that ran over 3 days (2 - 4 September) in the capital city Wellington was well attended by hundreds of people, with insightful and inspiring talks from local and international speakers. Today we share highlights that are gained from some of these talks and shared by seven SilverStripe attendees.
Cam Findlay (Community Manager) on Jason Kiss and Michael Curran’s talk
Accessibility is important. From its inception, accessibility was a founding principle of the web - allowing all to participate equally in access to information, innovation and perhaps more importantly, to participate in democratic processes through online communication. Jason Kiss and Michael Curran presented a great talk entitled "Web Accessibility: Browsers, APIs, Assistive Technology, and the point of it all”.
It was a good mix of theory and practical advice. We’ve worked with Jason before on SilverStripe open source with accessibility improvements and the Blog module commenting. And it was great to get a concise introduction to this topic from these esteemed speakers.
Here are my top five takeaways:
1. Accessibility is not always about catering for the far end of impairments. It should ensure you are thinking about hard hearing, low vision and colour blindness, not just complete deafness and blindness.
2. We should start thinking about accessibility now! We’ll likely all need it at some point in our lives. By 2030, 25% of NZ’s population will be over 65, and ~59% of this age group has some sort of accessibility need to be able to use the web effectively. It’s in our interest to address this.
3. The stick: The New Zealand Human Rights Act 1993 and the UN have provisions for non-discrimination and accessibility policies. The carrot: If you aren’t catering to this audience you’re possibly leaving 10% of your market off the table. You can’t tell who is coming to your website requiring accessibility forethought, so potentially taking this into consideration may have bottom line impact.
4. As developers we can use tools to test our sites for good accessibility practices. NVDA (NonVisual Desktop Access) is free and open source, so no excuses! (And we like open source here at SilverStripe).
5. Add ARIA tags to your semantic markup, especially around menus and points of interaction on your website. Make sure the relationship between elements on your site are semantically well formed. Example: ensure headings are indeed at the bounds of your content blocks and related content is structured underneath these. Otherwise you can cause confusion for people using screen readers.
Once the videos from the conference become available, they are well worth a watch!
Ingo Schommer (Solutions Architect) on Phil Sturgeon’s talk
Phil Sturgeon is a fellow member of the PHP Framework Interoperability Group (FIG), the creator of many fine PHP packages, and a contributor to the awesome PHP The Right Way learning portal. He talked about how your PHP packages could stand the test of time and become extraordinary.
My personal highlights are:
1. Don't reinvent the wheel, but also don't be afraid to push the status quo with unique solutions.
2. Design your PHP API with a clear focus and the right abstraction level, suiting your target developer group.
3. Tests and continuous integration is important. It's easy to run more checks with third party tools for coding standards compliance and code coverage.
4. Good documentation is the best way to attract developers. Don't forget about an "elevator pitch" and expressive code examples.
5. Maintain your package well. Actively check how your API is used - GitHub code search can help with this.
Slides on SpeakerDeck.
Andrew Aitken-Fincham (Junior Support Developer) on Stephen Rees-Carter’s talk
Stephen Rees-Carter is a Senior Developer at Tectonic, resulting in a lot of time spent working with Laravel 5 and PHP. He has authored a few Digital Ocean tutorials about Ansible, and backed his skills enough to do a live demo to prove its power.
The key learnings I got from this brave venture are:
1. The key to Ansible’s success is Idempotence - the ability to run the same operation multiple times, without making changes it doesn’t need to.
2. A huge benefit of Ansible running via SSH is that it means you don’t have to install a whole pile of things to make your scripts work - you just need a connection.
3. Utilise a playbook of yaml files to compartmentalise your scripts.
4. If you install nginx in a live demo, you get an enthusiastic round of applause.
5. Ansible is simple, effective, has low overhead and makes sensible decisions on your behalf.
A link to the content of his talk is here.
Julian Seidenberg (Solutions Architect) on Hugo Hamon’s talk
Hugo talked about three different libraries to handle Data Serialisation. Serialising data is a very useful thing to do. With serialisation tools you can take a PHP object, convert it to a textual format, transfer it to a different PHP or front-end application, and then deserialise the data back into an object. This is a powerful tool in a programmer's tool belt.
Three tools that help you with serialising (depending on how complex your needs) are:
1. PHP's built-in serialiser is useful for quick and simple serialisation involving a single object.
2. Symphony Serializer is an advanced tool that gives more control of the structure of the serialised data and adds the ability to serialise entire trees of objects.
Oly Su (UX Developer) on Dustin Whittle’s talk
Dustin Whittle is a Developer Evangelist at AppDynamics where he focuses in helping organisations managing application performance. He has an illustrious experience working as CTO at Kwarter, a consultant at SensioLabs, and developer evangelist at Yahoo.
He comes from a backend developer background, but has a recent interest in frontend development and has delivered a very resourceful talk mapping out the necessities of an efficient modern workflow.
Frontend changes fast, but here are some great pointers to get started:
1. Modern frontend engineering is hard - it is more difficult than backend code. A frontend engineer faces challenges such as cross browser, different viewport, and myriad frontend dependencies and processes
2. Handy dependency management with NPM or Bower. This helps to identify how your client-side and dev depend on each other.
3. Automate your workflow: use tools such as Grunt or Gulp to incorporate best practices and take care of all the tedious tasks for you - you can watch and compile CSS, linting, testing, minifying, image optimising... automate all the things!
4. Scaffold your work: Yeoman's web generator is a great tool to package and make your web app's scaffold readily available
5. Use JS Framework UI kits: use AngularUI for AngularJS, Reapp for ReactJS, and EmberUI for Ember. Save time on development and QA.
You can view the slide here.
Ed Linklater (Developer) on Igor Sysoev’s talk
Nginx is a high performance event-based web server developed by Igor Sysoev for Rambler (a Russian search engine) who were having difficulty scaling Apache to their needs.
He gave a number of tips for writing your nginx configuration in a scalable manner:
1. Only use prefix locations unless regular expressions are absolutely required.
2. Where regex are required, isolate them by URL not by config. Two URLs may have the same config now, but it’ll make your life easier for when their configuration diverges later.
3. Don’t use rewrites. They make your configuration look like spaghetti.
4. Only use “if” to return an HTTP code - not for anything more complicated.
Garion Herman (Support Developer) on Davey Shafik’s talk
Davey Shafik is a Developer Advocate for Akamai. He has written multiple books on PHP and is the creator of PHP Archive (PHAR) for PHP 5.3. His talk covered the features and functionality coming in PHP 7, a point of particular interest for me. Highlights included:
1. Removal of deprecated features such as ereg and the mysql_ library.
2. Immense performance improvements.
3. Improved error handling, including exceptions for catchable fatal errors.
For more information, take a look at the slides.
As a final note, given that you are reading this on the SilverStripe blog, it makes sense to mention where PHP 7 compatibility is at for the framework. The good news is that work is well underway to achieve this as part of the implementation of namespacing in SilverStripe 4, which is due for release in 2016.