ThunderPlains 2017

ThunderPlains is coming up fast – just two days away! This is the fifth year of co-organizing the conference, and we always have a great time with the local community.

Grab some tickets to ThunderPlains 2017 if you have not done so already – it will be a lot of fun to meet everyone else in tech working along side you in your own community. There is a lot more tech activity than you think – right under your nose here in Oklahoma!

Effective Browser JavaScript Debugging

How to effectively debug your web application is increasingly becoming a critical skill for any web developer, especially with the rise of ever-more complicated JavaScript applications with code transpiling and obfuscation. I wanted to teach the other developers at my company how to do this to be more effective at work, and developed it into a full talk that I have given at many conferences all across the world. My local user group OKC.js was the first time this talk was recorded and made available online. Please check it out:

Speaking at Confoo Vancouver 2016

I was happy to be invited to speak at Confoo Vancouver 2016. I have spoken at Confoo Montreal in the past (2011, 2012), and it is always a very informative and well run conference.

You Don’t Know Node.js

Node.js can be a powerful platform used in the right situations, but it also has more footguns than PHP does for new developers. Asynchronous programming style, concurrency issues, error handling, the event loop, and no default timeouts for HTTP requests or network calls will give new developers more than their fair share of troubles. This talk gives a thorough introduction to node.js and the event loop model, and covers common pitfalls to avoid.


Effective Browser JavaScript Debugging

Did you know that your web browser has a full suite of built-in JavaScript debugging tools? With the developer tools in Chrome, Firefox, and Safari, you can debug JavaScript on the fly with breakpoints, watch expressions, an interactive REPL with autocomplete, and much more. Learn how to troubleshoot bugs and memory leaks like a pro, armed with the same web browser you already use everyday – no extra plugins or downloads required.


SkiPHP Conference 2014

It’s always fun to be a part of a conference’s first year. This year, I was lucky enough to speak at the inaugural SkiPHP Conference in Salt Lake City, UT. Since the conference was very micro-framework friendly, I was able to present my own Bullet PHP Micro-Framework. The talk went well, was very well recieved, and got very highly rated on The talk (and Bullet itself) presents some interesting ideas that I was very happy to be able to share in a conference talk format.

Overall, the conference was great. It was very well put together, and very well run. The orgainzers sent lots of emails ahead of time letting us know what was going on, and took care of speakers very well – even having breakfast ready for us each morning in the speaker lounge (something that was very much appreciated by myself and many other speakers as well). I thought the talk selection was good as well – there were more sessions at this conference that I was personally interested in atending than I have in while at many other conferences over the years.

Huge thanks and kudos go to the SkiPHP organizers – I hope this is a sign of good things from the Salt Lake City PHP community, and I hope there are many more sucessful years of this conference ahead.

Bullet: The Functional PHP Micro-Framework

My presentation slides are avaialble on Slideshare, though I am not sure how enlightening they will be without the audio. For this particular talk of mine, the audio context is pretty important. Luckily, my entire talk was recorded on video, so I will post that here when available.

Post-Conference Activities

Half the fun of a conference is all the activities surrounding it, and all the people you meet and talk to who are also there. At SkiPHP, the main event was obvious – skiing! A small group of us stayed an extra day or two after the conference to hit the slopes at Snowbird.


Pictured (Front): Adam Culp, Ben Edmonds, Chris Boden, Josh Adell (Back) Paul Jones, Vance Lucas, John Coggeshall

Paul Jones and I started with the beginner course and stayed on the “Chickadee” hill since it was our first time snow skiing, but the other guys hit the real slopes, and have much better, more majestic mountanside pictures and views to share. I did manage to take a good selfie on the ski lift though!


Selfie on the ski lift at Snowbird in Salt Lake City, UT

Wrapping Up

All in all, my time at SkiPHP was a blast. The Salt Lake City PHP community really came together to put on a great conference and show their support for events like this in their backyard. I am already looking forward to submitting again next year! Maybe I can try some green slopes this time :).

