PHP: Magic Methods

I love PHP; I really do. But I have caught saying, “PHP lies” on more than one occasion. (One of my Java counterparts at work loves reminding of any such declaration.)  These statements are usually the result of some sort of odd, inconsistent or just plain poor naming choice in the language.  Magic methods are not an example of this; I find them to be very appropriately named.

Fun fact about me. I used to do magic… card magic to be precise.  Nothing professional, just enough to help me through the social awkwardness of the middle and high school years. I liked cards because they were easy to come by and I didn’t need a stage or an elaborate setup to “dazzle and amaze” those around me.  I was no Copperfield, but to make sure I didn’t make a fool of myself, I had to truly understand Continue reading


That escalated quickly…

Well, that escalated quickly….

New house, new job (involving a platform rewrite), daughter in her senior year… I’m not even sure where 2015 went! Here I am, almost a year after I started this blog with nothing but my first post to show for it. Lame.

The good news is that I’ve learned a lot this past year. I’ve got some Symfony2 experience under my belt. I’ve helped design and lay the application groundwork that has boosted the productivity of an amazing team of developers giving us what is looking like a very sustainable platform. I can say with confidence that I am no longer a git novice. I’ve done more server administration than I ever thought I would do. I’ve even dove into the deep end of release management and managed to stay afloat.(Thank you, Jenkins!)

Somewhere in there, I let people in the @SoFloPHP group convince me to give a local talk… and then I let them somehow convince me to submit it for @SunshinePHP! I’m actually lucky enough to have been selected to speak. So that’s happening in a few days… woot!

I’m back to try this again. I’m hoping this time it sticks. We’re approaching our production launch at work, so it’ll just get easier after that? Right? (It’s okay to lie to me.)

Unrealized Burdens

For as long as I can remember, I’ve been subject to occasional insomnia due to unsolved problems. My brain just doesn’t like to leave them that way. I’ve also been subject to stress dreams which tend to hit me… well… when I’m stressed. No earth-shattering revelations here! I’m pretty sure most programmers can relate… As a matter of fact, I’m pretty sure this translates pretty well to all walks of life.

By this point in life, I’ve learned to mitigate these issues with some meditation techniques that I’ve picked up over the years.  I have been very successful with these techniques, and I highly recommend them to aid with this sort of thing. Some nights, however, are just too intense. Try as I might, I just can not calm my mind enough to sleep. Last night was one of those nights. It was so bad, that I ended up out here, on my laptop, with full intent to write a blog post about it at 4:00 AM. Instead, I read the internet. But I’m here now!

Truth be told, last night was not a unique occurrence of late. Although, it was the most severe case, I’ve been struggling with it quite a bit over the last week or so… especially in the stress-dream area. What’s different lately, you may ask? Well, I’m between jobs right now… and I mean that quite literally… Yesterday was my last day at my previous job and tomorrow is my first day at the new one. I had been at my previous job for almost 10 years. I hear that such a tenure is somewhat unusual these days, but I had always been given the opportunity to grow there, so it just worked out that way. It also turns out that it is really hard to walk away from an environment in which you are consistently surrounded by talented developers. By the time I left, my title was “Software Architecture Manager”. It looks very fancy, but what it really means is that I was responsible for making sure the different software layers, crossing various languages, were all trending in the same direction. I spent a lot of time at the white-board and in meetings trying to guide the designs in a way which would allow us to remain flexible enough for the (often unpredictable) future customization request. I also got the pleasure (no sarcasm intended) of being the caretaker of a proprietary PHP application framework that I had heavily contributed to over the years.

So it turns out, that’s pretty stressful. Now, I’m not out for a shred of pity. I embraced that environment and I had mountains of help from some some very talented colleagues. The interesting part about it… and the part which has spurred this post… is that I don’t think I realized how stressful it was while I was in the midst of it all. That makes me wonder… how many of us live with these unrealized burdens every day?

Another interesting tidbit is that the dreams have been increasing over the last two weeks, yet my stress has been steadily decreasing since I started handing over my responsibilities. I had to force myself to let go of the design decisions; I had to convince myself to be less invested in the meetings. This, very necessary process, inherently lessened my burden.

