One year at the Statesman

April 16th marked exactly one year since I started working at the Statesman.  It seems like just yesterday that I was observing six months.  Time flies when you’re juggling a dozen projects and multiple deadlines.  I can’t say that I’ve learned too many new things in the past six months, but I have deepened my knowledge of topics that were already in my bag of tricks.  And of course we built and/or launched some new features.

Shiny, happy features

These are just the highlights of the past six months.  Obviously we did a lot more than four things, but a lot of it was behind the scenes.  For example, I set up a new Web server and moved ten of our external sites over to it.  You didn’t notice?  Perfect.  Anyway, the high points were:

On the horizon

The next three months or so will be extremely busy with at least four sizable projects in the works as well as a dozen or so little ones.  There’s never a dull moment at the Statesman.  Sorry, I can’t say anything more about the upcoming stuff until it launches.  You’ll just have to stay tuned.

Challenging times

It’s no secret that many newspaper companies are struggling to adjust to changes affecting the industry.  Some of these changes are cyclical while others are sadly systemic.  I often joke that we share a morbid problem with tobacco companies: our customers are dying.  The obvious difference is that newspapers don’t kill people, but we still have to find new readers somehow.  A lot of very savvy people are working on these problems day and night, but the outlook still isn’t too good in the near term.

The Statesman (like many McClatchy papers) has undertaken some cost cutting measure in the past several months.  The paper is narrower now and has fewer pages to save on newsprint.  During the current hiring freeze, several people have left the newsroom and not been replaced.  Recently we’ve seen a couple involuntary layoffs.  While I’m confident that we will emerge from this in a strong position, I’m not sure what the company will look like or how many people will be left.  At least for now, I feel like my job is safe.  However, in these turbulent times I’ll close with a classic Magic 8 Ball response: “Ask again later.”

Sphere: Related Content

Slash and learn

One thing I’ve noticed in all of my Web jobs (four so far) is that my job title does not even begin to capture what I actually do.  I imagine this sort of thing is somewhat universal and definitely not limited to Web work, but I’ll focus on that since it’s what I know.

So what do I mean by “slash and learn”?  Let me illustrate by example.  My official job title is Web developer.  A far more accurate job title would be the following:

Web developer / database administrator / search engine optimizer / social media marketer / Linux administrator / database designer / information architect / project manager / vendor whisperer / wannabe Web designer /  JavaScript ninja-in-training / young grasshopper in a dozen other areas

See all those slashes?  Some people would recoil in horror at a list that long, but I actually enjoy the mix of responsibilities.  I love to pick up a book or tinker with a new technology to add another slash to my unofficial job title.  Slash and learn, baby!  I suppose it’s no accident that I’ve gravitated toward smaller shops where I can take on a lot of different challenges.  Constant learning is a plus in my book and so I love what I do.

There is a downside of course.  Most notably I don’t consider myself a true expert at anything that I do.  Some of this is probably due to relentless self-deprecation and being my own worst critic (aren’t we all?), but I really think there’s some truth to it.  The good thing is that whenever I reach the limits of my current knowledge of some topic, I usually know somebody who can take the baton (or at least point me in the right direction).

If I worked at a large company, I would probably end up specializing more than I like.  However, I appreciate the people who do work at those large companies because they’re usually the specialists I turn to when I get stuck.  All my friends at McClatchy Interactive certainly come to mind.

So what’s your official job title and what would be the unabridged version?

Sphere: Related Content

Northwest Ski Map launched

Well, we met our deadline yesterday and launched (drum roll…) the new Northwest Ski Map.  It was a fun project using an external data feed of 28 resorts from the Idaho Ski Areas Association, the Google Maps API, and the Zend Framework.  It came together rather quickly, but I think it turned out pretty well.  Now I just need to get out there and do some skiing myself.

You can definitely count on some more mapping projects in the future.  We’re just scratching the surface at this point.

Sphere: Related Content

Getting a feel for the Zend Framework

My job lately has been an interesting mix of grunt work and cool new stuff.  The former is inescapable and has to be done, but I obviously enjoy the latter a bit more.  One item I’m relishing is finally getting my hands dirty with the Zend Framework.  A little background first…

The writing on the wall

I’ve been programming in PHP for more than five years and I’ve coded some rather large projects completely by hand and from scratch.  I sort of take pride in that I suppose, but I also realize it’s not a very sustainable way of working… especially in a fast-paced environment like a newspaper.  Sure, I’ve built up a library of reusable functions and classes, I have my own standard file structure and naming conventions… the whole nine yards.  But my own methods have a couple of significant drawbacks.  The first problem is that things start to get unwieldy when a project grows to about 30 or 40 different views.  This may not be a problem on most projects, but scope creep is always lurking and software has a tendency to expand over time.  The second problem is that my methods are rather ad hoc and difficult for other people to fully grasp without a lot of time spent getting up to speed.  This is probably very similar to how I feel when I inherit somebody else’s wacky code base.