Confoo 2012 Montreal

My second year speaking at Confoo was more fun than my first. This year I met a lot of new people and had a lot of interesting discussions, particularly in the CMS room and at lunch after my Stackbox CMS presentation. The whole philosophy and approach of Stackbox seemed to have stuck a chord with other people passionate about CMSes and a lot of discussion emerged about different CMS concepts and how to integrate them into the various CMSes around. The whole edit-on-page approach of Stackbox isn’t new, but it’s striking how much simpler it is for the end user than most existing CMSes that are used today – Drupal, Joomla, and WordPress included. I think  all CMSes should strive to enable on-page and in-place editing wherever possible – it really makes a huge difference in usability.

The second talk I gave at Confoo was  Hierarchical MVC (HMVC) – What, Why, and How – an architectural talk I have been wanting to give at several conferences for a little while now (but had until now not been accepted). The talk was very well received, and hopefully helped at least a few people though some of the tougher architectural decisions they might be facing in their own projects. The gist of the talk is that HMVC can help break up code into "widget" type blocks, and can go further down the path of fully separating concerns than more strict traditional MVC can. HMVC is all about code re-use across multiple places, like a comment module that is dispatched to anywhere you display comments across multiple types of content (blog posts, articles, pages, events, etc.). Traditional MVC forces you to use view partials, different layouts, duplicate code, or some other separate widget system to achieve the same level of flexibility you get from HMVC.

One of the best things I like about Confoo is the sheer diversity of the schedule. There were 10 tracks this year, with talks spanning across all types of technologies, markets, and languages, like PHP, Ruby, Python, .NET, Java, and JavaScript to Scaling, Startups, CMSes and Agile. Confoo is the most technologically diverse conference I have had the privilege of speaking at, and I benefit from that diversity every year by expanding my horizons a little bit. While I was there, I attended a talk on a Ruby framework called Renee by Joshua Hull. Even though most of my background is in PHP and I was presenting with PHP examples and projects for my talks, I use Ruby on Rails quite a bit for client work at my company  Brightbit and was working on a Rails API at the time, so I thought I’d check it out. I had been thinking about better REST frameworks beyond MVC for a little while, and the talk inspired me to try the same nested callback style with closures in PHP, and I started hacking together the very first (crude) implementation of Bullet on the plane ride back home the next day, just to see if it was possible. I had the basic concept working well in under an hour thanks to PHP 5.3’s awesome closures. That’s why I like and value the diversity at Confoo so much. You get to see things that are going on in other languages and expand your horizon a bit, then you can bring those benefits back to another language you work in, and benefit even more people. I’ve fleshed out Bullet a little more now and made it a proper project, but the details of that are for another blog post. For now, I leave you with the slide decks I presented at Confoo.

Slide Decks

Stackbox CMS Slides

Hierarchical MVC (HMVC) Slides

php|tek 2011

php|tek 2011 Speaker Chicago – May 24-27 php|tek in Chicago was fun as always. It is the best PHP conference I have ever been to, which makes sense, given that it is focused solely on PHP and surrounding technologies. The best thing about the conference is the community feeling in general. You get a real sense that everyone there really cares about PHP and is heavily invested in it, which is good for moving the whole language and ecosystem forward.

I myself gave two talks – one about Stackbox CMS, a new CMS project I have been working on, and one about Apppcelerator Titanium Mobile since I have been working with it a lot lately. The presentations are embedded below.

Continue reading

CodeWorks 2009 Dallas

CodeWorks 2009 Speaker I was fortunate enough to be selected as the regional speaker for the Dallas CodeWorks 2009 stop by the Dallas PHP User Group through a community voting and selection process. My talk was entitled Object Oriented Apologetics , and was essentially about letting people know what good object-oriented code is, when to use it, how to use it, and more specifically why to use it over traditional procedural PHP code. more

