<?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>The MuckRock Notebook</title>
	<atom:link href="http://www.muckrock.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.muckrock.com/blog</link>
	<description>Take a peak into MuckRock&#039;s own reporter&#039;s notebook</description>
	<lastBuildDate>Fri, 03 Sep 2010 15:49:41 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Using the DocumentCloud API</title>
		<link>http://www.muckrock.com/blog/using-the-documentcloud-api/</link>
		<comments>http://www.muckrock.com/blog/using-the-documentcloud-api/#comments</comments>
		<pubDate>Thu, 26 Aug 2010 11:34:11 +0000</pubDate>
		<dc:creator>Mitchell Kotler</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Code Examples]]></category>
		<category><![CDATA[DocumentCloud]]></category>

		<guid isPermaLink="false">http://www.muckrock.com/blog/?p=79</guid>
		<description><![CDATA[This is a technical post about how MuckRock recently integrated DocumentCloud&#8217;s services into our site using their API.  If you are creating a Django based site and are interested in how to integrate DocumentCloud into your site, read on!
First, you will need a DocumentCloud account.  They are still in a private beta, so you will [...]]]></description>
			<content:encoded><![CDATA[<p>This is a technical post about how MuckRock recently integrated DocumentCloud&#8217;s services into our site using their API.  If you are creating a Django based site and are interested in how to integrate DocumentCloud into your site, read on!</p>
<p>First, you will need a DocumentCloud account.  They are still in a private beta, so you will have to request an account for now.  Assuming you have an account, you probably want to start by looking at the <a href="http://www.documentcloud.org/api">help for their API</a>.  We need to be able to make HTTP GET and POST requests &#8211; including the ability to send a file in multipart/form-data format.  This isn&#8217;t straightforward to do using the Python standard libraries, so I found this <a href="http://pipe.scs.fsu.edu/PostHandler/MultipartPostHandler.py">MultipartPostHandler library</a> to help out.</p>
<p>Now the way I wanted this to work for our site is to have a model that represents a DocumentCloud document and allow staff to edit these documents directly through our admin site without having to log in the DocumentCloud site directly.  Since the HTTP requests may take a while or error out, it is a good idea to run them asynchronously so users do not have to wait for them to finish.  To do this I use <a href="http://ask.github.com/celery/index.html">celery</a>.  Setting up celery is beyond the scope of this post, but the documentation on their site is good and you should be able to follow that.  Now for some code!</p>
<p>The model is just set up to mirror the options available for a DocumentCloud document, plus a ForeignKey to a FOIA Request model, which represents the original request on our website and a doc_id which is used to store the unique ID DocumentCloud assigns to this document:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;">﻿﻿<span style="color: #808080; font-style: italic;"># models.py</span>
<span style="color: #ff7700;font-weight:bold;">class</span> FOIADocument<span style="color: black;">&#40;</span>models.<span style="color: black;">Model</span><span style="color: black;">&#41;</span>:
    <span style="color: #483d8b;">&quot;&quot;&quot;A DocumentCloud document attached to a FOIA request&quot;&quot;&quot;</span>
&nbsp;
    access = <span style="color: black;">&#40;</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'public'</span>, <span style="color: #483d8b;">'Public'</span><span style="color: black;">&#41;</span>,
              <span style="color: black;">&#40;</span><span style="color: #483d8b;">'private'</span>, <span style="color: #483d8b;">'Private'</span><span style="color: black;">&#41;</span>,
              <span style="color: black;">&#40;</span><span style="color: #483d8b;">'organization'</span>, <span style="color: #483d8b;">'Organization'</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
&nbsp;
    foia = models.<span style="color: black;">ForeignKey</span><span style="color: black;">&#40;</span>FOIARequest, related_name=<span style="color: #483d8b;">'documents'</span><span style="color: black;">&#41;</span>
    document = models.<span style="color: black;">FileField</span><span style="color: black;">&#40;</span>upload_to=<span style="color: #483d8b;">'foia_documents'</span><span style="color: black;">&#41;</span>
    title = models.<span style="color: black;">CharField</span><span style="color: black;">&#40;</span>max_length=<span style="color: #ff4500;">70</span><span style="color: black;">&#41;</span>
    source = models.<span style="color: black;">CharField</span><span style="color: black;">&#40;</span>max_length=<span style="color: #ff4500;">70</span><span style="color: black;">&#41;</span>
    description = models.<span style="color: black;">TextField</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
    access = models.<span style="color: black;">CharField</span><span style="color: black;">&#40;</span>max_length=<span style="color: #ff4500;">12</span>, choices=access<span style="color: black;">&#41;</span>
    doc_id = models.<span style="color: black;">SlugField</span><span style="color: black;">&#40;</span>max_length=<span style="color: #ff4500;">80</span>, editable=<span style="color: #008000;">False</span><span style="color: black;">&#41;</span></pre></div></div>

<p>Now for the admin model to integrate it into the Django admin interface:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">#admin.py</span>
<span style="color: #ff7700;font-weight:bold;">class</span> FOIADocumentAdmin<span style="color: black;">&#40;</span>admin.<span style="color: black;">ModelAdmin</span><span style="color: black;">&#41;</span>:
    <span style="color: #483d8b;">&quot;&quot;&quot;FOIA Image Inline admin options&quot;&quot;&quot;</span>
    readonly_fields = <span style="color: black;">&#91;</span><span style="color: #483d8b;">'doc_id'</span><span style="color: black;">&#93;</span>
    list_display = <span style="color: black;">&#40;</span><span style="color: #483d8b;">'title'</span>, <span style="color: #483d8b;">'foia'</span>, <span style="color: #483d8b;">'doc_id'</span>, <span style="color: #483d8b;">'description'</span><span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">def</span> save_model<span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, request, obj, form, change<span style="color: black;">&#41;</span>:
        <span style="color: #483d8b;">&quot;&quot;&quot;Attach user to article on save&quot;&quot;&quot;</span>
        obj.<span style="color: black;">save</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
        <span style="color: #808080; font-style: italic;"># wait 3 seconds to give database a chance to sync</span>
        upload_document_cloud.<span style="color: black;">apply_async</span><span style="color: black;">&#40;</span>args=<span style="color: black;">&#91;</span>obj.<span style="color: black;">pk</span>, change<span style="color: black;">&#93;</span>,
                                          countdown=<span style="color: #ff4500;">3</span><span style="color: black;">&#41;</span></pre></div></div>

<p>We make doc_id a read-only attribute, as this will be set automatically.  On a save, we first save the object to store it to the database.  Then we make an asynchronous call to upload_document_cloud which is a celery task I have set up to do all the interesting stuff with the API.  There is a delay of 3 seconds to make sure the database has chance to save the object, as in development I would sometimes get errors that the object was not in the database.  It passes the primary key for the object, and whether or not this is a change (as opposed to a new object).</p>
<p>Lets take a look at the task now.</p>
<p>First we import the libraries we will be using, our DocumentCloud username and password (I put these in my settings.py), and the model from above.</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;"># tasks.py</span>
<span style="color: #ff7700;font-weight:bold;">from</span> celery.<span style="color: black;">decorators</span> <span style="color: #ff7700;font-weight:bold;">import</span> task
<span style="color: #ff7700;font-weight:bold;">from</span> django.<span style="color: black;">core</span> <span style="color: #ff7700;font-weight:bold;">import</span> management
<span style="color: #ff7700;font-weight:bold;">from</span> settings <span style="color: #ff7700;font-weight:bold;">import</span> DOCUMNETCLOUD_USERNAME, DOCUMENTCLOUD_PASSWORD
&nbsp;
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">base64</span>
<span style="color: #ff7700;font-weight:bold;">import</span> json
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">urllib2</span>
<span style="color: #ff7700;font-weight:bold;">from</span> vendor <span style="color: #ff7700;font-weight:bold;">import</span> MultipartPostHandler
&nbsp;
<span style="color: #ff7700;font-weight:bold;">from</span> foia.<span style="color: black;">models</span> <span style="color: #ff7700;font-weight:bold;">import</span> FOIADocument</pre></div></div>

<p>The task itself starts with loading the recently saved model back form the database &#8211; we waited 3 seconds to make sure it was synced, but just to be sure we will retry if it still doesn&#8217;t exist.  The default retry is 30 seconds later.  We also return without doing anything if the model already has a doc_id but is not being changed &#8211; this should never happen, but it is always a good idea to code defensively.</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;">@task<span style="color: black;">&#40;</span>ignore_result=<span style="color: #008000;">True</span><span style="color: black;">&#41;</span>
<span style="color: #ff7700;font-weight:bold;">def</span> upload_document_cloud<span style="color: black;">&#40;</span>doc_pk, change, <span style="color: #66cc66;">**</span>kwargs<span style="color: black;">&#41;</span>:
    <span style="color: #483d8b;">&quot;&quot;&quot;Upload a document to Document Cloud&quot;&quot;&quot;</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">try</span>:
        doc = FOIADocument.<span style="color: black;">objects</span>.<span style="color: black;">get</span><span style="color: black;">&#40;</span>pk=doc_pk<span style="color: black;">&#41;</span>
    <span style="color: #ff7700;font-weight:bold;">except</span> FOIADocument.<span style="color: black;">DoesNotExist</span>, exc:
        <span style="color: #808080; font-style: italic;"># give database time to sync</span>
        upload_document_cloud.<span style="color: black;">retry</span><span style="color: black;">&#40;</span>args=<span style="color: black;">&#91;</span>doc_pk, change<span style="color: black;">&#93;</span>,
                                    kwargs=kwargs, exc=exc<span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">if</span> doc.<span style="color: black;">doc_id</span> <span style="color: #ff7700;font-weight:bold;">and</span> <span style="color: #ff7700;font-weight:bold;">not</span> change:
        <span style="color: #808080; font-style: italic;"># not change means we are uploading a new one -</span>
        <span style="color: #808080; font-style: italic;"># it should not have an id yet</span>
        <span style="color: #ff7700;font-weight:bold;">return</span></pre></div></div>

<p>Now we set up the parameters for our API call.  They need to be coerced from unicode to regular strings due to the way they are encoded in the MultipartFormHandler &#8211; failing to due so caused encoding errors.  If we are changing we will use the update API by making a PUT (we fake it using _method) to the documents doc_id.  If this is a new document we upload the file using a POST to upload.</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;">    <span style="color: #808080; font-style: italic;"># coerced from unicode to regular strings</span>
    <span style="color: #808080; font-style: italic;"># in order to avoid encoding errors</span>
    params = <span style="color: black;">&#123;</span>
        <span style="color: #483d8b;">'title'</span>: <span style="color: #008000;">str</span><span style="color: black;">&#40;</span>doc.<span style="color: black;">title</span><span style="color: black;">&#41;</span>,
        <span style="color: #483d8b;">'source'</span>: <span style="color: #008000;">str</span><span style="color: black;">&#40;</span>doc.<span style="color: black;">source</span><span style="color: black;">&#41;</span>,
        <span style="color: #483d8b;">'description'</span>: <span style="color: #008000;">str</span><span style="color: black;">&#40;</span>doc.<span style="color: black;">description</span><span style="color: black;">&#41;</span>,
        <span style="color: #483d8b;">'access'</span>: <span style="color: #008000;">str</span><span style="color: black;">&#40;</span>doc.<span style="color: black;">access</span><span style="color: black;">&#41;</span>,
        <span style="color: #483d8b;">'related_article'</span>: <span style="color: #008000;">str</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'http://www.muckrock.com'</span> +
            doc.<span style="color: black;">foia</span>.<span style="color: black;">get_absolute_url</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>,
        <span style="color: black;">&#125;</span>
    <span style="color: #ff7700;font-weight:bold;">if</span> change:
        params<span style="color: black;">&#91;</span><span style="color: #483d8b;">'_method'</span><span style="color: black;">&#93;</span> = <span style="color: #008000;">str</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'put'</span><span style="color: black;">&#41;</span>
        url = <span style="color: #483d8b;">'/documents/%s.json'</span> <span style="color: #66cc66;">%</span> doc.<span style="color: black;">doc_id</span>
    <span style="color: #ff7700;font-weight:bold;">else</span>:
        params<span style="color: black;">&#91;</span><span style="color: #483d8b;">'file'</span><span style="color: black;">&#93;</span> = <span style="color: #008000;">open</span><span style="color: black;">&#40;</span><span style="color: #008000;">str</span><span style="color: black;">&#40;</span>doc.<span style="color: black;">document</span>.<span style="color: black;">path</span><span style="color: black;">&#41;</span>, <span style="color: #483d8b;">'rb'</span><span style="color: black;">&#41;</span>
        url = <span style="color: #483d8b;">'/upload.json'</span></pre></div></div>

<p>We perform the request here.  Urllib2 does not allow you to use the http://username@password:example.com syntax for basic authentication, so we add the header manually.  Also notice that we are using https so as not to allow snoopers to find our account&#8217;s password.  If this is a first time upload, upon return of the call we will parse the JSON returned and assign the id attribute to the doucment and save it.  We also catch any errors that may happen, such as timing out due to a bad network connection, and will retry the request.  It will retry up to 3 times by default before giving up.</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;">    opener = <span style="color: #dc143c;">urllib2</span>.<span style="color: black;">build_opener</span><span style="color: black;">&#40;</span>MultipartPostHandler.<span style="color: black;">MultipartPostHandler</span><span style="color: black;">&#41;</span>
    request = <span style="color: #dc143c;">urllib2</span>.<span style="color: black;">Request</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'https://www.documentcloud.org/api/%s'</span> <span style="color: #66cc66;">%</span> url, params<span style="color: black;">&#41;</span>
    <span style="color: #808080; font-style: italic;"># This is just standard username/password encoding</span>
    auth = <span style="color: #dc143c;">base64</span>.<span style="color: black;">encodestring</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'%s:%s'</span> <span style="color: #66cc66;">%</span> <span style="color: black;">&#40;</span>DOCUMNETCLOUD_USERNAME, DOCUMENTCLOUD_PASSWORD<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span><span style="color: black;">&#91;</span>:-<span style="color: #ff4500;">1</span><span style="color: black;">&#93;</span>
    request.<span style="color: black;">add_header</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'Authorization'</span>, <span style="color: #483d8b;">'Basic %s'</span> <span style="color: #66cc66;">%</span> auth<span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">try</span>:
        ret = opener.<span style="color: #008000;">open</span><span style="color: black;">&#40;</span>request<span style="color: black;">&#41;</span>.<span style="color: black;">read</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
        <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #ff7700;font-weight:bold;">not</span> change:
            info = json.<span style="color: black;">loads</span><span style="color: black;">&#40;</span>ret<span style="color: black;">&#41;</span>
            doc.<span style="color: black;">doc_id</span> = info<span style="color: black;">&#91;</span><span style="color: #483d8b;">'id'</span><span style="color: black;">&#93;</span>
            doc.<span style="color: black;">save</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
    <span style="color: #ff7700;font-weight:bold;">except</span> <span style="color: #dc143c;">urllib2</span>.<span style="color: black;">URLError</span>, exc:
        upload_document_cloud.<span style="color: black;">retry</span><span style="color: black;">&#40;</span>args=<span style="color: black;">&#91;</span>doc.<span style="color: black;">pk</span>, change<span style="color: black;">&#93;</span>, kwargs=kwargs, exc=exc<span style="color: black;">&#41;</span></pre></div></div>

<p>And that is it.  If you have any questions or need help adapting any code for your particular use, feel free to contact me at <a href="mailto:mitch@muckrock.com">mitch@muckrock.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.muckrock.com/blog/using-the-documentcloud-api/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MuckRock, Now with More DocumentCloud Goodness!</title>
		<link>http://www.muckrock.com/blog/muckrock-now-with-more-documentcloud-goodness/</link>
		<comments>http://www.muckrock.com/blog/muckrock-now-with-more-documentcloud-goodness/#comments</comments>
		<pubDate>Thu, 26 Aug 2010 05:33:45 +0000</pubDate>
		<dc:creator>Michael Morisy</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[DocumentCloud]]></category>
		<category><![CDATA[Site Updates]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.muckrock.com/blog/?p=116</guid>
		<description><![CDATA[The MuckRock team has been playing with DocumentCloud integration, and we&#8217;ve found a happy medium in terms of balancing the &#8220;request&#8221; view and &#8220;document&#8221; view. Now, whenever you have a request that has  a group of documents attached to it, you can just click the document name you&#8217;d like to view, and you&#8217;ll be taken [...]]]></description>
			<content:encoded><![CDATA[<p>The MuckRock team has been playing with <a href="http://www.documentcloud.org/">DocumentCloud</a> integration, and we&#8217;ve found a happy medium in terms of balancing the &#8220;request&#8221; view and &#8220;document&#8221; view. Now, whenever you have a request that has  a group of documents attached to it, you can just click the document name you&#8217;d like to view, and you&#8217;ll be taken to the beautiful DocumentCloud/New York Times&#8217; viewer:</p>
<p><a href="http://www.muckrock.com/foi/doc_cloud/7382-statewide-police-training-report/"><img class="aligncenter size-full wp-image-117" title="viewer" src="http://www.muckrock.com/blog/wp-content/uploads/2010/08/viewer.jpg" alt="" width="640" height="400" /></a></p>
<p>The viewer lets you easily scroll around and read through a document, download the original PDF, search through text and much, much more, and we&#8217;d love to hear your thoughts. A bit thanks to the DocumentCloud team for their incredible work, and for letting us take part in their own beta!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muckrock.com/blog/muckrock-now-with-more-documentcloud-goodness/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A peak at MuckRock&#8217;s new wizard</title>
		<link>http://www.muckrock.com/blog/a-peak-at-muckrocks-new-wizard/</link>
		<comments>http://www.muckrock.com/blog/a-peak-at-muckrocks-new-wizard/#comments</comments>
		<pubDate>Mon, 16 Aug 2010 17:35:29 +0000</pubDate>
		<dc:creator>Michael Morisy</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[FOI]]></category>
		<category><![CDATA[MuckRock]]></category>

		<guid isPermaLink="false">http://www.muckrock.com/blog/?p=74</guid>
		<description><![CDATA[The mission of MuckRock is to make it as simple as possible to file your freedom of information requests, and we&#8217;ve been working hard to make it easier than ever to navigate creating, tracking and sharing your requests. We have big announcements coming up soon on the &#8220;sharing&#8221; front, but right now, we wanted to [...]]]></description>
			<content:encoded><![CDATA[<p>The mission of MuckRock is to make it as simple as possible to file your freedom of information requests, and we&#8217;ve been working hard to make it easier than ever to navigate creating, tracking and sharing your requests. We have big announcements coming up soon on the &#8220;sharing&#8221; front, but right now, we wanted to give you a better look at the &#8220;creating&#8221; portion: We&#8217;ve broken the wizard down into tabbed categories with better descriptions helping you figure out exactly what kind of request you need to make to get the information you want.</p>
<p style="text-align: center;"><a href="http://www.muckrock.com/blog/wp-content/uploads/2010/08/newwizard.jpg"><img class="aligncenter size-full wp-image-75" title="newwizard" src="http://www.muckrock.com/blog/wp-content/uploads/2010/08/newwizard.jpg" alt="" width="506" height="385" /></a></p>
<p style="text-align: left;">You can also see a progress bar up top that shows you how far you are along in actually getting that request finished up. You&#8217;ll actually find a similar progress bar on all request pages now (<a href="http://muckrock.com/foi/view/cambridge-ma/assessor-data-for-cambridge-in-2009/17/">see here for a sample</a>). That gives you a quick, visual way to see how far along your request is: Whether it&#8217;s waiting for a response, hasn&#8217;t been sent out yet, or is even still just a draft in your inbox. There&#8217;s also a new color-coding system for tracking these responses, so that if a response is coded green, everything&#8217;s smooth sailing; if it&#8217;s coded red, the request has been denied, the government has failed to respond within the statutory limits, or something else has gone wrong; and if it&#8217;s coded yellow, a user response is needed, such as finishing up a draft or OK&#8217;ing some proposed compromise that the government agency is requesting. You can even quickly see the status of all current requests with this system on the <a href="http://muckrock.com/foi/list/">FOI request homepage</a>, which is right now almost entirely green.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muckrock.com/blog/a-peak-at-muckrocks-new-wizard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Power of Confirmation</title>
		<link>http://www.muckrock.com/blog/the-power-of-confirmation/</link>
		<comments>http://www.muckrock.com/blog/the-power-of-confirmation/#comments</comments>
		<pubDate>Tue, 27 Jul 2010 14:58:12 +0000</pubDate>
		<dc:creator>Ben Eisen</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Afganistan]]></category>
		<category><![CDATA[Leaks]]></category>
		<category><![CDATA[Wikileaks]]></category>

		<guid isPermaLink="false">http://www.muckrock.com/blog/?p=67</guid>
		<description><![CDATA[How powerful is information if it only confirms what we already know? As over 90,000 documents detailing military intelligence on the war in Afghanistan flood into the public sphere, that’s exactly what we are finding out.
Released by Wikileaks, the documents provide vivid descriptors of efforts to contain the Taliban, and, most strikingly, reveal a potential alliance [...]]]></description>
			<content:encoded><![CDATA[<p>How powerful is information if it only confirms what we already know? As over 90,000 documents detailing military intelligence on the war in Afghanistan flood into the public sphere, that’s exactly what we are finding out.</p>
<p>Released by<a href="http://www.wikileaks.com/"> Wikileaks</a>, the documents provide vivid descriptors of efforts to contain the Taliban, and, most strikingly, reveal a potential alliance between al Qaeda and Pakistani intelligence.</p>
<p>But for all of the<a href="http://online.wsj.com/article/SB10001424052748703700904575391500049528056.html?mod=WSJ_hpp_LEFTTopStories"> clamoring</a> by government officials to diffuse attention from the information contained in these reports, commentators almost unanimously agree on one thing —<a href="http://www.washingtonpost.com/wp-dyn/content/article/2010/07/26/AR2010072603587.html?hpid=opinionsbox1"> we</a> <a href="http://www.nytimes.com/roomfordebate/2010/07/26/the-fallout-of-the-afghanistan-war-files">already</a> <a href="http://www.politico.com/blogs/bensmith/0710/Gibbs_Wiki_not_comparable_to_Pentagon_Papers.html">knew</a> <a href="http://www.tnr.com/blog/foreign-policy/76549/leakistan-the-new-insurgency">this</a>. These thousands of documents only give voice to what the government and media has already told us: That winning a war against terrorists is a near impossible task with few victories and many failures.</p>
<p>So was it worthwhile to release all of this information? In a word, yes. Not only does it confirm that the news we have been fed about the war in Afghanistan is, for the most part, accurate, but it also gives us the information with almost zero bias.</p>
<p>Yes, it’s possible that Wikileaks and the publications it partnered with to release the documents picked and chose what to make public. And no, it is likely not possible to confirm the accuracy of every piece of information contained in these volumes of history. But for the most part, these newly public facts stand alone – apart from the partisan bickering that can obscure the truths of war, and apart from the news media that sometimes fails to capture world events with infallible accuracy.</p>
<p>With a compendium of knowledge out in the open, the public and officials on both sides of the aisle can look inward and revise their own visions of the war on Afghanistan. These documents could force the president to<a href="http://www.nytimes.com/2010/07/27/world/asia/27wikileaks.html?hp"> make a swift decision</a> to either reassert his policy in Afghanistan or come up with an exit strategy. And they could force the public to take apolitical views on a war that had become fodder for policy wonkery.</p>
<p>Open information, whether or not it provides a smoking gun revelation, has the power to refocus interests and align people in working towards a better strategy. Whether or not a solution emerges depends now on how long we can lift the fog of war for.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muckrock.com/blog/the-power-of-confirmation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Where&#8217;s the beef with MA health insurance caps?</title>
		<link>http://www.muckrock.com/blog/wheres-the-beef-with-ma-health-insurance-caps/</link>
		<comments>http://www.muckrock.com/blog/wheres-the-beef-with-ma-health-insurance-caps/#comments</comments>
		<pubDate>Sun, 25 Jul 2010 19:47:41 +0000</pubDate>
		<dc:creator>Michael Morisy</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Associated Press]]></category>
		<category><![CDATA[Boston Herald]]></category>
		<category><![CDATA[Deval Patrick]]></category>
		<category><![CDATA[Health care]]></category>
		<category><![CDATA[insurance]]></category>

		<guid isPermaLink="false">http://www.muckrock.com/blog/?p=61</guid>
		<description><![CDATA[Recently we&#8217;ve caught wind of internal e-mails undermining the public messaging from Governor Deval Patrick&#8217;s administration about somewhat controversial push to block rate increases on health insurance premiums.
As a Boston Herald editorial summarized:
Just in case anyone thought the Patrick administration’s health insurance rate cap was anything other than an exercise in raw political pandering, along comes a [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;"><img class="size-full wp-image-62 alignright" style="margin: 5px;" title="wheres-the-beef" src="http://www.muckrock.com/blog/wp-content/uploads/2010/07/wheres-the-beef.png" alt="" width="305" height="239" />Recently we&#8217;ve caught wind of internal e-mails undermining the public messaging from Governor Deval Patrick&#8217;s administration about somewhat controversial push to block rate increases on health insurance premiums.</p>
<p>As a <a href="http://www.bostonherald.com/news/opinion/editorials/view/20100715policy_vs_the_spin/">Boston Herald editorial summarized</a>:</p>
<blockquote><p>Just in case anyone thought the Patrick administration’s health insurance rate cap was anything other than an exercise in raw political pandering, along comes a set of e-mails that proves the point.</p>
<p>Thanks to a Freedom of Information request made by State House News Service, we now have a glimpse into how the administration crafted and rallied to defend what has turned out to be an indefensible policy.</p>
<p>Many of the e-mails were in response to a column by Mike Widmer, head of the Massachusetts Taxpayers Foundation, who pointed out what a dreadful idea the rate cap was. But the oped, which ran in The Boston Globe on March 17, did nothing to prevent the administration from going ahead with the cap officially on April 1. The e-mails showed administration officials were less concerned about the policy than about the spin!</p></blockquote>
<p>The Associated Press had apparently filed its own  request for the <a href="http://www.businessweek.com/ap/financialnews/D9GUQG880.htm">e-mails discussing the rate cap</a>, but one thing is conspicuously missing from both reports: The actual e-mails themselves.  Not surprising, but a bit obnoxious: Why can&#8217;t we see for ourselves how the Patrick administration was discussing the proposed internally? Soon, state willing, we will. MuckRock has <a href="http://muckrock.com/foia/view/massachusetts/week-of-email-for-barbara-anthony/43/">filed our own request</a> (click the link if you&#8217;re a registered member), which we&#8217;ve reproduced below the fold.</p>
<p><span id="more-61"></span></p>
<p><strong>Our Request, filed via the <a href="http://www.mass.gov/?pageID=ocautilities&amp;L=1&amp;sid=Eoca&amp;U=oca_contact_form">Consumer Affairs and Business Regulation contact form</a></strong></p>
<p>To Whom It May Concern:</p>
<p>Pursuant to the state Freedom of Information Act, G.L.M. c.4, €7, clause 26th, I hereby request the following records:</p>
<p>Any and all e-mails and related materials provided to the State House News Service and/or the Associated Press in response to Freedom of Information requests for e-mails regarding the proposed health insurance rate cap instituted April 1st, as referenced at the following URLs:</p>
<p>http://www.bostonherald.com/news/opinion/editorials/view/20100715policy_vs_the_spin/</p>
<p>http://www.businessweek.com/ap/financialnews/D9GUQG880.htm</p>
<p>and including but not limited to e-mails from and to Barbara Anthony, a government employee serving as the undersecretary of consumer protection.</p>
<p>I also request the initial requests filed by the State House News Service and/or the Associated Press that lead to the e-mails release.</p>
<p>I agree to pay reasonable search and duplication fees for the processing of this request in an amount not to exceed $5.</p>
<p>In the event that fees do exceed $5, I would be grateful if you would inform me of the total charges in advance of fulfilling my request. I would prefer the request filled electronically, via e-mail attachment or CD-ROM.</p>
<p>I also request that, if appropriate, fees be waived as we believe this request is in the public interest, as suggested but not stipulated by the recommendations of the Massachusetts Supervisor of Public Records. The requested documents will be made available to the general public free of charge as part of the public information service at MuckRock.com.</p>
<p>Thank you in advance for your anticipated cooperation in this matter. I look forward to receiving your response to this request within 10 business days, as the statute requires.</p>
<p>Sincerely,</p>
<p>Michael Morisy<br />
Filed via MuckRock.com<br />
185 Beacon St. #3<br />
Somerville, MA 02143</p>
<p>Daytime: (857) 488- 3081<br />
E-mail: requests@muckrock.com</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muckrock.com/blog/wheres-the-beef-with-ma-health-insurance-caps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Keeping them honest</title>
		<link>http://www.muckrock.com/blog/keeping-them-honest/</link>
		<comments>http://www.muckrock.com/blog/keeping-them-honest/#comments</comments>
		<pubDate>Thu, 10 Jun 2010 21:08:59 +0000</pubDate>
		<dc:creator>Michael Morisy</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.muckrock.com/blog/?p=56</guid>
		<description><![CDATA[A common reason given by government agencies for denying freedom of information requests is that the information requested is confidential, or is proprietary, or bound by contracts to confidentiality. But is it? Edward Hammond said that too often, opacity and denial of information is the default position when it should be the other way around, [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-57" title="honest_abe" src="http://www.muckrock.com/blog/wp-content/uploads/2010/06/honest_abe.jpg" alt="" width="179" height="295" />A common reason given by government agencies for denying freedom of information requests is that the information requested is confidential, or is proprietary, or bound by contracts to confidentiality. But is it? Edward Hammond said that too often, opacity and denial of information is the default position when it should be the other way around, and he offered a yardstick to help prove it. He&#8217;s kindly let us reprint his suggest:<span id="more-56"></span></p>
<blockquote><p><strong>A Modest Proposal:</strong></p>
<p>After having filed what I guess are 2,000 open records requests in my 40 odd years of existence, one of the things that I am most often struck by (and annoyed by) are government institutions that go to the mat to prevent release of public domain information.</p>
<p>Again and again, I find myself denied information under FOI that is readily available from public sources OTHER THAN open records laws. In my kind of requests, it is generally hyper-exaggerated notions of intellectual property that are the problem.</p>
<p>Why is it that government agencies so often fight release of information that is already public?  Of course, there are frequent &#8220;our hands are tied&#8221; arguments; but these are usually exaggerated and can be negotiated around. No, it really seems to me to be most often a matter of resistance to FOI in general more than some particular odd provision in FOI law that exempts already public information.</p>
<p>Why couldn&#8217;t honesty be made a systematic metric of FOIA?  Isn&#8217;t it actually a potentially better measure than some others currently in use?</p>
<p>I suspect that like a lot of other people, I routinely file open records requests towards the beginning of researching an issue.  Sometimes, I answer my own question before I get a FOI response.</p>
<p>Unfortunately, the FOI response is often that the information I have found elsewhere is exempt from disclosure.  Then I find myself in the nonsensical position of being denied the very information I already know.</p>
<p>For example, my current round of this problem relates to Texas A&amp;M University and some plant varieties that they think are valuable.  They are fighting to avoid telling me where these plant varieties come from because it is, allegedly, Texas A&amp;M intellectual property.  But I already know the answer.  I know where they were collected, when, from whom, and how they got around the world to College Station, Texas. All of this was found in public documents &#8211; almost exclusively scientific publications.</p>
<p>Nevertheless, Texas A&amp;M is &#8216;valiantly&#8217; fighting on to stop me from knowing.</p>
<p>If it&#8217;s not plant varieties, then it&#8217;s some other issue.</p>
<p>So why can&#8217;t the FOI community turn this problem on its head?  Why not do honesty checks?  Systematically file FOI requests for already public information relating to a particular agency, and then evaluating that agency&#8217;s reply.  There would be a number of practical issues to work through in order to get comparable data; but I don&#8217;t see any intrinsic show stoppers.</p>
<p>I like having an &#8220;honesty&#8221; gauge too.  Every ethical person &#8211; on all sides &#8211; wants to be honest.  So where institutional dishonesty arises, I think FOI officers and others may very well be potential allies in fixing it.<br />
<span style="color: #888888;"><br />
Edward Hammond</span></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.muckrock.com/blog/keeping-them-honest/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Should reporters&#8217; FOI requests be private?</title>
		<link>http://www.muckrock.com/blog/should-reporters-foi-requests-be-private/</link>
		<comments>http://www.muckrock.com/blog/should-reporters-foi-requests-be-private/#comments</comments>
		<pubDate>Mon, 24 May 2010 00:39:23 +0000</pubDate>
		<dc:creator>Michael Morisy</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.muckrock.com/blog/?p=52</guid>
		<description><![CDATA[Recently, on the NICAR mailing lists and elsewhere, reporters have been debating the nuances of exactly how open open records laws should be. The heart of the question is whether reporters should have exclusive access to request responses, for a period of time, when they are the ones requesting (and often times paying for) a [...]]]></description>
			<content:encoded><![CDATA[<p>Recently, on the <a href="http://data.nicar.org/">NICAR</a> mailing lists and elsewhere, reporters have been debating the nuances of exactly how open open records laws should be. The heart of the question is whether reporters should have exclusive access to request responses, for a period of time, when they are the ones requesting (and often times paying for) a specific government document.</p>
<p>As one reporter responded on the mailing list:</p>
<blockquote><p>Definitely need a period of exclusivity to encourage use of open-records laws. If there is none, requestors will be less willing to expend time and money to fight for the release of withheld records.</p>
<p>I once fought a lengthy Access to Info battle for some federal records only to have the department release them publicly and announce it with a press release. When I got home that day, I found that a courier had been and left them the documents requested on my doorstep.</p></blockquote>
<p>So while government officials don&#8217;t always like the results of freedom of information requests, by law they can only stall so much, so often and they&#8217;ve turned to transparency as an obnoxious counter-measure against requests.</p>
<p>For a case study, <a href="http://www.upi.com/Top_News/US/2010/05/13/Chicago-FOI-requests-go-online/UPI-48021273793568/">see Chicago</a>:</p>
<blockquote>
<div id="_mcePaste">CHICAGO, May 13 (UPI) &#8212; Anyone filing Freedom of Information Act requests with the city of Chicago will now find their names on the city&#8217;s Web site, Mayor Richard Daley said Thursday.</div>
<div id="_mcePaste">The mayor says he&#8217;s just trying to be totally transparent, not get back at nosy news reporters, who now may find competitors privy to what story leads they are investigating.</div>
</blockquote>
<div>The City of Chicago&#8217;s own Freedom of Information act homepage says that all document requests and requestors will be public, but the page appears to be down or not yet up.</div>
]]></content:encoded>
			<wfw:commentRss>http://www.muckrock.com/blog/should-reporters-foi-requests-be-private/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Taking open access on the road</title>
		<link>http://www.muckrock.com/blog/taking-open-access-on-the-road/</link>
		<comments>http://www.muckrock.com/blog/taking-open-access-on-the-road/#comments</comments>
		<pubDate>Sun, 09 May 2010 19:53:54 +0000</pubDate>
		<dc:creator>Michael Morisy</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[FOI Resources]]></category>
		<category><![CDATA[FOIA]]></category>

		<guid isPermaLink="false">http://www.muckrock.com/blog/?p=48</guid>
		<description><![CDATA[The Society of Professional Journalists and National Freedom of Information Coalitions are hitting the trail and helping to educate journalists and citizens alike about their rights to government information. The SPJ&#8217;s Freedom of Information Committee Chairman David Cuillier is hitting dozens of states over 45 days and blogging his journey:
What he&#8217;s finding, however, is a [...]]]></description>
			<content:encoded><![CDATA[<p>The Society of Professional Journalists and National Freedom of Information Coalitions are hitting the trail and helping to educate journalists and citizens alike about their rights to government information. The SPJ&#8217;s Freedom of Information Committee Chairman David Cuillier is hitting dozens of states over 45 days and <a href="http://blogs.spjnetwork.org/aaa/">blogging his journey</a>:<a href="http://blogs.spjnetwork.org/aaa/"><img class="aligncenter size-full wp-image-49" title="routep1" src="http://www.muckrock.com/blog/wp-content/uploads/2010/05/routep1.jpg" alt="" width="630" height="370" /></a></p>
<p>What he&#8217;s finding, however, is a very mixed picture, particularly in terms of <a href="http://blogs.spjnetwork.org/aaa/?p=184" target="_blank">police department openness</a>:</p>
<blockquote><p>Time after time journalists are raising this issue: They can’t get anything out of police anymore. As I do sessions I ask the old timers to describe what it was like to cover cops 20 years ago. Then I ask a new reporter to describe what it is like today. Here is how it goes:</p>
<p><strong>20 years ago:</strong> Walk into the police station and go to the incident reports, kept in a basket or clipboard. Flip through all the reports for the past 24 hours, with no redactions. Everything is there – name of suspects, full address, name of victims – the works. If you had a question you asked the sarge on duty, or even called the officer who handled the call. If we heard something on the scanner we could ask about it. We got news out fast and we got it complete.</p>
<p><strong>Today: </strong>You walk into a police station and talk to a PIO, who tells you what the police think is newsworthy, sanitized and little detail. No looking at incident reports. No interviewing the officer or getting information from a sarge in charge. Some agencies are encrypting their scanner channels so nobody can hear what is happening. We are at the mercy of what a PIO wants to tell us, or not tell us. Secret police.</p></blockquote>
<p>Read on for <a href="http://blogs.spjnetwork.org/aaa/">other great tips and his thoughts on the state of FOI</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muckrock.com/blog/taking-open-access-on-the-road/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Saddam Hussein&#8217;s formerly secret FBI interviews released</title>
		<link>http://www.muckrock.com/blog/saddam-husseins-formerly-secret-fbi-interviews-released/</link>
		<comments>http://www.muckrock.com/blog/saddam-husseins-formerly-secret-fbi-interviews-released/#comments</comments>
		<pubDate>Mon, 19 Apr 2010 15:34:02 +0000</pubDate>
		<dc:creator>Michael Morisy</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[FBI]]></category>
		<category><![CDATA[Federal Government]]></category>
		<category><![CDATA[Interviews]]></category>

		<guid isPermaLink="false">http://www.muckrock.com/blog/?p=44</guid>
		<description><![CDATA[An anonymous tipster sent along an interesting bit: The FBI has released a portion of the written interview summaries of Saddam Hussein by Special Agent Piro.
The 132-page document includes:

Saddam&#8217;s thoughts on his greatest accomplishment: &#8220;The social programs for the citizens of Iraq and improvements in other sectors of the economy including enhancements to education, the health [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://en.wikipedia.org/wiki/File:Saddam_Hussein_at_trial,_July_2004-edit1.JPEG"><img class="alignright size-full wp-image-43" title="saddamhussein" src="http://www.muckrock.com/blog/wp-content/uploads/2010/04/saddamhussein.jpeg" alt="Saddam Hussein speaking at a pre-trial hearing." width="120" height="176" /></a>An anonymous tipster sent along an interesting bit: The FBI has released a portion of the written interview summaries of Saddam Hussein by Special Agent Piro.</p>
<p>The 132-page document includes:</p>
<ul>
<li>Saddam&#8217;s thoughts on his greatest accomplishment: &#8220;The social programs for the citizens of Iraq and improvements in other sectors of the economy including enhancements to education, the health care system, industry, agriculture, and other areas that generally enhanced the way of life for Iraqis.&#8221;</li>
<li>When asked about his own mistakes, he told the interviewer that &#8220;All humans make mistakes, and only God is free of error.&#8221; But that he would not identify mistakes to an enemy, and the American system of government was his enemy.</li>
<li>Saddam wishes that both America and Iraq advance in all areas, &#8220;financial, religious, etc.&#8221;.</li>
<li>Pages and pages of details about coups, the Ba&#8217;ath uprising, the early days of the Iraqi revolution, and more.</li>
</ul>
<p>The document release is 132 pages, but unfortunately is not searchable until somebody takes some OCR software to it. You can <a href="http://foia.fbi.gov/husseinsaddam/written_interviews.pdf">download it directly from the FBI</a> (warning: PDF).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muckrock.com/blog/saddam-husseins-formerly-secret-fbi-interviews-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>No more &#8216;Killing Granny&#8217;: A new way to track what&#8217;s actually in government documents</title>
		<link>http://www.muckrock.com/blog/no-more-killing-granny-a-new-way-to-track-whats-actually-in-government-documents/</link>
		<comments>http://www.muckrock.com/blog/no-more-killing-granny-a-new-way-to-track-whats-actually-in-government-documents/#comments</comments>
		<pubDate>Thu, 08 Apr 2010 15:27:38 +0000</pubDate>
		<dc:creator>Michael Morisy</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Citability.org]]></category>
		<category><![CDATA[Healthcare Reform]]></category>

		<guid isPermaLink="false">http://www.muckrock.com/blog/?p=38</guid>
		<description><![CDATA[
Last week, I wrote about ProPublica&#8217;s Health Care Bill Comparison app, which elegantly took on the task of showing people just what was changing, and how, in the health care bill&#8217;s final days and hours. It&#8217;s an incredibly important task, since the bill weighed in at over 1,000 pages and it&#8217;s often in the final revisions that [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-39" title="killer_grandma" src="http://www.muckrock.com/blog/wp-content/uploads/2010/04/killer_grandma.jpg" alt="Killing granny or killer Granny?" width="480" height="412" /><br />
Last week, I wrote about <a href="http://www.muckrock.com/blog/two-great-podcasts-on-two-great-news-apps-that-explore-government-information/">ProPublica&#8217;s Health Care Bill Comparison app</a>, which elegantly took on the task of showing people just what was changing, and how, in the health care bill&#8217;s final days and hours. It&#8217;s an incredibly important task, since the bill weighed in at over 1,000 pages and it&#8217;s often in the final revisions that pork-barrel projects find there way in or out.</p>
<p>But with bills generally seeing multiple revisions, it&#8217;s easy to lose track of what exactly was or is included in a bill and when it was added, taken out, or even re-added. The results can be disastrous when it comes to reasoned discourse, as the League of Technical Voters&#8217; founder <a href="http://radar.oreilly.com/2010/04/stop-fishing-and-start-feastin.html">Silona Bonewald notes</a> in a recent piece for O&#8217;Reilly Radar:</p>
<blockquote><p>Commenting on these types of documents as they are currently implemented is extremely challenging. Pointing a finger at that big pond and telling someone that you swear you saw a fish isn&#8217;t very effective. It&#8217;s even worse when someone swears they saw a fish that isn&#8217;t really there and it is effective because no one is willing to refute them. No one has time to wade around themselves and so they take it on faith. The recent &#8220;killing grandma&#8221; scare is an excellent example.</p></blockquote>
<p>So the league has created an advanced citability solution, <a href="http://citability.org/">Citability.org</a>, that tracks changes and makes sure that it&#8217;s easy to see how your political sausage is made, and who is putting in what ingredients.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muckrock.com/blog/no-more-killing-granny-a-new-way-to-track-whats-actually-in-government-documents/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (enhanced)
Database Caching 8/13 queries in 0.006 seconds using disk

Served from: www.muckrock.com @ 2010-09-05 05:24:25 -->