A better way

So I started looking around for something that would be more scalable and that would adhere to some widely accepted architecture… probably MVC.  At the same time, I didn’t want a solution that was all-or-nothing.  On small projects I wanted the freedom to cherry pick what I needed from a framework and jettison the rest.  Obviously that disqualified most of the usual suspects like Ruby on Rails, Django, CakePHP, Symfony, etc.  I decided to give the Zend Framework a spin and see what I thought.

Cannonball!

Last week I started testing the waters and using a few classes like Zend_Config, Zend_Db, Zend_Mail, and Zend_Validate.  My original intention was to dip my toes in the water, but I ended up just going ahead and jumping in with the full MVC framework and the whole shebang.  It’s a relatively small project (for now) that is completely scoped out and technically very feasible.  The deadline is Thursday (yeah, this week).  Despite my 5+ years with PHP, I’ve never done anything with an MVC architecture so I’m reading pages and pages of documentation online and figuring it out as I go.  Fortunately the docs are good and the ideas are fairly intuitive once I get my head around them.

It’s strange to feel like a newbie again, but that’s what Web programming is all about: constant learning and adaptation.  Stop learning and the Web world will pass you by in a hurry.  Anyway I should have quite a bit more to report later this week.  Wish me luck.  If nothing else, it will be educational…

Sphere: Related Content

Six months at the Statesman… and counting

Yesterday marked six months since I started my job at the Idaho Statesman and I must say the time has flown by. I have probably learned more about the news business than I have about Web development, but I fully expected that to be the case early on. That’s not to say I didn’t learn some new Web tricks though. I’ve mastered many of the ins and outs of the McClatchy Interactive publishing system that runs our main site and I’ve also picked up the basics of Drupal development for our new Voices community site. In addition, I have scratched the surface of jQuery and dabbled a bit in the Zend Framework for PHP. My Linux and MySQL skills are being used every day, but I don’t think I’ve really learned anything new in those areas.

I want to thank the Academy

I’d like to share a list of accomplishments for the first six months. Please bear in mind that most items on this list were a group effort not just within our online team, but also involving the staff at McClatchy Interactive, our resilient vendors, and often my counterparts at other McClatchy papers like Anchorage and Fresno. Don’t worry. I’ll spare you the “shoulders of giants” speech. Here is the list:

There were many other smaller projects that I worked on, but these are definitely the highlights. Story commenting has probably been the most interesting for all of us. We launched the feature about six weeks ago and we have roughly 6,500 comments on 1,000 stories by 1,400 different people! This is far more than anybody expected and the pace is still increasing each week. It is not without its challenges, though. I have created a rudimentary profanity filter using regular expressions, we are employing Drupal’s spam module, and a healthy dose of human moderation is also in the mix to catch the innuendos that computers can’t identify. For the most part people have behaved, but the conversation does get heated quite often and many of our reporters have had to become a little more thick-skinned. Overall, though, it’s been a huge success.

And now the music is playing

I should wrap this up. I will probably make these updates more frequent - every three months seems reasonable. We have quite a lot on the horizon including a new search plugin, user submitted photos and video, and several custom mini-sites that I’m not at liberty to discuss until they launch. I would hate to tip off the competition. ;) So look for another round-up of Web news in January if not before.

Sphere: Related Content

JavaScript and PHP posts in the works

I’m back from North Carolina now and I haven’t forgotten my pledge to analyze and review the major JavaScript frameworks.  I’m also very intrigued by the Zend Framework for PHP, so I’m planning to discuss that as well.

On a personal note, we just closed on the purchase of a house this morning, we’ll be moving this week, and our second child is due to be born next month.  So blogging may take a much-deserved backseat to life in the coming weeks, but I’ll get back into it soon enough.

Sphere: Related Content

PHP ain’t got no respect

PHP logoLately I’ve been reading about how PHP developers feel like second class citizens among programmers. Check out some of the comments on this SitePoint post. This sentiment of course is nothing new. The barrier to entry for people to use PHP is virtually zero. However, downloading some “kewl scripts” from the Internet and hacking them up does not make someone a PHP professional. Yet that is the impression among “real programmers” about PHP developers as a whole. I’ve said for a long time that PHP gives people more than enough rope to hang themselves: register_globals, gpc_magic_quotes, etc.

I’ve also written about the silliness of predictions of PHP’s imminent downfall. PHP is not without its warts, but it also supports a vibrant ecosystem of frameworks (Zend Framework, CakePHP, Symfony, etc.) as well as high profile open source software (WordPress, MediaWiki, Drupal, ZenCart, etc.). I really doubt that PHP is going away any time soon.

