December 2016 Newsletter

Word for the Herd

2016-12 New Beginnings

Each new year is a new beginning, a fresh start. A chance to reboot. What will you make of your new beginning? Is there a new skill you want to learn? Is there a new habit you want to start? A project that has been on your “Build This” list for a while now that you really want to start?

Take some time between now and the beginning of the year. Set aside an hour at some point to reflect. Think about the year gone by, what you did right, what you could do better. Then think about the new beginning. Given what you learned in reflecting over the year past, what do you want to do different? What do you want to learn? What do you want to build. Now, write it down.

No, these are not “New Year’s Resolutions”. Most of those are abandoned before January is gone. This is your plan for the new year. These are not hard and fast action items, these are your goals for the year. Without a list, you will almost certainly not do any of them. Without a map, it’s hard to tell how to get where you want to go. By writing them down, and then looking at the list often, you will keep them top of mind. When opportunities come your way to make progress on one, you will see it.

Celebrate this time of renewal, this chance for a new beginning. Revel in where you are but aspire to get to where you want to be. That way it truly will be a Happy New Year!

Until next year,
=C=
Cal Evans
Nerd Herder for the World Wide Herd


The InPHPormation You Need to Know

Current Versions of PHP
(Make sure you are up to date!)


Article Suggestions

Laravel Homestead 4.0 and Box 1.0.1
Joe Ferguson

PHP 7.1 vs. 7.0 Performance Benchmarks with Symfony
Jani Tarvainen

Database Engine Rankings
DB-Engines

Conserving On The Wrong Resource
Paul M. Jones

Project Documentation with Sculpin
Matthias Noback

Improving the Performance of our PHP Based Crawler
Freek Van der Herten

Moving Toward SSL
Matt Mullenweg

Introducing Sessionz
Eric Mann

Upgrading to PHP 7.1 is Easy
Freek Van der Herten

Marketing Pet Peeves
Jeffrey Way

An Uptime and SSL Certificate Monitor Written in PHP
Freek Van der Herten

Database Fixture Setup in PHPUnit
Tobias Schlitt

Scheduling ElePHPants (DateTime Math is HARD)


Conferences

PHP Benelux
January 27-28, 2017 · Antwerp, Belgium

Sunshine PHP
February 2-4, 2017 · Miami, FL*

PHP UK Conference
February 16-17, 2017 · London, UK

Confoo Montreal
March 8-10, 2017 · Montreal, CA

Midwest PHP
March 17-18, 2017 · Bloomington, MN

PHP Yorkshire
April 8, 2017 · York, UK

PHP[tek]
May 24-26, 2017 · Atlanta, GA

PHP Tour Nantes
May 18-19, 2017 · France

International PHP Conference 2017
May 29 – June 2, 2017 · Berlin, Germany

Codercruise
July 16-23, 2017 · New Orleans

* = Cal will be in attendance and have Nomad PHP stickers and patches.

November 2016 Newsletter

Word for the Herd

2016-11 Thank you

In the United States, November is the month when we have Thanksgiving. It’s the holiday in which we remember those we are thankful for. This year, Kathy and I are thankful for the Nomad PHP Community. Compared to other communities, we are small, but we are growing. It is a matter of some pride for us that many of you who are subscribers have been with us for multiple years. To us, that is a sign that we are creating something that is useful to you.

Whether your involvement in the community is that you are a subscriber, you are a sometimes attender, or you are a mailing list member, we are thankful for you. We hope that you will be with us for many more years to come. Thank you. 🙂

=C=
Cal Evans
Nerd Herder for the World Wide Herd


The InPHPormation You Need to Know

Current Versions of PHP
(Make sure you are up to date!)


Article Suggestions

The PHP 7 “Request” Extension
Paul M. Jones

Welcome to PHP
Cal Evans

Simple Automated WordPress Deployment Tool with Wordmove
Ifhtul Emka

Episode 84: Whiny Feedback Loops

Handing JSON data errors in Slim 3
Rob Allen

