<?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>Mike Linksvayer &#187; Programming</title>
	<atom:link href="http://gondwanaland.com/mlog/category/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://gondwanaland.com/mlog</link>
	<description>My opinions only. I do not represent any organization in this publication.</description>
	<lastBuildDate>Thu, 24 May 2012 19:04:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>technicaldebt.xsl</title>
		<link>http://gondwanaland.com/mlog/2012/05/17/technicaldebt-xsl/</link>
		<comments>http://gondwanaland.com/mlog/2012/05/17/technicaldebt-xsl/#comments</comments>
		<pubDate>Thu, 17 May 2012 22:02:46 +0000</pubDate>
		<dc:creator>Mike Linksvayer</dc:creator>
				<category><![CDATA[Creative Commons]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://gondwanaland.com/mlog/?p=2159</guid>
		<description><![CDATA[Former colleague Nathan Yerlger has a series of posts on technical debt (1, 2, 3). I&#8217;m responsible for some of the debt described in the third posting: We had the “questions” used for selecting a license modeled as an XSLT transformation (why? don’t remember; wish I knew what we were thinking when we did that) [...]]]></description>
			<content:encoded><![CDATA[<p>Former colleague Nathan Yerlger has a series of posts on technical debt (<a href="http://yergler.net/blog/2012/05/14/living-with-technical-debt-part-one/">1</a>, <a href="http://yergler.net/blog/2012/05/15/living-with-it/">2</a>, <a href="http://yergler.net/blog/2012/05/16/new-foundations/">3</a>). I&#8217;m responsible for some of the debt described in the third posting:</p>
<blockquote><p>We had the “questions” used for selecting a license modeled as an XSLT transformation (why? don’t remember; wish I knew what we were thinking when we did that)</p></blockquote>
<p>In 2004, I was <a href="http://lists.ibiblio.org/pipermail/cc-metadata/2004-July/000437.html">thinking</a>:</p>
<blockquote><p>The idea is to encapsulate the &#8220;choose license&#8221; process (see <http: //creativecommons.org/license/> in a file or a few files that can be reused in different environments (e.g., standalone apps) without having those apps reproduce the core language surrounding the process or the rules for translating user answers into a license choice and associated metadata.</p>
<p>Making the &#8220;questions&#8221; available as XML (questions.xml) and &#8220;rules&#8221; as XSL (chooselicense.xsl) attempts to maximize accessibility and minimize reimplementation of logic across multiple implementations.</p></blockquote>
<p>I also <a href="http://gondwanaland.com/mlog/2007/03/10/xslt-hello-world/">thought</a> about XSLT as an interesting mechanism for distributing untrusted code. Probably too complex, or just too unconventional and ill-supported, and driven by bad requirements. I&#8217;ll probably say more about the last in a future <a href="http://gondwanaland.com/mlog/category/refutation">refutation</a> post.</p>
<p>Anyway, I&#8217;m sorry for that bit. I recommend Nathan&#8217;s <a href="http://yergler.net/blog/2012/05/13/mastery/">well written</a> series.</p>
]]></content:encoded>
			<wfw:commentRss>http://gondwanaland.com/mlog/2012/05/17/technicaldebt-xsl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BayHac</title>
		<link>http://gondwanaland.com/mlog/2012/04/25/bayhac/</link>
		<comments>http://gondwanaland.com/mlog/2012/04/25/bayhac/#comments</comments>
		<pubDate>Wed, 25 Apr 2012 23:19:59 +0000</pubDate>
		<dc:creator>Mike Linksvayer</dc:creator>
				<category><![CDATA[Open Services]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://gondwanaland.com/mlog/?p=2012</guid>
		<description><![CDATA[I attended BayHac over the weekend. There were a bunch of interesting impromptu talks. Notes on all those I recall follow, with other observations at the end. The first talk encouraged people to get up, and demonstrated some hand stretches. Although almost everyone knows sitting hunched up all day is harmful, almost everyone needs an [...]]]></description>
			<content:encoded><![CDATA[<p>I attended <a href="http://www.haskell.org/haskellwiki/BayHac2012">BayHac</a> over the weekend. There were a bunch of interesting impromptu talks. Notes on all those I recall follow, with other observations at the end.</p>
<ul>
<li>The first talk encouraged people to get up, and demonstrated some hand stretches. Although almost everyone knows sitting hunched up all day is harmful, almost everyone needs an occasional reminder. A mention at any conference is well worthwhile for the individuals and community in question.
</li>
<li><a href="https://code.google.com/p/plush/">Plush</a> is a <code>POSIX</code> shell server (in Haskell) with a web UI (Javascript; communication between them with JSON, session initiated with an unguessable URL), which already provides some nice context and control over display not available in a usual table, e.g., the output of each command is collapsible, pieces of the current path are clickable, and there are tooltips for each command argument.
</li>
<li>You currently have to register (no verification) to see anything, but <a href="http://www.gitstar.com">GitStar</a> is a GitHub clone built on Hails, a framework for hosting mutually untrusted web applications (eg project wiki and source browser in case of GitStar), at least with respect to access to each others&#8217; data, which is controlled via &#8220;Labeled IO&#8221;, with labels specifying policy around data based on Information Flow Control, a subject I had not heard of. GitStar and Hails source is <a href="https://github.com/scslab">mirrored on GitHub</a>. An initial research paper and promise of more at the bottom of a <a href="https://github.com/scslab/lio/blob/master/README.md">README</a>.
</li>
<li><a href="http://visi.io/">Visi</a> is a language implemented in Haskell that seems somewhere between a spreadsheet and a traditional programming language read-eval-print-loop (ad hoc, immediate recalculation, but no grid). Spreadsheet programming is something I know almost nothing about, and ought to.
</li>
<li>Composable <a href="http://www.reddit.com/r/haskell/comments/ohjg7/a_new_approach_to_iteratees/">Pipes</a>. <small>For readers who care about such things, note author dissuaded from using GPL in linked thread.</small>
</li>
<li>Something about typesafe reuse of types extending <a href="https://en.wikipedia.org/wiki/Agda_%28theorem_prover%29">Agda</a>’s typesystem. I understood very little (my fault).
</li>
<li><a href="https://github.com/haskell/cabal/pull/2">cabal branch</a> will checkout source for any Haskell package with source repository annotations &#8212; source of the specific version you&#8217;re using, if annotation specifies <a href="http://www.haskell.org/ghc/docs/7.0.4/html/Cabal/authors.html">source-repository this</a>.
</li>
<li>A talk about <a href="https://en.wikipedia.org/wiki/Lift_%28web_framework%29">Lift</a>, a Scala web framework, mostly concerning the benefits of passing around a DOM representation rather than treating templates as blobs of text. I&#8217;m impressed by Lift, and played a bit with it a couple years ago, but was in no place to spend time to develop any real application.
</li>
<li><a href="https://github.com/alphaHeavy">Implementations</a> of <a href="https://en.wikipedia.org/wiki/Paxos_%28computer_science%29">Paxos</a> and parallel builds.
</li>
<li>Interacting with DBUS (eg GNOME and KDE applications) <a href="https://john-millikin.com/software/haskell-dbus/">from Haskell</a>.
</li>
<li><a href="http://www.yesodweb.com/blog/2012/03/shelly-for-shell-scripts">Shelly</a>, a library for shell scripting in Haskell. Side point made that scripting languages, including Ruby, find initial popularity through scripting by sysadmins, not developer frameworks &#8212; true to my experience.
</li>
<li><a href="https://github.com/lsb/n-gram-weaving">Visualizing n-gram</a> relationships with SVG output.
</li>
<li>Translating simple art pieces in Forth to C.
</li>
<li><a href="http://www.pingwell.com/">Pingwell</a> is creating apps to bring pricing and other information to consumers when they can act on it, eg in a grocery store. I&#8217;m pretty sure this scenario has been imagined thousands of times over the past few decades, good that it will come to exist soon. The talk was mostly about using a <a href="https://github.com/albertoruiz/easyVision">Haskell computer vision library</a>.
</li>
</ul>
<p>Other observations:</p>
<ul>
<li>Macbooks in majority, but lower proportion than usual &#8212; and many, perhaps a majority, of people with Macbooks seemed to be developing on Linux in a virtual machine.
</li>
<li>100% male attendees, which is a bit disturbing, but I detected zero brogrammer vibe.
</li>
<li>The first day was hosted at <a href="https://en.wikipedia.org/wiki/Hacker_Dojo">Hacker Dojo</a>, which I had heard of but never visited. I was surprised at how large and quiet it was. At least during the day, it seems dozens of people use as a coworking space.
</li>
<li>Web application development, Yesod in particular, is attracting more people to Haskell (I can&#8217;t find a reference, but recall that #haskell and/or /r/haskell watchers increased substantially on the day <a href="http://www.reddit.com/r/haskell/comments/s0tr2/announcing_yesod_10/">Yesod 1.0</a> was released). Newbie attendees (me included) leaning Haskell and Yesod further evidence.
</li>
<li>Lots of anguish and anguished cries about dependency hell.</li>
</ul>
<p>Thanks to BayHac organizer Mark Lentczner (also Plush developer and haskell-patform release manager; watch his <a href="https://www.youtube.com/watch?v=b9FagOVqxmI">intro to Haskell video</a>) for putting together such a well run and friendly event. I felt some trepidation about attending, knowing that almost everyone would be both smarter and more experienced than me, but everyone was helpful and patient. I&#8217;m glad I went.</p>
]]></content:encoded>
			<wfw:commentRss>http://gondwanaland.com/mlog/2012/04/25/bayhac/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>unset GREP_OPTIONS (alias grep instead) to get an &#8220;acceptable egrep&#8221;</title>
		<link>http://gondwanaland.com/mlog/2012/04/21/acceptable-egrep/</link>
		<comments>http://gondwanaland.com/mlog/2012/04/21/acceptable-egrep/#comments</comments>
		<pubDate>Sun, 22 Apr 2012 01:56:02 +0000</pubDate>
		<dc:creator>Mike Linksvayer</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://gondwanaland.com/mlog/?p=2001</guid>
		<description><![CDATA[Building some software from source, I recently encountered checking for egrep... configure: error: no acceptable egrep could be found in /usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/xpg4/binL and couldn&#8217;t find a solution anywhere. In the shower I remembered setting GREP_OPTIONS in my environment. That seems to have been the problem. After unsetting GREP_OPTIONS and obtaining the same default behavior for myself [...]]]></description>
			<content:encoded><![CDATA[<p>Building some software from source, I recently encountered</p>
<blockquote><p><code>checking for egrep... configure: error: no acceptable egrep could be found in /usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/xpg4/binL</code></p></blockquote>
<p>and couldn&#8217;t find a solution anywhere. In the shower I remembered <a href="http://gondwanaland.com/mlog/2012/04/01/2004-april-fools/">setting</a> <code>GREP_OPTIONS</code> in my environment. That seems to have been the problem. After <code>unset</code>ting <code>GREP_OPTIONS</code> and obtaining the same default behavior for myself with</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">alias</span> <span style="color: #007800;">grep</span>=<span style="color: #ff0000;">'grep --color=auto --perl-regexp'</span></pre></div></div>

<p>the error went away. I guess configure is finding and running <code>/bin/grep</code>, which is affected by the environment, but bypasses any aliases.</p>
]]></content:encoded>
			<wfw:commentRss>http://gondwanaland.com/mlog/2012/04/21/acceptable-egrep/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>FOSDEM 2012 and computational diversity</title>
		<link>http://gondwanaland.com/mlog/2012/02/11/fosdem2012-misc/</link>
		<comments>http://gondwanaland.com/mlog/2012/02/11/fosdem2012-misc/#comments</comments>
		<pubDate>Sun, 12 Feb 2012 02:24:53 +0000</pubDate>
		<dc:creator>Mike Linksvayer</dc:creator>
				<category><![CDATA[Creative Commons]]></category>
		<category><![CDATA[Open Services]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Peeves]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://gondwanaland.com/mlog/?p=1715</guid>
		<description><![CDATA[I spent day 1 of FOSDEM in the legal devroom and day 2 mostly talking to a small fraction of the attendees I would&#8217;ve liked to meet or catch up with. I didn&#8217;t experience the thing I find in concept most interesting about FOSDEM: devrooms (basically 1-day tracks in medium sized classrooms) dedicated to things [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://gondwanaland.com/mlog/2012/02/09/fosdem2012-policy/">I spent day 1 of FOSDEM in the legal devroom</a> and day 2 mostly talking to a small fraction of the attendees I would&#8217;ve liked to meet or catch up with. I didn&#8217;t experience the thing I find in concept most interesting about <a href="https://en.wikipedia.org/wiki/FOSDEM">FOSDEM</a>: <a href="http://fosdem.org/2012/schedule/devrooms">devrooms</a> (basically 1-day tracks in medium sized classrooms) dedicated to things that haven&#8217;t been hyped in ~20 years but are probably still doing very interesting things technically and otherwise, eg <a href="http://fosdem.org/2012/schedule/track/microkernel_os_devroom">microkernels</a> and <a href="http://fosdem.org/2012/schedule/track/ada_devroom">Ada</a>.</p>
<p><a href="https://en.wikipedia.org/wiki/Ada_%28programming_language%29">Ada</a> has an interesting history that I&#8217;d like to hear more about, with the <a href="https://en.wikisource.org/wiki/Steelman_language_requirements#1._General_Design_Criteria">requirement</a> of highly reliable software (I suspect an undervalued characteristic; I have no idea whether Ada has proven successful in this regard, would appreciate pointers) and fast execution (on <a href="http://shootout.alioth.debian.org/">microbenchmarks</a> anyway), and even an interesting free software story in that history, some of which is mentioned in a <a href="http://fosdem.org/2012/interview/robert-dewar">FOSDEM pre-interview</a>.</p>
<p>I suppose FOSDEM&#8217;s low cost (volunteer run, no registration) and largeness (5000 attendees) allows for such seemingly surprising, retro, and maybe important tracks &#8212; awareness of computational diversity is good <em>at least</em> for fun, and for showing that whatever systems people are attached to or are hyping at the moment are not preordained.</p>
<p><span id="librefm">I</span> also wanted to mention one lightning talk I managed to see &#8212; Mike Sheldon on Libre.fm [update 20120213: <a href="http://libre.fm/2012/02/mike-sheldon-at-fosdem-2012.html">video</a>], which I think is one of the most important software projects for free culture &#8212; because it facilitates not production or sharing of &#8220;content&#8221;, but of <a href="http://acawiki.org/Experimental_Study_of_Inequality_and_Unpredictability_in_an_Artificial_Cultural_Market">popularity</a> (I&#8217;ve <a href="http://gondwanaland.com/mlog/2011/10/13/owf/">mentioned</a> as &#8220;peer production of [free] cultural relevance&#8221;). Sheldon (whose voice you can hear on the occasional Libre.fm <a href="http://libre.fm/podcast/">podcast</a>) stated that GNU FM (the software libre.fm runs) will support sharing of listener tastes across installations, so that a user of libre.fm or a personal instance might tell another instance (say one set up for a local festival) to recommend music that instance knows about based on a significant history. Sounds neat. You can see what libre music I listen to at <a href="http://alpha.libre.fm/user/mlinksva">alpha.libre.fm/user/mlinksva</a> and more usefully get recommendations for yourself.</p>
<p><b>Addendum:</b> In preemptive defense of this post&#8217;s title, of course I realize neither microkernels nor Ada are remotely <a href="https://en.wikipedia.org/wiki/Esoteric_programming_language">weird</a>, <a href="https://en.wikipedia.org/wiki/History_of_computer_hardware_in_Soviet_Bloc_countries">retro</a>, <a href="https://en.wikipedia.org/wiki/Unconventional_computing">alternative</a>, etc. and that there are many other not quite mainstream but still relevant and modern systems and paradigms (hmm, free software desktops)&#8230;</p>
<p><small><a href="http://www.flickr.com/photos/mlinksva/6814241653/" title="2012-02-03%2008.26.46 by mlinksva, on Flickr"><img src="https://farm8.staticflickr.com/7150/6814241653_b18d7970a6.jpg" width="500" height="375" alt="2012-02-03%2008.26.46"/></a><br />
<a href="http://www.flickr.com/photos/mlinksva/6821513717/" title="2012-02-04%2002.44.16 by mlinksva, on Flickr"><img src="https://farm8.staticflickr.com/7153/6821513717_f03d0cba69.jpg" width="500" height="375" alt="2012-02-04%2002.44.16"/></a><br />
<a href="http://www.flickr.com/photos/mlinksva/6821522199/" title="2012-02-05%2001.44.49 by mlinksva, on Flickr"><img src="https://farm8.staticflickr.com/7005/6821522199_e6628346b6.jpg" width="500" height="375" alt="2012-02-05%2001.44.49"/></a></p>
<p>It started snowing as soon as I arrived in Brussels, and was rather cold.</p>
<p><a href="http://www.flickr.com/photos/mlinksva/6833860009/" title="2012-02-06%2002.44.32 by mlinksva, on Flickr"><img src="https://farm8.staticflickr.com/7141/6833860009_06744dbd1c.jpg" width="500" height="375" alt="2012-02-06%2002.44.32"/></a></p>
<p>I got on the wrong train to the airport and got to see the Leuven train station. I made it to the airport half an hour before my flight, and arrived at the gate during pre-boarding. Try that in a US airport.</small></p>
]]></content:encoded>
			<wfw:commentRss>http://gondwanaland.com/mlog/2012/02/11/fosdem2012-misc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web Data Common[s] Crawl Attribution Metadata</title>
		<link>http://gondwanaland.com/mlog/2012/01/23/attribution-crawl/</link>
		<comments>http://gondwanaland.com/mlog/2012/01/23/attribution-crawl/#comments</comments>
		<pubDate>Tue, 24 Jan 2012 02:15:28 +0000</pubDate>
		<dc:creator>Mike Linksvayer</dc:creator>
				<category><![CDATA[Creative Commons]]></category>
		<category><![CDATA[Microformats]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Semantic Web]]></category>

		<guid isPermaLink="false">http://gondwanaland.com/mlog/?p=1569</guid>
		<description><![CDATA[Via I see Web Data Commons which has &#8220;extracted structured data out of 1% of the currently available Common Crawl corpus dating October 2010&#8243;. WDC publishes the extracted data as N-Quads (the fourth item denotes the immediate provenance of each subject/predictate/object triple &#8212; the URL the triple was extracted from). I thought it would be [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://semanticweb.com/common-crawl-founder-gil-elbaz-speaks-about-new-relationship-with-amazon-semantic-web-projects-using-its-corpus-and-why-open-web-crawls-matter-to-developing-big-data-expertise_b26109">Via</a> I see <a href="http://page.mi.fu-berlin.de/muehleis/ccrdf/">Web Data Commons</a> which has &#8220;extracted structured data out of 1% of the currently available Common Crawl corpus dating October 2010&#8243;. WDC publishes the extracted data as <a href="http://sw.deri.org/2008/07/n-quads/">N-Quads</a> (the fourth item denotes the immediate <a href="http://gondwanaland.com/mlog/2012/01/12/penumbra-of-provenance/">provenance</a> of each subject/predictate/object triple &#8212; the URL the triple was extracted from).</p>
<p>I thought it would be easy and fun to run some queries on the WDC dataset to get an idea of how annotations associated with Creative Commons licensing are used. Notes below on exactly what I did. The biggest limitation is that the license statement itself is not part of the dataset &#8212; not as <code>xhv:license</code> in the RDFa portion, and for some reason rel=license microformat has <a href="http://page.mi.fu-berlin.de/muehleis/ccrdf/stats1p.html#html-mf-license">zero records</a>. But <code>cc:attributionName</code>, <code>cc:attributionURL</code>, and <code>cc:morePermissions</code> are present in the RDFa part, as are some Dublin Core properties that the <a href="http://creativecommons.org/choose">Creative Commons license chooser</a> asks for (I only looked at <code>dc:source</code>) but are probably widely used in other contexts as well.</p>
<table border>
<tr>
<th>Dataset</th>
<th>URLs</th>
<th>Distinct objects</th>
</tr>
<tr>
<td>Common Crawl 2010 corpus</td>
<td style="text-align:right">5,000,000,000<sup><a href="#a">a</a></sup></td>
</tr>
<tr>
<td> 1% sampled by WDC</td>
<td style="text-align:right">~50,000,000</td>
</tr>
<tr>
<td>  with RDFa</td>
<td style="text-align:right">158,184<sup><a href="#b">b</a></sup></td>
</tr>
<tr>
<td>   with a <code>cc:</code> property</td>
<td style="text-align:right">26,245<sup><a href="#c">c</a></sup></td>
</tr>
<tr>
<td>    <code>cc:attributionName</code></td>
<td style="text-align:right">24,942<sup><a href="#d">d</a></sup></td>
<td style="text-align:right">990<sup><a href="#e">e</a></sup></td>
</tr>
<tr>
<td>    <code>cc:attributionURL</code></td>
<td style="text-align:right">25,082<sup><a href="#f">f</a></sup></td>
<td style="text-align:right">3,392<sup><a href="#g">g</a></sup></td>
</tr>
<tr>
<td>    <code>dc:source</code></td>
<td style="text-align:right">7,235<sup><a href="#h">h</a></sup></td>
<td style="text-align:right">574<sup><a href="#i">i</a></sup></td>
</tr>
<tr>
<td>    <code>cc:morePermissions</code></td>
<td style="text-align:right">4,791<sup><a href="#j">j</a></sup></td>
<td style="text-align:right">253<sup><a href="#k">k</a></sup></td>
</tr>
<tr>
<td>    <code>cc:attributionURL</code> = <code>dc:source</code></td>
<td style="text-align:right">5,421<sup><a href="#l">l</a></sup></td>
</tr>
<tr>
<td>    <code>cc:attributionURL</code> = <code>cc:morePermissions</code></td>
<td style="text-align:right">1,880<sup><a href="#m">m</a></sup></td>
</tr>
<tr>
<td>    <code>cc:attributionURL</code> = subject</td>
<td style="text-align:right">203<sup><a href="#n">n</a></sup></td>
</tr>
</table>
<table>
<p>Some quick takeaways:</p>
<ul>
<li>Low ratio of distinct attributionURLs probably indicates HTML from license chooser deployed without any parameterization. Often the subject or current page will be the most useful attributionURL (but 203 above would probably be much higher with canonicalization). Note all of the CC licenses require that such a URL <a href="http://creativecommons.org/licenses/by/3.0/legalcode">refer to the copyright notice or licensing information for the Work</a>. Unless one has set up a side-wide license notice somewhere, a static URL is probably not the right thing to request in terms of requiring licensees to provide an attribution link; nor is a non-specific attribution link as useful to readers as a direct link to the work in question. As (and if) support for attribution metadata gets built into Creative Commons-aware CMSes, the ratio of distinct attributionURLs ought increase.</li>
<li>79% of subjects with both dc:source and cc:attributionURL (6,836<sup><a href="#o">o</a></sup>) have the same values for both properties. This probably means people are merely entering their URL into every form field requesting a URL without thinking, not self-remixing.</li>
<li>47% of subjects with both cc:morePermissions and cc:attributionURL (3,977<sup><a href="#p">p</a></sup>) have the same values for both properties. Unclear why this ratio is so much lower than previous; it ought be higher, as often same value for both makes sense. Unsurprising that cc:morePermissions least provided property; in my experience few people understand it.</li>
</ul>
<p>I did not look at the provenance item at all. It&#8217;d be interesting to see what kind of assertions are being made across authority boundaries (e.g. a page on example.com makes a statements with an example.net URI as the subject) and when to discard such. I barely looked directly at the raw data at all; just enough to feel that my aggregate numbers could possibly be accurate. More could probably be gained by inspecting smaller samples in detail, informing other aggregate queries.</p>
<p>I look forward to <a href="http://gondwanaland.com/mlog/2012/01/12/html-data-guide/">future</a> extracts. Thanks indirectly to <a href="http://www.commoncrawl.org/">Common Crawl</a> for providing the crawl!</p>
<p>Please point out any egregious mistakes made below&#8230;</p>
<pre>
# <sup id="a">a</sup> I don't really know if the October 2010 corpus is the
# entire 5 billion Common Crawl corpus

# download RDFa extract from Web Data Commons
wget -c https://s3.amazonaws.com/ccrdf1p/data/ccrdf.html-rdfa.nq

# Matches number stated at
# http://page.mi.fu-berlin.de/muehleis/ccrdf/stats1p.html#html-rdfa
wc -l ccrdf.html-rdfa.nq
1047250

# Includes easy to use no-server triplestore
apt-get install redland-utils

# sanity check
grep '&lt;http://creativecommons.org/ns#attributionName&gt;' ccrdf.html-rdfa.nq |wc -l
26404 

# Import rejects a number of triples for syntax errors
rdfproc xyz parse ccrdf.html-rdfa.nq nquads

# <sup id="d">d</sup> Perhaps syntax errors explains fewer triples than above grep might
# indicate, but close enough
rdfproc xyz query sparql - 'select ?o where { ?s &lt;http://creativecommons.org/ns#attributionName&gt; ?o}' |wc -l
24942

# These replicated below with 4store because...
rdfproc xyz query sparql - 'select distinct ?o where { ?s &lt;http://creativecommons.org/ns#attributionName&gt; ?o}' |wc -l
990
rdfproc xyz query sparql - 'select ?o where { ?s &lt;http://creativecommons.org/ns#attributionURL&gt; ?o}' |wc -l
25082
rdfproc xyz query sparql - 'select distinct ?o where { ?s &lt;http://creativecommons.org/ns#attributionURL&gt; ?o}' |wc -l
3392
rdfproc xyz query sparql - 'select ?o where { ?o &lt;http://creativecommons.org/ns#attributionURL&gt; ?o }' |wc -l
203
rdfproc xyz query sparql - 'select ?o where { ?s &lt;http://creativecommons.org/ns#morePermissions&gt; ?o}' |wc -l
4791
rdfproc xyz query sparql - 'select distinct ?o where { ?s &lt;http://creativecommons.org/ns#morePermissions&gt; ?o}' |wc -l
253
rdfproc xyz query sparql - 'select ?o where { ?o &lt;http://creativecommons.org/ns#morePermissions&gt; ?o }' |wc -l
12

# ...this query takes forever, hours, and I have no idea why
rdfproc xyz query sparql - 'select ?s, ?o where { ?s &lt;http://creativecommons.org/ns#morePermissions&gt; ?o ; &lt;http://creativecommons.org/ns#attributionURL&gt; ?o }'

# 4store has a server, but is lightweight
apt-get install 4store

# 4store couldn't import with syntax errors, so export good triples from
# previous store first
rdfproc xyz serialize &gt; ccrdf.export-rdfa.rdf

# import into 4store
curl -T ccrdf.export-rdfa.rdf 'http://localhost:8080/data/wdc'

# egrep is to get rid of headers and status output prefixed by ? or #
4s-query wdc -s '-1' -f text 'select ?s, ?o where { ?s &lt;http://creativecommons.org/ns#attributionName&gt; ?o}' |egrep -v '^[\?\#]' |wc -l
24942

#<sup id="f">f</sup>
4s-query wdc -s '-1' -f text 'select ?s, ?o where { ?s &lt;http://creativecommons.org/ns#attributionURL&gt; ?o}' |egrep -v '^[\?\#]' |wc -l
25082

#<sup id="j">j</sup>
4s-query wdc -s '-1' -f text 'select ?s, ?o where { ?s &lt;http://creativecommons.org/ns#morePermissions&gt; ?o}' |egrep -v '^[\?\#]' |wc -l
4791

#<sup id="h">h</sup>
#Of course please use http://purl.org/dc/terms/source instead.
#Should be more widely deployed soon.
4s-query wdc -s '-1' -f text 'select ?s, ?o where { ?s &lt;http://purl.org/dc/elements/1.1/source&gt; ?o}' |egrep -v '^[\?\#]' |wc -l
7235

4s-query wdc -s '-1' -f text 'select ?s, ?o where { ?s &lt;http://purl.org/dc/terms/source&gt; ?o}' |egrep -v '^[\?\#]' |wc -l
4

#<sup id="e">e</sup>
4s-query wdc -s '-1' -f text 'select distinct ?o where { ?s &lt;http://creativecommons.org/ns#attributionName&gt; ?o}' |egrep -v '^[\?\#]' |wc -l
990

#<sup id="g">g</sup>
4s-query wdc -s '-1' -f text 'select distinct ?o where { ?s &lt;http://creativecommons.org/ns#attributionURL&gt; ?o}' |egrep -v '^[\?\#]' |wc -l
3392

#<sup id="k">k</sup>
4s-query wdc -s '-1' -f text 'select distinct ?o where { ?s &lt;http://creativecommons.org/ns#morePermissions&gt; ?o}' |egrep -v '^[\?\#]' |wc -l
253

#<sup id="i">i</sup>
4s-query wdc -s '-1' -f text 'select distinct ?o where { ?s &lt;http://purl.org/dc/elements/1.1/source&gt; ?o}' |egrep -v '^[\?\#]' |wc -l
574

#<sup id="n">n</sup>
4s-query wdc -s '-1' -f text 'select ?o where { ?o &lt;http://creativecommons.org/ns#attributionURL&gt; ?o}' |egrep -v '^[\?\#]' |wc -l
203

4s-query wdc -s '-1' -f text 'select ?o where { ?o &lt;http://creativecommons.org/ns#morePermissions&gt; ?o}' |egrep -v '^[\?\#]' |wc -l
12

4s-query wdc -s '-1' -f text 'select ?o where { ?o &lt;http://purl.org/dc/elements/1.1/source&gt; ?o}' |egrep -v '^[\?\#]' |wc -l
120

#<sup id="m">m</sup>
4s-query wdc -s '-1' -f text 'select ?s, ?o where { ?s &lt;http://creativecommons.org/ns#attributionURL&gt; ?o ; &lt;http://creativecommons.org/ns#morePermissions&gt; ?o }' |egrep -v '^[\?\#]' |wc -l
1880

4s-query wdc -s '-1' -f text 'select distinct ?o where { ?s &lt;http://creativecommons.org/ns#attributionURL&gt; ?o ; &lt;http://creativecommons.org/ns#morePermissions&gt; ?o }' |egrep -v '^[\?\#]' |wc -l
122

4s-query wdc -s '-1' -f text 'select ?o where { ?o &lt;http://creativecommons.org/ns#attributionURL&gt; ?o ; &lt;http://creativecommons.org/ns#morePermissions&gt; ?o }' |egrep -v '^[\?\#]' |wc -l
8

#<sup id="l">l</sup>
4s-query wdc -s '-1' -f text 'select ?s, ?o where { ?s &lt;http://creativecommons.org/ns#attributionURL&gt; ?o ; &lt;http://purl.org/dc/elements/1.1/source&gt; ?o }' |egrep -v '^[\?\#]' |wc -l
5421

4s-query wdc -s '-1' -f text 'select distinct ?o where { ?s &lt;http://creativecommons.org/ns#attributionURL&gt; ?o ; &lt;http://purl.org/dc/elements/1.1/source&gt; ?o }' |egrep -v '^[\?\#]' |wc -l
358

4s-query wdc -s '-1' -f text 'select ?o where { ?o &lt;http://creativecommons.org/ns#attributionURL&gt; ?o ; &lt;http://purl.org/dc/elements/1.1/source&gt; ?o }' |egrep -v '^[\?\#]' |wc -l
11

#<sup id="p">p</sup>
4s-query wdc -s '-1' -f text 'select ?s, ?o, ?n where { ?s &lt;http://creativecommons.org/ns#attributionURL&gt; ?o ; &lt;http://creativecommons.org/ns#morePermissions&gt; ?n }' |egrep -v '^[\?\#]' |wc -l
3977

#<sup id="o">o</sup>
4s-query wdc -s '-1' -f text 'select ?s, ?o, ?n where { ?s &lt;http://creativecommons.org/ns#attributionURL&gt; ?o ; &lt;http://purl.org/dc/elements/1.1/source&gt; ?n }' |egrep -v '^[\?\#]' |wc -l
6836

4s-query wdc -s '-1' -f text 'select ?s, ?o, ?n, ?m where { ?s &lt;http://creativecommons.org/ns#attributionURL&gt; ?o ; &lt;http://purl.org/dc/elements/1.1/source&gt; ?n ; &lt;http://creativecommons.org/ns#morePermissions&gt; ?m }' |egrep -v '^[\?\#]' |wc -l
2946
4s-query wdc -s '-1' -f text 'select ?s, ?o where { ?s &lt;http://creativecommons.org/ns#attributionURL&gt; ?o ; &lt;http://purl.org/dc/elements/1.1/source&gt; ?o ; &lt;http://creativecommons.org/ns#morePermissions&gt; ?o }' |egrep -v '^[\?\#]' |wc -l
1604

#<sup id="c">c</sup>
4s-query wdc -s '-1' -f text 'select distinct ?s where { { ?s &lt;http://creativecommons.org/ns#attributionURL&gt; ?o } UNION { ?s &lt;http://creativecommons.org/ns#attributionName&gt; ?n } UNION { ?s &lt;http://creativecommons.org/ns#morePermissions&gt; ?m }  }' |egrep -v '^[\?\#]' |wc -l
26245

4s-query wdc -s '-1' -f text 'select distinct ?s where { { ?s &lt;http://creativecommons.org/ns#attributionURL&gt; ?o } UNION { ?s &lt;http://creativecommons.org/ns#attributionName&gt; ?n }}' |egrep -v '^[\?\#]' |wc -l
25433

#<sup id="b">b</sup> note subjects not the same as pages data extracted from (158,184)
4s-query wdc -s '-1' -f text 'select distinct ?s where { ?s ?p ?o }'  |egrep -v '^[\?\#]' |wc -l
264307

# Probably less than 1047250 claimed due to syntax errors
4s-query wdc -s '-1' -f text 'select ?s where { ?s ?p ?o }'  |egrep -v '^[\?\#]' |wc -l
968786

4s-query wdc -s '-1' -f text 'select ?s where { ?s ?p ?s }'  |egrep -v '^[\?\#]' |wc -l
2415

4s-query wdc -s '-1' -f text 'select ?s where { ?s ?s ?s }'  |egrep -v '^[\?\#]' |wc -l
0

4s-query wdc -s '-1' -f text 'select ?s where { ?s ?s ?o }'  |egrep -v '^[\?\#]' |wc -l
0
</pre>
</table>
]]></content:encoded>
			<wfw:commentRss>http://gondwanaland.com/mlog/2012/01/23/attribution-crawl/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Faded sidebar</title>
		<link>http://gondwanaland.com/mlog/2012/01/22/wordpress-theme/</link>
		<comments>http://gondwanaland.com/mlog/2012/01/22/wordpress-theme/#comments</comments>
		<pubDate>Mon, 23 Jan 2012 02:28:58 +0000</pubDate>
		<dc:creator>Mike Linksvayer</dc:creator>
				<category><![CDATA[Blogs]]></category>
		<category><![CDATA[Open Services]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://gondwanaland.com/mlog/?p=1565</guid>
		<description><![CDATA[I&#8217;ve occasionally mucked with my blog&#8217;s theme with a general aim of removing superfluous crap that makes reading posts harder. A couple weeks ago something Parker Higgins wrote inspired me to try a little harder: How awesome is @niemanlab&#8217;s &#8220;faded&#8221; sidebar? And zen mode? That&#8217;s a site that cares about its readers. You can view [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve occasionally mucked with my blog&#8217;s theme with a general aim of removing superfluous crap that makes reading posts harder. A couple weeks ago something Parker Higgins <a href="https://identi.ca/notice/88051069">wrote</a> inspired me to try a little harder:<br />
<blockquote>How awesome is @niemanlab&#8217;s &#8220;faded&#8221; sidebar? And zen mode? That&#8217;s a site that cares about its readers.</p></blockquote>
<p>You can <a href="http://www.webcitation.org/64tYylamd">view an archived version of the Nieman Lab site</a> should their design change. The top of the sidebar isn&#8217;t faded, but overall I think the fading there is makes it a little easier to concentrate on a post without switching to &#8220;zen&#8221; mode (removing all navigation).</p>
<p>For my theme, I made the sidebar always faded except when hovered over, and float to the right as far away from the main content area as possible. All &#8220;header&#8221; content is in the sidebar so that there&#8217;s nothing preceding a post&#8217;s title.</p>
<p>I intended to remove anything <a href="http://gondwanaland.com/mlog/2006/08/07/wordcamp-wikimania/">hardcoded</a><sup>*</sup> for my blog, anything I don&#8217;t understand or not used, and anything that doesn&#8217;t validate, but I didn&#8217;t get very far on any of those. I doubt this will be useful to anyone, but <a href="https://gitorious.org/mlog-wordpress/mlog-wordpress-theme">patches welcome</a>.</p>
<p><small><sup>*</sup>Yes it is also a <a href="http://gondwanaland.com/mlog/2007/08/14/pragmatic-open-services/">little</a> ironic I&#8217;ve never bothered to published modified source used to run this blog until now.</small></p>
]]></content:encoded>
			<wfw:commentRss>http://gondwanaland.com/mlog/2012/01/22/wordpress-theme/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>CSS text overlay image, e.g. for attribution and license notice</title>
		<link>http://gondwanaland.com/mlog/2012/01/08/css-text-overlay-attribution/</link>
		<comments>http://gondwanaland.com/mlog/2012/01/08/css-text-overlay-attribution/#comments</comments>
		<pubDate>Mon, 09 Jan 2012 02:09:10 +0000</pubDate>
		<dc:creator>Mike Linksvayer</dc:creator>
				<category><![CDATA[Blogs]]></category>
		<category><![CDATA[Creative Commons]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Semantic Web]]></category>

		<guid isPermaLink="false">http://gondwanaland.com/mlog/?p=1485</guid>
		<description><![CDATA[A commenter called me on providing inadequate credit for an map image I used on this blog. I&#8217;ve often seen map credits overlaid on the bottom right of maps, so I decided to try that. I couldn&#8217;t find an example of using CSS to overlay text on an image that only showed the absolute minimum [...]]]></description>
			<content:encoded><![CDATA[<p>A commenter <a href="http://gondwanaland.com/mlog/2011/12/07/occupy-980/#comment-110737">called me</a> on providing inadequate credit for an map image I used on this blog. I&#8217;ve often seen map credits overlaid on the bottom right of maps, so I decided to try that. I couldn&#8217;t find an example of using CSS to overlay text on an image that only showed the absolute minimum needed to achieve the effect, and explained why. Below is my attempt.</p>
<h3 id="ex1">Example 1</h3>
<div style="position:relative;z-index:0;width:510px"><img src="http://gondwanaland.com/i/young-obama-pirate-hope.png"/>
<div style="position:absolute;z-index:1;right:0;bottom:0"><a href="http://identi.ca/conversation/69446510">Context</a>+<a href="http://registry.gimp.org/node/14291">Colophon</a></div>
</div>
<p>The above may be a good example of when to not use a text overlay (there is already text at the bottom of the image), but the point is to demonstrate the effect, not to look good. I have an <a href="http://gondwanaland.com/i/young-obama-pirate-hope.png">image</a> and I want to overlay &laquo;<a href="http://identi.ca/conversation/69446510">Context</a>+<a href="http://registry.gimp.org/node/14291">Colophon</a>&raquo; at the bottom right of the image. Here&#8217;s the minimal code:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">style</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;position:relative;z-index:0;width:510px&quot;</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">img</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://gondwanaland.com/i/young-obama-pirate-hope.png&quot;</span><span style="color: #66cc66;">/</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">style</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;position:absolute;z-index:1;right:0;bottom:0&quot;</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://identi.ca/conversation/69446510&quot;</span>&gt;</span>Context<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;</span>+<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://registry.gimp.org/node/14291&quot;</span>&gt;</span>Colophon<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span></pre></td></tr></table></div>

<h4>Explanation</h4>
<p>The outer <code>div</code> creates a container which the text overlay will be aligned with. A <code>position</code> is necessary to enable <code>z-index</code>, which specifies how objects will stack. Here <code>position:relative</code> as I want the image and overlay to flow with the rest of the post, <code>z-index:0</code> as the container is at the bottom of the stack. I specify <code>width:510px</code> as that&#8217;s how wide the image is, and without hardcoding the size of the <code>div</code>, the overlay as specified will float off to the right rather than align with the image. There&#8217;s nothing special about the <code>img</code>; it inherits from the outer <code>div</code>.</p>
<p>The inner <code>div</code> contains and styles the text I want to overlay. <code>position:absolute</code> as I will specify an absolute offset from the container, <code>right:0;bottom:0</code>, and <code>z-index:1</code> to place above the image. Finally, I close both <code>div</code>s.</p>
<p>That&#8217;s it. I know precious little CSS; please tell me what I got wrong.</p>
<h3 id="ex2">Example 2</h3>
<div style="z-index:0;position:relative;width:560px" xmlns:cc="http://creativecommons.org/ns#" about="http://gondwanaland.com/i/OpenStreetMap-Oakland-980.png"><a href="http://www.openstreetmap.org/?lat=37.8134&amp;lon=-122.2776&amp;zoom=14&amp;layers=Q"><img src="http://gondwanaland.com/i/OpenStreetMap-Oakland-980.png"/></a>
<div style="position:absolute;z-index:1;right:0;bottom:0;"><small>© <a rel="cc:attributionURL" property="cc:attributionName" href="http://www.openstreetmap.org/?lat=37.8134&amp;lon=-122.2776&amp;zoom=14&amp;layers=Q">OpenStreetMap contributors</a>, <a rel="license" href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a></small></div>
</div>
<p>Above is the image that prompted this post, with added attribution and license notice. Code:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
</pre></td><td class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">style</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;z-index:0;position:relative;width:560px&quot;</span></span>
<span style="color: #009900;">     xmlns:cc<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://creativecommons.org/ns#&quot;</span></span>
<span style="color: #009900;">     about<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://gondwanaland.com/i/OpenStreetMap-Oakland-980.png&quot;</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://www.openstreetmap.org/?lat=37.8134&amp;amp;lon=-122.2776&amp;amp;zoom=14&amp;amp;layers=Q&quot;</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">img</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://gondwanaland.com/i/OpenStreetMap-Oakland-980.png&quot;</span><span style="color: #66cc66;">/</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">style</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;position:absolute;z-index:1;right:0;bottom:0;&quot;</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">small</span>&gt;</span>
      © <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">rel</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;cc:attributionURL&quot;</span></span>
<span style="color: #009900;">           property<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;cc:attributionName&quot;</span></span>
<span style="color: #009900;">           <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://www.openstreetmap.org/?lat=37.8134&amp;amp;lon=-122.2776&amp;amp;zoom=14&amp;amp;layers=Q&quot;</span>&gt;</span>OpenStreetMap contributors<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;</span>,
        <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">rel</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;license&quot;</span></span>
<span style="color: #009900;">           <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://creativecommons.org/licenses/by-sa/2.0/&quot;</span>&gt;</span>CC-BY-SA<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">small</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span></pre></td></tr></table></div>

<h4>Explanation</h4>
<p>With respect to the achieving the text overlay, there&#8217;s nothing in this example not in the first. Below I explain annotations added that <a rel="tag" href="https://en.wikipedia.org/wiki/Creative_Commons_Rights_Expression_Language">enhance</a> (but are not required by) fulfillment of <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>/CC-BY-SA attribution and license notice.</p>
<p>The <code>xmlns:cc</code>prefix, and even that may be superfluous, given <code>cc:</code> as a <a href="http://www.w3.org/profile/rdfa-1.1">default prefix</a>.</p>
<p><code>about</code> sets the subject of subsequent annotations.</p>
<p><code>small</code> isn&#8217;t an annotation, but does now seem <a href="http://dev.w3.org/html5/markup/small.html">appropriate</a> for legal notices, and is usually rendered nicely.</p>
<p><code>rel="cc:attributionURL"</code> says that the value of the <code>href</code> property is the link to use for attributing the subject. <code>property="cc:attributionName"</code> says that the text (&#8220;OpenStreetMap contributors&#8221;) is the name to use for attributing the subject. <code>rel="license"</code> says the value of its <code>href</code> property is the subject&#8217;s license.</p>
<p>If you&#8217;re bad and not using <a href="https://www.eff.org/https-everywhere">HTTPS-Everywhere</a> (referrer not sent due to protocol change; actually I&#8217;m bad for not serving this blog over https), clicking on BY-SA above might obtain a snippet of HTML with credits for others to use. Or you can copy and paste the above code into <a href="http://www.w3.org/2007/08/pyRdfa/Shadow.html">RDFa Distiller</a> or <a href="http://check.rdfa.info/">checkrdfa</a> to see that the annotations are as I&#8217;ve said.</p>
<p><b>Addendum:</b> If you&#8217;re reading this in a feed reader or aggregator, there&#8217;s a good chance inline CSS is stripped &#8212; text intended to overlay images will appear under rather than overlaying images. Click through to the post in order to see the overlays work.</p>
]]></content:encoded>
			<wfw:commentRss>http://gondwanaland.com/mlog/2012/01/08/css-text-overlay-attribution/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>End of the 2011 world</title>
		<link>http://gondwanaland.com/mlog/2011/12/31/2011/</link>
		<comments>http://gondwanaland.com/mlog/2011/12/31/2011/#comments</comments>
		<pubDate>Sun, 01 Jan 2012 03:05:28 +0000</pubDate>
		<dc:creator>Mike Linksvayer</dc:creator>
				<category><![CDATA[Creative Commons]]></category>
		<category><![CDATA[Economics]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[Oakland]]></category>
		<category><![CDATA[Open Services]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Peeves]]></category>
		<category><![CDATA[Politics]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Public Domain]]></category>
		<category><![CDATA[Public Goods]]></category>

		<guid isPermaLink="false">http://gondwanaland.com/mlog/?p=1448</guid>
		<description><![CDATA[I took the above photo near the beginning of 2011. It has spent most of the year near the top (currently #2) of my photos hosted at Flickr ranked by their interestingness metric. Every other photo in the 200 they rank (sadly I don&#8217;t think anyone not logged in as me can see this list) [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://flickr.com/photos/mlinksva/5366318120"><img src="http://gondwanaland.com/i/sf-rincon-rubble.jpg"/></a><br />
I took the above photo near the beginning of 2011. It has spent most of the year near the top (currently #2) of my photos hosted at Flickr ranked by their <a href="http://flickr.com/explore/interesting/">interestingness</a> metric. Every other photo in the 200 they rank (sadly I don&#8217;t think anyone not logged in as me can see this list) has some combination of being on other people&#8217;s lists of favorites, comments, or large number of views. The above photo has none of that. Prior to this post it has only been viewed 33 times by other people, according to Flickr, and I don&#8217;t think that number has changed in some time. Their (not revealed) code must find something about the image itself interesting. Is their algorithm inaccurate? In any case the image is appropriate as the world of 2011 is ending, and in 2012 I absolutely will migrate my personal media hosting to something autonomous, as since <a href="http://gondwanaland.com/mlog/2010/12/31/fsw-statusnet/">last year</a> someone (happens to be a friend and colleague) has taken on the mantle of <a href="http://dustycloud.org/blog/2011/5/5/gnu-mediagoblin.html">building media sharing for the federated social web</a>.</p>
<p>My employer&#8217;s office moved from San Francisco to Mountain View in April, contributing to a number of people <a href="http://gondwanaland.com/mlog/2011/07/11/cc-cto/">leaving</a> or transitioning out, which has been a bummer. I&#8217;ve been working exclusively from home since May. Still, there have been a number of good developments, which I won&#8217;t attempt to catalog here. My favorites include agreement with the Free Software Foundation regarding <a href="https://creativecommons.org/weblog/entry/27081">use of CC0 for public domain software</a>, small improvements in the <a href="https://creativecommons.org/weblog/entry/27467">CC legal user interface</a>, the return and great work of a <a href="https://creativecommons.org/weblog/entry/28360">previous colleague</a>, <a href="http://gondwanaland.com/mlog/2011/09/12/eol-plus/">retirement of two substandard licenses</a>, <a href="https://creativecommons.org/weblog/entry/28525">research</a>, and a <a href="http://gondwanaland.com/mlog/2011/11/03/commons-experts/">global summit/launch of a process</a> toward <a href="http://wiki.creativecommons.org/4.0">version 4.0</a> of the CC licenses, which I hope over the next year prove at least a little bit <a href="http://lists.ibiblio.org/pipermail/cc-community/2011-December/006347.html">visionary</a>, long-standing, and have some consideration for how they can <a href="http://lists.ibiblio.org/pipermail/cc-community/2011-December/006474.html">make the world a better place</a>.</p>
<p>Speaking of which, I&#8217;ve spent more time thinking about social science-y stuff in 2011 than I have in at least several years. I&#8217;ll probably have plenty to say regarding this on a range of topics next year, but for now I&#8217;ll state one narrow &#8220;professionally-related&#8221; conclusion: free/libre/open software/culture/etc advocates (me included) have done a wholly inadequate job of characterizing why our preferences matter, both to the general public and to specialists in every social science.</p>
<p>Apart from silly <a href="http://gondwanaland.com/mlog/2011/01/08/business-model-punch/">peeves</a>, two moderate ideas unrelated to free/libre/open stuff that I first wrote about in 2011 and I expect I&#8217;ll continue to push for years to come: <a href="http://gondwanaland.com/mlog/2011/11/12/no-more-child-veterans/">increasing the minimum age and education requirement for soldiers</a> and <a href="http://gondwanaland.com/mlog/2011/12/07/occupy-980/">tearing down highway 980</a>.</p>
<p>I haven&#8217;t done much programming in several years, and not full time in about a decade. This has been making me feel like my brain is rotting, and contributes to my lack of prototyping various services that I want to exist. Though I&#8217;d been fiddling (that may be generous) with Scala for a couple years, I was never really super excited about tying myself to the JVM. I know and deeply respect lots of people who doing great things with Python, and I&#8217;ve occasionally used it for scripts over the past several years because of that, but it leaves me totally non-enthused. I&#8217;ve done enough programming in languages that are uglier but more or less the same, time for something new. For a couple months I&#8217;ve been learning <a rel="tag" href="https://en.wikipedia.org/wiki/Haskell_%28programming_language%29">Haskell</a> and doing some prototyping using the <a href="http://www.yesodweb.com">Yesod web framework</a> (apparently I had heard of Haskell in <a href="http://gondwanaland.com/mlog/2005/08/03/agriculture/">2005</a> but I didn&#8217;t look at it closely until last year). I haven&#8217;t made as much progress as I&#8217;d like, mostly due to unrelated distractions. The biggest substantive hurdle has not been Haskell (and the concepts it stands for), but a lack of Yesod examples and documentation. This seems to be a common complaint. Yesod is rapidly <a href="https://groups.google.com/d/topic/yesodweb/pB26plTgERs/discussion">moving</a> to a 1.0 release, <a href="https://groups.google.com/d/topic/yesodweb/qGaBOZDkVPw/discussion">documentation</a> is prioritized, and I expect to be really productive with it over the coming year. Thanks to the <a href="http://www.yesodweb.com/page/contributors">people who make Yesod</a> and those who have been <a href="http://acawiki.org/A_History_of_Haskell:_Being_Lazy_With_Class">making Haskell for two decades</a>.</p>
<p>This year I appreciated three music projects that I hadn&#8217;t paid much attention to before, much to my detriment: <a href="https://en.wikipedia.org/wiki/DNA_%28band%29">DNA</a>, <a href="https://en.wikipedia.org/wiki/Moondog">Moondog</a>, and especially <a href="https://en.wikipedia.org/wiki/Harry_Partch">Harry Partch</a>. I also listened a lot again to one of my favorite bands I discovered in college, <a href="http://www.viosac.net">Violence and the Sacred</a>, which amazingly has <a href="http://www.viosac.net/blog/?p=271">released some of its catalog under the CC BY-SA license</a>. Check them out!</p>
<p>Finally, in 2011 I had the pleasure of getting to know just a little bit <a href="http://www.goldengateoakland.org/">some people working</a> to make my neighborhood a better <a href="http://oaklandnorth.net/2011/12/29/neighbors-working-to-create-a-sense-of-place-in-the-golden-gate-district/">place</a>, attending a <a href="http://www.slideshare.net/mlinksva/global-copyright-challenges-2011-special-libraries-association-conference">conference</a> with my sister, seeing one of my brothers start a <a href="http://www.bio.upenn.edu/faculty/linksvayer/">new job</a> and the other a <a href="http://open.salon.com/blog/gary_justis/2011/05/19/between_low_and_high_culture_heavy_brow_gallery">new gallery</a>, and with my wife of continuing to grow up (in that respect, the &#8220;better half&#8221; cliche definitely applies). Now for this world to <a href="http://www.pointofinquiry.org/stuart_robbins_the_end_of_the_world_as_we_know_it/">end</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://gondwanaland.com/mlog/2011/12/31/2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mozilla $300m/year for freedom</title>
		<link>http://gondwanaland.com/mlog/2011/12/22/mozilla-money-freedom/</link>
		<comments>http://gondwanaland.com/mlog/2011/12/22/mozilla-money-freedom/#comments</comments>
		<pubDate>Fri, 23 Dec 2011 05:13:53 +0000</pubDate>
		<dc:creator>Mike Linksvayer</dc:creator>
				<category><![CDATA[Advertising]]></category>
		<category><![CDATA[Creative Commons]]></category>
		<category><![CDATA[Economics]]></category>
		<category><![CDATA[Open Services]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Public Goods]]></category>
		<category><![CDATA[Wikipedia]]></category>

		<guid isPermaLink="false">http://gondwanaland.com/mlog/?p=1378</guid>
		<description><![CDATA[More Mozilla ads by Henrik Moltke / CC BY Congratulations to Mozilla on their $300m/year deal with Google, which will more than double current annual revenue. I&#8217;ve always thought people predicting doom for Mozilla if Google failed to renew were all wrong &#8212; others would be happy to pay for the default search position; probably [...]]]></description>
			<content:encoded><![CDATA[<div xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/terms/" about="http://gondwanaland.com/i/mozilla-venture-good.jpg" style="align:center"><a href="http://flickr.com/photos/henrikmoltke/5587199796"><img src="http://gondwanaland.com/i/mozilla-venture-good.jpg"/></a><br /><small><a rel="cc:attributionURL" href="http://flickr.com/photos/henrikmoltke/5587199796" property="dc:title">More Mozilla ads</a> by <span property="cc:attributionName">Henrik Moltke</span> / <a rel="license" href="http://creativecommons.org/licenses/by/2.0/">CC BY</a></small></div>
<p>Congratulations to Mozilla on their <a href="https://allthingsd.com/20111222/google-will-pay-mozilla-almost-300m-per-year-in-search-deal-besting-microsoft-and-yahoo/">$300m/year deal with Google</a>, which will more than double current annual revenue. I&#8217;ve always thought people predicting doom for Mozilla if Google failed to renew were all wrong &#8212; others would be happy to pay for the default search position; probably less since Microsoft, Yahoo, and others make less than Google per ad view, but it&#8217;d still be a very substantial amount &#8212; and the link article hints that a Microsoft bid drove the price up.</p>
<p>There&#8217;s always a risk that Mozilla won&#8217;t spend the money well, but I&#8217;m pretty confident that they will. Firefox is excellent, and in 2011 has gotten <a href="http://gondwanaland.com/mlog/2011/12/04/rolling-bugfree/">more excellent, faster</a>, and I think many of the other projects they&#8217;re doing are really important, and on the right track (insofar as I&#8217;m qualified to discern, which is not much), for example <a href="https://browserid.org/">BrowserID</a>. Even in small and hopelessly annoying things, like licensing, I think Mozilla is <a href="http://gondwanaland.com/mlog/2011/12/06/mozilla-public-license-2-0-and-increasing-public-copyright-license-compatibility/">doing good</a>. <small>(Bias: Mozilla has <a href="https://creativecommons.net/figures/">donated</a> to my employer.)</small></p>
<p>I&#8217;m no longer enthused about the possibility of <a href="http://gondwanaland.com/mlog/2007/01/02/wikipedia-advertising/">huge resources for progress toward Wikimedia&#8217;s vision from advertising on Wikipedia</a>. Since I was last on that bandwagon, it has become even less of a possibility in anything but the distant future: Wikimedia&#8217;s donation campaigns have gone very well, adequately funding its operating mission, and lack of advertising has become even more part of Wikimedia&#8217;s messaging; I&#8217;ve also become more concerned (not in particular to Wikimedia) about the institutional corruption risks previously blogged by <a href="http://www.bayesianinvestor.com/blog/index.php/2007/01/08/should-wikipedia-run-ads/">Peter McCluskey</a> and <a href="http://www.techdirt.com/articles/20080313/091150534.shtml">Timothy B. Lee</a>. (Note these objections don&#8217;t apply to Mozilla: its significant revenue has always been advertising-based; very roughly its revenues are already 10x those of Wikimedia&#8217;s; and it is also building up an individual donor program, which I agree is often the healthiest revenue for a nonprofit.)</p>
<p>But I still very much think <a href="http://gondwanaland.com/mlog/2011/12/12/anti-sopa-commons/">freedom</a> needs massive, ongoing resource infusions, in the right institutional framework. I celebrate the tremendous benefits of the FLOSS community achieves without massive, concentrated, ongoing resource infusions, but I also admit that the web likely would be <a href="http://gondwanaland.com/mlog/2011/03/22/ie6-monoculture-reminde/">much worse</a>, much less webby, and much less free without concentrated resources at Mozilla over the last several years.</p>
<p>Thank you Mozillians, and congratulations. I have very high expectations for your contributions over the next years to the web and society, in particular where more freedom and security are obviously needed such as mobile and <a href="http://gondwanaland.com/mlog/2008/07/14/us-autonomo/">software services</a>. Such would be just a start. As computation <a href="https://identi.ca/notice/77510129">permeates</a> <a href="https://www.softwarefreedom.org/resources/2010/transparent-medical-devices.html">everything</a>, and digital freedom becomes the <a href="http://gondwanaland.com/mlog/2007/12/04/the-issue/">most important political issue</a>, the resources of many Mozillas are needed. More on that, soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://gondwanaland.com/mlog/2011/12/22/mozilla-money-freedom/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Creative Commons hiring CTO</title>
		<link>http://gondwanaland.com/mlog/2011/07/11/cc-cto/</link>
		<comments>http://gondwanaland.com/mlog/2011/07/11/cc-cto/#comments</comments>
		<pubDate>Mon, 11 Jul 2011 23:06:19 +0000</pubDate>
		<dc:creator>Mike Linksvayer</dc:creator>
				<category><![CDATA[Creative Commons]]></category>
		<category><![CDATA[Open Services]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Semantic Web]]></category>

		<guid isPermaLink="false">http://gondwanaland.com/mlog/?p=1186</guid>
		<description><![CDATA[See my blog post on the CC site for more context. Also thanks to Nathan Yergler, who held the job for four years. I really miss working with Nathan. His are big shoes to fill, but also his work across operations, applications, standards, and relationships set the foundation for the next CTO to be very [...]]]></description>
			<content:encoded><![CDATA[<p>See <a href="http://creativecommons.org/weblog/entry/28240">my blog post on the CC site</a> for more context.</p>
<p>Also thanks to <a href="http://yergler.net/blog/2011/04/18/the-new-thing/">Nathan Yergler</a>, who held the job for four years. I really miss working with Nathan. His are big shoes to fill, but also his work across operations, applications, standards, and relationships set the foundation for the next CTO to be very successful.</p>
<p><a href="https://identi.ca/conversation/74489766"><img src="http://gondwanaland.com/i/tape-backups-in-the-cloud-guy.jpg" alt="" title="do you have what it takes?"/></a></p>
]]></content:encoded>
			<wfw:commentRss>http://gondwanaland.com/mlog/2011/07/11/cc-cto/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

