Talks

September 3, 2015

  September 3, 2015
  09:50  -  10:30
  MCLT3

Modern Frontend Engineering

The web has evolved tremendously in the last decade. In this talk we will dive into the latest tools and techniques that make for a modern foundation for frontend engineering. We will start with bootstrapping with Yeoman, move into managing dependencies with bower, and finally how to automate best practices with Grunt and Gulp. We will discuss the pros and cons of modern ui toolkits like Zurb, Bootstrap, and SemanticUI and modern javascript frameworks like React, Angular, and Ember. We will highlight the latest in css frameworks, javascript frameworks, and why you should choose the right toolset for a complex app or a single page app. When you leave this session you will be prepared to launch a modern web application in 2015.

Level: entry
Category: javascript

Click for more information on 'Modern Frontend Engineering'

  September 3, 2015
  09:50  -  10:30
  MCLT1

Going Viral for Fun, not Profit

Going viral hasn’t always been considered good. Whether you’re fighting the common cold, or trying to remove the ILOVEYOU computer worm from your corporate file server, two things are certain: your immune system is based on your gut health, and computers have really poor gut health.

Stopping viruses is hard. The main reason for this is that viruses are really clever. They’ve evolved over time to escape detection. Each previously detected virus allows the next iteration of the virus to become more resillient. The second reason is that your computer’s gut health has to fight every virus, whereas each virus just has to find one immunocompromised system to survive.

Let’s work out how viruses hide. How to they sneak past the checkpoints. How they attach themselves to your system. How they fight detection, and removal. We’ll look at aspects such as self-replication, cryptographic obfuscation, and touch on methods of delivery and…

Click for more information on 'Going Viral for Fun, not Profit'

  September 3, 2015
  11:00  -  11:40
  MCLT3

Data (De)Serialization 101

PHP has built-in support for serializing and deserializing data structures such as arrays or objects. However, serializing complex data structures to strings with PHP doesn’t really work well. Nowadays, modern web applications need to provide REST APIs to expose their data as XML or JSON. Thanks to the Symfony Serializer standalone component, serializing and deserializing complex graphs of objects to XML or JSON is much easier. This talk will demonstrate how to leverage the Symfony Serializer component to (de)serialize data. You will also learn how to extend the Serializer to customize how objects graphs are (de)serialized. Finally, we will look at the JMS Serializer standalone library that provides a much wider features set such as serialization metadata configuration thanks to annotations, YAML or XML formats.

Level: entry
Category: framework

Click for more information on 'Data (De)Serialization 101'

  September 3, 2015
  11:00  -  11:40
  MCLT1

eCommerce and Open Source: Pot, PHP, and Unlimited Potential

The first commercial transaction on the Internet occurred between students at MIT and Stanford… for a bit of marijuana! eCommerce has come a long way since then, facilitated in no small part by open source PHP projects. osCommerce, Magento, WooCommerce, Drupal Commerce, PHP SaaS carts power much of eCommerce today. This session provides a brief retrospective of a decade of PHP eCommerce projects, where we are now, and a look to the future of eCommerce with PHP.

Level: entry
Category: other

Click for more information on 'eCommerce and Open Source: Pot, PHP, and Unlimited Potential'

  September 3, 2015
  11:50  -  12:30
  MCLT3

Money is not a dirty word (or: how to give away all your code and still turn a profit)

Open sourcing your code doesn’t have to mean a life of poverty. In fact it makes sound commercial sense to give some or even all of your code away, and you can still grow revenue streams while doing so.

Hamish Friedlander is the CTO of SilverStripe, a company that for 9 years has given away their core product under the ultra-permissive BSD license. Instead of ruin, it’s had year on year growth and revenue that has had seen it once rank in New Zealand’s Fast 50 and grow into a multi-national with more than 50 employees.

Hamish shares the various methods of partially or fully open sourcing work while still developing revenue streams, including what’s worked well for SilverStripe, what hasn’t worked so well (including one spectacular failure for added drama), and future experiments.

Level: entry
Category: other

Click for more information on 'Money is not a dirty word (or: how to give away all your code and still turn a profit)'

  September 3, 2015
  11:50  -  12:30
  MCLT1

IoT Commerce

In this session we will look at the IoT world and how it can be integrated with PHP to create new and awesome ways for users to interface the digital world like never before and ways that developers can monitise new IoT Commerce opportunities.

