<?xml version="1.0" encoding="UTF-8"?>
 <rdf:RDF xmlns="http://purl.org/rss/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://web.resource.org/cc/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://pinboard.in">
    <title>Pinboard (jpfinley)</title>
    <link>https://pinboard.in/u:jpfinley/public/</link>
    <description>recent bookmarks from jpfinley</description>
    <items>
      <rdf:Seq>	<rdf:li rdf:resource="http://jlongster.com/Presenting-The-Most-Over-Engineered-Blog-Ever"/>
	<rdf:li rdf:resource="http://tinysubversions.com/notes/sorting-bot/"/>
	<rdf:li rdf:resource="http://titon.io/en/toolkit"/>
	<rdf:li rdf:resource="https://steveedson.co.uk/gulp/advanced-tasks/"/>
	<rdf:li rdf:resource="https://danielrapp.github.io/doppler/"/>
	<rdf:li rdf:resource="http://play.elevatorsaga.com/"/>
	<rdf:li rdf:resource="http://gamemechanicexplorer.com/"/>
	<rdf:li rdf:resource="http://engineering.flipboard.com/2014/03/web-layouts/"/>
	<rdf:li rdf:resource="https://developer.mozilla.org/en-US/docs/Web/JavaScript/A_re-introduction_to_JavaScript"/>
	<rdf:li rdf:resource="http://alistapart.com/article/hack-your-maps"/>
	<rdf:li rdf:resource="http://www.p01.org/releases/MINI_DISTRICT/"/>
	<rdf:li rdf:resource="http://www.html5rocks.com/en/tutorials/getusermedia/intro/"/>
	<rdf:li rdf:resource="http://www.voodoojs.com/index.php"/>
	<rdf:li rdf:resource="http://sciencevsmagic.net/geo/"/>
	<rdf:li rdf:resource="http://fhtr.blogspot.de/2013/04/logic-algebra.html"/>
	<rdf:li rdf:resource="https://github.com/geuis/helium-css"/>
	<rdf:li rdf:resource="http://www.framerjs.com/"/>
	<rdf:li rdf:resource="http://andrew-hoyer.com/andrewhoyer/experiments/"/>
	<rdf:li rdf:resource="http://www.airtightinteractive.com/2013/02/intro-to-pixel-shaders-in-three-js/"/>
	<rdf:li rdf:resource="https://github.com/jsantell/dancer.js"/>
	<rdf:li rdf:resource="http://selection.datavisualization.ch/"/>
	<rdf:li rdf:resource="http://www.joelambert.co.uk/morf/"/>
	<rdf:li rdf:resource="http://coding.smashingmagazine.com/2011/10/04/quick-look-math-animations-javascript/"/>
	<rdf:li rdf:resource="http://neutroncreations.com/blog/building-a-custom-html5-audio-player-with-jquery/"/>
	<rdf:li rdf:resource="http://www.phonegap.com/about"/>
	<rdf:li rdf:resource="http://indiemaps.com/blog/2011/04/dymaxion-projection-in-openlayers/"/>
	<rdf:li rdf:resource="http://matt.might.net/articles/how-to-native-iphone-ipad-apps-in-javascript/"/>
	<rdf:li rdf:resource="http://initializr.com/"/>
	<rdf:li rdf:resource="http://praegnanz.de/html5video/"/>
	<rdf:li rdf:resource="http://acko.net/blog/js1k-demo-the-making-of"/>
	<rdf:li rdf:resource="http://www.effectgames.com/effect/article.psp.html/joe/Old_School_Color_Cycling_with_HTML5"/>
	<rdf:li rdf:resource="http://www.effectgames.com/effect/"/>
	<rdf:li rdf:resource="http://thejit.org/"/>
	<rdf:li rdf:resource="http://indiemaps.com/blog/2010/06/interactive-mapping-with-html5-javascript-and-canvas/"/>
	<rdf:li rdf:resource="http://code.google.com/p/html5media/"/>
	<rdf:li rdf:resource="http://jilion.com/sublime/video"/>
	<rdf:li rdf:resource="http://vis.stanford.edu/protovis/"/>
	<rdf:li rdf:resource="http://www.zeldman.com/2009/10/15/chicago-deep-dish/"/>
	<rdf:li rdf:resource="https://developer.mozilla.org/en/a_re-introduction_to_javascript"/>
	<rdf:li rdf:resource="http://labs.silverorange.com/archive/2007/february/workingwithxml"/>
	<rdf:li rdf:resource="http://www.84bytes.com/2008/10/22/advanced-data-visualization-tools-built-with-javascript/"/>
	<rdf:li rdf:resource="http://bluff.jcoglan.com/"/>
	<rdf:li rdf:resource="http://omnipotent.net/jquery.sparkline/"/>
	<rdf:li rdf:resource="http://www.defusion.org.uk/code/javascript-image-cropper-ui-using-prototype-scriptaculous/comment-page-3/"/>
	<rdf:li rdf:resource="http://prototype-window.xilinus.com/"/>
	<rdf:li rdf:resource="http://javascript.crockford.com/style1.html"/>
	<rdf:li rdf:resource="http://code.google.com/p/calendardateselect/"/>
	<rdf:li rdf:resource="http://robgoodlatte.com/2007/07/31/syncotype-your-baselines/"/>
	<rdf:li rdf:resource="http://piano.altipla.no/pages/javascript_eye_for_the_ruby_guy"/>
	<rdf:li rdf:resource="http://simile.mit.edu/"/>
	<rdf:li rdf:resource="http://101out.com/jss.php"/>
	<rdf:li rdf:resource="http://developer.yahoo.com/yslow/"/>
	<rdf:li rdf:resource="http://yuiblog.com/blog/2007/01/24/video-crockford-tjpl/"/>
	<rdf:li rdf:resource="http://www.slash7.com/articles/2006/07/26/javascript-boot-camp-tutorial"/>
	<rdf:li rdf:resource="http://developer.mozilla.org/en/docs/A_re-introduction_to_JavaScript"/>
	<rdf:li rdf:resource="http://www.sitepoint.com/article/bookmarklets"/>
	<rdf:li rdf:resource="http://ajax.schwarz-interactive.de/csharpsample/default.aspx"/>
	<rdf:li rdf:resource="http://www.sergiopereira.com/articles/prototype.js.html"/>
      </rdf:Seq>
    </items>
  </channel><item rdf:about="http://jlongster.com/Presenting-The-Most-Over-Engineered-Blog-Ever">
    <title>Presenting The Most Over-Engineered Blog Ever</title>
    <dc:date>2015-08-31T19:37:42+00:00</dc:date>
    <link>http://jlongster.com/Presenting-The-Most-Over-Engineered-Blog-Ever</link>
    <dc:creator>jpfinley</dc:creator><description><![CDATA[Several months ago I posted about plans to rebuild this blog. After a few false starts, I finally finished and launched the new version two weeks ago. The new version uses React and is way better (and I open-sourced it).]]></description>
