A Journalist Codes: 4 Lessons Learned - InformationWeek

InformationWeek is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them.Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

IoT
IoT
IT Life
Commentary
12/23/2014
02:21 PM
David F Carr
David F Carr
Commentary
Connect Directly
LinkedIn
Twitter
RSS
100%
0%

A Journalist Codes: 4 Lessons Learned

A journalist who writes about software writes his own and finds out coding is not easy. In fact, easy is particularly hard.

8 Quiet Firsts In Tech In 2014
8 Quiet Firsts In Tech In 2014
(Click image for larger view and slideshow.)

This is the story of a writer who wandered into software development with no formal training in the craft. I like to think I have an edge as a journalist writing about software and systems because I have made all the mistakes, on a smaller scale, that enterprises have to avoid.

Once upon a time, I created my own content management system with PHP, MySQL, spit, and baling wire -- because, you know, how hard could it be?

I was smart enough to see that hand-coding HTML was a poor way to keep a website up to date, but all I really needed was a password-protected web form with one blank for the headline, a text area box for the body of the post, a submit button, and script on the web server to catch those submissions and write them to a database. Of course, I soon discovered the need for features for updating those posts, categorizing them, and composing them more easily. When I was creating a website for someone else, I would show them this wonderful thing I had created: see how easy this is! Often, they didn't seem to think it was easy. Easy turns out to be hard.

I plugged in a WYSWIG editor from a JavaScript library created by Yahoo and then had to write a bunch of data cleanup subroutines for the special characters that would be injected when someone copied and pasted from Microsoft Word. Eventually, it occurred to me that I had created something that was a nightmare to maintain. In the jargon of enterprise IT, I had created my own legacy system. Although my custom code behaved exactly the way I wanted it to, I was doing a lot of unnecessary heavy lifting, recreating things others had done better.

Banner image from the RSVPMaker download page.
Banner image from the RSVPMaker download page.

That's how I found my way to greater happiness as a WordPress plugin author, creating little bits of custom functionality layered on top of software people smarter than I have created. The one that has shown the most staying power is RSVPMaker for event management on WordPress. My latest is an RSVPMaker extension for Toastmasters clubs, which also has a software-as-a-service sort of incarnation as WordPress for Toastmasters.

I was a terrible computer science student in high school and college because the programs they wanted us to write for practice didn't do anything useful. I probably didn't give the college course a fair chance -- add/drop was my favorite part of college, and I bailed early.

The first computer program I wrote that did something useful was a text filtering utility I dreamed up while working as a reporter for the Waterbury Republican-American, which had drafted me as its network administrator when it first began to bring PCs and Macs into into the newsroom. With the help of a consultant, we managed to kludge together a TCP/IP connection between the Novell LAN to the DEC in the back room that drove the typesetting equipment. I got a book on C programming and came up with a tool for translating the typesetting machine codes into a markup language that could be imported into Quark Express, the desktop publishing program the editors and art department were just starting to use for page layout. I had an OS/2 batch script run in a loop, checking the edit queue on the DEC every few minutes and piping any new copy into that C program, which would write a translated version to a network folder. Crude, but it worked.

As someone who has been writing about the web since it began to emerge as a mass-market phenomenon in the mid-1990s, I soon discovered a new playground. For a self-taught programmer, the glory of the web is that everything you need to know about programming the web is on the web. Most of what I've learned has started by finding a tutorial with some example code and modifying it to suit my needs. Eventually, I began to understand the basics well enough to have some original thoughts. Publishing software as open source also provided some good learning experiences, as when users flagged security flaws in early versions of RSVPMaker.

Here are four things I have learned (and in many cases, still need to learn better):

Easy is Hard
I pride myself on my ability to communicate technical concepts clearly to both technical and non-technical readers, but when trying to explain my own software I often struggle to remember that how it works is not as obvious to everyone as it is to me. Of course, the goal these days especially is to create software that is intuitive, as in easy to use without documentation or training. That's why the programmers at Apple get paid the big bucks, right?

Mythic status aside, are you so sure Apple products are always easy and intuitive? I love my iPad but I'm sometimes mystified about how to perform any but the most routine tasks on it. Is Facebook easy, or do we put up with the ways that it is hard and confusing (and always changing) because our friends are there, and that makes it worth the effort?

