Skip to content

There is nothing wrong with being driven.

Dear Reader,

I am blessed by God that I currently have time to spend just learning new things. This hasn’t always been the case though. When I was a younger man I had family to take up my time, a full time job, and usually a side hustle to bring in a little extra because kids are expensive.

Still, even when I was younger, I would burn the midnight oil if necessary to learn. Some nights I would literally work until midnight and then spend 30-45 minutes learning something new. Other times I would only work till 10 PM or so and then I could spend an extra hour just learning something new.

This was a choice I made, I realize this. I sacrificed things to make this happen, still, I can’t imagine not doing it.  Again, God blessed me with a mother who was an educator. She instilled a curiosity into me that is with me even today. I am wired to learn and if I’ve got extra time on my hands I usually spend it reading, researching, listening.

I know that everybody is not blessed in this way, but for those of us who are, don’t be ashamed that it is who we are. If you aren’t like this, when you run across someone who is driven to learn, driven to create, driven do do whatever, do us all a favor and don’t discourage us by saying “You shouldn’t spend all your time doing <INSERT TASK HERE>.”  You aren’t me, and if you are telling me this then you don’t understand me. (That’s ok, because you aren’t driven like me, I probably don’t understand you either.)

If you are driven, don’t let anyone tell you it’s not good. They aren’t you, they don’t know. You do you, and if you have to, walk away from those who are trying to change you.

Until next time,
I <3 |<
=C=

Time to get ready to learn

Dear reader,

Ok, the time is come to get ready for the Dutch PHP Conference. Wait, you didn’t think you just showed up and knowledge just magically flowed into your head did you? Nope, it does not work that way. You’ve got to prepare yourself, you’ve got to be ready to learn.

This week

This week you need to spend some time each day looking at the schedule, and thinking about the topics. How does each topic affect the projects you are working on? For instance, in my projects I sometimes leave them for six months and then come back and pick them up. The hard part at that point is figuring out why I made the decisions I made and what I was thinking was the next step. I am looking forward to Raphael Dohms talk How’d we get here? “A guide to Architectural Decision Records because I think it will help me solve that problem.

I’m not going to list all of the talks and workshops that will be presented,  but I am spending a few minutes each morning looking at the schedule, looking at the projects I am either working on or about to start, and making notes about how I think this session can help me. Next week, I will compare those notes to the notes I took during the session and make a decision on whether to pursue the concept or not.

Thursday and Friday

Day of you need to prepare yourself for learning by preparing your workspace. it’s bad enough that most of us take our work with us to a conference – emails, messaging apps, etc still drag us out of the learning zone but at least during the actual sessions, we have the option of turning them off or putting them under our chair. When attending a virtual conference it’s a lot harder to ignore work since we are sitting in front of our computers where we actually DO the work. So to prepare yourself for learning, shut down email, messaging, and social media. That last one, shutting off social media, is hard for me as a speaker to say because I LOVE to see people posting about my talk on social media, but I love more when people are thoughtfully considering what I am telling them. The two are mutually exclusive.

If you absolutely must, between sessions you can open them back up to make sure everything is fine but make sure you close them back down before the next session starts.

Dedicate the time you have with the speakers and other attendees as learning time and treat it as important. If you don’t, your co-workers and those around you who also want your attention won’t treat it as important either.

Next week

As you go into the next week, keep your notes from the conference handy and review them in your downtime. Waiting for a meeting to start? review them. Waiting for CI/CD to complete a run? Review your notes. Finish a task and need a mental spacer before the next one? Review your conference notes.

It’s not enough to just sit in front of the monitor and say you are learning, learning is an activity and you have to fully participate if you want to reap the benefits. Yes, you need to “be in the moment” during the actual conference, but without a plan for before and after, you won’t get the benefit you are looking for. It just takes a little time each day to get ready for and to debrief after the conference.  Commit to yourself that you are going to get the full benefit of the conference by committing to prepare yourself and allow for debrief time.

Until next time,
I <3 |<
=C=

Everything changes…even conferences

Dear Reader,

“Change is the only constant in life.”
— Heraclitus

I’ve been around tech conferences for a long time now. I’ve seen conferences come and go. The more I look at tech conferences though, the more I realize that old Heraclitus was correct. The only constant in the tech conference sphere is that it is constantly changing…and that’s a good thing.

When I started working with PHP conferences There were only a handful of speakers and they were at almost every conference. All of us realized that this wasn’t ideal, but – at least in the PHP community – we had to grow our own talent base speaker-wise before this was going to change. I’m happy to say that this has changed. These days, yes, you’ve still got a few that speak at many of the conferences, but most conferences try to bring in fresh faces and fresh ideas.

When I started doing virtual conferences at Day Camp 4 Developers, it was because only about 1%-2% of PHP developers could get to a conference. Most companies wouldn’t spend the money to send a developer to a conference and most developers couldn’t afford it on their own.  Now, virtual conferences are a necessity of life. Hopefully one that will go away, but night now, there is no denying that virtual events are de rigueur for a while to come. Of curse nobody wanted it to be this way but the silver lining is there are a LOT more opportunities for PHP developers to learn.

When I first heard of the Dutch PHP Conference it was because I was blessed to be asked to speak at the very first one. Back then it was a small one-track conference with 200-300 people in attendance. Fast forward a few years to 2009 and I was honored to actually get to help run the conference. That year we have 3 tracks and a little more than 3x the number of attendees.