This seemingly inversely proportionate response is a bit confusing to me. My burden was lessening, why were the stress-dreams increasing? Is it possible that as the stress decreased, my brain realized what has always been there and is trying to process them? The dreams themselves were stressful, so was my brain trying to manufacture a feeling of stress to fill in the increasing void?

At the end of the day, I may never really know what has been causing the dreams, and it doesn’t really matter; they’ll pass like stress-dreams always do… But what does matter is that I was obviously under much more stress than I had been aware of. This is something I definitely need to watch out for as I grow; I cannot possibly expect to manage stress effectively if I don’t even know it’s there!

Hello, World!

Having finally set up a blog, I find myself struggling with an introductory post… so I’ve decided to start in the quintessential programming way…

Hello, World!

There! Now that I have that out of the way, I can start with the fun stuff. If you’ve read my about page, some of this post is going to seem redundant… but talking about myself and the motivations behind this blog seems like a good place to start.

My name is Chris Russell and I’ve been a professional programmer for just about 10 years. My main focus has been on PHP, but I view myself as more than just a “PHP guy”. Sure, I’ve done my share of JavaScript and have been known to code in Java from time to time… but really, I just love general programming concepts… the kind that transcend specific languages.

Over the last couple of years, I have become increasingly involved in my local PHP usergroup (@SoFloPHP). I was first introduced to the group when my workplace signed on as a routine venue with the local organizer (Adam Culp). At the time, my visits were really just limited to “the guy who stayed after work when the other guy couldn’t”… I was truly intrigued by the concept… a bunch of “strangers” getting together, on their own time, to listen to another stranger talk about something. Intrigued or not, I was always “too busy” to actually attend. (Shame on me!)

The group moved on as they outgrew my work’s 25-person conference room… I still followed them on Meetup and often said, “Ooh, that sounds interesting!”… and then came up with some reason why I couldn’t go. Eventually, I received an email from Adam asking if my work could step in and help out again while their usual venue ironed out some kinks. I graciously agreed… By now, I had taken over as as architect at work and I was the “guy who stayed”. So I stayed… and I observed… and I even spoke up every once in while. Thus, my actual participation in the community had began.

Sometime during all of this, a member/co-organizer (Diana Espino) of the usergroup joined my work’s PHP team. Over time, she tried to convince me that my thoughts and ideas had value to the community. It was a while before I actually believed her, but my first usergroup conference (@SunShinePHP 2014) completely changed my perspective. (All I can truly say to summarize the experience is, “Go to a usergroup conference!“)  It really was a turning point for me. As I had casual conversations with people, I learned that I had some truly unique perspectives and that other people found value in them. Oddly, this was a revelation for me. I had always put extreme value in other people’s perspectives, regardless of their comparative experience level… but I had never really considered that my perspectives had value to them. (I still often doubt it!)

Flash forward to my second conference (SunshinePHP 2015), earlier this month. After a solid year of routine usergroup meeting attendance, I felt like I had grown so much. My interest in participating had intensified. I’d even convinced myself that I should give some sort of talk for one of the local meetings. (But I have been, to this day, too busy to prepare one. Shame on me again!) This year’s conference stoked that fire… coming out of that conference I was convinced that this was the year I was going to become truly involved… among my goals was to start of blog. And, hey!… what do you know? I actually found the time!

It took me a while to decide on a title for the blog. Even thought it is most likely going to contain a fair bit of stream-of-consciousness-style ramblings, I wanted it to have a focus… a theme. Now, I’m not naive enough to believe that my way of thinking is some sort of “absolute truth”… I know I have an massive amount to learn about the programming world… but I’ve also gained enough confidence to know that my decade of experience (most notably, the mistakes I’ve made and witnessed throughout that decade…) has taught me some lessons worth sharing.  The question became, how do I summarize all of that and roll in my personal beliefs in the value of knowledge-sharing… then I settled on it:

Hello, World! My name is “Programming Perspectives”!

So here’s how this blog works. I’m going to throw out some thoughts… some more structured than others… hopefully, some people read those thoughts and find some value in them… heck, maybe they even share a link to a post with a friend or two… but what would be much, much cooler than “going viral” is if people share some thoughts of their own. If any of my posts spark an idea, start a conversation, or even inspire someone to expand (or counter) my thoughts in their own blog, then I’ll have truly reached my goal. We’re in this together… let’s teach one another!