What I learned building my first news product, JuxtaposeJS



 

Just in time for last week's Online News Association Conference, Knight Lab announced the launch of JuxtaposeJS, a lightweight, easy-to-use, image comparison tool.

Any product launch is exciting and I'm excited to see how journalists use JuxtaposeJS to tell stories. But from a personal perspective JuxtaposeJS is more than just a tool — it’s the first tool I’ve ever built from start to finish. It was also my first major Javascript project and I learned a few things during its development.

I’m sure that most of these lessons are old news to a veteran software developer, but as someone who is now graduating from self-described beginner to self-described intermediate, these lessons seem worth sharing with other beginners:

Everyone is always talking about iterating for a reason

Start small and iterate. When I started building JuxtaposeJS (at the time, it was just “Before/After Slider Maker”) I had grand visions of how the authoring tool would look and all the bells and whistles it would include. But a front-end interface is not much use when you haven’t written any of the code for the sliders themselves.

I started first by displaying a red square and a blue square, then by changing the solid colors to be images. Over time I added features, fixed bugs, and moved on to the next problem.

For all I’ve heard about the power of iteration, I needed to experience it for myself to understand why the process works so well. If you are curious, you can see all of the changes that were made in Juxtapose’s development on its GitHub commit log (and while you are at it, fork Juxtapose and make it even more awesome).

Version control takes away the worry

Version control lets you break everything and not have to worry about putting the pieces back together. Whether it’s seeing how a radical design change looks or rewriting a large chunk of code in an ultimately futile attempt to fix a bug, using GitHub and making regular commits gives you so much flexibility in writing your code. In retrospect, I wish I had experimented more and taken advantage of Git’s ability to create project forks to try new things.

C'mon, you can do it

Challenge yourself. At one point early on, JuxtaposeJS was dependent on jQuery and it was working. I was really excited about this and when I showed it to Joe (Knight Lab’s Chief Nerd), he said “Great. Now see if you can make it work without using jQuery.”

I thought it was ridiculous to rewrite perfectly good code as an academic exercise. But by rewriting everything to be independent of jQuery, I not only improved my understanding of JavaScript, but also made JuxtaposeJS more lighter weight and easier to use.

Challenging yourself and trying things you aren’t comfortable with is the only way to learn new skills.

Integrating Flickr was a struggle for me because I didn’t totally understand how to deal with asynchronously calling an API and I was also (and, to be quite honest, still am) a bit confused about object-oriented programming in JavaScript. It took me a while before I realized that I needed separate Graphic and FlickrGraphic classes, which might not be the best possible implementation, but it works. The best solution is one you understand how and why it works.

A lot of this advice may sound familiar — I’d heard it many times before. It’s not new and it’s not that original. But the only way I could learn them, was to build a part of JuxtaposeJS, fail, and keep going. Which is the most important lesson, I guess. Build things. Build things. Build things. Build smaller things, then medium sized things, then bigger things. Because the only way these ideas ever start to actually mean something is by building things yourself.


About the author

Alex Duner

Student Fellow

Latest Posts

  • A Google Spreadsheets change affecting TimelineJS users

    Google recently changed something about their Sheets service which is causing many people to run into an error when they are making a new timeline. Note: there should be no impact on existing timelines! After this change, many of you click on the "preview" and get this message: An unexpected error occurred trying to read your spreadsheet data [SyntaxError] Timeline configuration has no events. There is a straightforward work-around, but it requires those of you who have...

    Continue Reading

  • How Americans think and feel about gun violence

    A man killed his wife, then himself. I want you to see his face and learn that he enjoyed fishing with his grandchildren. A small-time drug dealer is shot by two men in a parking lot. I find his Facebook profile and a photo shows him striking a playfully irreverent pose, giving the camera the middle finger. The photo’s comments take a mournful turn after a certain date. “Rest easy bro ???” Gun Memorial runs...

    Continue Reading

  • Software developers interested in journalism: Northwestern and The Washington Post want you!

    Northwestern University and The Washington Post are offering a unique opportunity for two talented software developers interested in applying their programming skills in media and journalism. Here’s the proposition: (1) a full-tuition scholarship to earn a master’s degree in journalism at Northwestern University, followed by (2) a six-month paid internship with The Post’s world-class engineering team, with the possibility of subsequent full-time employment. These opportunities are made possible by the John S. and James L....

    Continue Reading

  • What happened when Gun Memorial let anyone contribute directly to victim profiles

    If you’re reporting local or niche news, there’s a good chance that your audience collectively knows more about the story than you do. That’s especially true for us at Gun Memorial, a small publication with a nationwide mission of covering every American who is shot dead. In our latest, mostly successful, experiment, we let readers add to our stories without editor intervention. This article shares some lessons from that experience. Asking for reader contributions A...

    Continue Reading

  • How conversational interfaces make the internet more accessible for everyone

    This story is part of a series on bringing the journalism we produce to as many people as possible, regardless of language, access to technology, or physical capability. Find the series introduction, as well as a list of published stories here. In 2004, human-computer interaction professor Alan Dix published the third edition of Human-Computer Interaction along with his colleagues, Janet Finley, Gregory Abowd, and Russell Beale. In a chapter called “The Interaction,” the authors wrote...

    Continue Reading

  • Three tools to help you make colorblind-friendly graphics

    This story is part of a series on bringing the journalism we produce to as many people as possible, regardless of language, access to technology, or physical capability. Find the series introduction, as well as a list of published stories here. I am one of the 8% of men of Northern European descent who suffers from red-green colorblindness. Specifically, I have a mild case of protanopia (also called protanomaly), which means that my eyes lack...

    Continue Reading

Storytelling Tools

We build easy-to-use tools that can help you tell better stories.

View More