<?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>Uncarved &#187; Public Brainstorm</title>
	<atom:link href="http://uncarved.prometheas.com/category/public-brainstorm/feed" rel="self" type="application/rss+xml" />
	<link>http://uncarved.prometheas.com</link>
	<description>An ongoing tension of potential, or how i learned to stop worrying and embrace the iterations.</description>
	<lastBuildDate>Thu, 15 Apr 2010 00:25:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Fortifying Confidence by Stealing From Academics. And Scientists.</title>
		<link>http://uncarved.prometheas.com/2009/11/stealing-from-academics-and-scientists.html</link>
		<comments>http://uncarved.prometheas.com/2009/11/stealing-from-academics-and-scientists.html#comments</comments>
		<pubDate>Tue, 10 Nov 2009 07:29:33 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[Public Brainstorm]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[Library of Congress]]></category>
		<category><![CDATA[mashup]]></category>
		<category><![CDATA[open government]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[web service]]></category>

		<guid isPermaLink="false">http://uncarved.prometheas.com/?p=478</guid>
		<description><![CDATA[Driven in large part by open government efforts initiated by the Obama Administration, and particularly Federal CIO Vivek Kundra, tremendous and rich data sets have become available from the federal government, as well as some state and local governments. This data is published digitally, in organized, well-known and documented formats. And because these government-amassed data [...]]]></description>
			<content:encoded><![CDATA[<p>Driven in large part by open government efforts initiated by the Obama Administration, and particularly Federal CIO Vivek Kundra, tremendous and rich data sets have become available from the federal government, as well as some state and local governments. This data is published digitally, in organized, well-known and documented formats.</p>

<p>And because these government-amassed data sets have already been paid for by taxpayer dollars, they have been rightfully made accessible to the public domain, free of charge.</p>

<p><a href="http://radar.oreilly.com/tim/">Tim O&#8217;Reilly</a> – founder and CEO of O&#8217;Reilly Media, as well as organizer and host of various technology conferences including the <a href="http://www.gov2summit.com/">Government 2.0 Summit</a> – describes the thinking behind this policy decision in an <a href="http://www.forbes.com/2009/08/10/government-internet-software-technology-breakthroughs-oreilly.html">article he wrote at Forbes</a>, writing:</p>

<blockquote>
  <p>Rather than licensing government data to a few select &#8220;value added&#8221; providers, who then license the data downstream, the federal government (and many state and local governments) are beginning to provide an open platform that enables anyone with a good idea to build innovative services that connect government to citizens, give citizens visibility into the actions of government and even allow citizens to participate directly in policy-making.</p>
</blockquote>

<p>The primary distribution point for the federal government&#8217;s data is the <a href="http://data.gov">data.gov</a> website (about which <a href="/2009/05/datagov-launches.html">I&#8217;d earlier written</a>). In another article he&#8217;d guest-authored for TechCrunch, Mr. O&#8217;Reilly talks about this website, <a href="http://www.techcrunch.com/2009/09/04/gov-20-its-all-about-the-platform/">writing</a>:</p>

<blockquote>
  <p>Behind [the] site is the idea that government agencies shouldn’t just provide web sites, they should provide web services. These services, in effect, become the government’s SDK (software development kit). The government may build some applications using these APIs, but there’s an opportunity for private citizens and innovative companies to build new, unexpected applications. This is the phenomenon that Jonathan Zittrain refers to as &#8220;<a href="http://yupnet.org/zittrain/archives/13#9">generativity</a>&#8220;, the ability of open-ended platforms to create new possibilities not envisioned by their creators.</p>
</blockquote>

<p>The range of potential applications for these data is difficult to exaggerate (or, frankly, to even imagine). A thorough exploration of these possibilities is beyond the scope of this post, but <a href="http://datasf.org/showcase/">this showcase of apps</a> built leveraging data made available by the city of San Francisco gives a small peek at the broad range of uses this government data.</p>

<p>In browsing that app showcase, I would note that <em>none</em> of the apps found there were written by the government. That&#8217;s <em>zero</em>. Rather, each was developed by a third-party.</p>

<p>I would also note that most of those apps combine <em>multiple different data sets</em>, many of which are also including <em>non-governmental data sets</em>.</p>

<p>Clearly all this is just the beginning.</p>

<h3>Opportunities and Challenges to Come</h3>

<p>The datasets will grow broader, as the federal government continues to expand its data offerings, and more state and local governments begin to follow suit, as <a href="http://www.utah.gov/data/">Utah</a>, <a href="http://www.datasf.org/">San Francisco</a>, and even my home town of <a href="http://www.nyc.gov/html/datamine/html/home/home.shtml">New York City</a> have since done.</p>

<p>As the data sets become richer throughout this process, mining the information on offer will provide opportunities to develop insights about matters ranging from public health to environmental developments and energy consumption, and from regional commercial performance to educational development.</p>

<p>And once there&#8217;s some historical depth to these records – through a combination of digitally publishing data sets from earlier years, as well as continuing to release emergent data – we will eventually even start to see the emergence of various types of <em>projection models</em> developed for many of the issues mentioned above, from economic development forecasts to predictions for the spread of disease outbreak.</p>

<p>These data sets stand to revolutionize both entrepreneurial endeavors and academic research projects.</p>

<p>And with the grant allocations for research en route from <a href="http://en.wikipedia.org/wiki/Recovery_Act#Provisions_of_the_Act">provisions</a> that are part of <a href="http://www.gpo.gov/fdsys/pkg/PLAW-111publ5/content-detail.html">American Recovery and Reinvestment Act of 2009</a>, we&#8217;re likely to see a staggering amount of new projects rise from both academia and the business world.</p>

<p>But with all these arguments and assertions about corollaries, trends, and predictions that this number crunching activity will generate, it will become increasingly crucial to have a mechanism by which the results claimed to have been derived from the number-crunching can be accounted for.</p>

<p>It&#8217;s not difficult to imagine, after all, the proliferation of claims that will begin to emerge, anchoring their proposed value on these mountains of data. Luckily, after decades of subjection to some of the most talented number-spinning tactics that statisticians teamed up with PR specialists have thrown about, many people have developed a thick skin (and perhaps even default suspicion) against allowing &#8220;the numbers&#8221; to speak to very much.</p>

<p>And rightfully so; &#8220;the numbers&#8221; can build nearly any narrative a story teller wishes to weave, depending on how they&#8217;re sliced, diced, and manicured.</p>

<p>Numbers may not be able to lie, but men sure can.</p>

<p>Luckily, we can find some time-tested solutions for mitigating against falsification and/or incompetence by looking to techniques applied in works of scholarship and the practices of scientific peer review: scholars must meticulously cite their sources in bibliographies attached to their work, and scientists must accompany any publication of the results of their work along with a detailed description of their methods.</p>

<p>It must similarly become incumbent upon anybody publishing findings derived from mining such data to share both the sources <em>and</em> processes used to derive their results or conclusions. In cases of claims rooted in the fruits of data mining endeavors, it is specifically important that results indicate:</p>

<ol>
<li><p>exactly which data sets it draws from, and</p></li>
<li><p>precisely which algorithm(s) processed the data in question.</p></li>
</ol>

<p>The trouble, however, is that there is neither a comprehensive repository nor a system for unique canonical identifiers to publicly and universally identify such data sets and algorithms. Their absence makes any attempts to reproduce such results very challenging, at best.</p>

<h3>Fortifying Confidence in the Results</h3>

<p>Books, by contrast, have an <a href="http://en.wikipedia.org/wiki/International_Standard_Book_Number">ISBN number</a>. Books also have a governmental repository, called the <a href="http://en.wikipedia.org/wiki/Library_of_Congress">Library of Congress</a>.</p>

<p>So I propose that similar mechanisms must be worked out for data sets and algorithms. Perhaps serving as this repository becomes an evolutionary portion of the Library of Congress&#8217; own charter. This repository would be a web service that exposes each individual data set and data mining algorithm source code package under <a href="http://en.wikipedia.org/wiki/Permalink">permalinks</a> which incorporate their respective canonical identifier.</p>

<p>Potential examples of such permalinks may look something like this:</p>

<pre><code>  http://www.loc.gov/datasets/0123457/us-census-2010

http://www.loc.gov/algorithms/76543210/higgs-boson-modeler

</code></pre>

<p>Naturally, there are considerations that must be accounted for in some cases that it may wind up being imperative restrict access to any resources stored in this repository.</p>

<p>I&#8217;ve focused so far on publicly-available data sets, I would note that it is inevitable that a number of valuable projects will on occasion leverage data sets whose rights are privately owned, and to which access must be controlled by obtaining permission of some sort from its owner.</p>

<p>The same concern is naturally prone to surface with some regularity for algorithms, as well.</p>

<p>This a consideration that will require some real thought, but I&#8217;ll leave that to a future exploration. For the time being, I&#8217;ll simply note that the HTTP protocol does provide <a href="http://en.wikipedia.org/wiki/List_of_HTTP_status_codes#4xx_Client_Error">mechanisms for access restriction</a> (particularly 401, 402, and 403); leaving only the policy around which those mechanisms will be applied to be worked out.</p>

<p>Although there&#8217;s loads to work out about how such a repository can be actualized, its availability will become crucial in the coming years.</p>

<p>Simply hope that both the practice of sharing data sources and methods – as well as a suitable canonical repository for them – materialize earlier than later, since a only a few silly and reckless abuses of this data can undermine public confidence in efforts to fully harness its potential value.</p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://uncarved.prometheas.com/2009/11/stealing-from-academics-and-scientists.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bloomberg Anachronistically Proposes 311 &#8220;Mass Transit Hotline&#8221;</title>
		<link>http://uncarved.prometheas.com/2009/08/bloomberg-anachronistically-proposes-311-mass-transit-hotline.html</link>
		<comments>http://uncarved.prometheas.com/2009/08/bloomberg-anachronistically-proposes-311-mass-transit-hotline.html#comments</comments>
		<pubDate>Sun, 30 Aug 2009 04:36:40 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[Government 2.0]]></category>
		<category><![CDATA[Public Brainstorm]]></category>
		<category><![CDATA[Michael Bloomberg]]></category>
		<category><![CDATA[MTA]]></category>
		<category><![CDATA[NYC]]></category>
		<category><![CDATA[politics]]></category>

		<guid isPermaLink="false">http://uncarved.prometheas.com/?p=463</guid>
		<description><![CDATA[The mayoral election season is drawing upon New York City, and it&#8217;s time for the candidates to start taking on the causes that will define their election platforms. One of the issues that incumbent mayor Michael Bloomberg is starting to get vocal about a plan to implement MTA reforms, which his campaign website describes as: [...]]]></description>
			<content:encoded><![CDATA[<p>The mayoral election season is drawing upon New York City, and it&#8217;s time for the candidates to start taking on the causes that will define their election platforms. One of the issues that incumbent mayor Michael Bloomberg is <a href="http://www.mikebloomberg.com/blog/index.cfm/2009/8/9/Getting-Our-Message-Out">starting to get vocal</a> about a plan to implement MTA reforms, which his campaign website describes as:</p>

<blockquote>
  <p>A thoughtful, comprehensive 33-part plan that lays out tangible, realistic ideas to help the MTA reduce costs, reduce congestion, speed commutes, improve efficiency, enhance accessibility, and ultimately produce a safer, faster, cleaner, better mass transit system.</p>
</blockquote>

<p>As a man whose daily routine has depended heavily on the operations of the MTA (particularly the subway system) for over a decade, this is a concern in which I&#8217;ve become heavily invested. I&#8217;ve encountered my share of frustrations with the organization&#8217;s results, and I frankly have much to say about ways to improve the overall quality of the MTA&#8217;s service.</p>

<p>To be sure, I have a number of specific thoughts about various points in this plan, but I&#8217;d like to focus on one particular point for the moment: the idea of turning 311 into they city&#8217;s &#8220;Mass Transit Hotline.&#8221;</p>

<p>I&#8217;m sorry — a <em>hotline</em>?</p>

<p>The stated goal of this hotline is to provide quick and easy access to transit information, such as service schedules, travel maps, and up-to-date alerts regarding planned and circumstantial service alterations. Indeed this is an important goal, but a phone hotline is honestly probably the one of the <em>least effective possible ways</em> I can think of to accomplish this goal.</p>

<p>Simply put, <em>nobody</em> likes to call in for &#8220;phone support&#8221; for anything. This is because phone support systems universally suck, for everyone involved.</p>

<p>Now, I <em>do</em> feel like it would be useful to <em>also</em> offer 311 as a source of travel information, but only for people who cannot get it by other means. It could be a valuable new offering for, say, the visually impaired. Or, as a last resort for a person in some other extenuating circumstance. As such, a transit hotline would be more of an accessibility enhancement for transit information.</p>

<p>The fact is there are <em>already</em> a number of ways to access timely transit information that are better and more effective than a call-in hotline. Unfortunately, the average MTA customer has no idea any of them exist.</p>

<p>One example is <a href="http://www.mymtaalerts.com/">www.MyMtaAlerts.com</a>. The tool allows registered users to subscribe to service alerts for information about specific subway lines, bus service, and more, which all get delivered to their email inbox, mobile phone, or both. Although there&#8217;s plenty of room for improvement, this tool does allow MTA customers to subscribe to important information about the specific parts of the MTA&#8217;s vast transportation system that is directly relevant to them, and gets the information into customers&#8217; hands without the customers having to even think about asking after it.</p>

<p>Other tools, including a trip planner, schedule listings, and more, are also available at <a href="http://www.mta.info">www.mta.info</a>&#8230; provided you actually manage to <em>discover</em> them in the train wreck of a website (yea, I&#8217;ll confess: pun <em>fully</em> intended).</p>

<p>The fact that these do exist, however, demonstrates that the MTA is tracking and managing all this information digitally.</p>

<p>So the bottom line here is that, if Bloomberg wishes to make a meaningful difference in getting transit information into the hands of New Yorkers, he&#8217;ll have to focus on making this data more accessible.</p>

<p>This broadly boils down to taking the following actions:</p>

<ol>
<li><p><strong>Raise public awareness</strong>. Promote use of the existing tools in subway PA announcements. Rather than just reminding people that police may randomly search everyone&#8217;s bags, or discouraging people from giving money to panhandlers, or to step back from the yellow safety lines as trains enter and leave stations, these messages can encourage people to sign up for email and text message alerts online. Print subway ads. Run TV spots. Feature these tools prominently on MetroCards. This can begin immediately.</p></li>
<li><p><strong>Redesign the <a href="http://www.mta.info/">MTA website</a></strong>. I don&#8217;t simply mean tweaking the colors, adding some gradients, and moving to some three-column layout. This site is in dire need of a ground-up rethinking of how it&#8217;s organized. Although I have loads of specific criticisms about this site, I&#8217;ll save those for a later post. For now, I&#8217;ll simply say that the home page needs, at minimum, to directly expose their existing travel tools. This can be pulled off iteratively, over the course of several months.</p></li>
<li><p><strong>Expose the transit information via data feeds and <a href="http://en.wikipedia.org/wiki/Web_service">Web Service</a> APIs</strong>. The MTA is clearly tracking service information digitally, as it&#8217;s using it to power both the <em>MyMtaAlerts</em> website, as well as Google Maps&#8217; capability to offer <a href="http://mta.info/mta/google.html">door-to-door travel directions via the MTA&#8217;s network</a>. Connecting the infrastructure powering these services to data feeds and web services can allow both the MTA and third party developers to create new web and mobile device applications, designed to meet their customers&#8217; evolving needs. This effort will take the longest of all, but will prove to be an investment that will have created a foundation for continued improvements for MTA customer service.</p></li>
</ol>

<p>Having 311 take on the role of &#8220;Mass Transit Hotline&#8221; in an effort to get New Yorkers timely transit information is an idea would have, quite frankly, been deficient even in the 20th century.</p>

<p>But it&#8217;s 2009 now.</p>

<p>Bloomberg and NYC need to look to where government and society are moving. Mobile and web are the only information delivery solutions that can improve today&#8217;s commutes, while investing in improving tomorrow&#8217;s.</p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://uncarved.prometheas.com/2009/08/bloomberg-anachronistically-proposes-311-mass-transit-hotline.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sketching the Migration to Digital Education</title>
		<link>http://uncarved.prometheas.com/2009/08/sketching-the-migration-to-digital-education.html</link>
		<comments>http://uncarved.prometheas.com/2009/08/sketching-the-migration-to-digital-education.html#comments</comments>
		<pubDate>Tue, 18 Aug 2009 07:40:01 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[Modernizing Education]]></category>
		<category><![CDATA[Public Brainstorm]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[education]]></category>

		<guid isPermaLink="false">http://uncarved.prometheas.com/?p=444</guid>
		<description><![CDATA[California governor Arnold Schwarzenegger&#8217;s recent proposal to adopt so-called e-textbooks for his state&#8217;s public school system has triggered a flurry of press coverage, as well as new products like the Kindle DX and CourseSmart&#8216;s iPhone app in the market. The idea has critics. There are concerns regarding the economic feasibility of the idea, as well [...]]]></description>
			<content:encoded><![CDATA[<p>California governor Arnold Schwarzenegger&#8217;s <a href="http://gov.ca.gov/index.php?/fact-sheet/12455/">recent proposal</a> to adopt so-called e-textbooks for his state&#8217;s public school system has triggered a <a href="http://news.google.com/archivesearch?as_q=digital+textbooks&amp;num=100&amp;hl=en&amp;btnG=Search+Archives&amp;as_epq=&amp;as_oq=&amp;as_eq=&amp;ned=us&amp;as_user_ldate=4%2F1%2F2009&amp;as_user_hdate=9%2F1%2F2009&amp;lr=lang_en&amp;as_src=&amp;as_price=p1&amp;as_scoring=a">flurry of press coverage</a>, as well as new products like the Kindle DX and <a href="http://coursesmart.com">CourseSmart</a>&#8216;s <a href="http://gizmodo.com/5334060/coursesmart-dumps-7000%252B-textbooks-into-the-iphone-app-store">iPhone app</a> in the market.</p>

<p>The idea has critics. There are concerns regarding the economic feasibility of the idea, as well as the intellectual property management, and naturally the functional requirements for such devices.</p>

<p>An overview of these matters includes the following:</p>

<ul>
<li><p>Economic Feasibility</p>

<ol>
<li><p>How will the costs behind distributing the readers (the actual hardware units) to every student be covered?</p></li>
<li><p>What business model(s) will be available for textbook publishers?</p></li>
</ol></li>
<li><p>Intellectual Property</p>

<ol>
<li><p>What safeguards do publishers have against unauthorized distribution of their materials (eg, piracy)?</p></li>
<li><p>What safeguards does the educational system have against vendor lock-in?– schools should never become beholden to any one company.</p></li>
<li><p>What about ownership of the software itself? The operating system, the format of the interactive materials, etc.</p></li>
</ol></li>
<li><p>Functional Requirements</p>

<ol>
<li><p>What sort of hardware capabilities must these devices offer? Of course, they&#8217;ll have to display text in layouts with photos and diagrams, but what about video? What about 3D rendering for visualization purposes, or network connectivity?</p></li>
<li><p>What sorts of interactions must these devices allow students to conduct with the educational material? Will it support touch-based hyperlinking, annotations, or some sort of data sharing? What about end-of-chapter quizzing?</p></li>
</ol></li>
</ul>

<p>Clearly there are several matters that need to be thought through, but here&#8217;s a &#8220;sketch&#8221; for a potential solution.</p>

<p><span id="more-444"></span></p>

<h3>The Device</h3>

<p>First, let&#8217;s paint a picture of the device itself. It needs to offer the following:</p>

<ul>
<li>Rugged construction, ideally spill-proof and shock-resistant.</li>
<li>Size roughly matched to that of a notebook—US Letter (or A4) size—with most of that surface screen.</li>
<li>Video playback, both streaming and local playback.</li>
<li>A headphone port.</li>
<li>Some means of removable storage — ideally have 1 USB port.</li>
<li>Offer at least keyboard input (physical or screen-based), but also support pen-based input for free-form drawing.</li>
<li>Recording capabilities.</li>
<li>Stringent access controls, limiting what software can be added and—particularly for units given to children—what content can be loaded over the network.</li>
<li>Wireless network access.</li>
<li>Peer connectivity.</li>
<li>Location aware.</li>
<li>Its battery should have a life of at least 8 hours.</li>
<li>Ability to completely disable the unit if stolen or lost.</li>
</ul>

<p>Such a device would likely land close to the $1,000 mark, give or take. Let&#8217;s consider a typical high school textbook price to land in the $80 to $100 range. Assuming the minimum of four textbooks for a given year (ie, math, science, social studies, and language arts), along with the odd extra textbook for health, language, and other courses, this hypothetical device still lands at about double the unit cost.</p>

<p>Like textbooks, these devices can get a several-year run, but this raw price point will nonetheless likely prove prohibitively expensive to lower income school districts.</p>

<h3>A Hardware Subsidy</h3>

<p>If the up-front cost of these devices could be lowered to the $300 neighborhood, suddenly, the economic picture wouldn&#8217;t look so bad. Of course there&#8217;s no way, as I write these words in 2009, to manufacture a device such as the one I&#8217;ve sketched above for a retail price under $600 US.</p>

<p>But the consumer market has already seen a feasible mechanism for lowering this entry price point: hardware subsidy attached to a multi-year mobile service contract. Mobile carriers like Verizon and AT&amp;T have been subsidizing the hardware price of devices on their networks (BlackBerrys, iPhones, etc) for years now.</p>

<p>Now think about it: these devices would be substantially more useful with an unlimited data plan.</p>

<p>School districts would procure high-volume orders of both the hardware and the wireless service for their students. This wireless service would also enable security features such as remote wipe of lost or stolen devices. Other network- or location-based anti-theft mechanisms could also be applied to limit the temptation to sell the units for money.</p>

<p>Naturally, since no one carrier can cover the entire country (or world), the devices themselves must be available for purchase in both GSM and CDMA varieties.</p>

<h3>A Device Platform</h3>

<p>Since the device will be put to use by the public school system, no one vendor or service provider should have exclusive rights to manufacture or sell the device. These educational devices must therefore be designed against the specs for an open platform. This platform specification would outline a collection of requirements for the hardware capabilities of such devices, such as screen size, multimedia playback capabilities, and the rest.</p>

<p>Luckily, the market also has precedent for such a device and software specification framework: Google&#8217;s <a href="http://www.android.com/">Android platform</a>.</p>

<p>This platform would actually be an ideal fit for this purpose, since it is an open standard driven by a technologically reputable and reliable organization. Between its openness and robust software development kit (SDK), an Android-based solution can be forged into exactly the right software solution to satisfy the functional requirements.</p>

<h3>The Business of Publishing</h3>

<p>Such a software foundation would, in turn, provide feasible solutions for the publishers&#8217; collection of concerns. Under such a model, for example, a publisher like McGraw Hill would publish each textbook as an &#8220;app&#8221; of sorts.</p>

<p>This allows publishers to monetize their educational materials in one of two ways: per-user sale or school district-based subscription.</p>

<p>Of the two, the subscription-based model paid annually by the schools is particularly compelling, so let me take a moment to describe it. Rather than selling these apps to individual end-users as Apple&#8217;s App Store does, however, publishers would instead license the use of these apps according to a site-license model (<em>x</em>-many machines in district <em>y</em> can run the &#8220;app&#8221; for <em>n</em>-many months), just as Microsoft or Adobe license company-wide installations of their software for large organizations like businesses, schools, and government.</p>

<p>The exciting opportunity for subscription-based textbook content is that this allows school districts to always have the &#8220;freshest&#8221; edition of the textbook available. Students with American history textbooks would all have some bit of information about the historic election of Barack Obama, while physics textbooks might mention CERN&#8217;s Large Hadron Collider, for example.</p>

<p>The material they license would be protected by DRM technology, like that used by the Kindle, or Apple&#8217;s iTunes Store, which restrict the ability of end-users to make unauthorized copies.</p>

<p>Since the model is subscription-based, the DRM scheme would use a decryption &#8220;key&#8221; that expired after a particular amount of time (eg, the school year). Each year, the school district would have to procure a fresh &#8220;key&#8221; from the publisher which will then have to be installed on the district&#8217;s devices, to permit them to continue to access the content. A subscription model also ensures that no school districts ever wind up with &#8220;hand me down&#8221; textbooks, and solves a number of other problems regarding the quality of educational material available to particular school districts.</p>

<h3>Summary</h3>

<p>In a nutshell, my solution boils down to an Android mobile Internet tablet spec, manufactured in slightly different flavors (more rugged for younger children, more media-capable for young adults) from multiple vendors.</p>

<p>These devices would be subsidized by a multi-year mobile data service contract offering unlimited Internet activity, which would additionally serve as a sole means of home Internet access for students from low income families.</p>

<p>Finally, they would provide each school district that uses them with access to the very same set of educational materials.</p>

<p>Of course, such a device doesn&#8217;t exist just yet. The closest things we have are eBook readers from Amazon, Sony, and the iPhone / iPod Touch. None of them satisfies all the functional requirements I listed. Nor is the eBook a particularly more enriching medium than a printed textbook, as the format doesn&#8217;t allow rich media such as videos to be embedded.</p>

<p>Considering, however, that the textbook publishers don&#8217;t even have anything more interactive than eBooks to offer at this time, they are certainly a place to start.</p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://uncarved.prometheas.com/2009/08/sketching-the-migration-to-digital-education.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Designing the sfRESTClientPlugin: Sketching a Client API for RESTful Interactions</title>
		<link>http://uncarved.prometheas.com/2009/06/sketching-a-client-api-for-restful-interactions.html</link>
		<comments>http://uncarved.prometheas.com/2009/06/sketching-a-client-api-for-restful-interactions.html#comments</comments>
		<pubDate>Mon, 01 Jun 2009 05:41:25 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[Public Brainstorm]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[proposal]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[sfRESTClientPlugin]]></category>
		<category><![CDATA[Symfony]]></category>

		<guid isPermaLink="false">http://uncarved.prometheas.com/?p=373</guid>
		<description><![CDATA[I&#8217;ve lately been exploring the value proposition of RESTful APIs to organizations whose technological infrastructures are built upon a collection of legacy software components, customized to communicate with each other by highly tailored middleware software stacks. That exploration will not unfold in this post, however. It could easily be an entire book unto itself. Rather, [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve lately been exploring the value proposition of RESTful APIs to organizations whose technological infrastructures are built upon a collection of legacy software components, customized to communicate with each other by highly tailored middleware software stacks.</p>

<p>That exploration will not unfold in this post, however. It could easily be an entire book unto itself.</p>

<p>Rather, I would like to focus specifically on ideas I&#8217;ve had about what a high level object oriented API for interacting with RESTful services might look like, and funnel those thoughts into the design and implementation of a plugin I&#8217;m developing for the <a href="http://www.symfony-project.org">Symfony framework</a>, called <a href="http://www.symfony-project.org/plugins/sfRESTClientPlugin">sfRESTClientPlugin</a>.</p>

<h3>Audience and Scope</h3>

<p>This post assumes at least casual familiarity with Web development. I will explore some general principles of the RESTful interaction paradigm, but only to the extent to which they inform the design direction of the plugin&#8217;s API.</p>

<p>Although all the code samples will be in PHP, it is my hope that the exercise will yield material valuable to people working with other software stacks.</p>

<p><span id="more-373"></span></p>

<h3>The Fundamentals</h3>

<p>Wikipedia offers a great <a href="http://en.wikipedia.org/wiki/Representational_State_Transfer">article</a> describing REST that is worth reading, if you would like a quick brush-up or introduction to the concept. I would describe REST as an &#8220;organic&#8221; extension to the model around which the World Wide Web itself was designed, as it wholly embraces a model composed of resources (text, images, videos, etc) that can be accessed using specific URLs.</p>

<p>I&#8217;ll be using the following assertion from the article as the springboard for my API design considerations (emphasis added to highlight the principal entities):</p>

<blockquote>
  <p>An important concept in REST is the existence of resources (sources of specific information), each of which is referenced with a global identifier (e.g., a URI in HTTP). In order to manipulate these resources, components of the network (user agents and origin servers) communicate via a standardized interface (e.g., HTTP) and exchange representations of these resources (the actual documents conveying the information).</p>
</blockquote>

<p>The API will therefore designed around the following discreet entities:</p>

<ul>
<li>Service</li>
<li>Resource</li>
<li>Client (or &#8220;user agent&#8221;)</li>
<li>Request</li>
<li>Response</li>
</ul>

<p>Another design goal for the plugin is that it offers the integration mechanisms that developers familiar with Symfony (and other high-quality MVC frameworks) will find familiar, such as named routes, YAML project configuration, <a href="http://en.wikipedia.org/wiki/Don%27t_repeat_yourself">DRY</a> design, and an environment-aware configuration cascade.</p>

<h3>A Sneak Peak</h3>

<p>At a certain point, examples speak more clearly than theories and principles. For the remainder of this post, I will talk about a sample REST service, which represents a &#8220;traditional&#8221; library — a collection of books.</p>

<p>The primary entities with which your site&#8217;s business logic will be dealing with are the <em>services</em> themselves, each which offer one or more <em>resources</em>. Each service is defined by a collection of properties that declare information such as its host name, the types of resources available from the service, authentication credentials, and perhaps smaller details like a port number, root URI, etc.</p>

<p>A sample configuration might look like this:</p>

<pre><code>  [#!yaml]
  # config/rest_services.yml
  services:
    service_1:
      scheme  : https
      host    : exampleservice.com
      root_uri: /api

      resources:

        book:
          list: /books.xml
          item: /books/:id.xml

        author:
          list: /authors.xml
          item: /authors/:id.xml
</code></pre>

<p>The RESTful service in our example is located at <code>https://exampleservice.com/api</code> and offers two resource entities: <code>book</code> and <code>author</code>. These configuration values will be used to populate the properties of a <code>sfRESTOriginService</code> instance that represents the service.</p>

<p>Note that this configuration is defined under the key <code>service_1</code>. Here&#8217;s what some code that interacts with this service might look like:</p>

<pre><code>  [#!php]
  $svc = sfRESTOriginService::getInstance( 'service_1' );

  // GET https://exampleservice.com/api/articles/34.xml
  $response = $svc-&gt;get( '@book?id=34' );

  // make sure we have a valid response
  if ( $response-&gt;isError() )
  {
    if ( $response-&gt;isStatusCode( sfRESTClient::STATUS_UNAUTHORIZED ) )
    {
      throw new Exception( 'Access to resource is unauthorized!' );
    }
    else
    {
      throw new Exception( 'An error occurred attempting to access the resource!' );
    }
  }

  // load the XML into a locally defined entity and manipulate it
  $book = new MyLocalBook();
  $book-&gt;loadFromXML( $response-&gt;getResponseXML() );
  $book-&gt;setTitle( 'A New Title' );

  // PUT https://exampleservice.com/api/articles/34.xml
  $svc-&gt;put( '@book?id=34', array(
    'data' =&gt; $book-&gt;serializeXml()
  ));
</code></pre>

<p>As the sample suggests, each service will be represented by a single instance.</p>

<p>Each service naturally supports the four <a href="http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods">HTTP methods</a> used by REST: <code>GET</code>, <code>POST</code>, <code>PUT</code>, and <code>DELETE</code>, so requests of these method types are issued by invoking the corresponding class methods of a <code>sfRESTOriginService</code> instance.</p>

<p>The <code>GET</code> method requires only a URI, indicating the desired resource.</p>

<p>Each request to the service produces a response object, which offers access to the resource data in question. The response object also provides access to response information such as HTTP headers, the resource URL, the request method used for the query that created it, and the <a href="http://en.wikipedia.org/wiki/List_of_HTTP_status_codes">HTTP status code</a>.</p>

<p>Each method must be performed against a particular URI, which must be specified, and the <code>PUT</code> and <code>POST</code> methods also require a data payload.</p>

<h3>Parting Thoughts</h3>

<p>This post is simply a starting point; a sketch. I will follow up shortly with another post outlining deeper use cases, such as using the <code>POST</code> method to create new resources, and dealing with resources of different data types, such as JSON, plain text, or even media files.</p>

<p>In the meantime, I welcome any thoughts or questions regarding this initial direction.</p>

<p>One particular matter I&#8217;m not so hot on from the examples above is the way in which resources are defined in the service configuration. I wonder if there isn&#8217;t some better way to express the resource configuration, and manage to still deliver the &#8220;named route&#8221;-like approach to specifying resource URIs shown in the sample code above.</p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://uncarved.prometheas.com/2009/06/sketching-a-client-api-for-restful-interactions.html/feed</wfw:commentRss>
		<slash:comments>6400</slash:comments>
		</item>
	</channel>
</rss>
