This review covers March 10 through March 27. Instead of bemoaning how late this one is, I’m going to go ahead and say this is the pattern: roughly every two weeks (about twice a month) I’m going to publish one of these. However, I’m also toying with the idea of implementing some sort of bookmarklet for myself (inspired by Jeremy Keith in this post linked below) to make composing these a bit easier.
Once again, this one’s really late. Some of this reading is from back in February. I’ve been dealing with some depression issues lately that have kept me from doing what I know I want to be doing. That said, I do want to spend more time thinking about what I’m trying to do with these reading reviews. Here’s a rough brain dump of what I’m thinking right now.
In a previous article we looked at using the new v2 Google PHP SDK to work with exporting Google Sheets. In working on that article I ran across some interesting side-effects of the middleware model. I’d like to mention some of those side-effects. First, let’s talk about what middleware is.
I’ve been playing around with the new google/apiclient (v2.0.0) for use with Google Drive and ran into some issues figuring out how to make use of the ability to export, for example, a Google Sheet as a CSV or Excel spreadsheet.
It’s been a long time since I listened to this podcast. The topics are often weighty and I don’t feel I have the energy to give due attention, but this morning the title of the latest episode struck me, so I decided to listen to it. There’s so much here. You can listen to the episode or read the transcript.
One of my favorite parts is this (emphasis mine):
DR. MILLER: … I think about this idea of normalcy a lot. I and many, many others before me have been agents of normalizing disability, and that’s really potent. And I also think there’s a second half to that equation, that we need – that doesn’t mean that we fit these other things into our idea of normal, it means we expand our idea of normal. And I think that life is weird. Life’s hard. Life’s weird. Humans are weird. And I worry, sometimes, that we exist in such a narrow bandwidth of accepted behaviors and thoughts that we really clip off so much of the strange beauty that can be part of the human experience.
For a couple of years now I’ve occasionally been keeping track of what I read in a Google Doc, in hopes I’d use it to write a blog post about what I’m reading. So here’s the first one. The idea behind the reading review is to become more deliberate about what I’m reading online; to take more than just a couple of seconds to think about what I’m reading and to share it with others in a more thoughtful medium than just posting to Facebook or Twitter randomly.
This is the first article in what I hope to be a series that documents my experience getting to know how to use AWS CloudFormation. In this article we’ll get to know the basics about CloudFormation and set up a simple application stack. In future articles I hope to cover more advanced topics.
@ircmaxell has a great explanation of the concept of dependency injection (DI). I
won’t even link to anything else about the concept because any Wikipedia
entry would just confuse the issue. Watch this video first, then go Googling.
This is my contribution to the #20yearsofphp story telling happening today on
Twitter. I’m coming to this a bit late, but I thought I should add my part.
In 2005, I had just graduated with a B.A. in Mathematics and Philosophy from a
small liberal arts college in the midwest, had been working in the IT
department there since about 2004, and was rather tired of the same old routine
of fixing persistent printer problems and troubleshooting roaming profile
issues in a Win2k/Novell environment.
For a couple years, one of the workstations in the office doubled as a
web-server that hosted a key/core management web-application for our physical
plant department. It was served via IIS using ASP backed with an MS Access
database. All it did was keep track of which doors had which cores and what
personnel had which keys.
The original developer had since moved on to other things, so we were looking
for a way to replace the fragile setup. The director of IT (he’s still there)
made a random comment (joke really, in hindsight) about needing to look into
MySQL and maybe PHP.
So I began Googling.
As it became clear to me what really could be done with PHP (and with what
ease!), my imagination began to grow as well. To this point my experience with
programming was a boring world of for loops and pointer arithmetic (I
blame the varous “teach yourself C in 24 hours” books for making it
What turned this from a curiosity into something that could actually solve
a problem, was figuring out how to authenticate users via LDAP. PHP’s ldap extension made this easy. Learning this made me feel I could do anything.
The original code I wrote was atrocious.
I had a single admin.php script which included a rather epic if-then-else
construct branching based on an “action” request parameter (as was common in
the day). Much SQL and not too little HTML was all embedded within this
behemoth script. This was my first PHP application, and the last to utilize
such a routing mechanism.
Within a year I wanted to write version 2.0 of the application. I had learned
about Smarty templates and just enough MVC to be dangerous. This
led me down the path to more MVC (and patterns! of course) and the important
lessons of separation of concerns. My voracious apetite for learning and
fervent desire to Do it Right™ caused version 2.0 to suffer from what I now see
was a case of the second-system syndrome.
It took nearly two years to finish.
When it finally did ship, I had moved on from my employment at that
institution, and had nearly finished a year of graduate school in the
mathematics department at the University of Kansas.
I never really finished that year of graduate school. Turns out…I’m not
that great at math. Instead I began to look at ways of getting full-time
employment in tech, but not in programming.
I began the process of becoming recertified as a CCNA with a goal of
ultimately becoming a CCIE. I even went so far as to trawl eBay looking for
old Cisco routers and switches to build my networking lab. (I’ve since gotten
rid of all of the equipment: two 2501 routers, a couple 2600 series routers, a
T1 modem, and a couple of Catalyst switches—along with all the attendant
cabling). This led me to apply for a position with a company in Wisconsin
called Berbee Information Networks—since acquired by CDW. I went
through a few phone interviews and was flown out to one of their offices in
Madison, WI for an on-site interview. Two weeks later they informed me I didn’t
get the job. The same day, I had an interview for my first full-time
programming gig in Wichita, KS at a small tech company—since acquired
There I came into contact with the Zend Framework 1.0.x and started reading
programming blogs including Rob, Matthew, Pádraic, Jani, and Jeff to
name a few. At this job I did mostly internal-facing apps such as systems for
managing ER patient chart coding and billing and torque tool
calibration/certification tracking. After almost four years, though, I was
looking for new challenges and to be nearer to members of my family
living on the east coast. That brought me to my current position at a small
university in the Shenandoah Valley in Virginia.
The PHP community has been good to me.
Before PHP I spent many hours during high school learning C/C++, but PHP was
the first language that let me really do something without a lot of
frustration. It was the first language that taught me patience when developing
and gave me a real job. Now that I’ve been programming in PHP for 10 years (7
years full-time), it’s more than once per week that I want a more strongly
typed language, but I’m glad PHP was flexible enough for a beginner to get some
work done without a lot of hassle.
I’m excited at what the future has to offer for PHP 7.
Yes, AA asks that you believe in a higher power. I call that higher power god
because that’s what works for me. Not a Protestant god. Not a Catholic god.
Just a god that loves me unconditionally. It took me a little while to get to
that point, but I could get with that idea. My concept is simple: There is a
god, and I’m not it. That’s the construct I came up with shortly after I
arrived, and it’s still serving me well today. My god and your god aren’t the
same. And that’s totally fine.
That struck me, particularly as I’m now reading Karen Armstrong’s
A History of God.
Reading about the history of what we mean when we talk about “God”, leads
me to the conclusion that we don’t need to agree on what we mean by
“God” in order for that concept to have a very profound (positive)
impact on our lives. The beginning of this realization for me is the thought
that God isn’t something “out there” but is literally everywhere.
From that you proceed to the idea that God is inside of all of us. (And
thence to the idea, perhaps, that we—and the whole cosmos—are
really just God playing hide-and-seek from godself.)
Each of us has a totally unique experience of God. Reading Armstrong’s
work drives home the idea that this is something that virtually all religions
have understood at one point or another. More recently, however, there’s
greater emphasis on objective experience of God.
This is something I’ve believed for a long time now, but only now am I
beginning to understand what this feels like at a gut level. I’m sure I
have a lot more (self) work to do on the road to more understanding about the
implications this truth has.
This work-around comes from comment #15 on the Bugzilla page. However, you
cannot use it as is because as coded it omits the double quotes around
the ETag. Credit for the correct work-around goes to this unselected answer
to this Stack Overflow question.
Since PHP 5.3 it has been possible for memory occupied by objects having cyclic
references to be reclaimed via the new garbage collection feature. However,
there is a case in which the garbage collector does not appear to be able to