I think WordPress itself is easy, but when I set up a website for other people and tell them they can administer it for themselves, often that doesn't go well. Instead of finding it easy, they are overwhelmed by the number of options on the administrator's menu and don't know where to start. A lot of things are easy, once you learn them.

Making things easy or easier is a worthwhile and never-ending quest. To the extent that people must invest some effort in learning something that's not easy, make sure the payoff is there for them.

APIs Simplify Life (Until They Change)
One of the benefits of building on a standard platform or tapping into common web services is all the code you don't have to write. I've spent many hours browsing the WordPress developer's documentation and every once in a while diving into the source code to see how some undocumented or

Next Page

David F. Carr oversees InformationWeek's coverage of government and healthcare IT. He previously led coverage of social business and education technologies and continues to contribute in those areas. He is the editor of Social Collaboration for Dummies (Wiley, Oct. 2013) and ... View Full Bio
We welcome your comments on this topic on our social media channels, or [contact us directly] with questions about the site.
Previous
1 of 2
Next
Comment  | 
Print  | 
More Insights
Comments
Newest First  |  Oldest First  |  Threaded View
David F. Carr
50%
50%
David F. Carr,
User Rank: Author
12/29/2014 | 9:44:31 AM
Re: Happy users
@jfeldman, what are the "good old days" in your book? I read it as a throwback to a time when you were experimenting with tech hands-on, rather than directing other people to do so -- but not sure if that's what you meant.

Anyway, thanks for your note.
David F. Carr
100%
0%
David F. Carr,
User Rank: Author
12/24/2014 | 10:59:51 AM
Re: Happy users
BTW, because this is an insider thing I should explain that @ChrisMurphy is referring to a screen scraper app that pulls in headlines and links from InformationWeek.com and sister sites like Dark Reading and formats them as suggested tweets, with the headlines and the author's @handle if we have it. Connects to the HootSuite API so social posts can be tracked and broadcast to multiple networks.
David F. Carr
100%
0%
David F. Carr,
User Rank: Author
12/24/2014 | 10:00:40 AM
Re: Happy users
Thanks, Chris. That's a perfect example of a pattern: I cook up something that makes life easier for me and works the way I want it to work, then look for opportunities to share it. I'm in good company there. When I saw him at Gartner, Woz said the early Apple computers were designed the way they were because that was the computer he wanted to own. A lot of good tech is created for selfish purposes.
ChrisMurphy
100%
0%
ChrisMurphy,
User Rank: Author
12/24/2014 | 9:18:45 AM
Happy users
You should give yourself some more credit, Dave. The ultimate test of software is happy users, and the tool you whipped up to make social media sharing easier for your colleagues has done exactly that!   
David F. Carr
100%
0%
David F. Carr,
User Rank: Author
12/23/2014 | 3:01:32 PM
Re: Baling wire
Many a time I've wished I could have a crack at it.
Laurianne
100%
0%
Laurianne,
User Rank: Author
12/23/2014 | 2:55:07 PM
Baling wire
Our current CMS could use some baling wire now and then, Dave, as you know.
InformationWeek Is Getting an Upgrade!

Find out more about our plans to improve the look, functionality, and performance of the InformationWeek site in the coming months.

News
Pandemic Responses Make Room for More Data Opportunities
Jessica Davis, Senior Editor, Enterprise Apps,  5/4/2021
Slideshows
10 Things Your Artificial Intelligence Initiative Needs to Succeed
Lisa Morgan, Freelance Writer,  4/20/2021
News
Transformation, Disruption, and Gender Diversity in Tech
Joao-Pierre S. Ruth, Senior Writer,  5/6/2021
White Papers
Register for InformationWeek Newsletters
2021 State of ITOps and SecOps Report
2021 State of ITOps and SecOps Report
This new report from InformationWeek explores what we've learned over the past year, critical trends around ITOps and SecOps, and where leaders are focusing their time and efforts to support a growing digital economy. Download it today!
Video
Current Issue
Planning Your Digital Transformation Roadmap
Download this report to learn about the latest technologies and best practices or ensuring a successful transition from outdated business transformation tactics.
Slideshows
Flash Poll