Garfieldtech

Technical thoughts, tutorials, and musings

Blog

Why you can't just ignore them

Posted:

Recent events in the PHP community in the past few days have reminded me of an important point that bears repeating. Quite simply: There are always community standards, and if you are not upholding them then you are actively undermining them.

Short and safe array iteration

Posted:

One reason to follow development mailing lists is you sometimes pick up on some very neat tricks. Here's one that I spotted on the PHP Internals list recently to simplify array iteration in PHP 7.

The 3 paragraph pitch

Posted:

Earlier this week a fellow PHP public figure tweeted saying that I write great session proposals for conferences. After I finished blushing I reached out to him and we talked a bit about what it was he likes about them. (Whatever I'm doing right, I want to know to keep doing it!)

Based on that, I figured it would be educational to dissect how I go about writing session proposals for conferences and hope that conference organizers don't catch on to my tricks. :-)

Best practices are contextual

Posted:

Articles, blog posts, and Twitter debates around "best practices" abound. You can't swing a dead cat without bumping into some article espousing the benefits of designing and building software a certain way. (Side note: What kind of sick person are you that you're swinging a dead cat around? Stop that! You're desecrating the dead!)

What nearly all of these articles fail to convey is that "best practices" are contextually-dependent. Always. For one, they evolve over time; really, there is no such thing as a "best practice"; There are "leading practices", which is an inherently changing and growing definition as the technology and market changes and as we as an industry learn more and discover new and exciting ways to royally screw up.

More importantly, though, "leading practices" can be vastly different depending on the type of software being built, who it's for, and how it will be used. That's often left out of such discussions, which is a problem because without that context advice can often not just be inapplicable but actively counter-productive.

While every project is unique, I would define three broad categories in which a given leading practice could be valid (or not).

PHP 7 Explained: A review

Posted:

The team over at thePHP.cc recently published an ebook entitled PHP 7 Explained, "Everything you need to know about the next generation."

A few weeks back, I received an email from them stating "As a token of our appreciation for your involvement in the PHP community we would like to gift you a copy of our eBook." Yay, free stuff! Since I'd gotten it free, and it's of timely use to the PHP world, I decided to publish a formal review.

Disclaimer: I was not asked to write a review, although the authors did ask for feedback. The only compensation I receive for this review is the book itself, which was sent without the expectation of a review. Also to the authors, yes feel free to quote portions of this review on the books site as long as it's credited.

Composer vs. Linux Distributions: A Mental Model Battle

Posted:

Recently, Gentoo documented what they view as the Composer Problem: Basically, PHP projects using Composer can't be packaged the way they want to package it, with system-level shared libraries. This is not a new complaint; Other distributions have complained about Composer's impact before. But fundamentally I think the issue stems from having the wrong mental model of how modern PHP works when viewed from a distribution or sysadmin perspective.

Anyone can code

Posted:

One of Pixar's best movies is the 2007 "Ratatouille", the story of a rat named Remy who teams up with an unskilled nobody human to become a gourmet chef. Toward the climax of the film (spoiler alert!), the uber-critic Anton Ego visits their restaurant and is blown away by the quality of the food, producing the next day a genuinely humble and reflective review. While the whole review is one of the highlights of the film, there's one segment in particular I want to call out:

In the past, I have made no secret of my disdain for Chef Gusteau's famous motto, "Anyone can cook." But I realize, only now do I truly understand what he meant. Not everyone can become a great artist; but a great artist can come from anywhere. [emphasis added]

It's one of the central themes of the film, and Pixar I believe captures that line beautifully. It's true, not everyone is a good cook. Not everyone can be a good cook. However, good cooks come from a myriad of sources and backgrounds (and apparently species).

And the same concept applies to almost any skilled field, including that of programming.

Drupal 8: Happy, but not satisfied

Posted:

Two weeks ago (hey, I've been busy and trying to sleep for once), after 1716 days of work by more than 3312 people the Drupal community finally released Drupal 8, the latest release of the best community-driven web software in the world. The blogosphere is already filled with congratulatory blog posts celebrating the immense accomplishment, and deservedly so.

A number of people recently have asked me how I feel about Drupal 8's release, especially around the PHP community. Overall, my answer has to be that I'm happy, but not satisfied.