Archive for the 'Rants' Category

I am not my ideal audience (sometimes)

Thursday, July 15th, 2010

Know your audience. Easily the best advice I’ve heard as a writer from the likes of Merlin Mann and John Gruber, but I am  just now realizing that I’ve been too simplistic with my interpretation. I’ve known that I needed to imagine this individual at the other end, but I didn’t fully recognize until now that I’ve been mentally shifting audiences as I move between the blog and the book; it’s honestly been driving me a little crazy.

I love to write blog posts because my ideal reader is a clone of me on the other end. I enjoy my writing style, and I like most of my jokes. I would probably read my blog, except that sometimes I get a little long-winded and I would need Instapaper to help me finish the job on my couch. I also write really long sentences. Somehow, I thought this great feeling would translate to my book.

Unsurprisingly, writing the book has felt much more like slow torture because… well, because I don’t actually enjoy reading it as much. For one thing, I’m not nearly as snarky or personal. I have no illusions; most readers of my book have probably not seen every episode of She Spies and don’t really care how clever I think I am with obscure references that could shame Dennis Miller. On top of that, I’m (obviously) writing mostly about junk I already know. I’ve learned a lot while writing, but I’m still pretty exhausted with TypoScript conditionals before I ever start typing that first draft. At this point, reading thirty pages on browser-checking and boolean logic sounds like hell as a reader.

Here’s my great revelation, though: It doesn’t matter. I am not the ideal reader of my own book in this case. This is my ideal reader:

A combination of Andy Ihnatko and the version of me from four years ago. Technically, my goal is to teach all the stuff that I wish I could have easily learned from one (hopefully) well-written book when I first started TYPO3. In fact, I wish I had understood a lot of this just six months ago, but I already explained that I’m researched-out and sick of this knowledge at this point. As far as my voice, I would like to entertain Andy Ihnatko. In my imaginary world, Mr. Ihnatko decides to give up his career as a freelance journalist and pursue the much less stable career of a freelance web developer. Naturally, he picks TYPO3 as a good platform (he has good taste) and goes looking for the best book on templates that he can find. When he finds out the best book is probably written in German, he buys my book instead. Obviously, he enjoys my book immensely after reading it and recommends it on MacBreak Weekly even though it has nothing to Apple. I enjoy Andy Ihnatko, and I think he would appreciate my subtle sense of humor. As a bonus, he seems generally congenial, and I don’t think he would mind too much if my book wasn’t perfect. I love John Gruber and Merlin Mann, but I would be afraid to show them my slightly-flawed writing efforts. Andy would probably at least humor me and still get something out of it to help him build his new business as a hot shot developer.

Anyway, that’s my ideal reader, and I’m learning to be okay with the fact that it isn’t me. If I have to explain something a little too much, I resolve to stop getting frustrated. I’m writing to the version of me that didn’t know TYPO3 that well and the imaginary Andy Ihnatko that is becoming a TYPO3 developer; I’m pretty sure they appreciate the extra explanation of data structures that I added to the end of that last chapter.

I will not debate PHP vs. Ruby

Wednesday, January 20th, 2010

I am a PHP programmer. I have been a PHP programmer for most of a decade. My license plate says “PHP DEV”, and I have PHPUnit tattooed on my arm (in Kanji). It is with that overly-defensive attitude that I must admit the inevitable: my latest project is in Ruby.

Shock. Awe. I know. It was an easy decision based on the server stack we were running, our growth plans, and the fact that we needed to train intern developers with a very quick turnaround. We went with the sexy newcomer, but that’s not the interesting story. The interesting part is that it wasn’t a big deal at all. With good frameworks, it didn’t really matter what language we chose.

Part of the reason that I love frameworks so much is that dropping from CakePHP to Ruby on Rails is a syntactical change and not a process change. In a way, frameworks are just enforced design patterns (MVC, mostly, in my case). Plus, playing with a different language after all this time away has been great experience. This jaunt into the land o’ pure object-oriented madness and strict coding rules has made my PHP coding (especially CakePHP) better. I have new appreciation for fat models and thin controllers, and I throw in the ternary operator more often. On top of that, I’m getting to teach people (like my friend Neil) who have never really done web development on this level. Through teaching others about MVC architectures, I’ve gotten better.

So, I’m still a PHP developer. It’s the basis for 80% of my work projects and all of my freelancing.
I’m having fun, though, on the other side. Stretching my PHP skills, adding to my toolbox, and remembering that I was just a better programmer when I couldn’t rely on ten-year old knowledge.

The Vendor-Client Relationship

Tuesday, June 23rd, 2009

(via Phil Cooke)

Brain Naps

Thursday, February 12th, 2009

brain_nap.jpgI watch documentaries to learn. I watch great action movies for entertainment and escapism. I watch a handful of very special movies and TV shows for a higher purpose, though: the elusive “brain nap”. A brain nap is the closest thing you can experience to actually turning off your brain. I may dream of PHP code and bad data structures, but put me in front of an old She Spies episode and I will think about absolutely nothing.

My best brain naps normally involve the aforementioned She Spies, Freakazoid!, UHF, or basically any Sci-Fi original movie. The key is it has to be stupid enough not to require your brain, but not so dumb that you start thinking about how bad it is. You’re not trying to start an internal Mystery Science Theater 3000 monologue about the dumb actors because that is what we call counter-productive. That movie may just seem stupid, but it has to be wily enough to get around all of your brain’s guards and attempts to “think things through”. It has to appear innocent while it lays it’s trap.

Mansquito (on Sci-Fi at 3am): “Hey, Jeremy’s brain, I know you’ve been spinning on all cycles to optimize those database queries for some obscure use case, but why don’t you just take a break. Let me take over an hour. Maybe two.”

Jeremy’s Brain: “No. I suppose I can try to relax a little, but I can’t just trust you to take over completely. I’m pretty important around here. There’s a lot of things I need to— Stop rubbing my shoulders, Mansquito. I have a lot to do and— okay, that’s the spot. Maybe five minutes.”

Mansquito: “Five minutes? That’s fine. I mean, I just want you to release that stress, brain. How’s that? Would you like a drink? I happen to have some merlot over here.”

Jeremy’s Brain: “No. I mean, I guess one glass wouldn’t hurt. Um, Mansquito? This wine tastes kind of funny. In fact, my head’s starting to—”

And that’s it. With it’s hypnotic, rohypnol-esque badness a Sci-Fi original movie takes over my higher functions and knocks my brain out for two hours. As the credits roll at the end, my brain starts to come around. After an awkward silence, I get up and my brain realizes it feels more energized. It’s recharged. It just woke up from the best nap it’s ever had. I run back to the computer, optimize those queries like nobody’s business, and get started on the next big thing. Eventually, my brain will start to remember a few fuzzy scenes of genetically altered mosquitoes, but we never really talk about it. The “brain naps” may be my only secret to sanity, and we both know they are uncomfortably necessary.

Relevance gone bad

Thursday, September 11th, 2008

I have no words…

[via PhilCooke.com]