Object Oriented Apologetics

In defense of object-oriented programming – How and why you should use object oriented programming for your next project.This talk is for PHP programmers who are just learning about object oriented code, who cling to old excuses("object oriented code is slower"), or who are otherwise unconvinced of its usefulness. Concrete real-world examples of commonscenarios and challenges that programmers face will be presented, and how taking an object oriented approach is better than a proceduralone in most cases. Copious code examples in both object oriented and procedural approaches will be provided throughout, and thedifferences and benefits of the object oriented approach will be explained.

Download Object Oriented Apologetics on SlideShare

If you were in the talk, please rate it on

The CodeWorks Experience

All in all, the CodeWorks roadshow Dallas stop was much smaller than I expected. There were about 20 people in the talk I gave. I suppose it was both a good a bad thing. On one hand, I had a lot of fun connecting with the other speakers and attendees on a more personal level than I would have had the opportunity to do otherwise. I met a lot of new people in the PHP community that I will probably stay connected with on some level, even if it is just Twitter and IRC. We had a lot of fun the night before the presentation day eating together and hanging out.

On the other hand, I know that as a business, the relatively low attendance levels coupled with the high travel expenses could mean that something like this can’t happen again, which is a shame. This was one of the best efforts I have seen in a while to really lower the price of the conference for attendees by bringing the speakers directly to their cities or at least ones that are close by. Going to ZendCon, for instance, could easily cost up to $2,500 for the whole trip with airfare, hotel stays, and food, if not more.

The bottom line here is that CodeWorks was a good conference that offered a great value for your money. I had a great time meeting and connecting with new people and finally meeting people in real life that I had been communicating with for years. I learned some new things and finally got the kick in the pants I needed to jump into Test Driven Development, thanks to Jason Sweat’s TDD tutorial and hand-holding.

Now I’m just looking forward to php|tek in May 2010.

Presentation Slides From Tulsa TechFest 2008

Well Tulsa TechFest is over, and it was a pretty good conference overall. Here are the slides of my presentations at the conference for those who are interested. I have voice recordings of both my presentations too, but unfortunately the digital recorder I bought has no way of directly accessing the files stored in memory to move or copy them to a computer. It just has a line in/out like the old cassette recorders. What’s the point in making a digital recorder if there’s no USB cable or anything to get directly to the files? Huh Sony? Anyways – I didn’t have the cable required to re-record the audio on my computer, so I’ll probably pick one up and make videos of these presentations a little while later. But for now, you can at least enjoy the slides. Continue reading

Speaking at TulsaTechFest 2008

ttf2008-logoAfter anxiously awaiting a response from David Walker, the TulsaTechFest conference Director about an open speaking spot, I just about fell out of my chair today when I finally got the email with a confirmation that I was going to be presenting.  I am very excited about this amazing opportunity, and have already begun putting my speech together.  Here the topic info:

Procedural to Object-Oriented: The Benefits of Using Object-Oriented PHP

Learn the power of object-oriented programming in PHP5 and the many benefits it offers over the more traditional PHP procedural programming style.  This session will include a light introduction to object-oriented concepts and will provide real-world concrete examples of the benefits it can offer you and the PHP projects you work on.

I will be speaking on October 9th at 2:30pm, and the presentation will last for roughly 75 minutes (60 minutes to speak, and 15 minutes for Q&A).  That’s a good chunk of time to fill, but there’s a lot on this topic that will need to be covered.  If you’re thinking about getting into object-oriented PHP programing or would like to learn more about it, please attend.  I will try my best to make sure there is at least something that everyone can learn.

You can also view my page on the conference website to read a short biography and get more information on the event.  Hope to see at least a few friendly faces there!

P.S. – I plan on posting my presentation slides on this website after the event just in case anyone missed anything important or was unable to attend.

UPDATE: The conference is over, and I have posted the powerpoint slides in another post for those that are interested in the presentations I made.