John Kary


Functions in PHP: Part 1 - Writing Your Own Functions

February 2015, Kansas City PHP User Group


This talk is geared towards developers comfortable using PHP's native functions and are curious how to write better custom functions. John presents 4 guidelines that if followed will result in clear, focused functions that are easy to read, reason about and reuse.

Keeping Software Soft

January 2015, Lawrence Coders


Software provides continual value when it can evolve with the business. But without proper care it's easy for software to become rigid and difficult to change--it stops being soft. In this talk John introduces ways to think of software and systems we build as independent, replaceable components.

Scratch: An On-Ramp to Programming

August 2014, Lawrence Coders


Learning to program computers in the traditional sense has many pitfalls that are barriers for newcomers. The future job market for programmers is bright and kids should be taught to control technology rather than only consuming it.

John talks about Scratch, the visual programming language from MIT, and how he thinks it's the best "first" programming language for the next generation of developers. Scratch hits the sweet spot to overcoming introductory pitfalls and provides a safe environment for kids to learn, explore and share their digital creations.

Refactoring: Less Code, Less Problems (Part 1)

April 2014, Kansas City PHP User Group


John talks about guidelines and code smells for improving object API design. He takes an existing class and demonstrates refactoring it to a leaner more focused version of its previous self. Most importantly, what questions to ask yourself as you're writing new classes.

Pass 1 (and a future Part 2) will approach refactoring a class from the outside as opposed to the inside. We discuss topics like breaking apart bigger classes to make smaller classes that do one thing, programming without getters and setters, consistent entry and return points, and guidelines for object instantiation. This talk focuses less on in-function refactoring and more on API-level refactoring.

Last Month in PHP

Given almost every month at the Kansas City PHP User Group. I summarize important news stories and happenings in the PHP community from the previous month before the presentation was delivered. Gives special attention to issues relevant to most of our regular attendees.

April 2014
September 2013
August 2013
March 2013
February 2013
December 2012
November 2012
September 2012
July 2012
June 2012

Writing Extensible Code Using Event Dispatcher

October 2012, Kansas City PHP User Group

Demonstrate refactoring a typical Controller to using Symfony2 EventDispatcher component to make writing decoupled code easier.


Git In It: Beginning to Use Git

June 2012, Kansas City Drupal User Group

Covers common misconceptions about version control, how to setup your environment to work with git, how to get up and going with git in your daily development workflow, and where to go to learn more.


Vagrant + Drupal + Drush: Automating setup of a Drupal development environment

May 2012, Lawrence Coders

Repeatable development environment for teams looking to do collaborative Drupal development. Major props to Chris Escalante for his role in technically implementing this solution for our team.


Everyday Effectiveness With git

April 2012, Lawrence Coders
April 2012, Kansas City PHP User Group

Working effectively with git on a daily basis is a lot easier with a few tips on setting up your environment and making common commands faster to type. I also cover different code-sharing models and common workflows for working in a collaborative environment.


Scared Straight: Mitigating OWASP Top 10 with PHP

January 2011, University of Kansas Web Developers monthly meeting

Overview of the most common security threats facing modern web applications and how to mitigate them when using PHP.


YUI Graded Browser Support

November 2010, University of Kansas Web Developers monthly meeting

Current state of YUI Graded Browser Support. Please note, much of the information in this talk is outdated as of September 2011. Yahoo Graded Browser Support no longer grades browsers, and instead advocates for supporting a list of certain browsers, but ultimately pushes developers to do their own analytic testing and support browsers most-used by their user base.

Yahoo Graded Browser Support

Beyond Arial: Using @font-face to unleash web typography

September 2010, University of Kansas Web Developers monthly meeting

Current best practices advice on using @font-face, history of fonts on the web, browser support and font format support and challenges of @font-face.


Using Virtual Machines in Web Development

January 2010, University of Kansas Web Developers monthly meeting


Intro to Debugging PHP with Xdebug

January 2010, Lawrence Programmers Hack Day