<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Andy Boyle</title>
	<atom:link href="http://www.andymboyle.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.andymboyle.com</link>
	<description>Andy Boyle is a bearded man who makes the internet and sometimes tells jokes. Currently a newsroom web developer at the Boston Globe.</description>
	<lastBuildDate>Tue, 15 May 2012 18:44:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Algorithms and journalisms, part two</title>
		<link>http://www.andymboyle.com/2012/05/15/algorithms-and-journalisms-part-two/</link>
		<comments>http://www.andymboyle.com/2012/05/15/algorithms-and-journalisms-part-two/#comments</comments>
		<pubDate>Tue, 15 May 2012 18:44:08 +0000</pubDate>
		<dc:creator>Andy Boyle</dc:creator>
				<category><![CDATA[journo web dev]]></category>

		<guid isPermaLink="false">http://www.andymboyle.com/?p=1089</guid>
		<description><![CDATA[Earlier I wrote a piece about using algorithms to help with your journalism, spurred on by this piece in Wired. Now I want to cover more the area that the piece mentions: Using algorithms to actually write stories.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.andymboyle.com/2012/05/15/algorithms-and-journalisms-part-one/"><em>For part one, click here.</em></a></p>
<p>Earlier I wrote a piece about using algorithms to help with your journalism, spurred on by <a href="http://www.wired.com/gadgetlab/2012/04/can-an-algorithm-write-a-better-news-story-than-a-human-reporter/">this piece in Wired</a>. Now I want to cover more the area that the piece mentions: Using algorithms to actually write stories.</p>
<p>I&#8217;ve actually written something that does this. It&#8217;s hosted on <a href="https://github.com/andymboyle/FireTracker">Github</a> and I&#8217;ve got a <a href="http://www.andymboyle.com/django-tutorials/">tutorial</a> for setting it up. I call it FireTracker.</p>
<p>This isn&#8217;t a <a href="http://www.holovaty.com/writing/fundamental-change/">new idea</a>, and I&#8217;ve written about it before. Yet only a handful of news organizations have anything like this set up.</p>
<p>The Los Angeles Times is probably one of the better known organizations that does this. <a href="http://projects.latimes.com/homicide/blog/page/1/">The Homicide Report</a> pulls in a spreadsheet, writes a basic story and posts it. It&#8217;s like a mad lib, or so <a href="http://www.twitter.com/palewire">Ben Welsh</a> <a href="http://www.youtube.com/watch?v=iP-On8PzEy8">describes in this awesome video</a>.</p>
<p><a href="http://projects.latimes.com/mapping-la/crime/">Crime L.A.</a> pulls in data and runs automatic analyses of every neighborhood. These were big data projects that news organizations used to do maybe once a year that can now be done as often as you want, as long as you&#8217;re receiving the data.</p>
<p>Clearly these projects are worthwhile &#8212; they are good journalism, they save journalist&#8217;s time and they give our audience more information and context. So why aren&#8217;t we doing them?</p>
<p>I would say the main problem is our newsrooms don&#8217;t have the bodies or the technological know-how. But in rebuttal, I bet 150 years ago we didn&#8217;t have many photographers or dark rooms at our offices, either. That didn&#8217;t stop places from setting up photo staffs, did it?</p>
<p>Journalistic web development is still young, but we&#8217;ve been putting our content online for almost 15 years. We need to catch up and start developing a product online that matches the times we&#8217;re in. This is not going to happen at our schools &#8212; although they will help somewhat &#8212; but we will have to teach ourselves.</p>
<p>If you&#8217;re a hiring manager and you have a few slots open for reporters, maybe you should look for people who are in the civic coder realm instead, like <a href="http://codeforamerica.org/">Code for America</a>. While I&#8217;m sure everyone wishes they had a few more reporters or editors, I would contend it&#8217;s a better business decision to invest in more web developers.</p>
<p>I view most of journalism as solving problems. You need to identify the guy was who was murdered, you need to know how much in donations that candidate received this quarter, you need to find an eye-witness to some awesome event. A web developer is just another person who can help you solve problems. Wouldn&#8217;t you want more around?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andymboyle.com/2012/05/15/algorithms-and-journalisms-part-two/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Algorithms and journalisms, part one</title>
		<link>http://www.andymboyle.com/2012/05/15/algorithms-and-journalisms-part-one/</link>
		<comments>http://www.andymboyle.com/2012/05/15/algorithms-and-journalisms-part-one/#comments</comments>
		<pubDate>Tue, 15 May 2012 16:27:51 +0000</pubDate>
		<dc:creator>Andy Boyle</dc:creator>
				<category><![CDATA[Daily Nebraskan]]></category>
		<category><![CDATA[journo web dev]]></category>

		<guid isPermaLink="false">http://www.andymboyle.com/?p=1078</guid>
		<description><![CDATA[This morning a story from Wired made the homepage of Hacker News. It was about a company that can take in data, run it through a program and spit out a basic news story. The company has been written about before, and when it first bounced around journalism blog-o-circle-sphericals I had meant to write something about it. This company is doing what we should be doing more of: Automation.]]></description>
			<content:encoded><![CDATA[<div id="attachment_1080" class="wp-caption aligncenter" style="width: 514px"><a href="http://www.andymboyle.com/wp-content/uploads/2012/05/andy-boyle-dn.jpg"><img class="size-full wp-image-1080" title="andy-boyle-dn" src="http://www.andymboyle.com/wp-content/uploads/2012/05/andy-boyle-dn.jpg" alt="Late night at the Daily Nebraskan" width="504" height="336" /></a>
<p class="wp-caption-text"></p>
</div>
<p>This morning a story <a href="http://www.wired.com/gadgetlab/2012/04/can-an-algorithm-write-a-better-news-story-than-a-human-reporter/">from Wired</a> made the homepage of Hacker News. It was about a company that can take in data, run it through a program and spit out a basic news story. The company has <a href="http://www.nytimes.com/2011/09/11/business/computer-generated-articles-are-gaining-traction.html">been written about before</a>, and when it first bounced around journalism blog-o-circle-sphericals I had meant to write something about it.</p>
<p>This company is doing what we should be doing more of: Automation. Journalists tend to do a lot of work on daily tasks that could be automated. I&#8217;m going to give you an example from my younger days as a reporter, something I&#8217;m sure many journalists can relate to.</p>
<p>It was early 2007, a year before that photo up there was taken. I was a cops reporter at the <a href="http://www.nytimes.com/2011/09/11/business/computer-generated-articles-are-gaining-traction.html">Daily Nebraskan</a>, my college newspaper. Three or four times a week I would head to the city/county building complex for crime information. First you would look through a a stack of overnight reports from the sheriff&#8217;s office and you&#8217;d note any interesting cases. Then the Lincoln/Lancaster County morning media briefing would begin.</p>
<p>Officers would hand you a print-off with everyone arrested overnight and a brief summary (less characters than a tweet) of the crime committed. The assembled reporters &#8212; from television, radio and print &#8212; would comb through the thick stack and ask questions about interesting crimes. The public information officer would look things up, read off arrest reports and give us information (They often had to do this for legal reasons, if I recall, because open investigative documents aren&#8217;t public. Hence the need for someone to read it to you). Sometimes the police chief would appear and tip us off to stories or give context. Someone from the sheriff&#8217;s office would wander in and do the same.</p>
<p>My job was to do normal stories that affected campus and students. But I also had to scan the list of everyone arrested and check for anyone who was 18 to 22, prime college ages. Mondays briefing was huge because it included information from Friday night through Sunday, prime collegiate boozing time. I would head back to the newspaper and start typing these names into the <a href="http://www.unl.edu">unl.edu</a> student directory and Facebook, seeing if I got a match. If I did, I&#8217;d circle them on my list.</p>
<p>Then I would sometimes hand the list to the sports department and have them scan the names for &#8220;important people,&#8221; namely athletes. If there were any, I&#8217;d note the name.  I would then call the public information officer and ask about each case. The officer usually had listed whether they were a student or not, as that would be listed as their occupation. This was a nice way to double-check these were indeed students and thus worthy of our coverage.</p>
<p>I&#8217;d take the information and either write up individual full articles or throw them into a cops brief column, attempting to get comment from the students. I did this daily. So did/does someone at the <a href="http://www.journalstar.com">Lincoln Journal Star</a>. So did/do probably thousands of journalists across the country.</p>
<p>And it&#8217;s incredibly inefficient.</p>
<p>Almost everything I did to identify people on the list was something a computer could have done. Instead of an hour of my time, a computer could do it in 10 seconds. It could give me a list of everyone whose name and perhaps date of birth information matched and other information we entered in about them. Then I could still do my reporting and writing, some of which can&#8217;t be replaced by an algorithm, but I&#8217;d have taken a bit of the hunting and scanning aspect out of it.</p>
<p>These are the steps to follow at your news organization in order to do this:</p>
<ul>
<li>Daily data from the police department in a format I could ingest</li>
<li>Enter the &#8220;important names&#8221; into a list</li>
<li>Writing a program to match the names and also find people college-aged</li>
</ul>
<p>I think the first part would be the hardest. But maybe not in Lincoln, as their police chief was one of the data-savviest people I&#8217;ve ever encountered in my life. Tom Casady, now Lincoln&#8217;s public safety director, <a href="http://lpd304.blogspot.com/">has blogged for years about data</a> and other musings. He once gave me about 10 years of geocoded crime data for free. You won&#8217;t find many heads of departments like him, I gather.</p>
<p>Convincing your public safety officials to get you this data will take some time and some tact. You could present it as a cost-saving measure &#8212; less printed pages means less cost to their department (unless they&#8217;re requiring your news organization to foot the bill, of course). But odds are they are already emailing <em>themselves</em> this sort of data. They just need to add your news organization to the list.</p>
<p>Finding the important names may be something you will have to undertake yourself. <a href="https://gist.github.com/2702793">From past experience in trying to set up something similar at a previous job in 2009</a> (wherein I failed to get the project going), you should just take initiative and build a list yourself. Add everyone you can think of, from city/county council members, important business persons, head of local institutions, sports teams, etc.</p>
<p>Lastly, you will need to write the program. This I can&#8217;t help you with. Thankfully, at least one news organization already does this and has brains you can pick. <a href="http://www.twitter.com/palewire">Ben Welsh</a> from the Los Angeles Times already did just this. <a href="http://www.youtube.com/watch?v=iP-On8PzEy8">He talks about that and lots of other awesome ideas in this amazing video.</a></p>
<p>Seriously. Watch that video if you haven&#8217;t. <a href="http://www.youtube.com/watch?v=iP-On8PzEy8">Do it now</a>. I&#8217;ll be writing a second post on this topic that he also touches on in the video.</p>
<p>What does a project like this do? It takes a bit of the daily grind off your back, allowing you to do other reporting. If I had done this project while I was still in college, I probably would&#8217;ve still attended the morning briefings. But even if it saved me an hour a day, that&#8217;s five hours a week, or 12.5 percent of your time. That&#8217;s a lot. In one year, five hours a week adds up to 6.5 weeks a year.</p>
<p>Wouldn&#8217;t you rather have that time to do other reporting? I sure would.</p>
<p><em>Have you tried this? Would you be willing to try it? What problems do you see that I don&#8217;t? Let me know what you think in the comments.</em></p>
<p><em>Photo by Jay Carlson, via <a href="https://www.facebook.com/photo.php?fbid=535716537773&amp;set=t.17202811&amp;type=3">Facebook</a></em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andymboyle.com/2012/05/15/algorithms-and-journalisms-part-one/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Stop Calling It A Blog, Please</title>
		<link>http://www.andymboyle.com/2012/04/02/stop-calling-it-a-blog-please/</link>
		<comments>http://www.andymboyle.com/2012/04/02/stop-calling-it-a-blog-please/#comments</comments>
		<pubDate>Tue, 03 Apr 2012 01:30:28 +0000</pubDate>
		<dc:creator>Andy Boyle</dc:creator>
				<category><![CDATA[journo web dev]]></category>

		<guid isPermaLink="false">http://www.andymboyle.com/?p=1042</guid>
		<description><![CDATA[News organizations, can we all do ourselves a favor? We should stop calling things "blogs." I know, that probably stings a little, but let me try and explain why.]]></description>
			<content:encoded><![CDATA[<p>News organizations, can we all do ourselves a favor? We should stop calling things &#8220;blogs.&#8221; I know, that probably stings a little, but let me try and explain why.</p>
<p>A little history first: In the early days of News Organizations On The Internet, your content went into a content management system. It was probably clunky (probably still is), hard to customize and maybe even harder to rebrand different sections. Your stories went into this CMS, sometimes through a pagination system, then you added a photo, maybe a video. You clicked a button and poof, story on the internet. But what if you wanted to set up a special corner, call it &#8220;Mary the Margarita Maven&#8221; and have someone review the town&#8217;s margaritas? Not so easy to do with your current setup.</p>
<p>Enter <strong>blogs</strong>. They were their own content management systems: Moveable Type, TypePad, WordPress, whatever they were called, they made it easy for news organization to quickly throw up different content that maybe didn&#8217;t fit the traditional &#8220;news&#8221; role. Maybe it was opinionated, maybe it was about inside decision-making processes, maybe it was cute cat photos. Or margarita reviews, whatever. These content management systems were, on the whole, like the ones your news organizations used originally, just programmed with different backends and usually easier-to-use. And sometimes this content didn&#8217;t go into the newspaper/broadcast &#8212; it was &#8220;online-only&#8221; and meant to entice people to your web product.</p>
<p>Sadly, blogs brought along a stigma that people still use  &#8211; which is wrong &#8212; that they&#8217;re done by people in their pajamas in a basement somewhere. Blogs are not the same as regular news content, some media folks thought, because they weren&#8217;t in your &#8220;main&#8221; CMS. They had a wall between them and they are different. They may even be branded differently, with a different header and logo. They weren&#8217;t the same as regular content because they were in a different system! Right?</p>
<p>Wrong.</p>
<p>It&#8217;s time to stop bifurcating your content as blogs and news because they run on separate systems. It is all content, so why not call it that? Even if you have outside people writing posts on your website that are unmoderated by your staff &#8212; that&#8217;s still content that&#8217;s part of your media outlet&#8217;s website. I don&#8217;t have any research proving this, but in my short journalism career many media outlets just slapped the name &#8220;blog&#8221; on something because it lived in a different CMS. We should stop this. Please.</p>
<p>You have a crime blog? A doggy blog? Maybe a sports blog? Wonderful! I bet you gave it a cool name, like Crime Watch, Fido&#8217;s Place and Sports Gal. All you have to do is stop calling it the Crime Watch blog. And the Fido&#8217;s Place blog. And the Sports Gal blog. Just say &#8220;Check out Crime Watch for more crime coverage.&#8221; Or whatever.</p>
<p>If it&#8217;s opinion content, call it that. If it&#8217;s news content, great! That&#8217;s what it is. Start thinking of it all as content as opposed to &#8220;this is a blog post&#8221; and &#8220;this is a news story.&#8221; If you copied a news story and pasted it into a blog post, <em>DOES IT SOMEHOW CHANGE?</em> No. It does not.</p>
<p>I know calling things &#8220;blogs&#8221; has some cultural cachet, as if a blog is somehow more up-to-date than your normal news content. But again, that&#8217;s probably because your main content management system is clunky and slow and the new &#8220;blog&#8221; is super duper fast. That&#8217;s a silly reason to distinguish between the content. Did you credit photos taken with digital cameras instead of film in a different way? Of course you didn&#8217;t (I hope). You can change people&#8217;s thinking on this &#8212; why distinguish one part of your content as fast and the other as slow? Stop it.</p>
<p>Let&#8217;s work on making our systems more integrated and faster. Help your readers come to realize that <em>all</em> of your content is fast and awesome. It&#8217;ll take some rebranding work, sure, but I bet our industry is capable of it.</p>
<p>So embrace your content, people. Give it a hug and a pat on the head and maybe a slice of pizza. Welcome it into your news community. I apologize for any rebranding you may have to do, but trust me, it&#8217;s going to be worth it in the long run.</p>
<p><em>UPDATE: Hey new visitors! Feel free to yell at me on Twitter (<a href="http://www.twitter.com/andymboyle">@andymboyle</a>) or comment below. I&#8217;d love to hear your thoughts. </em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.andymboyle.com/2012/04/02/stop-calling-it-a-blog-please/feed/</wfw:commentRss>
		<slash:comments>60</slash:comments>
		</item>
		<item>
		<title>Robin Sloan being hilarious about the new iPad announcement</title>
		<link>http://www.andymboyle.com/2012/03/07/robin-sloan-being-hilarious-about-the-new-ipad-announcement/</link>
		<comments>http://www.andymboyle.com/2012/03/07/robin-sloan-being-hilarious-about-the-new-ipad-announcement/#comments</comments>
		<pubDate>Wed, 07 Mar 2012 18:57:26 +0000</pubDate>
		<dc:creator>Andy Boyle</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.andymboyle.com/?p=1037</guid>
		<description><![CDATA[And my first time using Storify! &#160; [View the story "@robinsloan's time vortex to the #iPad8 announcement" on Storify]]]></description>
			<content:encoded><![CDATA[<p>And my first time using Storify!</p>
<p>&nbsp;</p>
<p><script src="http://storify.com/andymboyle/at-robinsloan-s-time-vortex-ipad8-announcement.js"></script><noscript>[<a href="http://storify.com/andymboyle/at-robinsloan-s-time-vortex-ipad8-announcement" target="_blank">View the story "@robinsloan's time vortex to the #iPad8 announcement" on Storify</a>]</noscript></p>
]]></content:encoded>
			<wfw:commentRss>http://www.andymboyle.com/2012/03/07/robin-sloan-being-hilarious-about-the-new-ipad-announcement/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Updating the blog</title>
		<link>http://www.andymboyle.com/2012/02/16/updating-the-blog/</link>
		<comments>http://www.andymboyle.com/2012/02/16/updating-the-blog/#comments</comments>
		<pubDate>Fri, 17 Feb 2012 01:50:01 +0000</pubDate>
		<dc:creator>Andy Boyle</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.andymboyle.com/?p=1007</guid>
		<description><![CDATA[Please ignore the mess. I&#8217;m updating my blog to a new design, so, it&#8217;ll look ugly for awhile.]]></description>
			<content:encoded><![CDATA[<p>Please ignore the mess. I&#8217;m updating my blog to a new design, so, it&#8217;ll look ugly for awhile.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andymboyle.com/2012/02/16/updating-the-blog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A few new Boston.com projects</title>
		<link>http://www.andymboyle.com/2012/01/13/a-few-new-boston-com-projects/</link>
		<comments>http://www.andymboyle.com/2012/01/13/a-few-new-boston-com-projects/#comments</comments>
		<pubDate>Fri, 13 Jan 2012 21:32:03 +0000</pubDate>
		<dc:creator>Andy Boyle</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.andymboyle.com/?p=971</guid>
		<description><![CDATA[We've launched some cool projects recently at the Boston Globe. So I thought I'd show my work and chat about a few recent projects in the lull between primary election nights.]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve launched some cool projects recently at the Boston Globe. So I thought I&#8217;d <a href="http://blog.apps.chicagotribune.com/2011/09/02/show-your-work/" target="_blank">show my work</a> and chat about a few recent projects in the lull between primary election nights.</p>
<p>In the past few months, we&#8217;ve launched <a href="http://www.boston.com/sports/football/patriots/wwbs" target="_blank">What Would Bill Say</a> and a <a href="http://www.boston.com/news/politics/2012/president/tracker/" target="_blank">GOP Candidate Tracker</a>, while also relaunching our <a href="http://www.boston.com/sports/football/patriots/extras/reportcards/2011week15/" target="_blank">Patriots Report Card</a>. All three of these projects rely heavily on Javascript and are among the first projects I&#8217;ve written in the language. I&#8217;m a <a href="http://www.andymboyle.com/django-tutorials/" target="_blank">Django guy</a>, so this front end stuff is scary. The design of these projects were done by my coworkers &#8212; I focused on the backend.</p>
<h2>Patriots Report Card</h2>
<p style="text-align: center;"><a href="http://www.andymboyle.com/wp-content/uploads/2011/12/Screen-Shot-2011-12-19-at-3.36.05-PM.png"><img class="wp-image-974 aligncenter" title="Screen Shot 2011-12-19 at 3.36.05 PM" src="http://www.andymboyle.com/wp-content/uploads/2011/12/Screen-Shot-2011-12-19-at-3.36.05-PM.png" alt="" width="466" height="251" /></a></p>
<p style="text-align: left;">This is <a href="http://www.boston.com/sports/football/patriots/extras/reportcards/2011week14/" target="_blank">week 14 of our Patriots Report Card</a>. This was a tool previous developers at the Boston Globe worked on. It runs in Flash and updates a MySQL database. Six weeks ago, we switched it from the <a href="http://www.boston.com/sports/football/patriots/extras/reportcards/2011week08/" target="_blank">previous version</a>. The new version reloads the page when you vote, and so we kept your voting information in the URL instead of saving it within the Flash program.</p>
<p style="text-align: left;">My coworker, the great <a href="http://www.tgirat.com/" target="_blank">Tom Giratikanon</a>, worked on the Flash part. I write the <a href="http://cache.boston.com/_webdesignready/2011/sports/report-card/report-card2.js" target="_blank">JS</a> that stores your vote in the URL and returns it so the Flash bits can use it, with an assist from Tom.</p>
<p>First a <a href="http://stackoverflow.com/questions/901115/get-query-string-values-in-javascript" target="_blank">regex I found</a> by Googling splits the various parts of the URL. Then a few variables are given the values from the URL and the SWF file. Lastly, it loads your new votes into a function called reportCardReload, so when you click the next button it reloads the page and keeps your vote information. I know, we don&#8217;t have to reload the page. But it&#8217;s what I was asked to do and I think it works nicely.</p>
<p>Not exactly the hardest thing in the world, but it was one of my first JS projects I did mostly on my own.</p>
<h2>GOP Candidate Tracker</h2>
<p style="text-align: center;"><a href="http://www.andymboyle.com/wp-content/uploads/2011/12/Screen-Shot-2011-12-19-at-3.56.12-PM.png"><img class="aligncenter  wp-image-979" title="Screen Shot 2011-12-19 at 3.56.12 PM" src="http://www.andymboyle.com/wp-content/uploads/2011/12/Screen-Shot-2011-12-19-at-3.56.12-PM.png" alt="" width="427" height="209" /></a></p>
<p>A few weeks ago, we launched our <a href="http://www.boston.com/news/politics/2012/president/tracker/" target="_blank">GOP Candidate Tracker</a>. This project was quite difficult, as it uses a lot of brainier Javascript/jQuery and I am still a beginner. Thankfully, the aforementioned Tom and a few internet pals helped walk me through some of the concepts.</p>
<p>First, we have two interns in the newsroom who enter information into Google Docs using a Google Form. Then I download the latest events, paste them into a .csv and run a python script that turns it into JSON. I test it in a fake version of the live page that can only be seen inside the Globe &#8212; just to make sure no weird characters got in &#8212; and then I paste it into the live JSON file and upload that to cache.</p>
<p>I will be building a Django-based backend for this, so folks will enter the information in there instead of Google Docs in the future. Then the Django app will spit out a JSON file, similar in structure to what we&#8217;re already using.</p>
<p>It wasn&#8217;t built in Django first because we didn&#8217;t have an area to build Django projects at the time. Now we do, thanks to the hard work of our Ops team. So we will be switching that over in the future.</p>
<p>Anywho, this project had to do a few things: Parse a JSON file, sort it in various ways and allow you to click a button and show only a certain candidate (and make that appear as a hash in the URL so you could share the individual person&#8217;s dates). I used jQuery, <a href="http://documentcloud.github.com/underscore/" target="_blank">underscore.js</a>, <a href="http://www.datejs.com/" target="_blank">date.js</a> and <a href="http://benalman.com/projects/jquery-bbq-plugin/" target="_blank">jQuery-BBQ</a>, the latter built by a former Boston Globe staffer.</p>
<h2>What Would Bill Say</h2>
<p style="text-align: center;"><a href="http://www.andymboyle.com/wp-content/uploads/2012/01/Screen-Shot-2012-01-13-at-3.21.19-PM.png"><img class="aligncenter  wp-image-995" title="Screen Shot 2012-01-13 at 3.21.19 PM" src="http://www.andymboyle.com/wp-content/uploads/2012/01/Screen-Shot-2012-01-13-at-3.21.19-PM.png" alt="" width="398" height="238" /></a></p>
<p style="text-align: left;">As many folks may know, Bill Belichick keeps his quotes pretty bland and quite simplistic. Our sports team asked if we could make something that showed one of his random quotes. I countered with, &#8220;What if we allowed you to <a href="http://www.boston.com/sports/football/patriots/wwbs/" target="_blank">ask him a question</a> and it answered with a real quote of his?&#8221;</p>
<p>This app works like this: You ask a question, it appends the question into the URL, generates a random number and appends that to the URL, too. The random number picks which photo/question to show from a list within the Javascript. It also looks to see if a question has been asked (aka shows up in the URL) and spit out the appropriate page information.  I used jQuery-BBQ again to help me parse the URL and <a href="http://www.jason-palmer.com/2008/08/jquery-plugin-form-field-default-value/" target="_blank">jQuery Form Defaults</a> to help with a few form issues.</p>
<p>My pal <a href="https://twitter.com/#!/dancow" target="_blank">Dan Nguyen</a> looked at an early version and found it had some cross-site scripting vulnerabilities because I wasn&#8217;t sanitizing my fields. Underscore.js helped me with this.</p>
<p>We wanted to keep everything in the URL so the original question and answer would be easily shareable on social media.</p>
<h2>Lessons Learned</h2>
<p>These projects mostly do everything inside of the browser, loading flat files (except the Patriots Report Card). While the Candidate Tracker has a wannabe-database backend in a Google doc, it ends up pulling in a flat JSON file. This means I don&#8217;t have to maintain an application server, a database server or a caching server. Me gusta. A year ago I probably would&#8217;ve set up a full Django stack for each of these projects.</p>
<p>Also, I am no longer scared of Javascript. So that&#8217;s a good thing. In the future, I&#8217;m going to try to make as many projects with just flat files. I&#8217;d also like to start learning more about using Raphael for graphics.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andymboyle.com/2012/01/13/a-few-new-boston-com-projects/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>2012 resolutions</title>
		<link>http://www.andymboyle.com/2012/01/01/2012-resolutions/</link>
		<comments>http://www.andymboyle.com/2012/01/01/2012-resolutions/#comments</comments>
		<pubDate>Mon, 02 Jan 2012 04:27:30 +0000</pubDate>
		<dc:creator>Andy Boyle</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.andymboyle.com/?p=991</guid>
		<description><![CDATA[As it's a new year, it's time to write some resolutions.

My only resolution last year was to get on stage and attempt to entertain people. I accomplished that goal in these last few months. So I thought expanding my resolutions to three would be doable. A few of these were inspired by the internet.]]></description>
			<content:encoded><![CDATA[<p>As it&#8217;s a new year, it&#8217;s time to write some resolutions.</p>
<p>My only resolution last year was to get on stage and attempt to entertain people. I accomplished that goal in these last few months. So I thought expanding my resolutions to three would be doable. A few of these were <a href="https://twitter.com/#!/search/%23boylein2012" target="_blank">inspired by the internet</a>.</p>
<p>1. Spend a week eating like a vegan</p>
<p>2. Travel more</p>
<p>3. Buy the majority of my media &#8212; books, magazines, movies and television shows &#8212; in an electronic format</p>
<p>I once tried to eat vegetarian for a week but forgot on my second day while rushing from one assignment to another.</p>
<p>As for traveling, I don&#8217;t leave wherever I live that much. When I do it&#8217;s usually to visit my family in Nebraska. I want to take a vacation someday and go see the Pacific Northwest. Hopefully. I hear my beard can be used as currency up there.</p>
<p>And by looking around in my apartment, I own too many books, many of which I won&#8217;t read a second time. Same goes for movies. I&#8217;ve been going to the library more and I&#8217;ve almost finished the latest Steve Jobs biography on my iPad/iPhone, which has been a pleasant reading experience so far. But it&#8217;s a bit hefty and I want a product <em>only</em> for reading.</p>
<p>So, I ask you, dear reader: What&#8217;s the best device to buy that&#8217;s only for reading? I won&#8217;t use it to surf the web, check email or do anything else. I just want something that I can buy books with and read them. Let me know in the comments or yell at me at <a href="http://www.twitter.com/andymboyle" target="_blank">@andymboyle</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andymboyle.com/2012/01/01/2012-resolutions/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Quick CSV to JSON parser in python</title>
		<link>http://www.andymboyle.com/2011/11/02/quick-csv-to-json-parser-in-python/</link>
		<comments>http://www.andymboyle.com/2011/11/02/quick-csv-to-json-parser-in-python/#comments</comments>
		<pubDate>Wed, 02 Nov 2011 21:02:29 +0000</pubDate>
		<dc:creator>Andy Boyle</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.andymboyle.com/?p=958</guid>
		<description><![CDATA[I did something in python today. It wasn&#8217;t that hard, but I thought I should write up something quickly about it. We&#8217;ve got some people entering in some data in a Google Doc spreadsheet for a project. After fiddling around with attempting to make Google Docs API spit out not-ugly JSON, I said screw it [...]]]></description>
			<content:encoded><![CDATA[<p>I did something in <a href="scraperwiki.com/scrapers/derek_willis_and_his_python_inquiries_1/">python</a> today. It wasn&#8217;t that hard, but I thought I should write up something quickly about it.</p>
<p>We&#8217;ve got some people entering in some data in a Google Doc spreadsheet for a project. After fiddling around with attempting to make Google Docs API spit out not-ugly JSON, I said screw it and came up with a new plan: I was going to write a cron job that downloads the CSV from the spreadsheet and then parses it into JSON.</p>
<p>And of course, as a guy who likes <a href="http://www.andymboyle.com/django-tutorials/">Django</a>, I turned to python for the parsing.</p>
<p>First, you will need to remove the first line in the CSV if it had any field names. Put it into a folder somewhere, perhaps. Then make an empty file and name it parsed.json and place it in the same file.</p>
<p>If you&#8217;re on a Mac/Unix-y thing, use your terminal and cd into the folder your parsed.json file is. Enter
<pre class="qoate-code">pwd</pre>
<p> in the terminal to see the path to your directory. If you&#8217;re on a Windows box, then it&#8217;s probably C:\wherever\your\stuff\is\</p>
<p>Now create a new file called parser.py. Enter in the code below, changing /path/to/filename part on line 5 to the bit that was spit out after you typed pwd (or where you inherently found it if you&#8217;re in Windows). On line 7, change fieldname1 and whatnot to the name you want each row to have in your JSON file.</p>
<pre name="code" class="python">import csv
import json

# Open the CSV
f = open( '/path/to/filename.csv', 'rU' )
# Change each fieldname to the appropriate field name. I know, so difficult.
reader = csv.DictReader( f, fieldnames = ( "fieldname0","fieldname1","fieldname2","fieldname3" ))
# Parse the CSV into JSON
out = json.dumps( [ row for row in reader ] )
print "JSON parsed!"
# Save the JSON
f = open( '/path/to/parsed.json', 'w')
f.write(out)
print "JSON saved!"</pre>
<p>In your terminal, while you&#8217;re in the proper directory, type:</p>
<pre class="qoate-code"> python parser.py </pre>
<p>BOOM! It should spit out &#8220;JSON parsed!&#8221; and &#8220;JSON saved!&#8221; If you wanted to spit out the JSON in the terminal, you could add a line at the bottom:</p>
<pre class="qoate-code"> print out </pre>
<p>Voila. Now you can turn your CSV files into JSON.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andymboyle.com/2011/11/02/quick-csv-to-json-parser-in-python/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Using A/B testing to find story ideas</title>
		<link>http://www.andymboyle.com/2011/10/28/using-ab-testing-to-find-story-ideas/</link>
		<comments>http://www.andymboyle.com/2011/10/28/using-ab-testing-to-find-story-ideas/#comments</comments>
		<pubDate>Fri, 28 Oct 2011 14:31:07 +0000</pubDate>
		<dc:creator>Andy Boyle</dc:creator>
				<category><![CDATA[journo web dev]]></category>

		<guid isPermaLink="false">http://www.andymboyle.com/?p=951</guid>
		<description><![CDATA[Earlier I read this post via Hacker News on testing startup ideas. It got me thinking about whether or not you could do something similar in your newsroom. I&#8217;ll call it A/B Testing for News Coverage™. The basic idea is this: Use the data of what people click on with Google AdWords/Microsoft&#8217;s adCenter to help [...]]]></description>
			<content:encoded><![CDATA[<p>Earlier I read <a href="http://startupbound.com/how-i-quickly-test-and-validate-startup-ideas/" target="_blank">this post </a>via <a href="http://news.ycombinator.com" target="_blank">Hacker News</a> on testing startup ideas. It got me thinking about whether or not you could do something similar in your newsroom. I&#8217;ll call it A/B Testing for News Coverage<strong>™</strong>.</p>
<p>The basic idea is this: Use the data of what people click on with <a href="http://adwords.google.com/support/aw/bin/static.py?hl=en&amp;guide=21899&amp;page=guide.cs" target="_blank">Google AdWords</a>/<a href="http://advertising.microsoft.com/search-advertising/introducing-adcenter" target="_blank">Microsoft&#8217;s adCenter</a> to help you come up with coverage. First, you set up advertisements for a certain area of coverage, say an upcoming convention in your town, or maybe you&#8217;re trying to allocate resources between two not-as-often-covered sports teams and not sure which has a greater audience. Then you send those ads to a landing page or article you&#8217;ve already written about said topic.</p>
<p>You can then see how many people clicked through the ads, what the bounce rate was, how long they stayed on the article/landing page (using your own embedded analytics, of course) and whether or not they explored more of your website. Then you can deduce whether one subject or another received more page views than the other, all for maybe $100 in advertisement costs (plus the time it took to set up the pages).</p>
<p>Now, say you were planning on hiring a beat reporter to cover one subject over another, I would say that $100 is a cheap price to make sure you&#8217;ve made a good decision for your audience.</p>
<p>This may smack in the idea of what I&#8217;ve heard some people freak out about, which is catering too much to your audience. Giving them their chocolate cake instead of the peas and carrots they should (says we) be eating. Well, with dwindling resources at many media organizations, I can&#8217;t see why it&#8217;s a bad idea to gauge your audience before starting a new venture.</p>
<p>Our industry could use more analysis in making decisions, I believe, and thankfully we have a lot of tools at our disposal.</p>
<p><em>And if anyone is already doing this, I&#8217;d love to hear how it&#8217;s faired in the comments.</em></p>
<p>***edit at 10:51 a.m.***</p>
<p><a href="https://twitter.com/#!/knowtheory" target="_blank">Ted Han</a> has pointed me to <a href="http://lauraamico.tumblr.com/post/11316313807/online-investigative-journalism-more-on-reporting" target="_blank">this post</a> about how <a href="http://homicidewatch.org/" target="_blank">Homicide Watch</a> uses analytics for coverage, which is totally rad. <a href="https://twitter.com/#!/homicidewatch" target="_blank">Laura Amico</a> used her site&#8217;s analytics as a reporting tool. Awesome.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andymboyle.com/2011/10/28/using-ab-testing-to-find-story-ideas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>We should stop calling live projects beta</title>
		<link>http://www.andymboyle.com/2011/10/17/we-should-stop-calling-live-projects-beta/</link>
		<comments>http://www.andymboyle.com/2011/10/17/we-should-stop-calling-live-projects-beta/#comments</comments>
		<pubDate>Mon, 17 Oct 2011 22:22:40 +0000</pubDate>
		<dc:creator>Andy Boyle</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.andymboyle.com/?p=942</guid>
		<description><![CDATA[Recently, I had a conversation with some folks at work about the iPhone 4S. This led to some chatter about Siri and I showed my coworkers how to find the closest burrito joint. The future is amazing, etc. One of them asked, &#8220;Isn&#8217;t Siri still in beta?&#8221; Yes, yes it is. I responded that I [...]]]></description>
			<content:encoded><![CDATA[<p>Recently, I had a conversation with some folks at work about the iPhone 4S. This led to some chatter about Siri and I showed my coworkers how to find the closest burrito joint. The future is amazing, etc.</p>
<p>One of them asked, &#8220;Isn&#8217;t Siri still in beta?&#8221; Yes, yes it is.</p>
<p>I responded that I hate things being called &#8220;beta.&#8221; The rest of this post will be, hopefully, a more erudite explanation. With less swears. <em>Maybe</em>.</p>
<p>Saying something is still &#8220;in beta&#8221; is a goddamn cop out. It&#8217;s like you&#8217;re releasing something and winking, saying, &#8220;This could still suck so please be gentle and don&#8217;t be mean!&#8221; That&#8217;s a crock of horse shit. You released a product live, showing it to the world. It is no longer in &#8220;beta&#8221; mode. It is now in production. Otherwise, why did you release it?</p>
<p>Oh, you say you&#8217;re going to add features and fix a few things here and there? Cool. That&#8217;s more or less how everything is always done. I don&#8217;t think most folks refer to Twitter or Facebook as being in &#8220;beta,&#8221; as they&#8217;re adding features and updates all the time. Most web projects are continually in flux and are constantly being updated. To quote The Social Network, it&#8217;s like fashion &#8212; it&#8217;s never finished.</p>
<p>And to use my journalistic background, this is akin to calling the newspaper the &#8220;beta&#8221; version of stories, as people can go in and update the online version of articles whenever they want. No, we call it the damn newspaper. Get &#8216;em while they&#8217;re hot.</p>
<p>The phrase has a use, of course: internal testing. Once you release it to the world, though, stop calling it beta. It&#8217;s live, goddammit. Be proud of your accomplishments. Building that thing and launching it was hard.</p>
<p>Don&#8217;t hide behind a four-word veil of I-hope-this-doesn&#8217;t-suck-too-much-itude.</p>
<p><em>Also, if you think I&#8217;m wrong, please explain your arguments below. I&#8217;d love to hear a good argument for using beta.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.andymboyle.com/2011/10/17/we-should-stop-calling-live-projects-beta/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