MageTalk Episode 106 – The Gricehole
Phillip Jackson

Get rid of -m
Stefan Koopmanschap

PHP 7 at Tumblr

Handling Laravel Validation Error Messages With Vue.js
Chimezie Enyinnaya

Expanding Horizons
Joe Watkins

Integrate Bitcoin Payments with PHP
Voja Janjic

Understanding PHP Generators
Samuel Oloruntoba

Processing Signals and Collecting Garbage with Joe Watkins

What’s in store for PHP performance?
Jani Tarvainen

Importing and aliasing PHP functions
Simon Holywell

PHP 7 In-Depth Look
Chike Mgbemena


Conferences

ConFoo Vancouver
December 5-7, 2016 · Vancouver, Canada

PHP Benelux
January 27-28, 2017 · Antwerp, Belgium

Sunshine PHP
February 2-4, 2017 · Miami, FL*

PHP UK Conference
February 16-17, 2017 · London, UK

Confoo Montreal
March 8-10, 2017 · Montreal, CA

Midwest PHP
March 17-18, 2017 · Bloomington, MN*

PHP Yorkshire
April 8, 2017 · York, UK*

PHP Tour Nantes
May 18-19, 2017 · France*

PHP[TEK]
May 24-26, 2017 · Atlanta, GA*

International PHP Conference 2017
May 29 – June 2, 2017 · Berlin, Germany*

* = Cal will be in attendance and have Nomad PHP stickers and patches.

October 2016 Newsletter

Word for the Herd

2016-10 Solve

Let me explain. Recently I was charged with creating 50 documents from a database and then printing them out. Simple enough if you are working with a language that supports printing to printers, but PHP isn’t really designed to do this. So I did what PHP is good at, I created 50 HTML files.

Next I had to get these to the printer. Ok, there is still no real good solution to do this programmatically. Also, I implemented some CSS to put a footer at the bottom of each page. Whatever solution I came up with needed to print this properly. That means i need a very good browser engine that supports modern CSS to properly print these documents. Through experimentation I realize that I can simply open each document in Firefox locally, click print, change a few settings because FireFox is incapable of saving presets, and then save to PDF. Boom printable document, right? Yes, it meets all the requirements except scriptable. Honestly, who wants to sit there, open 50 documents individually, and save to PDF. Afterall, I am a programmer, I should be able to bend the computer to my will.

Friday morning rolls around and I am caffeinated and cranking my tunes, I can solve this. In the immortal words of Jax Teller from Sons of Anarchy, “I’ve got this.” To cut a long story short, I spent Saturday morning opening 50 html documents locally and creating PDFs of them using Firefox.

I managed to find about 10 good ways not to do the job. At one point, I was experimenting with macOS automator to create a script to automate the procedure. Nothing worked.

I tell you this story to explain the tweet above. It is a cautionary tale for developers. See, I HAD a solution. I could have use FireFox on Friday, got it done, had the rest of Friday to get other things done. Instead, I stubbornly insisted that I could do this I could script this one-off task even if it was going to take me longer than just doing it manually.

Programmers love creative solutions. We love creating clever solutions, even if they look like Rube Goldberg’s when they are done. Even if there are simple solutions available to us. We love to explore new ideas and technologies even when the problem can be adequately solved with existing tools and techniques.

It is a great time to be a programmer. There are new languages, concepts, packages, and even package managers, being released all the time. With all these options, many times new problems look to us like an opportunity to explore a new tool, learn something new. Sometimes though – many times – new problems are just an opportunity to solve the problem as quickly as possible so you can move your project forward.

As much as I love and encourage learning, don’t get caught in the trap. Sometimes you need to apply what you’ve already earned and just solve the problem.

=C=
Cal Evans
Nerd Herder for the World Wide Herd


The InPHPormation You Need to Know

Current Versions of PHP
(Make sure you are up to date!)


Article Suggestions

The MIT License, Line by Line
Kyle E. Mitchell

A Review of Bulgaria PHP – Game On!
Bruno Skvorc

Database Tests With PHPUnit
Tobias Schlitt

