<?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 Robb Report &#187; programming</title>
	<atom:link href="http://www.weblaws.org/robb/tag/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.weblaws.org/robb</link>
	<description>Ethics, law school and programming</description>
	<lastBuildDate>Thu, 29 Jul 2010 17:51:58 +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>CivicApps and the Search for Ideas</title>
		<link>http://www.weblaws.org/robb/2010/06/26/winner-of-civicapps-best-idea-award/</link>
		<comments>http://www.weblaws.org/robb/2010/06/26/winner-of-civicapps-best-idea-award/#comments</comments>
		<pubDate>Sat, 26 Jun 2010 11:59:04 +0000</pubDate>
		<dc:creator>Robb</dc:creator>
				<category><![CDATA[Idea]]></category>
		<category><![CDATA[open government]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.weblaws.org/robb/?p=652</guid>
		<description><![CDATA[I just found out that I won one of the two Best Idea awards given in the first annual CivicApps for Greater Portland contest;  I was completely surprised and very honored.  My idea is Community-Contributed Datasets.
CivicApps.org in a nutshell
Back in the old days, i.e. 2008, cities like Portland would create apps (interactive websites) for us like [...]]]></description>
			<content:encoded><![CDATA[<p>I just found out that <a href="http://www.civicapps.org/news/announcing-best-ideas-winners-and-runners">I won one of the two Best Idea awards</a> given in the first annual <a href="http://www.civicapps.org/">CivicApps for Greater Portland</a> contest;  I was completely surprised and very honored.  My idea is <a href="http://civicapps.org/ideas/community-contributed-datasets"><em>Community-Contributed Datasets</em></a>.</p>
<h2>CivicApps.org in a nutshell</h2>
<p>Back in the old days, i.e. 2008, cities like Portland would create <em>apps</em> (interactive websites) for us like this:</p>
<div id="attachment_665" class="wp-caption aligncenter" style="width: 328px"><img class="size-full wp-image-665" title="The old way" src="http://www.weblaws.org/robb/wp-content/uploads/2010/06/the-old-way.png" alt="The old way" width="318" height="149" /><p class="wp-caption-text">The old way of making apps</p></div>
<p>They&#8217;d get a team together, look at the Datasets available to it, come up with ideas, and then build the apps.   <a href="http://portlandmaps.com/">PortlandMaps</a>, an awesome web app, was made this way.  But there&#8217;s a new trend and Portland&#8217;s setting an example for other cities.  First, the city adopts a policy of transparency, publishing all of its raw data in addition to the finished apps:</p>
<div id="attachment_674" class="wp-caption aligncenter" style="width: 302px"><img class="size-full wp-image-674" title="CivicApps 1" src="http://www.weblaws.org/robb/wp-content/uploads/2010/06/civicapps-1.2.png" alt="CivicApps 1" width="292" height="242" /><p class="wp-caption-text">First, cities make their raw data available</p></div>
<p>Then, curious and entrepreneurial individuals, companies, and other organizations step in and independently create new apps.  This frees up city resources and results in more apps and services coming online:</p>
<div id="attachment_677" class="wp-caption aligncenter" style="width: 473px"><img class="size-full wp-image-677" title="CivicApps 2" src="http://www.weblaws.org/robb/wp-content/uploads/2010/06/civicapps-2.3.png" alt="CivicApps 2" width="463" height="242" /><p class="wp-caption-text">Then, 3rd parties can step in and contribute</p></div>
<p>This is the entire purpose of the <a href="http://civicapps.org/">CivicApps.org</a> project and website: to enable this creative environment.  By the way, this is the same idea behind the federal <a href="http://www.data.gov">Data.gov</a> project.</p>
<h2>My idea: we can contribute data too</h2>
<p>It occurred to me that many organizations have valuable data about the city.  And some even have the expertise to publish the data in &#8220;open formats&#8221; just like the city of Portland is doing:</p>
<div id="attachment_682" class="wp-caption aligncenter" style="width: 473px"><img class="size-full wp-image-682" title="My idea" src="http://www.weblaws.org/robb/wp-content/uploads/2010/06/my-idea-3.png" alt="My idea" width="463" height="242" /><p class="wp-caption-text">My idea: We can provide datasets too</p></div>
<p>For example, my project, OregonLaws.org, publishes a glossary of legal terms specific to Oregon.  This is already <a href="https://www.weblaws.org/page/api_documentation">up and running as a Dataset</a>.</p>
<p>It will, though, take some work to implement my idea.  Some questions to answer are;  How will these 3rd party Datasets be integrated into the palette of &#8220;official&#8221; ones?  How will the data be authenticated or verified?</p>
<h2>The near future</h2>
<p><strong>The end result of all this is that the city could become a nexus of information.  In addition to providing raw data about itself, it can act as a means of identification and authentication.  There&#8217;s a precedent for the government acting in this role, e.g. the Secretary of State&#8217;s business registry performs a similar service.</strong></p>
<h2>Update</h2>
<p>Oregon Business Magazine covered the CivicApps contest:  <a href="http://www.oregonbusiness.com/the-latest/3754-the-city-of-portland-helps-keep-pdx-a-hot-spot-for-app-development-and-open-source-innovation">Keeping PDX a Hot Spot for App Development</a><strong><br />
</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.weblaws.org/robb/2010/06/26/winner-of-civicapps-best-idea-award/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why &#8220;git&#8221; instead of &#8220;svn&#8221;?</title>
		<link>http://www.weblaws.org/robb/2010/06/01/why-git-instead-of-svn/</link>
		<comments>http://www.weblaws.org/robb/2010/06/01/why-git-instead-of-svn/#comments</comments>
		<pubDate>Wed, 02 Jun 2010 07:58:32 +0000</pubDate>
		<dc:creator>Robb</dc:creator>
				<category><![CDATA[Just a Thought]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.weblaws.org/robb/?p=624</guid>
		<description><![CDATA[As I learn git, I&#8217;m experiencing advantages that I haven&#8217;t seen described together. Also, I haven&#8217;t seen a description from the perspective of the real-world differences in your files, so here goes:
Background context
Subversion uses a single, central repository which is in a remote place.  And in your project, it maintains .svn/ directories in every sub-directory. [...]]]></description>
			<content:encoded><![CDATA[<p>As I learn git, I&#8217;m experiencing advantages that I haven&#8217;t seen described together. Also, I haven&#8217;t seen a description from the perspective of the real-world differences in your files, so here goes:</p>
<h2>Background context</h2>
<p>Subversion uses a single, central repository which is in a remote place.  And in your project, it maintains <strong>.svn/</strong> directories in every sub-directory.  Git on the other hand, gives each developer their own full-fledged repository. And then, instead of relying on many hidden directories in your project, it creates one that lives only in the top-level directory; in <strong>.git/</strong>. So again: that&#8217;s the only place it stores info; nowhere else in your code.</p>
<p>Interesting, huh?</p>
<h2>The advantages I&#8217;ve found</h2>
<p>So now that I&#8217;ve begun to use git, it&#8217;s already been a nicer experience than subversion:</p>
<p><strong>Deleting a subdirectory doesn&#8217;t screw with the versioning</strong> like it does in svn.  (Because no version info is stored there.  In svn, you need to repair things; re-create the empty directory so you can delete it, etc.  I do this to myself periodically.)</p>
<p><strong>It&#8217;s totally painless to put existing stuff into git</strong> — it stays right where it is.  E.g., a website that&#8217;s in use.  You can initialize the repository and commit the current version of the files while they&#8217;re in use.  This isn&#8217;t possible with svn: you have to check it in, then check it out.</p>
<p><strong>It&#8217;s easy to work on a new idea:</strong> it&#8217;s really easy to create a branch to work on it, and then switch back and forth.  In svn, this is enough of a pain that I don&#8217;t do it in actual practice.  Git finally makes it easy for me to use revision control like I&#8217;ve always wanted: be able to check out our group&#8217;s code, test ideas out, and rollback in my own little world without disturbing the others, and finally commit only the changes I want to.</p>
<p><strong>Git assumes you meant to delete that file.</strong> That&#8217;s been nice and convenient:  I deleted a file without going and telling git first about it.  Git adds a &#8216;delete&#8217; operation to your list of things to check in.  Awesome.  Svn does it the other way around:  You can&#8217;t just do normal file operations; you have to also tell subversion that yes, you <em>did</em> mean to do that.</p>
<p><strong>Git has the GitHub killer app.</strong> It&#8217;s the Netscape of the WWW.  I haven&#8217;t found an equivalent for Subversion — web-based or not.</p>
<p>So that&#8217;s what I&#8217;ve come up so far; I&#8217;ll add more when I see them.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.weblaws.org/robb/2010/06/01/why-git-instead-of-svn/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Check your web server configuration with ruby test cases</title>
		<link>http://www.weblaws.org/robb/2010/05/22/http-assertions-test-cases-for-web-server-configurations/</link>
		<comments>http://www.weblaws.org/robb/2010/05/22/http-assertions-test-cases-for-web-server-configurations/#comments</comments>
		<pubDate>Sat, 22 May 2010 10:29:50 +0000</pubDate>
		<dc:creator>Robb</dc:creator>
				<category><![CDATA[Idea]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.weblaws.org/robb/?p=613</guid>
		<description><![CDATA[
I&#8217;m releasing a new open source library, HTTP-Assertions, that I use behind the scenes at OregonLaws.org.  It helps me keep the server running smoothly and make sure that my changes to the config files haven&#8217;t introduced new bugs.
It introduces these new assert methods to the Rails testing environment:
  assert_200
  assert_forbidden
  assert_temp_redirect_to
  [...]]]></description>
			<content:encoded><![CDATA[<div>
<p>I&#8217;m releasing a new open source library, <a href="http://github.com/dogweather/HTTP-Assertions">HTTP-Assertions</a>, that I use behind the scenes at <a href="https://www.oregonlaws.org/">OregonLaws.org</a>.  It helps me keep the server running smoothly and make sure that my changes to the config files haven&#8217;t introduced new bugs.</p>
<p>It introduces these new assert methods to the Rails testing environment:</p>
<pre>  assert_200
  assert_forbidden
  assert_temp_redirect_to
  assert_perm_redirect_to</pre>
<p>Here&#8217;s an example:</p>
<pre>  assert_200('<a href="https://www.oregonlaws.org/ors/161.360">https://www.oregonlaws.org/ors/161.360</a>')</pre>
<p>See the <a href="http://github.com/dogweather/HTTP-Assertions">README on github</a> for more details.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.weblaws.org/robb/2010/05/22/http-assertions-test-cases-for-web-server-configurations/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Software should cite its sources</title>
		<link>http://www.weblaws.org/robb/2008/01/14/idea-software-should-cite-its-sources/</link>
		<comments>http://www.weblaws.org/robb/2008/01/14/idea-software-should-cite-its-sources/#comments</comments>
		<pubDate>Mon, 14 Jan 2008 19:10:46 +0000</pubDate>
		<dc:creator>Robb</dc:creator>
				<category><![CDATA[Idea]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://greenfabric.com/robb/?p=4</guid>
		<description><![CDATA[The key idea: When a program gives some kind of result, it should be able to say how it came up with that answer &#8211; what rules did it apply, in what order, and why.  If a reference was consulted, which one?
Basically, software should be held to the same standards we have for people, [...]]]></description>
			<content:encoded><![CDATA[<p><strong>The key idea:</strong> When a program gives some kind of result, it should be able to say how it came up with that answer &#8211; what rules did it apply, in what order, and why.  If a reference was consulted, which one?</p>
<p>Basically, <strong>software should be held to the same standards we have for people</strong>, especially in the field of law.  Here&#8217;s what that might look like.  This is, again, the &#8220;development&#8221; interface&#8230; an end-user would see something much fancier:</p>
<pre>&gt;&gt; Abbreviation.abbreviate 'Chief Justice'
=&gt; "C.J."
&gt;&gt; Abbreviation.rule
=&gt; "Appendix 3"</pre>
<p>It&#8217;s a start.</p>
<p>As far as the technical implementation, I&#8217;ve been considering rule-based systems, prolog-based systems and object-oriented decomposition.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.weblaws.org/robb/2008/01/14/idea-software-should-cite-its-sources/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creating intelligent legal writing applications</title>
		<link>http://www.weblaws.org/robb/2008/01/12/creating-intelligent-legal-writing-apps/</link>
		<comments>http://www.weblaws.org/robb/2008/01/12/creating-intelligent-legal-writing-apps/#comments</comments>
		<pubDate>Sat, 12 Jan 2008 19:14:15 +0000</pubDate>
		<dc:creator>Robb</dc:creator>
				<category><![CDATA[Idea]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://greenfabric.com/robb/?p=5</guid>
		<description><![CDATA[I&#8217;m intrigued by the idea of applying artificial intelligence to law and legal writing.  The ALWD Citation Manual is an amazing document that makes a great starting point for developing interesting applications:  it&#8217;s highly organized and presents the information in a structured taxonomy of &#8220;rules&#8221;.I began to wonder what it&#8217;d take to write [...]]]></description>
			<content:encoded><![CDATA[<p><a title="screen-717420.png" href="http://greenfabric.com/robb/wp-content/uploads/2008/01/screen-717420.png"><img src="http://greenfabric.com/robb/wp-content/uploads/2008/01/screen-717420.png" alt="screen-717420.png" hspace="15" vspace="15" width="255" height="296" align="right" /></a>I&#8217;m intrigued by the idea of applying artificial intelligence to law and legal writing.  The ALWD Citation Manual is an amazing document that makes a great starting point for developing interesting applications:  it&#8217;s highly organized and presents the information in a structured taxonomy of &#8220;rules&#8221;.I began to wonder what it&#8217;d take to write tools that&#8217;d help create legal citations as well as validate them?  And so I&#8217;ve started a Ruby on Rails app that handles just one small part of the puzzle:  correctly abbreviating words in a citation.  Here&#8217;s the simple web app managing the database of abbreviations.  You might recognize this as the start of the table at Appendix 3(E).And I&#8217;ve created the programming for applying the rules of Appendix 3(E):</p>
<pre>&gt;&gt; Abbreviation.abbreviate 'Advance'</pre>
<pre>=&gt; "Adv."</pre>
<pre>&gt;&gt; Abbreviation.abbreviate 'Advanced'</pre>
<pre>=&gt; "Adv."</pre>
<pre>&gt;&gt; Abbreviation.abbreviate 'Advancing'</pre>
<pre>=&gt; "Advancing"</pre>
<p>So, this has been pretty interesting.  Now I need to handle plurals well.  This, though, means I&#8217;ll have to be able to identify plurals&#8230;  but I have a couple of good ideas about how to do this.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.weblaws.org/robb/2008/01/12/creating-intelligent-legal-writing-apps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