Now, for the second year in a row, I am hosting DPC again. This year, like last year, it will be a virtual conference. This year, like last year, the main conference day is free. (And now you know why I don’t run Day Camp 4 Developers events anymore. :) )

It has changed a lot since that very first one, but at it’s core, it’s still run by the same people for the same reason. See, I think the reason I like DPC so much is because I know the people behind the curtain. Joni and Tom have been friends of mine for more than 10 years now, and I see the effort that they – and the entire company – pour into DPC. I respect that they do this out of love.

So it’s an honor for me to be associated with DPC again. I’ll gladly stand in front of a camera for this this year, tell bad jokes between speakers and introduce those speakers to you. Yes, some of the speakers will be old friends of mine. Some of them are new friends of mine. All of them though are members of the herd – the PHP community – and that’s really all I need to know.

Join me and my old and new friends on June 18th for DPC21. If you want to seem some long-form sessions, there are still tickets available for the June 17th talks as well. (Those cost…still worth it)

If you have never been to a PHP conference before in your life, do yourself a favor and block off June 18th, 2021 and get yourself a ticket to DPC21.

As I say for Day Camp 4 Developers “Invest a day in your career” :)

Oh and make sure you join the slack channel and say hi. I’ll be the one telling the bad jokes. :)

Until next time,
I <3 |<
=C=

DPC21 – YAOC

Dear Reader,

Welp, here I are staring at June 2021 on the calendar and know that one of my favorite PHP community events, The Dutch PHP Conference, is yet again going virtual. Yup, Yet Another Online Conference. (YAOC) Just another day of YAOC Shaving in a polo shirt and my pajama bottoms.

Don’t get me wrong, I understand and applaud their commitment to the safety and health of the attendees. But come on, there’s only so many times I can get excited about seeing some of these people present again via Zoom. I mean a few of “the regulars” will put you to sleep in an in-person presentation. Give me Zoom and a comfy chair to sit in and you had better end every presentation with an alarm clock going off.

You know my favorite part of on-line conferences though? The afterparty. I don’t have to watch how much I drink lest there be yet another “Cal’s Drunk” story going around. (Ask Joe Ferguson, last I heard he was collecting them all for a book. It will no doubt be masterfully edited by his much more talented better half.) Most of all though, I am the life of a virtual afterparty! (because it’s basically just me anyhow) :)

Still, given the circumstances, YAOC is better than NCAL. (No Conference At All)

It still gives me a day to set aside to hang out with the PHP community. A day I turn off everything else and sit and learn. A day I hang out in slack and make bad jokes. A day I get to catch up with old friends I’ve not seen in more than a year, and make new friends that I can look forward to meeting in person next year.

So yeah, YAOC. But the way I look at it it’s not YET Another Online Conference, it’s YEA! Another Online Conference. It doesn’t hurt that I’ve known the organizers of this event for more than 10m years and I know that virtual or IRL, they know how to throw a conference.

So if you aren’t doing anything on June 17th and 18th, come hang out with me. The slack channel is free an open to everyone. Yes, they don’t charge you a dime to watch me tell bad jokes.

This year, like last, the main conference day is free too. So get a ticket, block off the time in your calendar, brush up on YOUR bad joke or “Cal’s drunk again” story, and come hang with us at DPC21-YAOC.

I look forward to talking to you.

Until next time,
I <3 |<
=C=

Lando DB Helper

Dear Reader,Lando logo

I use Lando a lot these days. I’ve got .lando.yaml files scattered all over my file structure. I love it because it takes the yak shaving out of development. One thing that bothers me though is the fact that every time I spin up a new lando instance and it has a database, it gets a new port number. I have to go find that port number so I can open my SQL editor to tinker. So over the past year I’ve been writing this little script. It’s finally to the point where I think it might be useful to others so I’m sharing it. Also, if I ever lose it, I’ve now got it backed up on my blog. :)

This is a snippet form my .bash_macros file. It creates the command db. Now all I need to do when I need to find the port for the database is type db and it shows me all the running db instances and their exported port numbers.

This was written in bash. I use it on Windows WSL running ubuntu but it should run on any standard Linux. Not sure about OSX.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# Lando DB
# Author: Cal Evans
# Copyright 2021 All Rights Reserved
# License MIT
#
# Show what Lando (docker ) DB services are running and what port they are
# running on
#
function db() {
  RUNNING=$(docker ps --format "table {{.Names}}__{{.Ports}}\n" | grep 3306)
 
  echo
  echo "Lando databases running"
  echo "Instance Name : DB Port"
  echo "----------------:--------"
 
  for THISONE in $RUNNING
  do
    INSTANCE=$(echo $THISONE | awk '{print $1}' | awk -F '_' '{print $1}' )
    PORT=$(echo $THISONE | awk -F '__' '{print $2}' | awk -F ':' '{print $2}' | awk -F '->' '{print $1}')
 
    printf "%-15s : %s\n" $INSTANCE $PORT
  done
  echo "";
}

fClose()

This is one of those “this works for me so I’m sharing in case it works for you too” pieces of code. I didn’t setup a repo for it because I’m not interested in changes. If you do improve it, you blog about it and then we’ll all be the wiser.

Until next time,
I <3 |<
=C=