How to Build a Docker Test Environment
Matthew Setter

Episode 012 – Conference Talk and Tutorial Tips
Adam Culp

Use The Symfony Workflow Component
Vincent Composieux

Destructing PHP
Johannes Schlüter

Lesser Known Git Commands
Tim Pettersen

Last features in PHP 7.1 (part c)

Interview With Jeremy Mikola
Cal Evans

Hourly vs Value-Based Pricing
Sammy K. Powers

Episode 17 – How To Build a Docker Test Environment
Matthew Setter

Anatomy of a Dope PHP Package Repository
Raphael Stolt

PHP 7 on macOS Sierra
Michelangelo van Dam

Microsoft SQL Server from PHP
Remi le mardi


Conferences


October 29, 2016 · Edinburgh, Scotland

PHP[WORLD]
November 14-18, 2016 · Washington, DC

ConFoo Vancouver
December 5-7, 2016 · Vancouver, Canada

PHP Benelux
January 27-28, 2017 · Antwerp, Belgium

Sunshine PHP
February 2-4, 2017 · Miami, FL*

PHP UK Conference
February 16-17, 2017 · London, UK

Confoo Montreal
March 8-10, 2017 · Montreal, CA

* = Cal will be in attendance and have Nomad PHP stickers.

September 2016 Newsletter

Word for the Herd

2016-09 Help

One of my favorite songs is “Help Somebody” by Van Zant. it’s a beautiful, soulful country song that, among other things exhorts the listener to “…help somebody if you can.” It doesn’t matter if you like country music or not, we should all be able to agree that the hook on this song is a sentiment that we can all get behind. All of us should be willing to help someone when we can.

I spend a lot of time talking to members of the PHP community. I’ve seen the worst of this community – the times when we are tearing each other apart – and I’ve seen the best. In the ten years I’ve had the privilege of being a part of this community, I’ve seen it gather ‘round its own, take up collections, and work to give it’s members a leg up. In my thirty some-odd years of programming, this community is unique in this aspect. I’ve been part of other great communities, but never one so willing to help their own.

You are a member of a wonderful community. As a member, you need to look for ways to help. It could be that you donate to help someone over a rough patch. That’s not the only way to help, though. Donating is a visible way to, but there are other ways.

You can help someone by sharing their content. If someone is trying to get reach on a blog post, podcast, or project, help by sharing. Then go the extra mile, reach out to some of your influencers privately and ask them to share as well.

You can help by caring. We’ve all got to keep an eye on each other. A lot of us are distributed, freelance, and sometimes we don’t have a support network. If you have someone you talk to regularly on social media and they go radio silent, reach out to them privately and make sure they are doing ok. (I suck at this, seriously.) Sometimes, somebody just needs to know that they aren’t all alone.

You can help by recognizing. There are people in this community who have done things for you. Maybe they wrote your favorite library, maybe they gave a talk a conference that helped you through a technical issue, maybe their latest book was just what you needed to solve a problem. Whatever the reason, if someone has touched your life or career for the better, you can help by publicly recognizing them. Say thank you and let the rest of us know what they did so that we can say thank you too.

Remember

“fight your fights,
find your grace,
and all the things that you can’t change
and help somebody if you can…”

=C=
Cal Evans
Nerd Herder for the World Wide Herd


The InPHPormation You Need to Know

Current Versions of PHP
(Make sure you are up to date!)


Article Suggestions

How To Build a Local Development Environment Using Docker
by Matthew Setter

The Software Dilemma
by Brandon Savage

Solidify Fragile Tests
by Joe Ferguson

Happy Birthday PHP Roundtable!
by Sammy K Powers

Deprecating Phar Distribution and Embedded Composer
by Beau Simensen

Github Tips
by Cees-Jan Kiewiet

Using Bitwise Instead of Booleans
by Yannick de Lange

Using the Mailgun Store(): A Temporary Mailbox for Your App’s Incoming Email
by Jeff Reifman

Interview With Colin O’Dell
by Cal Evans

