Drupal https://www.garfieldtech.com/index.php/ en PHP: Use associative arrays basically never https://www.garfieldtech.com/index.php/blog/php-list-benchmarks <article data-history-node-id="254" role="article" class="node node--type-story node--promoted node--view-mode-teaser clearfix"> <header> <h2 class="node__title"> <a href="/blog/php-list-benchmarks" rel="bookmark"><span class="field field--name-title field--type-string field--label-hidden">PHP: Use associative arrays basically never</span> </a> </h2> <div class="node__meta"> <article class="profile"> </article> <span> Submitted by <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span>Larry</span></span> on <span class="field field--name-created field--type-created field--label-hidden">30 June 2018 - 3:59pm</span> </span> </div> </header> <div class="node__content clearfix"> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>The other day I was working on some sample code to test out an idea that involved an object with an internal nested array. This is a pretty common pattern in PHP: You have some simple one-off internal data structure so you make an informal struct using PHP associative arrays. Maybe you document it in a docblock, or maybe you're a lazy jerk and you don't. (Fight me!) But really, who bothers with defining a class for something that simple?</p> <p>But that got me wondering, is that common pattern really, you know, good? Are objects actually more expensive or harder to work with than arrays? Or, more to the point, is that true today on PHP 7 given all the optimizations that have happened over the years compared with the bad old days of PHP 4?</p> <p>So like any good scientist I decided to test it: What I found will shock you!</p> <p><a href="https://steemit.com/php/@crell/php-use-associative-arrays-basically-never">Continue reading this post on Steemit</a></p> </div> <div class="node__links"> <ul class="links inline"><li class="node-readmore"><a href="/blog/php-list-benchmarks" rel="tag" title="PHP: Use associative arrays basically never" hreflang="en">Read more<span class="visually-hidden"> about PHP: Use associative arrays basically never</span></a></li></ul> </div> </div> </article> Sat, 30 Jun 2018 20:59:16 +0000 Larry 254 at https://www.garfieldtech.com Best practices are contextual https://www.garfieldtech.com/index.php/blog/best-practices <article data-history-node-id="250" role="article" class="node node--type-story node--promoted node--view-mode-teaser clearfix"> <header> <h2 class="node__title"> <a href="/blog/best-practices" rel="bookmark"><span class="field field--name-title field--type-string field--label-hidden">Best practices are contextual</span> </a> </h2> <div class="node__meta"> <article class="profile"> </article> <span> Submitted by <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span>Larry</span></span> on <span class="field field--name-created field--type-created field--label-hidden">23 August 2017 - 5:51pm</span> </span> </div> </header> <div class="node__content clearfix"> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>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!)</p> <p>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.</p></div> <div class="node__links"> <ul class="links inline"><li class="node-readmore"><a href="/blog/best-practices" rel="tag" title="Best practices are contextual" hreflang="en">Read more<span class="visually-hidden"> about Best practices are contextual</span></a></li></ul> </div> </div> </article> Wed, 23 Aug 2017 22:51:17 +0000 Larry 250 at https://www.garfieldtech.com New Drupal, new Platform, new PHP, new year https://www.garfieldtech.com/index.php/blog/drupal8-upgrade <span class="field field--name-title field--type-string field--label-hidden">New Drupal, new Platform, new PHP, new year</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>OK, well, it took a while, but I've finally gotten my blog off of Drupal 6. :-) Welcome to the new and improved Garfieldtech.com! My blog is unsurprisingly rather bland, as it's, well, a blog. That made updating to Drupal 8.2 using the Drupal migrate module reasonably easy. It wasn't hiccup free, and a few not-yet-updated modules got lost along the way, but it wasn't an epic struggle, either. There were only two major hiccups:</p></div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span>Larry</span></span> <span class="field field--name-created field--type-created field--label-hidden">31 December 2016 - 12:19pm</span> <div class="node__links"> <ul class="links inline"><li class="node-readmore"><a href="/blog/drupal8-upgrade" rel="tag" title="New Drupal, new Platform, new PHP, new year" hreflang="en">Read more<span class="visually-hidden"> about New Drupal, new Platform, new PHP, new year</span></a></li><li class="comment-comments"><a href="/blog/drupal8-upgrade#comments" title="Jump to the first comment." hreflang="en">2 comments</a></li><li class="comment-new-comments"><a href="/blog-topics/drupal/feed" class="hidden" title="Jump to the first new comment." data-history-node-last-comment-timestamp="1483385365" data-history-node-field-name="comment"></a></li></ul> </div> Sat, 31 Dec 2016 18:19:33 +0000 Larry 241 at https://www.garfieldtech.com HTML Application or Network Application? https://www.garfieldtech.com/index.php/blog/nath <span class="field field--name-title field--type-string field--label-hidden">HTML Application or Network Application?</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>There has been much discussion in the last few years of "web apps". Most of the discussion centers around whether "web apps" that do not degrade gracefully, use progressive enhancement, have bookmarkable pages, use semantic tags, and so forth are "Doing It Wrong(tm)", or if JavaScript is sufficiently prevalent that a JavaScript-dependent site/app is reasonable.</p> <p>What I fear is all too often missing from these discussions is that there isn't one type of "web app". Just because two "things" use HTTP doesn't mean they're conceptually even remotely the same thing.</p> </div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span>Larry</span></span> <span class="field field--name-created field--type-created field--label-hidden">19 May 2016 - 1:45am</span> <div class="node__links"> <ul class="links inline"><li class="node-readmore"><a href="/blog/nath" rel="tag" title="HTML Application or Network Application?" hreflang="und">Read more<span class="visually-hidden"> about HTML Application or Network Application?</span></a></li><li class="comment-comments"><a href="/blog/nath#comments" title="Jump to the first comment." hreflang="und">1 comment</a></li><li class="comment-new-comments"><a href="/blog-topics/drupal/feed" class="hidden" title="Jump to the first new comment." data-history-node-last-comment-timestamp="1470138465" data-history-node-field-name="comment"></a></li></ul> </div> Thu, 19 May 2016 06:45:44 +0000 Larry 240 at https://www.garfieldtech.com Moving to a new Platform https://www.garfieldtech.com/index.php/blog/joining-platformsh <span class="field field--name-title field--type-string field--label-hidden">Moving to a new Platform</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>After my <a href="http://www.garfieldtech.com/blog/leaving-palantir">last post</a>, a number of people asked if I was leaving Drupal all together. Perish the thought. :-) However, after a decade at Palantir.net and the five-year Wagnerian Saga that was the Drupal 8 development cycle (complete with <a href="https://www.youtube.com/watch?v=7zvCOKzY3kA">singing</a>), I have been asking myself "What next?"</p> <p>Well, what do I like to do? I like to build. I like to teach. I like to make things better. I like to work with smart people, as colleagues, as community partners, and as customers. I want to be able to have an impact in making something better for other people.</p> <p>To that end, I am pleased to announce that today is my first day as Director of Runtimes, Integrations, Engines, and Services for <a href="http://platform.sh">Platform.sh</a>.</p> </div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span>Larry</span></span> <span class="field field--name-created field--type-created field--label-hidden">2 May 2016 - 9:02am</span> <div class="node__links"> <ul class="links inline"><li class="node-readmore"><a href="/index.php/blog/joining-platformsh" rel="tag" title="Moving to a new Platform" hreflang="und">Read more<span class="visually-hidden"> about Moving to a new Platform</span></a></li><li class="comment-comments"><a href="/index.php/blog/joining-platformsh#comments" title="Jump to the first comment." hreflang="und">7 comments</a></li><li class="comment-new-comments"><a href="/index.php/blog-topics/drupal/feed" class="hidden" title="Jump to the first new comment." data-history-node-last-comment-timestamp="1462238176" data-history-node-field-name="comment"></a></li></ul> </div> Mon, 02 May 2016 14:02:31 +0000 Larry 239 at https://www.garfieldtech.com The end of an era https://www.garfieldtech.com/index.php/blog/leaving-palantir <span class="field field--name-title field--type-string field--label-hidden">The end of an era</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>Today is the end of an era. After just over ten and a half years, this is my last day with <a href="http://www.palantir.net/">Palantir.net</a>.</p> <p>The past decade has seen Palantir grow from a company of 5 to a company of over 30. From a company that wouldn't touch the GPL with a ten foot pole to a strong advocate for Open Source, Free Software, and Drupal in particular. From a company that did mostly subcontracting work for design firms to an end-to-end soup-to-nuts agency. From having two desktop screen sizes anyone cared about to an infinite scale of screens from 3"-30". From a world where IE 5 for Mac was considered a good browser to one where once again, the <a href="https://www.microsoft.com/en-us/windows/microsoft-edge">latest Microsoft browser</a> is actually good. (Everything old is new again, I suppose.)</p> <p>After ten years with the same company (which in Internet years is about a millennium) I certainly have stories. There's plenty I could say about Palantir, most of it good. :-) In the end, though, there's one thing in particular that has kept me here for so long.</p> <p>Palantir.net is the kind of place that has your back.</p> </div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span>Larry</span></span> <span class="field field--name-created field--type-created field--label-hidden">22 April 2016 - 1:06pm</span> <div class="node__links"> <ul class="links inline"><li class="node-readmore"><a href="/blog/leaving-palantir" rel="tag" title="The end of an era" hreflang="und">Read more<span class="visually-hidden"> about The end of an era</span></a></li><li class="comment-comments"><a href="/blog/leaving-palantir#comments" title="Jump to the first comment." hreflang="und">10 comments</a></li><li class="comment-new-comments"><a href="/blog-topics/drupal/feed" class="hidden" title="Jump to the first new comment." data-history-node-last-comment-timestamp="1461592601" data-history-node-field-name="comment"></a></li></ul> </div> Fri, 22 Apr 2016 18:06:59 +0000 Larry 238 at https://www.garfieldtech.com Giving Back in 2016 https://www.garfieldtech.com/index.php/blog/php-gives-back-2016 <article data-history-node-id="235" role="article" class="node node--type-story node--promoted node--view-mode-teaser clearfix"> <header> <h2 class="node__title"> <a href="/index.php/blog/php-gives-back-2016" rel="bookmark"><span class="field field--name-title field--type-string field--label-hidden">Giving Back in 2016</span> </a> </h2> <div class="node__meta"> <article class="profile"> </article> <span> Submitted by <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span>Larry</span></span> on <span class="field field--name-created field--type-created field--label-hidden">23 January 2016 - 5:18pm</span> </span> </div> </header> <div class="node__content clearfix"> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>Three years ago, I ended 2012 with a call to the Drupal community to <a href="http://www.garfieldtech.com/blog/off-the-island-2013">Get Off the Island</a>. Mainly I wanted to encourage Drupal developers to prepare themselves for the major changes coming in Drupal 8 by connecting with other PHP projects and with the broader community, and called on people to attend non-Drupal conferences in order to visit and learn from other communities.</p> </div> <div class="node__links"> <ul class="links inline"><li class="node-readmore"><a href="/index.php/blog/php-gives-back-2016" rel="tag" title="Giving Back in 2016" hreflang="und">Read more<span class="visually-hidden"> about Giving Back in 2016</span></a></li></ul> </div> </div> </article> Sat, 23 Jan 2016 23:18:44 +0000 Larry 235 at https://www.garfieldtech.com Drupal 8: Happy, but not satisfied https://www.garfieldtech.com/index.php/blog/drupal8-happy-not-satisfied <span class="field field--name-title field--type-string field--label-hidden">Drupal 8: Happy, but not satisfied</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>Two weeks ago (hey, I've been busy and trying to sleep for once), after 1716 days of work by <a href="http://www.drupalcores.com/">more than 3312 people</a> the Drupal community finally released <a href="https://www.drupal.org/8">Drupal 8</a>, 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.</p> <p>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.</p> </div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span>Larry</span></span> <span class="field field--name-created field--type-created field--label-hidden">3 December 2015 - 1:55am</span> <div class="node__links"> <ul class="links inline"><li class="node-readmore"><a href="/blog/drupal8-happy-not-satisfied" rel="tag" title="Drupal 8: Happy, but not satisfied" hreflang="und">Read more<span class="visually-hidden"> about Drupal 8: Happy, but not satisfied</span></a></li><li class="comment-comments"><a href="/blog/drupal8-happy-not-satisfied#comments" title="Jump to the first comment." hreflang="und">10 comments</a></li><li class="comment-new-comments"><a href="/blog-topics/drupal/feed" class="hidden" title="Jump to the first new comment." data-history-node-last-comment-timestamp="1452373395" data-history-node-field-name="comment"></a></li></ul> </div> Thu, 03 Dec 2015 07:55:04 +0000 Larry 233 at https://www.garfieldtech.com Why I speak https://www.garfieldtech.com/index.php/blog/why-i-speak <article data-history-node-id="232" role="article" class="node node--type-story node--promoted node--view-mode-teaser clearfix"> <header> <h2 class="node__title"> <a href="/index.php/blog/why-i-speak" rel="bookmark"><span class="field field--name-title field--type-string field--label-hidden">Why I speak</span> </a> </h2> <div class="node__meta"> <article class="profile"> </article> <span> Submitted by <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span>Larry</span></span> on <span class="field field--name-created field--type-created field--label-hidden">7 November 2015 - 4:51pm</span> </span> </div> </header> <div class="node__content clearfix"> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>A few weeks ago I gave a keynote presentation at <a href="http://www.pnwphp.com/">PNW PHP</a> in Seattle. It was the second time I'd given that particular talk, <a href="https://www.palantir.net/presentations/pnwphp2015-eating-elephpants/#/">Eating ElePHPants</a>, a quasi-history and lessons-learned of the process of rebuilding Drupal 7 to Drupal 8.</p> <p>Overall reception was good, and afterward I was appraoched by a woman who was trying to push for better development practices and refactoring a legacy code base at her company. We've exchanged a few emails since, as she goes about trying to subvert her company's development process for its own good to introduce testing, refactoring legacy code, decoupling, and other concepts that many of us on the conference circuit take for granted.</p> <p>In the course of that email conversation, she had this to say:</p> <blockquote><p> When I first started with this entire effort about 2 months ago, I thought I will never succeed, and I thought I had set myself up to failure - until I heard you speak about your experience. Your talk was highly inspiring and got me excited to invest more time into what I was doing and I believed in myself for the reasons I chose this effort. </p></blockquote> <p>And later...</p> <blockquote><p> All the tech talks helped me realize that I can get somewhere, made it seem within reach, but you and Adam Culp [who also gave a session on refactoring] left me inspired. </p></blockquote> </div> <div class="node__links"> <ul class="links inline"><li class="node-readmore"><a href="/index.php/blog/why-i-speak" rel="tag" title="Why I speak" hreflang="und">Read more<span class="visually-hidden"> about Why I speak</span></a></li><li class="comment-forbidden"></li></ul> </div> </div> </article> Sat, 07 Nov 2015 22:51:06 +0000 Larry 232 at https://www.garfieldtech.com Visiting other islands this fall https://www.garfieldtech.com/index.php/blog/other-islands-fall-2015 <article data-history-node-id="231" role="article" class="node node--type-story node--promoted node--view-mode-teaser clearfix"> <header> <h2 class="node__title"> <a href="/blog/other-islands-fall-2015" rel="bookmark"><span class="field field--name-title field--type-string field--label-hidden">Visiting other islands this fall</span> </a> </h2> <div class="node__meta"> <article class="profile"> </article> <span> Submitted by <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span>Larry</span></span> on <span class="field field--name-created field--type-created field--label-hidden">8 October 2015 - 2:49pm</span> </span> </div> </header> <div class="node__content clearfix"> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>In case you hadn't heard yet, <a href="https://www.drupal.org/drupal-8.0.0-rc1">Drupal 8 RC 1</a> is out. And there has been much rejoicing! I'm going to save my own lengthy celebration-and-thank-you post for the 8.0.0 release, so for now I will just point everyone at <a href="https://ohthehugemanatee.org/blog/2015/10/08/drupal-8-rc-1-is-out-what-now/">Campbell Vertesi's post</a> and say "what he said!".</p> <p>But it's also a good time to consider the impact that Drupal 8 has had on the PHP community. The "off the island" movement has grown large, and people outside of Drupal are echoing the same message. In fact, not one but two conferences this fall are actively trying to build bridges between PHP sub-communities: ZendCon and php[world].</p> </div> <div class="node__links"> <ul class="links inline"><li class="node-readmore"><a href="/blog/other-islands-fall-2015" rel="tag" title="Visiting other islands this fall" hreflang="und">Read more<span class="visually-hidden"> about Visiting other islands this fall</span></a></li><li class="comment-forbidden"></li></ul> </div> </div> </article> Thu, 08 Oct 2015 19:49:18 +0000 Larry 231 at https://www.garfieldtech.com