We look at how you can take an Arduino Yun and a Thermal printer to create a new way for customers to order via a drupal ecom website and for a reciept to automatically print out in a resturant.

Level: entry
Category: IoT

Click for more information on 'IoT Commerce'

  September 3, 2015
  13:30  -  14:10
  MCLT3

Facebook Infrastructure

In this talk, you’ll learn some parts of the Facebook infrastructure that make possible for the site to run in such huge scale.

Level: Intermediate
Category: Other

Click for more information on 'Facebook Infrastructure'

  September 3, 2015
  13:30  -  14:10
  MCLT1

Optimising the full stack

Users love fast websites. Google loves fast websites. We love fast websites.

To make a website load lightning-quick a developer needs to optimise the full stack. Javascript, server hardware, network connections, Apache, PHP, MySQL, we can speed them all up, if we know what we are doing.

In this talk Julian will go into tools and techniques for optimising everything, resulting in some of the fastest websites you’ve ever seen.

Level: mid
Category: devops

Click for more information on 'Optimising the full stack'

  September 3, 2015
  14:20  -  15:00
  MCLT3

Co-operative Multitasking With Generators

Have you ever used the yield keyword? It’s the hidden-wardrobe-entrance into a magical world of generators. This magical world is inhabited by beings called iterators and coroutines. Roll some epic battle-music…

In this talk we’ll explore the origins of PHP generators, using them for iteration and ultimately how they can help turn synchronous code into asynchronous code.

Level: entry
Category: development

Click for more information on 'Co-operative Multitasking With Generators'

  September 3, 2015
  14:20  -  15:00
  MCLT1

Ansible, live on stage

As PHP developers, we often find ourselves managing our own web servers and performing the same commands over and over again for each new server and website that we wish to deploy. We’ve heard about the benefits of tools like Puppet and Chef, but the time and effort involved in learning, setting up, and using those tools is prohibitive and we usually decide that using SSH, relying on bash history and even some helper scripts is easier than learning something new.

However, there is an alternative: Ansible.

Ansible is a fantastic tool that removes a lot of the pain and tedium from setting up and managing servers of all shapes and sizes. It is incredibly easy to use, a fast to set up, and it will definitely save you a significant amount of time and energy, even if you only spend a few minutes learning the basics. It gives you the…

Click for more information on 'Ansible, live on stage'

  September 3, 2015
  15:30  -  16:10
  MCLT3

Filesystem Abstraction with Flysystem

In almost all of the applications we create in our day to day lives we work with filesystems. These days it’s not just our local filesystem anymore. It’s AWS S3, Dropbox, (S)FTP, or any other cloud filesystem provider. They all have their pros and cons. In this talk we’ll go into several aspects of choosing and working with filesystems and how Flysystem helps you out in this process.

Level: mid
Category: development

Click for more information on 'Filesystem Abstraction with Flysystem'

  September 3, 2015
  15:30  -  16:10
  MCLT1

API to API to API, but who owns the data?

Through my experiences at Common Ledger, we have been venturing into an interesting place.

We’re building a platform that’s a custodian for customers data, but that data is not theirs, nor is it ours, but if our customer modifies it, how do we ensure the correct authoritative measures are met when data under and not under their ownership melds together into something else.

Through this talk I will start with some interesting stories around scenarios where I have learned about working with data ownership (Paymark, and 3Taps)

I will explain what I believe is the correct approach to data aggregation, how to ensure the stability of storing data integrity around ownership, and how we (the wider community) can handle situations when data ownership is questioned such as where one party requests their data to be removed when it’s helped modify the overall data.

It’s a technical talk around methods and approaches to aggregating…

Click for more information on 'API to API to API, but who owns the data?'

  September 3, 2015
  16:20  -  17:00
  MCLT3

Making Desktop apps With JavaScript.

We can build cross platform desktop apps with web technologies. This sentence sounds like crazy talk – but it’s not. 100% serious.

GitHub’s Text Editor -Atom. Slack’s chat clients. Microsoft’s new cross platform IDE . These are all examples of native apps built with web technologies. They are all built on Electron.

Electron is an open source,
cross platform environment that allows you to make your own Desktop apps, with JavaScript.

