Open source ecosystem

Best Practice Recommendations for Utilizing Open Source Software (from a Legal Perspective)

Dave McLoughlin

Branching strategies: Choose wisely to minimize costs

Georgiana Gligor

Is your team choosing the branching strategy from the beginning or is it switching after a while to better accommodate the current project stage? How does this affect you and what are the costs involved? Multiply this by the number of repositories, each playing a definite role in a large-scale project, and you will want to know how to minimize the impact.

The branching model needs to be simple - so that everyone involved can grasp it quickly; flexible - so it can serve the needs of very different roles within the project lifecycle; and adaptable - when you have a particular unforeseen need, it should not be a barrier.

See what others are already using, ask a few questions that might drive an adaptation of your choice, and then choose wisely. Then let your team spend their time on coding rather than painfully switching strategies.

Database optimization for web developers

Steve Meyers

Most developers are developers, not DBAs, yet many smaller companies have inadequate database experience in-house. This is largely because databases like MySQL and PostgreSQL don't necessarily require a full-time DBA to administer. It's become more important for developers at smaller companies to have some basic knowledge of how to keep their database happy.

Directory authentication with LDAP

Andreas Heigl

In an enterprise environment, information is often stored in a directory service - whether ActiveDirectory, OpenDirectory, or any other - but it can be difficult to access that information. We can use LDAP to integrate authentication and authorization from that directory service into our applications. This session will tell you everything you need to know. Learn the history of LDAP, why it's different from other storage systems, and see how it can be used to easily fetch information and handle authorization.

ELK: Ruminating on logs

Mathew Beane

We're talking about serious log crunching and intelligence gathering with Elastic, Logstash, and Kibana.

ELK is an end-to-end stack for gathering structured and unstructured data from servers. It delivers insights in real time using the Kibana dashboard giving unprecedented horizontal visibility. The visualization and search tools will make your day-to-day hunting a breeze.

During this brief walkthrough of the setup, configuration, and use of the toolset, we will show you how to find the trees from the forest in today's modern cloud environments and beyond.

From Docker to production

Chris Tankersley

Congrats! You and your coworkers love Docker. Docker has become an increasingly helpful tool when it comes to DevOps. We can now build smaller, more robust local development setups with the promise of mirroring production. One thing that still plagues many situations is how to get those containers into production and update them over time. We'll explore different tools for setting up, configuring, and maintaining containers as they go live.

