<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
   <channel>
      <title>MediaShift Idea Lab</title>
      <link>http://www.pbs.org/idealab/</link>
      <description>Idea Lab is a group blog by innovators who are reinventing community news for the Digital Age.</description>
      <language>en</language>
      <copyright>Copyright 2013</copyright>
      <lastBuildDate>Fri, 15 Jun 2012 09:00:00 -0500</lastBuildDate>
      <generator>http://www.sixapart.com/movabletype/?v=4.37</generator>
      <docs>http://www.rssboard.org/rss-specification</docs>

      
      <item>
         <title>iWitness Launches Tool for Exploring Social Media By Time and Place</title>
         <author>jjg@adaptivepath.com (Jesse James Garrett)</author>
         <description><![CDATA[<p>We are very excited to announce the launch of <a href="http://iwitness.adaptivepath.com/">iWitness</a>, a free tool created by <a href="http://www.adaptivepath.com/">Adaptive Path</a> for exploring social media content by time and place.</p>

<p><iframe src="http://player.vimeo.com/video/43845082?title=0&amp;byline=0&amp;portrait=0" width="500" height="281" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe> <p><a href="http://vimeo.com/43845082"></p></p>

<p><a href="http://www.pbs.org/idealab/2012/03/iwitness-aims-to-aggregate-news-by-time-and-place059.html">We designed iWitness</a> to enable people to explore content in new ways. We wanted it to be a vehicle for discovering what's happening in the world, in cases where time and place really matter.</p>

<p>But we didn't just want to create an interesting, new product. We also wanted to see what could be done with the latest web techniques and technologies. As a result, iWitness runs entirely in the browser -- it has no server-side component.</p>

<p>Although the launch is the <a href="http://www.pbs.org/idealab/2012/03/a-behind-the-scenes-look-at-developing-iwitness082.html">culmination of that development effort</a>, it's really only the beginning for iWitness. We're releasing <a href="https://github.com/adaptivepath/iWitness">all of the source code via GitHub</a>, so anyone can build on the work we've done. </p>

<p>As social media itself continues to grow and evolve, iWitness will be able to evolve right along with it.<br />
</p>]]></description>
         <link>http://www.pbs.org/idealab/2012/06/iwitness-launches-tool-for-exploring-social-media-by-time-and-place166.html</link>
         <guid isPermaLink="True">http://www.pbs.org/idealab/2012/06/iwitness-launches-tool-for-exploring-social-media-by-time-and-place166.html</guid>
         <category domain="http://www.sixapart.com/ns/types#category">Participation</category><category domain="http://www.sixapart.com/ns/types#category">Technology</category>
         <category domain="http://www.sixapart.com/ns/types#tag">adaptive path</category><category domain="http://www.sixapart.com/ns/types#tag">development</category><category domain="http://www.sixapart.com/ns/types#tag">github</category><category domain="http://www.sixapart.com/ns/types#tag">iwitness</category><category domain="http://www.sixapart.com/ns/types#tag">social media</category><category domain="http://www.sixapart.com/ns/types#tag">source code</category>
         <pubDate>Fri, 15 Jun 2012 09:00:00 -0500</pubDate>
      </item>
      
      <item>
         <title>A Behind-the-Scenes Look at Developing iWitness </title>
         <author>jjg@adaptivepath.com (Jesse James Garrett)</author>
         <description><![CDATA[<p><em>iWitness, our project to create a tool to aggregate social media by time and place, is now well underway, and we're looking forward to sharing some of our thinking about the design of the tool with you in the coming weeks. </p>

<p>In the meantime, we've asked our development partners at <a href="http://edgecase.com/">EdgeCase</a> to provide their perspective on the technical side of the process. Here's what <a href="http://edgecase.com/about">Mike Doel</a>, project manager at EdgeCase, had to say:</em></p>

<h2>the Process</h2>

<p>At EdgeCase, we use an agile development process to rapidly produce functionality with a minimum of waste. We combine elements of "Extreme Programming" and "Behavior Driven Development" for a custom process founded on stakeholder collaboration that works.</p>

<p>The project began with a <a href="http://library.edgecase.com/inception">series of exercises</a> designed to ensure we started the project well. Over the course of three days, we agreed to domain language, identified key concepts for the project, drew wireframes, and pulled together a set of features that were essential to verifying the intended direction of the project. At the end, the room was filled with sticky notes and flip charts, and everyone involved had gained a better understanding of what work would be required over the next several weeks.</p>

<p><img alt="inception2.png" img class=caption src="http://www.pbs.org/idealab/inception2.png" title="A room dotted with sticky notes and flip charts." /></p>

<p>Once the feature set was agreed to, the next step was to capture all of those requirements into a discrete set of user stories. Each one represents some distinct requirement that can be understood and developed in isolation. Unlike more traditional <a href="http://en.wikipedia.org/wiki/Waterfall_software_development">waterfall</a> models, the agile methods we follow utilize short bursts of work that allow for rapid feedback and evaluation. </p>

<p>The user story is one of the basic building blocks of this process. We use a tool from <a href="http://pivotallabs.com/">Pivotal Labs</a> called <a href="http://www.pivotaltracker.com/">Pivotal Tracker</a> to manage these. Each story includes a title, a description of the feature, and an estimate of the effort involved. As people work on the story, they have the opportunity to add comments and ask questions.</p>

<p><img alt="tracker2.png" src="http://www.pbs.org/idealab/tracker2.png" width="322" height="400" class="mt-image-right" style="float: right; margin: 0 0 20px 20px;" /></p>

<p>We develop in 2-week cycles called iterations. Each iteration starts with an Iteration Planning Meeting (IPM) where we discuss what features we're going to build for the next two weeks. At the end of the cycle, we review the stories developed during the iteration and get them signed off by the client. We also perform a retrospective where we reflect back on the prior two weeks and identify what things we're doing that are helping the project and which parts of our process could be improved.</p>

<p>The daily routine in an agile product is fairly simple. Every day, we hold a brief 5- to 10-minute standup meeting, where we literally stand up the whole time, which helps keep the meetings short. In it, we cover the progress for the day and discuss any issues the team is having. The rest of the day is spent pair programming.</p>

<p>When developers work together in a paired fashion, the total is greater than the sum of the parts. The benefits include:</p>



<ul>
<li>Every line of code is subjected to an instant code review by someone who is familiar with the code.</li>
<li>It prevents the formation of silos of knowledge.</li>
<li>The pressure of having a peer actively inspecting and participating in your work forces you to focus and avoid distractions.</li>
<li>If one developer has trouble solving some problem, there's another person to help him or her get unstuck quickly.</li>
</ul>




<p>That's a high-level overview of some elements of the agile process we at EdgeCase use every day in the development of iWitness. Now, let's turn our attention to some of the cool technologies we're using to build the product itself.</p>

<h2>the Technologies </h2>

<p><img alt="pairing2.jpeg" img class=caption src="http://www.pbs.org/idealab/pairing2.jpeg" title="EdgeCase developers at work." /></p>

<p>One of the key design constraints we face with iWitness is that it needs to be capable of standing on its own without requiring sophisticated IT skills to manage. Most newsrooms don't have people with those abilities. Also, the principal funding for the work being done on iWitness comes from a <a href="http://adaptivepath.com/ideas/woah-adaptive-path-wins-knight-news-challenge-grant">grant from the John S. and James L. Knight Foundation</a>. With limitations in funding and support staff, along with conditions imposed by the grant (e.g., the final product must be released as open source), we concluded that the proper architecture for iWitness is as a wholly client-side application.</p>

<p>The primary feature for iWitness is to find social media activity for a specific time and place. For example, a journalist writing a story about an Occupy movement protest may want to find tweets from a certain city block at a given time. For each social media service supported by iWitness, we need to query the service via an exposed <span class="caps">API </span>endpoint and synthesize the results in an intuitive manner. As this is being done in the browser, that implies that the code is being written in javascript -- the lingua franca for dynamic web applications.</p>

<p>Recently, a slew of javascript frameworks have been released to help application developers provide structure to their client-side applications. Some of the more popular ones are <a href="http://emberjs.com/">ember.js</a>, <a href="http://documentcloud.github.com/backbone/">backbone.js</a>, and <a href="http://knockoutjs.com/">knockout.js</a>. We have decided to base iWitness on ember because it offered more structure and better suited our needs.</p>

<p>Ember is an example of an <span class="caps">MVC </span>(Model, View, Controller) framework. Models encompass primary domain objects like search criteria and a result from Twitter. The view layer is home to the <a href="http://handlebarsjs.com/">templates</a> for how pages look when rendered -- things like the order of form fields, the text on the page, and the hierarchy of elements that the user sees. A controller is the glue between the model and the view.</p>

<p>Although we will eventually deploy iWitness as a standalone client application, there are still server-side tools that can make this easier. For example, we get performance benefits if we deliver the iWitness javascript assets as a single file. While developing the code, however, it's better for the javascript to be broken into logical chunks that can be understood and tested in isolation. </p>

<p>We're using an asset packaging and dependency management tool called <a href="https://github.com/sstephenson/sprockets">Sprockets</a> to bridge the gap. With Sprockets, our developers can create the code in small chunks and then bundle it together for efficient delivery. Other tools and packages we're using for similar reasons include a simple Ruby-based web server named <a href="http://rack.rubyforge.org/doc/">rackup</a>, the <a href="http://rubygems.org/gems/uglifier">uglifier</a> gem to compress javascript, and the <a href="http://lesscss.org/"><span class="caps">LESS </span>dynamic stylesheet language</a>.</p>

<p>Working on iWitness to this point has been a ton of fun. The partnership between EdgeCase and <a href="http://www.adaptivepath.com/">Adaptive Path</a> has been great for both companies, and we think that will show in the work we produce together. Keep your eyes on this space for further announcements about the release of iWitness for general use and the call for open-source developers to join us in making it even better.</p>]]></description>
         <link>http://www.pbs.org/idealab/2012/03/a-behind-the-scenes-look-at-developing-iwitness082.html</link>
         <guid isPermaLink="True">http://www.pbs.org/idealab/2012/03/a-behind-the-scenes-look-at-developing-iwitness082.html</guid>
         <category domain="http://www.sixapart.com/ns/types#category">Participation</category><category domain="http://www.sixapart.com/ns/types#category">Technology</category>
         <category domain="http://www.sixapart.com/ns/types#tag">adaptive path</category><category domain="http://www.sixapart.com/ns/types#tag">development</category><category domain="http://www.sixapart.com/ns/types#tag">edgecase</category><category domain="http://www.sixapart.com/ns/types#tag">ember</category><category domain="http://www.sixapart.com/ns/types#tag">iwitness</category><category domain="http://www.sixapart.com/ns/types#tag">javascript</category><category domain="http://www.sixapart.com/ns/types#tag">social media</category>
         <pubDate>Mon, 26 Mar 2012 09:00:57 -0500</pubDate>
      </item>
      
      <item>
         <title>iWitness Aims to Aggregate News By Time and Place</title>
         <author>jjg@adaptivepath.com (Jesse James Garrett)</author>
         <description><![CDATA[<p>Let's face it: The great promise of citizen media has not really been fulfilled. News organizations have struggled to find ways to supplement their coverage of news events with contributions from citizens -- and finding citizen media related to a news event is currently difficult at best.</p>

<p>Keyword searches and hashtags provide partial solutions, but still do not differentiate between first-person accounts and other kinds of content. And although more and more services allow their content to be geotagged, few tools take advantage of this data in meaningful ways.</p>

<p><img alt="about-ap.jpg" src="http://www.pbs.org/idealab/about-ap.jpg" width="200" height="148" class="mt-image-right" style="float: right; margin: 0 0 20px 20px;" /></p>

<p>That's where we come in. My company, <a href="http://adaptivepath.com/">Adaptive Path</a>, is a <a href="http://en.wikipedia.org/wiki/User_experience_design">user experience design</a> firm based in San Francisco, and with funding from the <a href="http://www.knightfoundation.org/press-room/press-release/knight-foundation-media-innovation-contest-announc/">Knight News Challenge</a>, we're building a tool that we call <a href="http://www.knightfoundation.org/grants/20110148/">iWitness</a>.</p>

<p>iWitness is a web-based software tool that will enable individuals and news organizations to aggregate and cross-reference news events with user-generated online content related by time and place. If you know when and where something happened, iWitness will show you first-person photos, videos and messages from people who were there, integrating diverse media types in a unified interface.</p>

<p>By leveraging the time and location data that is already automatically generated by online services, iWitness will simplify the process of finding this content and enable new connections between content from different sources. If it happened in public, iWitness can connect you to citizen media from people at the scene.</p>

<p>Over the course of the project, we'll be giving you a look behind the scenes of how an application like this gets built, from design through technical development to testing with real users. We're excited to have the project underway, and we look forward to having you along for the ride.</p>]]></description>
         <link>http://www.pbs.org/idealab/2012/03/iwitness-aims-to-aggregate-news-by-time-and-place059.html</link>
         <guid isPermaLink="True">http://www.pbs.org/idealab/2012/03/iwitness-aims-to-aggregate-news-by-time-and-place059.html</guid>
         <category domain="http://www.sixapart.com/ns/types#category">Participation</category><category domain="http://www.sixapart.com/ns/types#category">Technology</category>
         <category domain="http://www.sixapart.com/ns/types#tag">adaptive path</category><category domain="http://www.sixapart.com/ns/types#tag">aggregate</category><category domain="http://www.sixapart.com/ns/types#tag">citizen media</category><category domain="http://www.sixapart.com/ns/types#tag">iwitness</category><category domain="http://www.sixapart.com/ns/types#tag">knight news challenge</category><category domain="http://www.sixapart.com/ns/types#tag">news</category><category domain="http://www.sixapart.com/ns/types#tag">software</category><category domain="http://www.sixapart.com/ns/types#tag">user-generated content</category>
         <pubDate>Mon, 05 Mar 2012 09:00:08 -0500</pubDate>
      </item>
      
   </channel>
</rss>