<dc:subject>blog javascript</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jpfinley/b:bf76e5caf61c/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:blog"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://tinysubversions.com/notes/sorting-bot/">
    <title>sorting-bot</title>
    <dc:date>2015-04-14T21:14:51+00:00</dc:date>
    <link>http://tinysubversions.com/notes/sorting-bot/</link>
    <dc:creator>jpfinley</dc:creator><description><![CDATA[If you follow this Twitter bot, it adds you to a queue and eventually sorts you into a Hogwarts house with a custom rhyming couplet.]]></description>
<dc:subject>bots programming javascript</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jpfinley/b:9b7da85ea747/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:bots"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://titon.io/en/toolkit">
    <title>Toolkit - Project Titon</title>
    <dc:date>2015-04-05T22:28:00+00:00</dc:date>
    <link>http://titon.io/en/toolkit</link>
    <dc:creator>jpfinley</dc:creator><description><![CDATA[Extensible front-end HTML, CSS, and JavaScript user interface components for the responsive, mobile, and modern web.]]></description>
<dc:subject>framework html css javascript</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jpfinley/b:f72a2319a3dc/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:framework"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:html"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://steveedson.co.uk/gulp/advanced-tasks/">
    <title>Automating optimisations with Gulp</title>
    <dc:date>2015-03-18T16:00:58+00:00</dc:date>
    <link>https://steveedson.co.uk/gulp/advanced-tasks/</link>
    <dc:creator>jpfinley</dc:creator><description><![CDATA[Gulp is a powerful task runner, that when used correctly, can vastly improve your workflow, as well as producing sites that would otherwise be bloated, take a long time to build, and be stuck with old technologies.]]></description>
