Here are the updated slides from my presentation at Northeast PHP.
Here are the updated slides from my presentation at Northeast PHP.
So, php|tek has come and gone and everyone is hopefully starting to catch up on their sleep. This was my second visit to tek and while it was delightfully familiar, the conference had an entirely different energy compared to last year. From what I hear, this was the largest tek yet, and maybe it was the increased attendance that is responsible for the very different feel. During lunch breaks, the large central atrium at the venue was totally abuzz and each table was packed and lively with conversation. The atrium was pretty well packed, in fact, well in to the night with attendees talking and playing games. Not only was the conference well attended, but I understand that roughly half of the attendees were coming to tek for the very first time. In keeping with the conference’s Star Trek/SciFi theme, each attendee received a color-coded shirt: yellow for speakers (Captains in the chromatic language of the original Star Trek series), blue for repeat attendees, and red for first-timers. The venue was very, very well represented with red shirts!read more
I’ve been in the software engineering business for a long time, but until I was introduced to the PHP community, I never really cared to engage in the social aspect of this profession. I really feel that the PHP community is something unique. It’s rare to find a community that stands on the firm foundation of long-established friendships that is also so incredibly welcoming to newcomers.read more
I was super excited when I found a couple of free hours to finally sit down with Laravel and kick off my little blog project. That two hour time box turned out to be pretty important to this effort. I hit up puphpet.com to get a quick-and-dirty little debian development server running and loaded up the Laravel quick start. Unfortunately I glossed over the very clear instructions about the necessary permissions for the app/storage path and lost about 10 minutes trying to figure out why I was white screening, but from the moment I sat down to the point where I had a functioning skeleton installed totaled maybe 20 or 25 minutes. I started in on my first goal, a simple database-backed authentication system.
I won't go in to details on a topic as well-trod as that, but I think it speaks extremely highly of Laravel's approachability that I was able to build out a reasonably rich authentication system in a little more than an hour, including command-line tools to provision and manage users. I've worked in a number of PHP frameworks large and small, from Codeigniter, Fuel, and Yii to Zend and Symfony, but I have never felt as immediately productive in any of them as I did sitting down with Laravel. That alone goes a huge way to explaining how this framework has managed to enchant such a huge segment of the greater PHP community. The prospect of the drop-in structure of a framework without the steep learning curve is incredibly alluring.
Almost alluring enough to offset some of the things that I wasn't quite as comfortable with. I want to say, I went in to this determined to give facades a fair shot but they didn't make a great impression. I am the kind of person who likes to know what's going on under the hood and facades seemed determined to get in my way. I don't like feeling frustrated trying to find how something is implemented, and I found myself in that position a handful of times during this first exposure and it left a definite bad taste in my mouth. Maybe it's just my lack of familiarity with the framework, or maybe as a python dev, I just have a bias towards the explicit over the implicit, but if it weren't for the fact that facades are optional, I think my experiment might have ended right then and there.
So, the takeaway from my first brush with Laravel is that it's a very welcoming piece of technology that invites you to step in and immediately start creating stuff, which is awesome. I'd love for the non-facade style to have a more prominent place in the docs. The idea is explained very succinctly by Taylor Otwell himself on his personal blog, but I think it would do a lot to quell some of the criticism-- not to mention, make the framework a bit more welcoming to people, like me, who just reflexively distrust "magic"-- if the DIC itself were more visibly in the docs.
Next session I'll be building my content management back-end and wiring up mongo. I'm really looking forward to doing some real work with Laravel at last!read more
"What on Earth is a Data Jam?" is precisely the question I asked myself yesterday afternoon when an email inviting me to participate in a White House Data Jam on STEM Workforce Quality, Flow, and Diversity landed in my inbox. Reading through some of the supplied documents made things only a little bit clearer. Despite the confusion and misgivings, I figured being asked if I want to come to a White House anything is a good enough reason to apply the Jim Halpert maxim and simply reply, "absolutely, I do."read more
I’ve always been pretty candid about the fact that I’m not a big fan of frameworks. I think they’re great for prototyping and for very simple applications. In my experience, though, whatever time you save starting your application up is lost when the inevitable quirky requirements and unexpected complexities force you to eventually extricate parts of your app from the framework you built it in.read more
SkiPHP has been a blast. The organizers have done a fantastic job putting together an amazing conference!
If you're interested in viewing the slides from my talks, they're available on speakerdeck, so please check them out!read more
No matter how popular an activity it is, I really don’t like to bash on PHP. Every language has its flaws when you look closely enough, and if PHP wears its idiosyncrasies a little closer to the surface than most, I think it makes up for it in other ways. PHP’s handling of types, however, is confusing at best and at worst completely deranged.
I’ve seen intercity rail schedules that can’t hold a candle to PHP’s type comparison tables. The bizarre and unexpected behaviors that can result from a non-strict comparison has all but rendered the equality operator (==) useless. The typical advice from PHP master to PHP neophyte is, always check for identicality (===) unless you’re very sure what you’re doing.read more
I'll be talking about Service Architectures and REST APIs. Should be exciting! Hope to see you there!
In my last post, I mentioned that where I work, we settled on Bamboo as our continuous integration solution. I love Bamboo, but its built-in notification features are pretty lacking. In fact, your only options out of the box are XMPP messaging (with no conferencing, so meh) or email (yech).read more