Document Your API with ApiDoc
Voja Janjic

The Six Commandments of Good Code: Write Code that Stands the Test of Time
by Zachary Goldberg

PHP User Group Sticker Exchange 2016
by Joe Ferguson

Whoops, I Forgot The Error Handler
by Matthew Setter

The Sound of Symfony Podcast: Episode 15 – Live from Barcelona

A Package to Easily Work with Regex in PHP
by Freek Van der Herten

How Many Tests is Too Many?
by CodeUtopia


Conferences

Madison PHP 2016
September 30 – October 1, 2016 · Madison, WI

Zendcon 2016
October 18-21, 2016 · Las Vegas, NV*

ScotlandPHP
October 29, 2016 · Edinburgh, Scotland

PHP[WORLD]
November 14-18, 2016 · Washington, DC

ConFoo Vancouver
December 5-7, 2016 · Vancouver, Canada

PHP Benelux
January 27-28, 2017 · Antwerp, Belgium

Sunshine PHP
February 2-4, 2017 · Miami, FL*

* = Cal will be in attendance and have Nomad PHP stickers.

August 2016 Newsletter

Word for the Herd

2016-08 Learn

What have you learned today? This week? This month? Developers can’t simply coast. Our industry reinvents itself every three to five years. Don’t believe me? Look at how we used to develop PHP web applications just 5 years ago. Large monolithic frameworks, page based apps were the norm. Five years before that we still mixed PHP and HTML into the same files. Things change constantly.

Nomad PHP is a good way to keep up with what is going on, but it’s not the only way. For the sake of your career, you need to be learning, and you need to be constantly finding new sources. One of the reasons we publish this newsletter is to bring to you potentially new sources of knowledge. If one of the articles you see linked in this newsletter speaks to you or teaches you something new, bookmark it, visit it often. Keep reading it until it no longer has anything to teach you.

Finally, one of the best ways you can learn is to share what you have learned. The act of sharing – blogging, recording a video, speaking at a user group – will help you organize your knowledge and help solidify this knowledge in you brain. It has the added advantage of teaching others.

Help yourself learn, help others learn, make learning and then sharing part of your regular routine.

=C=
Cal Evans
Nerd Herder for the World Wide Herd


The InPHPormation You Need to Know

Current Versions of PHP

(Make sure you are up to date!)


Article Suggestions

Practicing YAGNI
Jason McCreary

Exporting Globals in PHP
Paul M. Jones

Composer – What You Should Know
Tomasz Sawicki

Delivering Files with PSR-7
Stephan Hochdörfer

Chronos – Let There Be Time

Decouple Your Framework For Easy Replacement
Michelangelo van Dam

The 3-Step Guide to Downloading Files in Zend Expressive
Matthew Setter

Build a PHP Chatbot in 10 Minutes
Christoph Rumpel

PHP/Symfony Development with Windows Subsystem for Linux (WSL)
Jani Tarvainen

Sending and Receiving SMS with Laravel and Nexmo
Eric L. Barnes

Checklist for Releasing Slim
Rob Allen

Defining Functions Inside a Constructor
Michael Kimsal

My Docker Setup
Chris Tankersley
(For more from Chris on Docker, check out his book/video combo package!)

Validating SSL Certificates with PHP
Freek Van der Herten

Joind.In Needs Help
Lorna Jane Mitchell

Always Use Caret instead of Tilde
Tobias Nyholm


GET INVOLVED!

Have you checked to see if there is a local PHP user group near you? Visit PHP.UG and see if there is a PHP user group near you. If you find one, get involved!


Conferences

Madison PHP 2016
October 1, 2016 · Madison, WI

Zendcon 2016
October 18-21, 2016 · Las Vegas, NV*

PHP[WORLD]
November 14-18, 2016 · Washington, DC

ConFoo Vancouver
December 5-7, 2016 · Vancouver, Canada

Sunshine PHP
February 2-4, 2017 · Miami, FL*

* = Cal will be in attendance and have Nomad PHP stickers and patches.