One fact that is troubling is the slow adoption of PHP 5. Since it does break backward compatibility with several features of PHP 4, Web hosting companies have been reluctant to upgrade for fear of breaking thousands of their clients’ creations. Some companies like Dreamhost give customers a choice of PHP 4 or 5 on a per domain basis (an excellent idea if you ask me). PHP 5 really is a major improvement over PHP 4 and the reality now is that PHP 6 is on the horizon and promising even more improvements and new features. I’ll be watching the market share of the various versions closely in the next several months. One interesting tidbit for you: the Zend Framework only works with PHP 5.1+.

So what can be done to bolster the wounded egos of the world’s PHP programmers? Probably not much that will have an immediate effect. The long-term solution is to continue to innovate, collaborate, donate time to open source projects, and make application security a top priority. PHP has a reputation for security issues that is not entirely undeserved.

Fight the good fight one line of code at a time and don’t pay too much attention to self-important Java, .NET, and C++ programmers. Try to ignore the Rails devotees completely unless you want a good laugh. They say some funny stuff about PHP.

Sphere: Related Content

I am not a designer

Although I wish I had more design sense, I really don’t have it. Certain skills can be learned, but the truly great designers out there seem to have an innate ability that I’m lacking. Being naturally analytical and mathematically inclined makes up for this to some extent, but I often wish I could trade some of that for a little more artistic talent.

Since I don’t see this wish being granted any time soon, I’ve gone in search of ways to “artificially boost” my design sense including books, blogs, and online tools. I’m also trying to push beyond my current 1% mastery of Photoshop. All of this is slow going and I really don’t have much time to devote to it, but I’m hoping to make some measurable progress in the next few months.

This morning I added a little more visual interest to the site including a logo designed by my good friend Ben Leivian as well as feed and e-mail icons from the Silk Icons set. Then I used an online tool called ColorJack Studio to try to create a palette, but I think it needs some work. Not the tool itself of course, but my ability to make the most of it.

As I said before, this whole design thing is a journey and not a destination. I think I need to stop and ask for directions…

Sphere: Related Content

JavaScript libraries are like calculators for Web developers

Don’t let the zany title fool you. There really is a point to this post if you bear with me for a few minutes. Still here? OK, here goes…

I taught high school math for about five years, so I had ample time to observe calculators being used as a crutch. In some cases there was nothing I could do about it because the curriculum or standardized tests stated that the students were free to use them. However, when I had my way, I would ban them from the classroom… for a while. Why do you suppose I would do a crazy thing like that?

The main reason was that I felt (and still feel) that math students need to understand everything that is going on behind the scenes when they press a few buttons on their calculators. Whether it’s long division, solving a quadratic equation, or computing an integral, I believe it’s important to learn to do it by hand first. This gives students a far deeper understanding of mathematics and also is a great confidence booster to know that one can solve complicated problems with nothing more than pencil and paper.

Once my students had mastered a concept, I would let them use their calculators. My theory was that once a concept is understood, there is nothing wrong with automating it. One could choose to do it by hand, but that would be inefficient and silly. Unless, of course, you do mathematics for recreation (yeah, there really are people like that).

So what does this have to do with JavaScript libraries? The good libraries out there (Prototype, jQuery, mooTools, etc.) automate most if not all of the mundane tasks people used to have to do by hand. They essentially abstract away the nitty gritty details and, as Prototype puts it, “make JavaScript suck less.” People can now do very impressive things with just a few lines of code. Of course, being who I am, I want to know what the proverbial man behind the curtain is doing when I’m using cool stuff like the $() function.

In that spirit, I plan to take a behind-the-scenes tour of the three aforementioned libraries starting with jQuery. I will download the latest version, study every line of code, and read a lot of documentation along the way. As I go along, I will report my findings here. And when I’m done, I won’t feel guilty about using any of the libraries because I’ll understand how they work. Once a math teacher, always a math teacher…

Sphere: Related Content

Greetings from Idaho

During my unscheduled blogging hiatus, quite a lot has happened.  For starters we are living in yet another state.  Yeah I know… another year, another state.  This time it’s Idaho and we love it here.  The Boise area is truly a great place to live for young families and outdoor lovers.  It was not an easy decision to pack up and move again, but we’re confident that we’ve made the right choice.

The main push to come here was a great career opportunity for me with the largest newspaper in the state: the Idaho Statesman.  At this point I have a month under my belt as their Web developer and so far it’s a great job.  As many of you can imagine, it’s a very interesting time to be involved in bringing newspapers to the Web and I’ll definitely be writing more about the unique challenges and opportunities on this blog.

Until then, have a great weekend and visit some newspaper websites.

Sphere: Related Content

Next Page →