In this talk, we will walk through how Electron works. Then how we can get started building native applications in web technologies.

Click for more information on 'Making Desktop apps With JavaScript.'

September 4, 2015

  September 4, 2015
  09:00  -  09:40
  MCLT3

Talmudic Maxims to Maximize Your Growth as a Developer

You’ve been programming for a while now. You’re beginning to feel that you’ve got a handle on things but at the same time can’t escape the feeling that you’ve somehow plateaued in your growth as a software developer. In this talk Yitzchok, a rabbinic scholar and software developer, shares the “wisdom of the sages” as practical, actionable advice strategies and tactics that you can use to reinvigorate your growth as a software developer.

Other Info:

Obviously, ‘Talmudic Maxims’ plays a role in the presentation only as a metaphor and will be limited and simple – no prior knowledge needed. 🙂

One example of a Talmudic maxim which offers practical advice for young software developers:
I learned much from my teachers, but I learned even more from my colleagues, and from my students I learned most of all. (Rabbi Chanina, Babylonian Talmud, Tractate Ta’anis 7A)

This maxim would be used to discuss sharing one’s knowledge…

Click for more information on 'Talmudic Maxims to Maximize Your Growth as a Developer'

  September 4, 2015
  09:50  -  10:30
  MCLT3

Scaleable nginx configuration.

How to write configuration which is easy to maintain for years.
Right and wrong ways to configure, common pitfalls.
Where regular expressions should be used in configuration.
Why copy-paste is good and DRY (Don’t Repeat Yourself) is a myth.

Click for more information on 'Scaleable nginx configuration.'

  September 4, 2015
  11:50  -  12:30
  MCLT3

What to Expect When You’re Expecting: PHP 7

PHP 7 is coming, and with it will come new features, backwards compatibility breaks, and huge performance gains.

This talk will get you prepared for all the changes in this upcoming release and offer practical advice you can implement now to ensure you code still works come upgrade time.

Level: mid
Category: development

Click for more information on 'What to Expect When You’re Expecting: PHP 7'

  September 4, 2015
  13:30  -  14:10
  MCLT3

Building Extraordinary Packages

Back in the day, we had PEAR packages. These were often very well written, but due to PEARs lack of popularity we ended up just using mega-frameworks and writing bundles, modules, cells and sparks for that framework. Since then Composer has been a bit of a savior, but the way in which we make these packages is still new and scary.

There are a lot of talks about building good code, and writing OOP well, but how do you make a Composer package that is as high in quality as you can? Things like SemVer, avoiding NIH syndrome verses knowing WHEN to fork or make a new package, responsible deprecation and loads more.

The League of Extraordinary Packages is a group of developers who have banded together to build solid, well tested PHP packages using modern coding standards. The name might be a little silly, but the group dedicates itself to…

Click for more information on 'Building Extraordinary Packages'

  September 4, 2015
  14:20  -  14:30
  MCLT3
  September 4, 2015
  14:35  -  15:15
  MCLT3

PHP, the good parts, in a JavaScript world

Exploring the evolution of the web since we learned to make personal home pages consisting of HTML, then CSS, then inline JavaScript, to a world where JavaScript seems to be the norm.

Yet intuitively, it seems that a well-optimized, traditional PHP driven website still accomplishes business goals just fine, and its performance and responsiveness can be just as as good as a “single page app”.

Where is the line drawn? What are the main differences between those models? Where are we headed?

These are some of the questions I’ll be attempting to answer in this talk, having started my career as a PHP developer transitioning to founding the first fully Node.JS powered company and creating the most popular realtime framework for it.

Click for more information on 'PHP, the good parts, in a JavaScript world'

  September 4, 2015
  15:45  -  16:25
  MCLT3

Beyond Design Patterns

Many people teach design patterns as a fundamental step to Object Oriented Programming. They are so universally seen as important that almost every single programming conference that I have been to has had at least one talk about them. They are quite often used as interview questions to test a candidate’s OOP knowledge. However, just like inheritance, they are not needed for OOP. And just like inheritance, they are a distraction rather than a foundation. Instead of focusing on patterns, I suggest focusing on learning about abstraction and communication. Why? Come and find out!

Level: mid

Click for more information on 'Beyond Design Patterns'

  September 4, 2015
  16:30  -  17:10
  MCLT3