How to use SELINUX (No, I don't mean turn it off)

Chuck Reeves

Why do we turn off NSA-grade security features? Well early on, SELINUX was complex and confusing. However, the pains of dealing with SELINUX are long gone. In fact, the tools for working with SELINUX have long improved are now so easy, anyone can configure the security layer. Even one bad chmod on a server can leave you vulnerable. However, when SELINUX is running, rogue processes will be prevented from running havoc. You'll learn how easy it is to use SELINUX and how (with little effort) you can configure and troubleshoot this amazing security feature. Stop leaving gaps in your infrastructure and turn it back on.

Install MariaDB on IBM i - Tips, troubleshooting, and more

Rod Flohr

MariaDB is the new open source drop-in replacement for MySQL that has been adopted by IBM for use on Power Linux and IBM i. ZendDBi is the installer provided by Zend for installation of MariaDB on the IBM i. In this session we'll show how to use ZendDBi to install MariaDB and provide some important tips for post-installation. We'll also demonstrate troubleshooting some common installation issues. While most installations of MariaDB are trouble free, the troubleshooting procedures will give us a chance to understand a bit more about the operation of MariaDB on the IBM i. It'll also give us the opportunity to explore some concepts on IBM i that may not be familiar to some RPG programmers.

Integration and Asynchronous Processing with ActiveMQ and Camel

Justin Reock

The modern enterprise landscape is a hybrid of heterogeneous technologies and disparate endpoints. In this session, we’ll discuss ways that you can leverage the flexibility and sophistication of ActiveMQ’s message processing and Camel’s normalized routing to federate your front-end applications with back end services. Beyond integration, we’ll discuss the user experience benefits that come with processing tasks asynchronously, rather than forcing a user to wait for a task to complete interactively. The ActiveMQ and Camel communities have made innovative leaps in the last few years, and we’ll look at what is available to you within these powerful, open source platforms.

Introduction to graph databases with Neo4j

Michael Moussa

Graph databases are all the rage these days, but the ideas they're built upon are hundreds of years old. After a brief look at the history of graph theory and its practical applications in Computer Science, we'll dive right into Neo4j - the world's most popular graph database. Learn the differences between a graph database like Neo4j and your traditional RDBMS. See how to model your application's domain using the new concepts available to you and how to query your graphs using Neo4j's intuitive query language, Cypher. After this talk, you'll agree that (Neo4j)-[:IS]->(Awesome) and be excited to use it in your next web application.

Jenkins for PHP projects

Stephan Hochdörfer

Jenkins is an incredibly flexible application. In this session, we'll show you how our Jenkins infrastructure is set up and how we use Jenkins on a daily basis. You'll learn about our favorite Jenkins plugins and how we use PHP tools like Composer, Phing, PHPUnit, and others in our Jenkins jobs. Last but not least, we'll give you some practical insights on how to use Jenkins and Satis to build your own internal Composer package repository.

Job queues with Gearman

Michael Moussa

When higher traffic coupled with costly operations begin to degrade your site's performance, an asynchronous job queue can be a valuable tool to help relieve the stress. With Gearman, PHP developers can easily farm out non-time-critical jobs like image processing, external API requests, and complex data processing operations to a pool of workers better suited to the task, leaving their web servers free to continue serving requests. Join this session for a walk-through of the basics of setting up a German job server, a look at the some pitfalls, and a few tricks of the trade.

Large-scale website performance optimization tricks. Airline case study

Georgiana Gligor

Practical lessons learned while revamping a U.S. airline website to resist huge Black Friday and Cyber Monday traffic values. Using HTTP status codes and PHP cleverly, we have made parallel requests possible, so that the user experience is greatly enhanced, and we pre-cache resource-consuming user searches. All on a solid PHP foundation.

Linux 101

Justin Reock

Learn how to use Linux, even if you’re a die-hard Windows user! There’s no question that Linux has taken over the enterprise, and paves the way for disruptive innovations in software. Join us for an informal session where we’ll introduce you to the benefits of developing on a Linux platform and show you some basic usage fundamentals, so that you can get started with Linux today.

MySQL as a document store

Dave Stokes

MySQL introduced a native JSON data type so that developers can now store a JSON document in a column in a MySQL database table. MySQL has also introduced the new X DevAPI that provides access to the database to use it as a data store for CRUD (create, replace, update, delete) operations without the need to know SQL (Structured Query Language). This session will cover what a developer needs to know to be able to use these new features, how to use generated columns to create materialized data that can be indexed so SQL searches can be made efficient, and best use cases for using MySQL as a NoSQL database without giving up the power of the relational database.

MySQL replication update

Dave Stokes

MySQL replication has made great strides in the last several years but several shops only run a simple master/salve topology. This session will cover the fundamentals of MySQL replication and then show how group replication (update one master, other masters actively updated), multi-source replication (multiple masters feed to one slave), replication between data centers, async versus semi-sync replication, and parallel replication. If you need to make sure you have multiple copies of your data in a safe environment, need to split reads from writes, or need to control shared data easily then you need to attend this session.

MySQL server performance tuning 101

Ligaya Turmelle

Optimizing the queries you send to the database can greatly increase the database's performance, but what do you know about all those strange MySQL variables that can be played with to get even more power from the database? Join me as we go over some of the basics of the various MySQL settings you can twitch, tweak, and massage to get the most out of your MySQL server.

Powerful & flexible SQL generation — without the hassle

Matthew Setter

PHP is almost synonymous with databases, and it has been since the early versions. But creating SQL queries can still be a challenging task. What's the right tool to use? ORMs often feel like overkill, and creating queries by hand can be unmaintainable. In this session, we'll show you how to use the ZendDb library to generate SQL queries — from simple selects to more complex unions, filtered deletions, and updates. You'll learn how to use the library for creating flexible, secure, maintainable, and reusable queries, quickly and efficiently, saving you time and effort in the long term.

Rethink image manipulations with Glide

Jonathan Reinink

Almost all apps require some form of image cropping or resizing. This is often done with background jobs, using tools like GD and ImageMagick. This talk will introduce you to a new way of doing image manipulations using a library called Glide. Glide, a recent addition to The PHP League, is a wonderfully easy to use on-demand image manipulation library with an HTTP-based API. I'll explain in a little more detail what it is, how it works, and how to set it up.

Taming the resource tiger

Elizabeth Smith

No matter how many virtual machines you throw at a problem, you always have the physical limitations of hardware. Memory, CPU, and even your NIC's throughput have finite limits. Are you trying to load that 5 GB CSV into memory to process it? No really, you shouldn't!

PHP has many built-in features to deal with data in more efficient ways than pumping everything into an array or object. Using PHP stream and stream filtering mechanisms, you can work with chunked data in an efficient matter, with sockets and processes you can farm out work efficiently and still keep track of what your application is doing. These features can help with memory, CPU, and other physical system limitations to help you scale without the giant AWS bill.

The Docker development template

Jan Burkl

Everybody is using Docker. Pull an image in minutes and start multiple containers in seconds. Great!

Unfortunately the public containers are normally not ready for an immediate use as a custom development system: Maybe the debugger is missing, the vhost is not configured correctly, or something app-specific has to be installed first.

In this session, I will show how to build your own custom system based on a Docker-compose template. This includes also the automatic setup of connections to other systems like DB servers or a load balancer to start a scalable cluster. And the best: The whole system configuration can be simply stored in a version control system, so that the Docker development template is available for all developers on the team.

Uncon: Building a solid cloud architecture for SMBs

Ahmed Dirie

When you're a business with an online presence, achieving a 99.999% uptime is critical. Yet with many SMBs, this is usually either a prayer or a reliance on the in-house IT person to figure things out. In some cases, you rely on a service provider such as a hosting company, or the managed team assigned to your cloud VM. All in all, it's never really an implementation decision.

In this talk, we will look at how SMBs can take advantage of the cloud, and use some of the open source tools available to build a solid cloud architecture.

Wrangling order from chaos: Practical approaches to OSS compliance

Dave McLoughlin

Many developers today use open source without fully understanding the legal and compliance risks. This session will help you unravel some of the mysteries of open source compliance:

  • Do I need to be concerned?
  • What happens if I don’t comply?
  • What is so special about the GPL license vs. something like the MIT license?

Dave will provide the information you need to understand the issues, practical steps you can take now to lower your risks, and help you reduce any confusion you may have about open source licenses and compliance.