<dc:subject>app workflow javascript jekyll code</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jpfinley/b:b2f10d44cfad/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:app"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:workflow"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:jekyll"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:code"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://danielrapp.github.io/doppler/">
    <title>Motion sensing using the doppler effect</title>
    <dc:date>2015-03-11T15:57:45+00:00</dc:date>
    <link>https://danielrapp.github.io/doppler/</link>
    <dc:creator>jpfinley</dc:creator><description><![CDATA[Recently I stumbled upon an interesting paper for implementing motion sensing requiring no special hardware, only a speaker and mic! Unfortunately the paper didn't include code to test it, so I decided to reproduce it here on the web!]]></description>
<dc:subject>hacks audio javascript motion</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jpfinley/b:90bd0276f8c5/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:hacks"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:audio"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:motion"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://play.elevatorsaga.com/">
    <title>Elevator Saga - the elevator programming game</title>
    <dc:date>2015-01-30T19:15:59+00:00</dc:date>
    <link>http://play.elevatorsaga.com/</link>
    <dc:creator>jpfinley</dc:creator><dc:subject>game tutorial programming javascript</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jpfinley/b:f5785f9a9613/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:game"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:tutorial"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://gamemechanicexplorer.com/">
    <title>Game Mechanic Explorer</title>
    <dc:date>2014-04-21T20:27:42+00:00</dc:date>
    <link>http://gamemechanicexplorer.com/</link>
    <dc:creator>jpfinley</dc:creator><description><![CDATA[A collection of concrete examples for various game mechanics, algorithms, and effects.]]></description>
<dc:subject>games javascript patterns</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jpfinley/b:f9149a2f754d/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:games"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:patterns"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://engineering.flipboard.com/2014/03/web-layouts/">
    <title>Layout in Flipboard for Web and Windows — Flipboard Engineering</title>
    <dc:date>2014-03-31T14:29:25+00:00</dc:date>
    <link>http://engineering.flipboard.com/2014/03/web-layouts/</link>
    <dc:creator>jpfinley</dc:creator><description><![CDATA["A designer creates a set of layouts. From this set, it selects the layout that best fits the desired content. Duplo looks at anywhere between 2000 to 6000 candidates, searching for the best layout to fit the content."]]></description>
<dc:subject>algorithm layout design ia ux javascript</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jpfinley/b:8cbf7c087f70/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:algorithm"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:layout"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:design"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:ia"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:ux"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://developer.mozilla.org/en-US/docs/Web/JavaScript/A_re-introduction_to_JavaScript">
    <title>A re-introduction to JavaScript (JS Tutorial) - JavaScript | MDN</title>
    <dc:date>2014-02-07T19:53:31+00:00</dc:date>
    <link>https://developer.mozilla.org/en-US/docs/Web/JavaScript/A_re-introduction_to_JavaScript</link>
    <dc:creator>jpfinley</dc:creator><dc:subject>tutorial programming reference js javascript</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jpfinley/b:3ba693a48e35/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:tutorial"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:reference"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:js"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://alistapart.com/article/hack-your-maps">
    <title>Hack Your Maps · An A List Apart Article</title>
    <dc:date>2013-10-08T22:15:03+00:00</dc:date>
    <link>http://alistapart.com/article/hack-your-maps</link>
    <dc:creator>jpfinley</dc:creator><dc:subject>map maps javascript responsive</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jpfinley/b:575c7c4c21ca/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:map"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:maps"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:responsive"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.p01.org/releases/MINI_DISTRICT/">
    <title>MINI DISTRICT | www.p01.org</title>
    <dc:date>2013-08-18T17:50:10+00:00</dc:date>
    <link>http://www.p01.org/releases/MINI_DISTRICT/</link>
    <dc:creator>jpfinley</dc:creator><description><![CDATA[How to build a 3D City in 234 bytes with Canvas 2D.]]></description>
<dc:subject>demo demoscene javascript procedural city cityscapes</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jpfinley/b:132661e8d65b/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:demo"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:demoscene"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:procedural"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:city"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:cityscapes"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.html5rocks.com/en/tutorials/getusermedia/intro/">
    <title>Capturing Audio &amp; Video in HTML5 - HTML5 Rocks</title>
    <dc:date>2013-08-05T14:05:58+00:00</dc:date>
    <link>http://www.html5rocks.com/en/tutorials/getusermedia/intro/</link>
    <dc:creator>jpfinley</dc:creator><dc:subject>video audio html5 javascript</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jpfinley/b:4924b7c662e2/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:video"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:audio"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:html5"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.voodoojs.com/index.php">
    <title>Voodoo - A Next Generation Internet</title>
    <dc:date>2013-07-08T19:36:34+00:00</dc:date>
    <link>http://www.voodoojs.com/index.php</link>
    <dc:creator>jpfinley</dc:creator><dc:subject>3d 2d javascript library web</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jpfinley/b:a2a2bcbffcd3/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:3d"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:2d"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:library"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:web"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://sciencevsmagic.net/geo/">
    <title>ANCIENT GREEK GEOMETRY</title>
    <dc:date>2013-07-08T14:24:14+00:00</dc:date>
    <link>http://sciencevsmagic.net/geo/</link>
    <dc:creator>jpfinley</dc:creator><description><![CDATA[A Compass and Straightedge tool/puzzle game written in JavaScript.]]></description>
<dc:subject>geometry math construction game javascript</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jpfinley/b:653fdf61197f/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:geometry"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:math"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:construction"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:game"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://fhtr.blogspot.de/2013/04/logic-algebra.html">
    <title>fhtr: Boolean Algebra</title>
    <dc:date>2013-04-30T20:50:26+00:00</dc:date>
    <link>http://fhtr.blogspot.de/2013/04/logic-algebra.html</link>
    <dc:creator>jpfinley</dc:creator><description><![CDATA[I started implementing the logic gates in JS for the heck of it. In the process I figured out an interesting algebra for logic circuits.]]></description>
<dc:subject>logic transistors js development code javascript</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jpfinley/b:b6e283a1439a/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:logic"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:transistors"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:js"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:development"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:code"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://github.com/geuis/helium-css">
    <title>geuis/helium-css · GitHub</title>
    <dc:date>2013-04-29T15:00:35+00:00</dc:date>
    <link>https://github.com/geuis/helium-css</link>
    <dc:creator>jpfinley</dc:creator><description><![CDATA[Helium is a tool for discovering unused CSS across many pages on a web site. The tool is javascript-based and runs from the browser.]]></description>
<dc:subject>javascript css</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jpfinley/b:7f2a87014452/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:css"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.framerjs.com/">
    <title>Framer: Modern Prototyping</title>
    <dc:date>2013-02-25T12:30:38+00:00</dc:date>
    <link>http://www.framerjs.com/</link>
    <dc:creator>jpfinley</dc:creator><dc:subject>framework facebook html prototype javascript ixd</dc:subject>
<dc:identifier>https://pinboard.in/u:jpfinley/b:076a567a0761/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:framework"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:facebook"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:html"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:prototype"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:ixd"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://andrew-hoyer.com/andrewhoyer/experiments/">
    <title>Andrew Hoyer</title>
    <dc:date>2013-02-22T22:01:32+00:00</dc:date>
    <link>http://andrew-hoyer.com/andrewhoyer/experiments/</link>
    <dc:creator>jpfinley</dc:creator><description><![CDATA[Really great process and documentation for interactive code experiments.]]></description>
<dc:subject>inspiration css javascript html5 prototype portfolio</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jpfinley/b:d37a85e962d6/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:inspiration"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:html5"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:prototype"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:portfolio"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.airtightinteractive.com/2013/02/intro-to-pixel-shaders-in-three-js/">
    <title>Intro to Pixel Shaders in Three.js</title>
    <dc:date>2013-02-11T19:31:55+00:00</dc:date>
    <link>http://www.airtightinteractive.com/2013/02/intro-to-pixel-shaders-in-three-js/</link>
    <dc:creator>jpfinley</dc:creator><description><![CDATA[I recently started playing with shaders in three.js and I wanted to share some of what I’ve discovered so far. Shaders are the ‘secret sauce’ of modern graphics programming and understanding them gives you a lot of extra graphical fire-power.]]></description>
<dc:subject>tutorial javascript three.js shaders graphics</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jpfinley/b:51bf224cd7d0/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:tutorial"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:three.js"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:shaders"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:graphics"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://github.com/jsantell/dancer.js">
    <title>jsantell/dancer.js</title>
    <dc:date>2012-06-18T18:37:05+00:00</dc:date>
    <link>https://github.com/jsantell/dancer.js</link>
    <dc:creator>jpfinley</dc:creator><description><![CDATA[high-level audio API, designed to make sweet visualizations]]></description>
<dc:subject>audio javascript music visualization sound</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jpfinley/b:324711b2ce86/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:audio"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:music"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:visualization"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:sound"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://selection.datavisualization.ch/">
    <title>Datavisualization.ch Selected Tools</title>
    <dc:date>2012-05-08T14:38:52+00:00</dc:date>
    <link>http://selection.datavisualization.ch/</link>
    <dc:creator>jpfinley</dc:creator><description><![CDATA[Datavisualization.ch Selected Tools is a collection of tools that we, the people behind Datavisualization.ch, work with on a daily basis and recommend warmly. This is not a list of everything out there, but instead a thoughtfully curated selection of our favourite tools that will make your life easier creating meaningful and beautiful data visualizations.]]></description>
<dc:subject>data javascript programming tools visualization</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jpfinley/b:2458d55c56d0/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:data"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:tools"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:visualization"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.joelambert.co.uk/morf/">
    <title>Morf.js - CSS3 Transitions with custom easing functions</title>
    <dc:date>2012-01-20T19:53:33+00:00</dc:date>
    <link>http://www.joelambert.co.uk/morf/</link>
    <dc:creator>jpfinley</dc:creator><description><![CDATA[Javascript work-around for hardware accelerated CSS3 transitions with custom easing functions.]]></description>
<dc:subject>animation css css3 javascript easing math</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jpfinley/b:681f7d302738/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:animation"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:css3"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:easing"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:math"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://coding.smashingmagazine.com/2011/10/04/quick-look-math-animations-javascript/">
    <title>A Quick Look Into The Math Of Animations With JavaScript - Smashing Coding</title>
    <dc:date>2011-10-05T14:20:56+00:00</dc:date>
    <link>http://coding.smashingmagazine.com/2011/10/04/quick-look-math-animations-javascript/</link>
    <dc:creator>jpfinley</dc:creator><description><![CDATA[There is a lot of math in the visual things we do, even if we don’t realize it. If you want to make something look natural and move naturally, you need to add a bit of physics and rounding to it. Nature doesn’t work in right angles or linear acceleration. This is why zombies in movies are so creepy. This was covered here before in relation to CSS animation, but today let’s go a bit deeper and look at the simple math behind the smooth looks.]]></description>
<dc:subject>animation javascript math js easing</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jpfinley/b:582cc8301839/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:animation"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:math"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:js"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:easing"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://neutroncreations.com/blog/building-a-custom-html5-audio-player-with-jquery/">
    <title>Building a Custom HTML5 Audio Player with jQuery « Neutron Creations</title>
    <dc:date>2011-08-02T03:32:58+00:00</dc:date>
    <link>http://neutroncreations.com/blog/building-a-custom-html5-audio-player-with-jquery/</link>
    <dc:creator>jpfinley</dc:creator><dc:subject>audio html5 javascript jquery tutorial</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jpfinley/b:ed99a562fcf0/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:audio"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:html5"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:jquery"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:tutorial"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.phonegap.com/about">
    <title>About « PhoneGap</title>
    <dc:date>2011-05-19T19:18:04+00:00</dc:date>
    <link>http://www.phonegap.com/about</link>
    <dc:creator>jpfinley</dc:creator><description><![CDATA[PhoneGap is an HTML5 app platform that allows you to author native applications with web technologies and get access to APIs and app stores.]]></description>
<dc:subject>css javascript mobile framework programming web</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jpfinley/b:6dabcceb00a2/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:mobile"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:framework"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:web"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://indiemaps.com/blog/2011/04/dymaxion-projection-in-openlayers/">
    <title>Dymaxion projection in OpenLayers</title>
    <dc:date>2011-04-12T04:10:19+00:00</dc:date>
    <link>http://indiemaps.com/blog/2011/04/dymaxion-projection-in-openlayers/</link>
    <dc:creator>jpfinley</dc:creator><dc:subject>Uncategorized buckminster_fuller dymaxion geometry icosahedron javascript kml openlayers projections protovis</dc:subject>
<dc:identifier>https://pinboard.in/u:jpfinley/b:2a5a027b7b05/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:Uncategorized"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:buckminster_fuller"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:dymaxion"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:geometry"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:icosahedron"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:kml"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:openlayers"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:projections"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:protovis"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://matt.might.net/articles/how-to-native-iphone-ipad-apps-in-javascript/">
    <title>HOWTO: Native iPhone/iPad apps in JavaScript</title>
    <dc:date>2011-02-28T04:17:32+00:00</dc:date>
    <link>http://matt.might.net/articles/how-to-native-iphone-ipad-apps-in-javascript/</link>
    <dc:creator>jpfinley</dc:creator><description><![CDATA[In this article, I'll explain how to:

strip away the browser chrome (the url bar and button bar);
prevent viewport scrolling and scaling;
respond to multi-touch and gesture events;
use webkit CSS to get the iPhone OS look and feel;
cache the app so it runs without internet access;
get a custom icon on the home screen; and
have a splash screen load at the start.]]></description>
<dc:subject>apple html5 ipad iphone javascript</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jpfinley/b:06fb1b557336/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:apple"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:html5"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:ipad"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:iphone"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://initializr.com/">
    <title>Initializr - Start your HTML5 project in 15 seconds!</title>
    <dc:date>2011-02-11T16:07:41+00:00</dc:date>
    <link>http://initializr.com/</link>
    <dc:creator>jpfinley</dc:creator><description><![CDATA[Initializr is a simple tool to help you getting started with an HTML5 project. It is built on HTML5 Boilerplate, a powerful HTML5 template created by Paul Irish and Divya Manian. Initializr will generate for you a clean customizable template based on Boilerplate with just what you need to start.]]></description>
<dc:subject>css html5 javascript template</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:jpfinley/b:5e6f217544ef/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:html5"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:template"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://praegnanz.de/html5video/">
    <title>HTML5 video player</title>
    <dc:date>2010-09-10T17:13:27+00:00</dc:date>
    <link>http://praegnanz.de/html5video/</link>
    <dc:creator>jpfinley</dc:creator><description><![CDATA[A comparison of HTML5 players.
]]></description>
<dc:subject>html5 javascript video</dc:subject>
<dc:identifier>https://pinboard.in/u:jpfinley/b:f7d34d616c8e/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:html5"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:video"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://acko.net/blog/js1k-demo-the-making-of">
    <title>My JS1K Demo - The Making Of | Acko.net - Steven Wittens</title>
    <dc:date>2010-08-24T16:11:58+00:00</dc:date>
    <link>http://acko.net/blog/js1k-demo-the-making-of</link>
    <dc:creator>jpfinley</dc:creator><description><![CDATA[A nice little rundown of a JS1K demo.
]]></description>
<dc:subject>canvas demoscene javascript js animation</dc:subject>
<dc:identifier>https://pinboard.in/u:jpfinley/b:eb0063a5954d/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:canvas"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:demoscene"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:js"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:animation"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.effectgames.com/effect/article.psp.html/joe/Old_School_Color_Cycling_with_HTML5">
    <title>Old School Color Cycling with HTML5 | EffectGames.com</title>
    <dc:date>2010-07-26T15:30:43+00:00</dc:date>
    <link>http://www.effectgames.com/effect/article.psp.html/joe/Old_School_Color_Cycling_with_HTML5</link>
    <dc:creator>jpfinley</dc:creator><description><![CDATA[DAMN. 90s-era color cycling with JavaScript.
]]></description>
<dc:subject>html html5 javascript games colorcycling animation art color lucasarts</dc:subject>
<dc:identifier>https://pinboard.in/u:jpfinley/b:ee01812dc3bb/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:html"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:html5"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:games"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:colorcycling"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:animation"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:art"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:color"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:lucasarts"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.effectgames.com/effect/">
    <title>EffectGames.com</title>
    <dc:date>2010-07-26T15:27:02+00:00</dc:date>
    <link>http://www.effectgames.com/effect/</link>
    <dc:creator>jpfinley</dc:creator><description><![CDATA[Free online tools for building, sharing, and playing your own browser-based games.
]]></description>
<dc:subject>games web html5 javascript</dc:subject>
<dc:identifier>https://pinboard.in/u:jpfinley/b:509e29a483b7/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:games"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:web"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:html5"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://thejit.org/">
    <title>JavaScript InfoVis Toolkit</title>
    <dc:date>2010-07-06T15:30:56+00:00</dc:date>
    <link>http://thejit.org/</link>
    <dc:creator>jpfinley</dc:creator><description><![CDATA[The JavaScript InfoVis Toolkit provides tools for creating Interactive Data Visualizations for the Web.
]]></description>
<dc:subject>javascript data infovis visualization</dc:subject>
<dc:identifier>https://pinboard.in/u:jpfinley/b:f6df90e1573d/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:data"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:infovis"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:visualization"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://indiemaps.com/blog/2010/06/interactive-mapping-with-html5-javascript-and-canvas/">
    <title>Interactive mapping with HTML5, JavaScript, and Canvas</title>
    <dc:date>2010-06-15T06:13:01+00:00</dc:date>
    <link>http://indiemaps.com/blog/2010/06/interactive-mapping-with-html5-javascript-and-canvas/</link>
    <dc:creator>jpfinley</dc:creator><description><![CDATA[Part 1: Loading, projecting, and drawing geodata

I’m getting into more canvas and JavaScript for interactive mapping.  Much of the Flash/ActionScript work I’ve written or come to rely upon is directly portable to JS/canvas.  What’s missing is a sweet RIA framework and IDE for the kind of development Flash and Flex have made possible for years.  

Luckily it’s not hard to roll our own interactive web map using web standard technologies.  In this post I’m just showing off the basics: dynamically loading geodata, projecting it client-side, and rendering to the canvas element.


Hopefully the above map shows up for you.  It’s loaded into this blog post with dynamic KML data, projected using the Proj4js library, and drawn onto HTML’s canvas element using JavaScript.  You can check out the P.O.C. on a separate page.

Loading geographic data
It all starts with data.  Points, polylines, or polygons — typically defined by latitude/longitude coordinates.  Your data may be in a CSV file or in a database.  For a simple interactive web map it’s best if it’s in a common GIS file format, like the Shapefile or KML.

These days, it’s not too hard to load a geographic layer on top of a web map — using Google Maps or OpenLayers, say.  But since we’re looking down the road to interactivity, custom projections, and thematic mapping, it’s best to roll our own.  Luckily, getting the data in is pretty easy.

In ActionScript I would use Edwin van Rijkom’s ESRI SHP parser, my own E00 parser, or some simple custom methods I’ve written to load in KML documents.  Tom Carden of Stamen has done some great work porting the AS3 SHP library to JavaScript, with additional classes and methods to allow basic layering, panning, and zooming.

Carden’s classes are great; for demo purposes, and to keep this as lightweight as possible, I’ve just written a quick JavaScript method to grab what I need from a KML document:

$.get( "data/kml/generalized_african_countries.kml", function( xml ) {
    var features = new Array();
    $( xml ).find( 'Placemark' ).each( function() {
        var rings = new Array();
        $( this ).find( 'outerBoundaryIs' ).each( function() {
            var ring = new Array();
            var coordsText = $( this ).find( 'coordinates' ).text();
            var coordStrings = coordsText.split( ' ' );
            for ( var coordText in coordStrings ) {
                var coordinate = new Array();
                var coordSplit = coordStrings[ coordText ].split( ',' );
                for ( var coordInd in coordSplit ) coordinate.push( Number( coordSplit[ coordInd ] ) );
                ring.push( coordinate );
            }
            rings.push( ring );
        } );
        features.push( rings );
    } );
        
    /* feature coordinates all loaded -- now do something with them */
        
} );
You’ll notice a bit of jQuery in there.  And you’ll also notice that it grabs only coordinate data and works only for polygons.  But it produces an array of feature coordinates, which is an array of ring coordinates, which is an array of lat/long coordinates, which is all we need for the current application.

Projecting geographic data
One of my biggest beefs with the typical online map providers is that they’re all rendered in a Mercator projection.  No problem for most purposes (and great for producing those 90 degree road intersections), but not so great for country-level mapping and bad for many thematic mapping pursuits. That’s one reason we’re rolling our own here.  

PROJ.4 is a generally sweet projections library, originally written in C by Gerald Evenden then of the USGS. It’s been ported to JavaScript as Proj4js.  To use it you just have to define source and a dest objects:

Proj4js.defs[ 'albersEqualArea_Africa' ] = '+title= albers_AFR\
                                            +proj=aea\
                                            +lat_1=20\
                                            +lat_2=-23\
                                            +lat_0=0\
                                            +lon_0=25\
                                            +x_0=0\
                                            +y_0=0\
                                            +ellps=WGS84\
                                            +datum=WGS84\
                                            +units=m\
                                            +no_defs';
var source = new Proj4js.Proj( 'WGS:84' );
var dest = new Proj4js.Proj( 'albersEqualArea_Africa' );
And thereafter you can call

Proj4js.transform( source, dest, pt );
where pt is any object with x and y properties.  So all coordinates gathered from the KML above can be run through the Proj4js.transform() method, in this case applying a custom Albers Equal Area projection (proj=aea) for the African continent.

Drawing geographic data on the canvas element
The results of the above can be easily rendered to HTML’s canvas element using JavaScript.  I’m used to ActionScript’s Graphics class, and its assorted vector drawing methods.  Of course, given the common ECMAScript heritage, the JS methods are nearly identical.  So the projected linework is rendered thusly:

function drawPolygonFeatures( features, minX, maxX, minY, maxY ) 
{
    var c_canvas = document.getElementById( "map" );
    var context = c_canvas.getContext("2d");
    var multiFactor = Math.min( c_canvas.width / ( maxX - minX ), c_canvas.height / ( maxY - minY ) );
    var x = 0; var y = 0;
    for ( var featureNum in features ) {
        for ( var ringNum in features[ featureNum ] ) {
            var ring = features[ featureNum ][ ringNum ];
            context.moveTo( ( ring[ 0 ][ 0 ] - minX ) * multiFactor, c_canvas.height - ( ring[ 0 ][ 1 ] - minY ) * multiFactor );                  
            for ( var coordNum = 1; coordNum < ring.length; coordNum++ ) {
                x = ( ring[ coordNum ][ 0 ] - minX ) * multiFactor;
                y = c_canvas.height - ( ring[ coordNum ][ 1 ] - minY ) * multiFactor;
                context.lineTo( x, y );
            }
        }
    }
    context.shadowOffsetX = context.shadowOffsetY = 3;
    context.shadowBlur    = 4;
    context.shadowColor   = 'rgba(0, 0, 0, 0.5)';
    context.fillStyle = "#0099cc";
    context.fill();
    context.shadowOffsetX = context.shadowOffsetY = context.shadowBlur = 0;
    context.strokeStyle = "#fff";
    context.stroke();
}
That method’s made a bit longer by that bitchin’ drop shadow (sorry Firefox, but you Konqueror folks should be cool).  See above, or the P.O.C. on a separate page.

Up next
So far this has been pretty sweet: we’ve loaded coordinate data dynamically, projected it, and drawn it to the canvas element.  But it hasn’t exactly lived up to the “interactive” part of the title.  Next time I hope to get going on panning and zooming, feature mouse-over, and perhaps even attribute loading and thematic mapping.
]]></description>
<dc:subject>Uncategorized canvas code flash howto html5 javascript jquery kml mapping proj4 projections w3c web_standards</dc:subject>
<dc:identifier>https://pinboard.in/u:jpfinley/b:fedf70f21134/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:Uncategorized"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:canvas"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:code"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:flash"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:howto"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:html5"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:jquery"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:kml"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:mapping"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:proj4"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:projections"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:w3c"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:web_standards"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://code.google.com/p/html5media/">
    <title>html5media - Project Hosting on Google Code</title>
    <dc:date>2010-03-11T19:45:21+00:00</dc:date>
    <link>http://code.google.com/p/html5media/</link>
    <dc:creator>jpfinley</dc:creator><dc:subject>javascript html5 video</dc:subject>
<dc:identifier>https://pinboard.in/u:jpfinley/b:2280b08e0233/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:html5"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:video"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://jilion.com/sublime/video">
    <title>Jilion - SublimeVideo</title>
    <dc:date>2010-02-16T21:43:30+00:00</dc:date>
    <link>http://jilion.com/sublime/video</link>
    <dc:creator>jpfinley</dc:creator><dc:subject>html5 videoplayer video javascript</dc:subject>
<dc:identifier>https://pinboard.in/u:jpfinley/b:ed05e4e62926/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:html5"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:videoplayer"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:video"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://vis.stanford.edu/protovis/">
    <title>Protovis</title>
    <dc:date>2010-01-25T07:07:38+00:00</dc:date>
    <link>http://vis.stanford.edu/protovis/</link>
    <dc:creator>jpfinley</dc:creator><description><![CDATA[JavaScript-based information visualization
]]></description>
<dc:subject>javascript protovis infographics visualization data</dc:subject>
<dc:identifier>https://pinboard.in/u:jpfinley/b:ea4d9d362eb8/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:protovis"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:infographics"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:visualization"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:data"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.zeldman.com/2009/10/15/chicago-deep-dish/">
    <title>Chicago Deep Dish</title>
    <dc:date>2009-10-15T17:04:49+00:00</dc:date>
    <link>http://www.zeldman.com/2009/10/15/chicago-deep-dish/</link>
    <dc:creator>jpfinley</dc:creator><description><![CDATA[

For those who couldn’t be there, and for those who were there and seek to savor the memories, here is An Event Apart Chicago, all wrapped up in a pretty bow:


AEA Chicago – official photo set
By John Morrison, subism studios llc. See also (and contribute to) An Event Apart Chicago 2009 Pool, a user group on Flickr.
A Feed Apart Chicago
Live tweeting from the show, captured forever and still being updated. Includes complete blow-by-blow from Whitney Hess.
Luke W’s Notes on the Show
Smart note-taking by Luke Wroblewski, design lead for Yahoo!, frequent AEA speaker, and author of Web Form Design: Filling in the Blanks (Rosenfeld Media, 2008):

Jeffrey Zeldman: A Site Redesign
Jason Santa Maria: Thinking Small
Kristina Halvorson: Content First
Dan Brown: Concept Models -A Tool for Planning Websites
Whitney Hess: DIY UX -Give Your Users an Upgrade
Andy Clarke: Walls Come Tumbling Down
Eric Meyer: JavaScript Will Save Us All (not captured)
Aaron Gustafson: Using CSS3 Today with eCSStender (not captured)
Simon Willison: Building Things Fast
Luke Wroblewski: Web Form Design in Action (download slides)
Dan Rubin: Designing Virtual Realism
Dan Cederholm: Progressive Enrichment With CSS3 (not captured)
Three years of An Event Apart Presentations



Note: Comment posting here is a bit wonky at the moment. We are investigating the cause. Normal commenting has been restored. Thank you, Noel Jackson.

Short URL: zeldman.com/?p=2695

















]]></description>
<dc:subject>A_List_Apart An_Event_Apart Appearances Authoring Browsers CSS Career Chicago Code Community Compatibility DOM Design Education Fonts Formats HTML HTML5 Happy_Cog™ Information_architecture Jason_Santa_Maria Markup Real_type_on_the_web Scripting Search Standards State_of_the_Web architecture art_direction bugs cities conferences content content_strategy creativity development downloads editorial engagement eric_meyer events flickr glamorous industry javascript photography social_networking speaking spec</dc:subject>
<dc:identifier>https://pinboard.in/u:jpfinley/b:5cb14d276db0/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:A_List_Apart"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:An_Event_Apart"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:Appearances"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:Authoring"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:Browsers"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:CSS"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:Career"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:Chicago"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:Code"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:Community"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:Compatibility"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:DOM"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:Design"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:Education"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:Fonts"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:Formats"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:HTML"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:HTML5"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:Happy_Cog™"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:Information_architecture"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:Jason_Santa_Maria"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:Markup"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:Real_type_on_the_web"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:Scripting"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:Search"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:Standards"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:State_of_the_Web"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:architecture"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:art_direction"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:bugs"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:cities"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:conferences"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:content"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:content_strategy"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:creativity"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:development"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:downloads"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:editorial"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:engagement"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:eric_meyer"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:events"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:flickr"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:glamorous"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:industry"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:photography"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:social_networking"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:speaking"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:spec"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://developer.mozilla.org/en/a_re-introduction_to_javascript">
    <title>A re-introduction to JavaScript - MDC</title>
    <dc:date>2009-05-10T17:59:28+00:00</dc:date>
    <link>https://developer.mozilla.org/en/a_re-introduction_to_javascript</link>
    <dc:creator>jpfinley</dc:creator><dc:subject>programming javascript</dc:subject>
<dc:identifier>https://pinboard.in/u:jpfinley/b:b7c22f1634a8/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://labs.silverorange.com/archive/2007/february/workingwithxml">
    <title>Working with XML Feeds - Last.fm - silverorange labs</title>
    <dc:date>2009-01-11T22:20:09+00:00</dc:date>
    <link>http://labs.silverorange.com/archive/2007/february/workingwithxml</link>
    <dc:creator>jpfinley</dc:creator><dc:subject>last.fm javascript</dc:subject>
<dc:identifier>https://pinboard.in/u:jpfinley/b:5ccda0e68273/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:last.fm"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.84bytes.com/2008/10/22/advanced-data-visualization-tools-built-with-javascript/">
    <title>Advanced Data Visualization Tools using Javascript | 84 Bytes</title>
    <dc:date>2008-10-30T18:04:28+00:00</dc:date>
    <link>http://www.84bytes.com/2008/10/22/advanced-data-visualization-tools-built-with-javascript/</link>
    <dc:creator>jpfinley</dc:creator><dc:subject>visualisation graph datavisualization js javascript</dc:subject>
<dc:identifier>https://pinboard.in/u:jpfinley/b:11969e72bcf0/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:visualisation"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:graph"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:datavisualization"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:js"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://bluff.jcoglan.com/">
    <title>Bluff: Beautiful graphs in JavaScript</title>
    <dc:date>2008-09-16T18:58:23+00:00</dc:date>
    <link>http://bluff.jcoglan.com/</link>
    <dc:creator>jpfinley</dc:creator><dc:subject>ruby library charts chart javascript js bluff charting</dc:subject>
<dc:identifier>https://pinboard.in/u:jpfinley/b:ead2b4123911/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:ruby"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:library"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:charts"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:chart"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:js"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:bluff"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:charting"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://omnipotent.net/jquery.sparkline/">
    <title>jQuery Sparklines</title>
    <dc:date>2008-07-21T18:53:55+00:00</dc:date>
    <link>http://omnipotent.net/jquery.sparkline/</link>
    <dc:creator>jpfinley</dc:creator><dc:subject>sparklines jquery javascript ui</dc:subject>
<dc:identifier>https://pinboard.in/u:jpfinley/b:d267b8e22b48/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:sparklines"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:jquery"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:ui"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.defusion.org.uk/code/javascript-image-cropper-ui-using-prototype-scriptaculous/comment-page-3/">
    <title>DEfusion.org.uk » JavaScript Image Cropper UI, using Prototype &amp; script.aculo.us</title>
    <dc:date>2008-02-15T19:16:08+00:00</dc:date>
    <link>http://www.defusion.org.uk/code/javascript-image-cropper-ui-using-prototype-scriptaculous/comment-page-3/</link>
    <dc:creator>jpfinley</dc:creator><dc:subject>javascript image ajax cropper prototype photo images</dc:subject>
<dc:identifier>https://pinboard.in/u:jpfinley/b:e6c5ac9b5636/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:image"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:ajax"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:cropper"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:prototype"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:photo"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:images"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://prototype-window.xilinus.com/">
    <title>Prototype Window Class : Introduction</title>
    <dc:date>2007-12-22T22:38:54+00:00</dc:date>
    <link>http://prototype-window.xilinus.com/</link>
    <dc:creator>jpfinley</dc:creator><description><![CDATA[This javascript class allows you to add window in a HTML page.
]]></description>
<dc:subject>ajax javascript prototype window</dc:subject>
<dc:identifier>https://pinboard.in/u:jpfinley/b:7448086fd101/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:ajax"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:prototype"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:window"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://javascript.crockford.com/style1.html">
    <title>The Elements of JavaScript Style</title>
    <dc:date>2007-09-13T14:56:17+00:00</dc:date>
    <link>http://javascript.crockford.com/style1.html</link>
    <dc:creator>jpfinley</dc:creator><dc:subject>javascript programming</dc:subject>
<dc:identifier>https://pinboard.in/u:jpfinley/b:273588f2dd89/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:programming"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://code.google.com/p/calendardateselect/">
    <title>calendardateselect - Google Code</title>
    <dc:date>2007-08-07T18:14:00+00:00</dc:date>
    <link>http://code.google.com/p/calendardateselect/</link>
    <dc:creator>jpfinley</dc:creator><description><![CDATA[Calendar Widget
]]></description>
<dc:subject>calendar javascript rubyonrails rails ajax</dc:subject>
<dc:identifier>https://pinboard.in/u:jpfinley/b:335d89f0307a/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:calendar"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:rubyonrails"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:rails"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:ajax"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://robgoodlatte.com/2007/07/31/syncotype-your-baselines/">
    <title>Syncotype Your Baselines — RobGoodlatte.com</title>
    <dc:date>2007-08-06T04:09:43+00:00</dc:date>
    <link>http://robgoodlatte.com/2007/07/31/syncotype-your-baselines/</link>
    <dc:creator>jpfinley</dc:creator><description><![CDATA[I wrote a simple bookmarklet script that overlays a baseline grid atop everything on the page you’re viewing.
]]></description>
<dc:subject>typography design grid css javascript</dc:subject>
<dc:identifier>https://pinboard.in/u:jpfinley/b:4fe8003059e4/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:typography"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:design"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:grid"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://piano.altipla.no/pages/javascript_eye_for_the_ruby_guy">
    <title>Sneaky Abstractions: JavaScript Eye for the Ruby Guy</title>
    <dc:date>2007-08-06T04:07:16+00:00</dc:date>
    <link>http://piano.altipla.no/pages/javascript_eye_for_the_ruby_guy</link>
    <dc:creator>jpfinley</dc:creator><description><![CDATA[This article is an introduction to JavaScript for those who already know Ruby.
]]></description>
<dc:subject>javascript ruby so</dc:subject>
<dc:identifier>https://pinboard.in/u:jpfinley/b:9dca51388806/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:ruby"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:so"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://simile.mit.edu/">
    <title>SIMILE Project</title>
    <dc:date>2007-08-03T04:39:18+00:00</dc:date>
    <link>http://simile.mit.edu/</link>
    <dc:creator>jpfinley</dc:creator><description><![CDATA[SIMILE is focused on developing robust, open source tools based on Semantic Web technologies that improve access, management and reuse among digital assets.
]]></description>
<dc:subject>ajax web javascript information semanticweb semantic tool application software</dc:subject>
<dc:identifier>https://pinboard.in/u:jpfinley/b:816f8078d063/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:ajax"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:web"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:information"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:semanticweb"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:semantic"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:tool"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:application"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:software"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://101out.com/jss.php">
    <title>You think you know (JavaScript) but you have no idea</title>
    <dc:date>2007-08-01T20:01:54+00:00</dc:date>
    <link>http://101out.com/jss.php</link>
    <dc:creator>jpfinley</dc:creator><description><![CDATA[A series of excellent presentations held by Douglas Crockford from Yahoo!
]]></description>
<dc:subject>javascript video software code programming development tutorial</dc:subject>
<dc:identifier>https://pinboard.in/u:jpfinley/b:8d1a4b7d5fa0/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:video"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:software"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:code"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:programming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:development"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:tutorial"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://developer.yahoo.com/yslow/">
    <title>YSlow for Firebug</title>
    <dc:date>2007-07-28T19:09:10+00:00</dc:date>
    <link>http://developer.yahoo.com/yslow/</link>
    <dc:creator>jpfinley</dc:creator><description><![CDATA[YSlow analyzes web pages and tells you why they're slow based on the rules for high performance web sites.
]]></description>
<dc:subject>firefox performance yahoo javascript</dc:subject>
<dc:identifier>https://pinboard.in/u:jpfinley/b:7d07fa58a0bf/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:firefox"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:performance"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:yahoo"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://yuiblog.com/blog/2007/01/24/video-crockford-tjpl/">
    <title>YUI Theater: Douglas Crockford, The JavaScript Programming Language » Yahoo! User Interface Blog</title>
    <dc:date>2007-01-25T01:17:51+00:00</dc:date>
    <link>http://yuiblog.com/blog/2007/01/24/video-crockford-tjpl/</link>
    <dc:creator>jpfinley</dc:creator><description><![CDATA[In this presentation, which is meant to be the beginning of the three-course sequence (followed by “Theory of the DOM” and then “Advanced JavaScript”), Douglas explores not only the language as it is today but also how the language came to be the
]]></description>
<dc:subject>javascript video tutorial yui</dc:subject>
<dc:identifier>https://pinboard.in/u:jpfinley/b:b888779296ae/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:video"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:tutorial"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:yui"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.slash7.com/articles/2006/07/26/javascript-boot-camp-tutorial">
    <title>Javascript Boot Camp Tutorial</title>
    <dc:date>2006-07-28T01:50:03+00:00</dc:date>
    <link>http://www.slash7.com/articles/2006/07/26/javascript-boot-camp-tutorial</link>
    <dc:creator>jpfinley</dc:creator><description><![CDATA["On Monday I gave a 3-hour tutorial here at O'Reilly OSCON 2006 in Portland.  This talk is for everyone who feels their Javascript skills just aren't up to snuff."
]]></description>
<dc:subject>javascript tutorial programming</dc:subject>
<dc:identifier>https://pinboard.in/u:jpfinley/b:6fa94dc41555/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:tutorial"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:programming"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://developer.mozilla.org/en/docs/A_re-introduction_to_JavaScript">
    <title>A re-introduction to JavaScript</title>
    <dc:date>2006-03-21T18:03:40+00:00</dc:date>
    <link>http://developer.mozilla.org/en/docs/A_re-introduction_to_JavaScript</link>
    <dc:creator>jpfinley</dc:creator><dc:subject>javascript programming</dc:subject>
<dc:identifier>https://pinboard.in/u:jpfinley/b:ff425d0d2799/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:programming"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.sitepoint.com/article/bookmarklets">
    <title>Better Living Through Bookmarklets</title>
    <dc:date>2005-12-14T01:25:52+00:00</dc:date>
    <link>http://www.sitepoint.com/article/bookmarklets</link>
    <dc:creator>jpfinley</dc:creator><description><![CDATA[ [JavaScript & DHTML Tutorials]
]]></description>
<dc:subject>bookmarklet javascript webdev web</dc:subject>
<dc:identifier>https://pinboard.in/u:jpfinley/b:34eb5fed4e66/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:bookmarklet"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:webdev"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:web"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://ajax.schwarz-interactive.de/csharpsample/default.aspx">
    <title>Ajax.NET - The free library for .NET (C#)</title>
    <dc:date>2005-09-15T17:23:38+00:00</dc:date>
    <link>http://ajax.schwarz-interactive.de/csharpsample/default.aspx</link>
    <dc:creator>jpfinley</dc:creator><dc:subject>ajax javascript reference</dc:subject>
<dc:identifier>https://pinboard.in/u:jpfinley/b:d69117e8f07a/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:ajax"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:reference"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="http://www.sergiopereira.com/articles/prototype.js.html">
    <title>Using prototype.js v1.3.1</title>
    <dc:date>2005-09-15T17:23:17+00:00</dc:date>
    <link>http://www.sergiopereira.com/articles/prototype.js.html</link>
    <dc:creator>jpfinley</dc:creator><dc:subject>javascript reference ajax</dc:subject>
<dc:identifier>https://pinboard.in/u:jpfinley/b:042b7d40359e/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:javascript"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:reference"/>
	<rdf:li rdf:resource="https://pinboard.in/u:jpfinley/t:ajax"/>
</rdf:Bag></taxo:topics>
</item>
</rdf:RDF>