<?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>Contraterrene - Tony Hursh</title>
	<atom:link href="http://contraterrene.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://contraterrene.com/blog</link>
	<description>Bricolage: we haz it.</description>
	<lastBuildDate>Sun, 15 Apr 2012 17:01:12 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4-alpha-20345</generator>
		<item>
		<title>New ebooks blog</title>
		<link>http://contraterrene.com/blog/blog/2012/04/15/new-ebooks-blog/</link>
		<comments>http://contraterrene.com/blog/blog/2012/04/15/new-ebooks-blog/#comments</comments>
		<pubDate>Sun, 15 Apr 2012 17:01:12 +0000</pubDate>
		<dc:creator>Tony Hursh</dc:creator>
				<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://contraterrene.com/blog/?p=240</guid>
		<description><![CDATA[I&#8217;ve started another blog for ebook stuff. General ed tech hackery and random thoughts will continue to appear here.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve started <a href="http://contraterrene.com/blog/ebooks/">another blog</a> for ebook stuff. General ed tech hackery and random thoughts will continue to appear here.</p>
]]></content:encoded>
			<wfw:commentRss>http://contraterrene.com/blog/blog/2012/04/15/new-ebooks-blog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ever feel like you wandered into a parallel universe?</title>
		<link>http://contraterrene.com/blog/blog/2012/04/04/ever-feel-like-you-wandered-into-a-parallel-universe/</link>
		<comments>http://contraterrene.com/blog/blog/2012/04/04/ever-feel-like-you-wandered-into-a-parallel-universe/#comments</comments>
		<pubDate>Wed, 04 Apr 2012 00:30:03 +0000</pubDate>
		<dc:creator>Tony Hursh</dc:creator>
				<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://contraterrene.com/blog/?p=215</guid>
		<description><![CDATA[This has to be one of the goofiest things I&#8217;ve ever read. &#8220;The ebooker mantra that “Amazon is my friend and will do me no harm” I&#8217;ve never heard an &#8220;ebooker&#8221; (by which he apparently means readers and authors) say &#8230; <a href="http://contraterrene.com/blog/blog/2012/04/04/ever-feel-like-you-wandered-into-a-parallel-universe/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.the-digital-reader.com/2012/02/23/amazon-vs-ipg/">This</a> has to be one of the goofiest things I&#8217;ve ever read.</p>
<p>&#8220;The ebooker mantra that “Amazon is my friend and will do me no harm”</p>
<p>I&#8217;ve never heard an &#8220;ebooker&#8221; (by which he apparently means readers and authors) say that even once, much less often enough to be described as a &#8220;mantra&#8221;.  Certainly I&#8217;ve never confused Amazon with one of my friends; I&#8217;ve always known that Amazon is a profit-making business whose goals may or may not be congruent with my own at any specific moment. </p>
<p>&#8220;thinking that when that happens authors will flourish by directly dealing with megacorporations like Amazon&#8221;</p>
<p>Yep,  you&#8217;re clearly much better off directly dealing with small, caring, mom-and-pop operations like <a href="http://en.wikipedia.org/wiki/Lagardere">Lagardère</a> (owns Hachette), <a href="http://en.wikipedia.org/wiki/News_Corporation">News Corp</a> (owns HarperCollins), <a href="http://en.wikipedia.org/wiki/Georg_von_Holtzbrinck_Publishing_Group">Holtzbrinck</a> (owns Macmillan), <a href="http://en.wikipedia.org/wiki/Pearson_PLC">Pearson</a> (owns Penguin), <a href="http://en.wikipedia.org/wiki/Bertelsmann">Bertelsmann</a> (owns Random House), and <a href="http://en.wikipedia.org/wiki/CBS_Corporation">CBS</a> (owns Simon &#038; Schuster). </p>
<p>Because they are your &#8220;friends&#8221;. </p>
<p>Right.</p>
<p>&#8220;how long will it be before Amazon starts squeezing authors dry&#8221;</p>
<p>Yeah, maybe they&#8217;ll reduce royalties from 70% to 15% and base their relationship with authors on a business model that could be compared, unfavorably, with a payday loan operation.  Oh, wait: his friends are already doing that, aren&#8217;t they?</p>
<p>This guy needs an editor. <img src='http://contraterrene.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>H/T: <a href="http://madgeniusclub.com/2012/04/02/you-so-_can_-do-it/">Mad Genius Club</a></p>
]]></content:encoded>
			<wfw:commentRss>http://contraterrene.com/blog/blog/2012/04/04/ever-feel-like-you-wandered-into-a-parallel-universe/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Bulk Downloading Google Web Fonts for local use</title>
		<link>http://contraterrene.com/blog/blog/2012/02/20/downloading-google-web-fonts-for-local-use/</link>
		<comments>http://contraterrene.com/blog/blog/2012/02/20/downloading-google-web-fonts-for-local-use/#comments</comments>
		<pubDate>Mon, 20 Feb 2012 23:37:26 +0000</pubDate>
		<dc:creator>Tony Hursh</dc:creator>
				<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://contraterrene.com/blog/?p=202</guid>
		<description><![CDATA[Google Web Fonts is a very large collection of freely-distributable fonts (some great, some not so great ). They provide a variety of methods for using these in your web pages, which are all fine if you need just a &#8230; <a href="http://contraterrene.com/blog/blog/2012/02/20/downloading-google-web-fonts-for-local-use/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Google Web Fonts is a <a href="http://www.google.com/webfonts">very large collection of freely-distributable fonts</a> (some great, some not so great <img src='http://contraterrene.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> ). They provide a variety of methods for using these in your web pages, which are all fine if you need just a couple of them. Unfortunately a <a href="http://mobimorphic.com">recent project</a> requires several hundred of them. Loading them over the web at runtime is a non-starter &#8212; it&#8217;s just too slow (I need to load every font so I can display the full collection  as type samples). You <strong>could</strong> download the fonts one at a time, but I&#8217;m way too lazy for that. Ruby to the rescue!</p>
<p>Update: I see that WordPress (or at least this theme) eats indentation even if you wrap the code in &lt;code&gt;&lt;/code&gt; tags. Fail. Oh, well. If you have a use for this, I&#8217;d bet money that your editor will handle reindenting the code for you. Heh.</p>
<p><code><br />
# Font downloader for Google Web Fonts.<br />
# Puts the fonts in a file called "Fontname.ttf" (spaces in the font name are removed)<br />
# and outputs the CSS code to load the fonts.<br />
# Run with something like ruby snagfonts.rb > fontloader.css to get the CSS font directives in a nice file.<br />
# Copyright 2012 by Contraterrene eLearning Group, LLC<br />
# MIT License or Ruby License, your choice.</p>
<p>require 'rubygems'</p>
<p>require 'open-uri'<br />
fonts = [<br />
  		"Aclonica",<br />
    	"Annie+Use+Your+Telescope",<br />
    	"Anonymous+Pro",<br />
    	"Allerta+Stencil",<br />
    	"Allerta",<br />
    	"Amaranth"</p>
<p># Add all you want <img src='http://contraterrene.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  Just be sure to replace any spaces in the font name with +</p>
<p>]</p>
<p>baseURL = 'http://fonts.googleapis.com/css?family='</p>
<p>fontcss = "";<br />
fonts.each do |font|<br />
  fontURL = baseURL + font<br />
  open(fontURL) {|f|<br />
    # This file contains the Google-based CSS rules for the font.<br />
    fontCSS = f.read()<br />
    # Extract the URL for the actual font data.<br />
    urlstr = fontCSS.match(/url\(\'([^\']+)/)<br />
    url = urlstr[1]<br />
    # Read the TrueType font data<br />
    gttf = open(url)<br />
    ttffontCSS = gttf.read()<br />
    # I'm putting my fonts in a fonts/ subdirectory, which needs to exist ahead of time.<br />
    fname = "fonts/" + font + ".ttf"<br />
    # Get rid of any + characters in the font name - some OSes don't like that.<br />
    fname = fname.gsub(/\+/,'');<br />
    fontFile = File.new(fname, "w")<br />
    fontFile.syswrite(ttffontCSS)<br />
    fontFile.close<br />
    gttf.close<br />
    # Tweak the CSS font directive so it uses our local copy rather than Google's copy<br />
    fontCSS = fontCSS.sub(url,fname)<br />
    fontcss = fontcss + fontCSS;<br />
  }</p>
<p>end<br />
puts fontcss</p>
<p></code></p>
<p>This little script will download all the fonts you&#8217;ve listed in the array, and output the correct CSS to load them. As written, the fonts will be saved in the fonts/ directory (which you must create ahead of time), while the CSS goes to standard output (which you can redirect to a file). It should be simple enough to mod if you want something else.</p>
<p>Sample CSS output:<br />
<code><br />
@font-face {<br />
  font-family: 'Aclonica';<br />
  font-style: normal;<br />
  font-weight: normal;<br />
  src: local('Aclonica'), local('Aclonica-Regular'), url('fonts/Aclonica.ttf') format('truetype');<br />
}<br />
@font-face {<br />
  font-family: 'Annie Use Your Telescope';<br />
  font-style: normal;<br />
  font-weight: normal;<br />
  src: local('Annie Use Your Telescope'), local('AnnieUseYourTelescope'), url('fonts/AnnieUseYourTelescope.ttf') format('truetype');<br />
}<br />
@font-face {<br />
  font-family: 'Anonymous Pro';<br />
  font-style: normal;<br />
  font-weight: normal;<br />
  src: local('Anonymous Pro'), local('AnonymousPro'), url('fonts/AnonymousPro.ttf') format('truetype');<br />
}<br />
@font-face {<br />
  font-family: 'Allerta Stencil';<br />
  font-style: normal;<br />
  font-weight: normal;<br />
  src: local('Allerta Stencil Regular'), local('AllertaStencil-Regular'), url('fonts/AllertaStencil.ttf') format('truetype');<br />
}<br />
@font-face {<br />
  font-family: 'Allerta';<br />
  font-style: normal;<br />
  font-weight: normal;<br />
  src: local('Allerta Regular'), local('Allerta-Regular'), url('fonts/Allerta.ttf') format('truetype');<br />
}<br />
@font-face {<br />
  font-family: 'Amaranth';<br />
  font-style: normal;<br />
  font-weight: normal;<br />
  src: local('Amaranth'), url('fonts/Amaranth.ttf') format('truetype');<br />
}</p>
<p></code></p>
]]></content:encoded>
			<wfw:commentRss>http://contraterrene.com/blog/blog/2012/02/20/downloading-google-web-fonts-for-local-use/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pure HTML5/JavaScript color picker for Webkit</title>
		<link>http://contraterrene.com/blog/blog/2012/02/14/pure-html5javascript-color-picker-for-webkit/</link>
		<comments>http://contraterrene.com/blog/blog/2012/02/14/pure-html5javascript-color-picker-for-webkit/#comments</comments>
		<pubDate>Tue, 14 Feb 2012 05:08:58 +0000</pubDate>
		<dc:creator>Tony Hursh</dc:creator>
				<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://contraterrene.com/blog/?p=199</guid>
		<description><![CDATA[Touch/mobile-friendly. No Flash. No external images. No reliance on external frameworks (such as jQuery). No CSS (style to suit yourself). Self-contained JavaScript object (should work without interfering with any framework you&#8217;re using). Enjoy. &#160;]]></description>
			<content:encoded><![CDATA[<p>Touch/mobile-friendly. No Flash. No external images. No reliance on external frameworks (such as jQuery). No CSS (style to suit yourself). Self-contained JavaScript object (should work without interfering with any framework you&#8217;re using).</p>
<p><a href="https://github.com/tonyhursh/SimplePicker">Enjoy</a>.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://contraterrene.com/blog/blog/2012/02/14/pure-html5javascript-color-picker-for-webkit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dynamic Generation and Injection of CSS Using Data URIs</title>
		<link>http://contraterrene.com/blog/blog/2012/02/11/dynamic-generation-and-injection-of-css-using-data-uris/</link>
		<comments>http://contraterrene.com/blog/blog/2012/02/11/dynamic-generation-and-injection-of-css-using-data-uris/#comments</comments>
		<pubDate>Sat, 11 Feb 2012 16:11:13 +0000</pubDate>
		<dc:creator>Tony Hursh</dc:creator>
				<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://contraterrene.com/blog/?p=195</guid>
		<description><![CDATA[This snippet illustrates how to generate and parse CSS dynamically. &#160;]]></description>
			<content:encoded><![CDATA[<p><a href="http://contraterrene.com/snippets/dynamicstyle.html">This snippet</a> illustrates how to generate and parse CSS dynamically.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://contraterrene.com/blog/blog/2012/02/11/dynamic-generation-and-injection-of-css-using-data-uris/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What I Did on My Winter Vacation</title>
		<link>http://contraterrene.com/blog/blog/2011/11/27/what-i-did-on-my-winter-vacation/</link>
		<comments>http://contraterrene.com/blog/blog/2011/11/27/what-i-did-on-my-winter-vacation/#comments</comments>
		<pubDate>Sun, 27 Nov 2011 18:48:32 +0000</pubDate>
		<dc:creator>Tony Hursh</dc:creator>
				<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://contraterrene.com/blog/?p=187</guid>
		<description><![CDATA[You can now build your own installable web apps for iPhone, iPad, and Android  at: https://mobimorphic.com/ (update: the web apps will also work in the Kindle Fire browser, but as yet I haven&#8217;t found a way to install them to the home &#8230; <a href="http://contraterrene.com/blog/blog/2011/11/27/what-i-did-on-my-winter-vacation/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>You can now build your own installable web apps for iPhone, iPad, and Android  at: <a title="Mobimorphic" href="https://mobimorphic.com">https://mobimorphic.com/</a> (<strong>update:</strong> the web apps will also work in the Kindle Fire browser, but as yet I haven&#8217;t found a way to install them to the home screen).</p>
<p>Note that you DON&#8217;T need to be a programmer to build one of these &#8212; that was the design goal. If you can use Google Reader or set up a Google Calendar or Flickr album you can use this. Conversely, if you are a programmer you can use the External Code block and go as far as your imagination and skills can take you.</p>
<p>I&#8217;ve been working on this stuff for about a month, and I think it&#8217;s time to let other people start beating on it. It definitely needs more extensive testing on Android &#8212; works fine on my cheapie Android phone and on my Kindle Fire, but there are about a billion different configurations of Android out there. Let me know if something breaks. Note that there are two links on that page &#8212; the first goes to a sample app that needs to run on a mobile device to be fully functional. The second is to the self-service app builder, which needs to run on a desktop or notebook using Google Chrome or Safari (no Firefox or IE support, sorry).</p>
<p>Supported resource types at present: Web feed (RSS and Atom), Twitter feed, Flickr photo sets, podcasts (both audio and video), YouTube channels, Google Maps, user-entered HTML (includes a WYSIWYG editor), external code, external site, phone dialer, SMS text message, iTunes store, email, Google Calendar, and Facebook.</p>
<p>Next steps: performance optimization, more themes, and better docs. I also have some ideas for cool new blocks, and want to make Facebook an internal resource (like Twitter) rather than an external link.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://contraterrene.com/blog/blog/2011/11/27/what-i-did-on-my-winter-vacation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What is the modern equivalent of BASIC?</title>
		<link>http://contraterrene.com/blog/blog/2011/07/23/what-is-the-modern-equivalent-of-basic/</link>
		<comments>http://contraterrene.com/blog/blog/2011/07/23/what-is-the-modern-equivalent-of-basic/#comments</comments>
		<pubDate>Sat, 23 Jul 2011 16:20:28 +0000</pubDate>
		<dc:creator>Tony Hursh</dc:creator>
				<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://contraterrene.com/blog/?p=136</guid>
		<description><![CDATA[In this post, Mark Guzdial brings up an issue that&#8217;s generated a fair amount of interest in recent years.  The old-school personal computers &#8212; Apple II, Atari, Commodore &#8212; all came with a free, and built-in, BASIC interpreter. BASIC even &#8230; <a href="http://contraterrene.com/blog/blog/2011/07/23/what-is-the-modern-equivalent-of-basic/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>In <a href="http://computinged.wordpress.com/2011/07/18/how-are-students-learning-programming-in-a-post-basic-world/">this post</a>, Mark Guzdial brings up an issue that&#8217;s generated a fair amount of interest in recent years.  The old-school personal computers &#8212; Apple II, Atari, Commodore &#8212; all came with a free, and built-in, BASIC interpreter. BASIC even came with PC-DOS/MS-DOS.  This onboard BASIC was the first exposure to programming for many (I&#8217;m tempted to say most) of today&#8217;s programmers.</p>
<p>Now, no one would argue that BASIC is a great language. It was, however, free and ubiquitous &#8211; there were problems if you wanted to share your Atari BASIC program with someone who had an Apple II, but often you could make the code work with a little bit of ingenuity.</p>
<p>Where do modern kids get that experience?  Are we creating a generation of appliance users who (if they&#8217;re exposed to programming at all) get their first experience in a behemoth like Java?</p>
<p>So there&#8217;s no confusion here: I like Java (well, I like the JVM anyway <img src='http://contraterrene.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> ), and have written more than my share of it. However, it doesn&#8217;t exactly lend itself to casual tinkering.  Compare:</p>
<pre>10 PRINT "Hello, world!"</pre>
<p>1 line, 11 characters of overhead, what the code does is obvious at a glance, even to someone who doesn&#8217;t know programming (they might wonder about the 10, but that&#8217;s about it).</p>
<p>to:</p>
<pre>public class HelloWorld {

     public static void main(String[] args) {
          System.out.println("Hello, World!");
     }

}</pre>
<p>6 lines, 112 characters of overhead &#8212; plus you have to compile it, maybe set up your CLASSPATH, and perhaps perform other chores that stand in the way of instant gratification. Also, the code is largely opaque to a programming-naive reader. &#8220;public class&#8221;? &#8220;static&#8221;? &#8220;void&#8221;? Say what?</p>
<p>There have been many attempts to fix this. <a href="http://scratch.mit.edu/">Scratch from MIT</a>, <a href="http://www.alice.org/">Alice from Carnegie Mellon</a>, indie projects such as <a href="http://hackety-hack.com/">Hackety Hack</a> from <a href="http://en.wikipedia.org/wiki/Why_the_lucky_stiff">why the lucky stiff</a> (please come back, _why! We miss you!), special purpose scripting languages such as <a href="http://wiki.secondlife.com/wiki/LSL_Portal">LSL</a>, and several others.</p>
<p>With the exception of LSL, most of them are excellent (Cory Ondrejka, author of LSL:  &#8220;<em>[N]ote to self, next time spend more than one night designing language.</em>&#8221; <img src='http://contraterrene.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> ).  I&#8217;ve had good luck <a href="http://contraterrene.com/course_outlines/VirtualWorldsOutline.html">teaching this type of language to an audience of K-12 teachers</a>, most of whom had no background in programming.</p>
<p>Where they come up short is ubiquity. They&#8217;re almost all free, which is great, but they have to be installed, which is not so great. Most school computers are locked down extremely tightly (<a href="http://www.wwwords.co.uk/rss/abstract.asp?j=elea&amp;aid=4458">an interesting topic its own right</a>). In fact, one of my students was reprimanded for installing Scratch on her classroom machines.</p>
<p>Even if you are permitted to install the software, the installation step still creates a barrier for sharing your creation with your friends, since they in turn have to install something before they can run your code.</p>
<p>MIT has worked around this to some degree with their Java (and now Flash) web-based Scratch players, but Java and Flash present their own issues (school firewalls or other security software may block Java and Flash, Windows machines, and starting with OS X Lion, Macs, no longer come with Java installed, Flash doesn&#8217;t work at all on iPhone/iPad, and doesn&#8217;t work very well on Android).</p>
<p>So&#8230; what to do?</p>
<p>I would argue that JavaScript is the modern equivalent of BASIC; it&#8217;s free, ubiquitous, and has the requisite nasty, nasty syntax. <img src='http://contraterrene.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />   Any kid with a web browser and a text editor can write and run JavaScript <strong>without installing anything</strong>. HTML 5 opens up the possibility for impressive visual and sound effects that can be shared with anyone else on the planet who has a modern browser.</p>
<p>Even with the ugly syntax, JavaScript is a much better language than old-school BASIC. Closures, anonymous functions, objects &#8212; there are a lot of Big Ideas in there.</p>
<p>Besides the syntax, the other drawbacks of JavaScript include performance and the sandbox model (sandboxing is essential when you&#8217;re running arbitrary code from random web sites, but extremely inconvenient when you&#8217;re running your own trusted code).</p>
<p>There are workarounds. There are new packages that let you use better syntax (e.g., <a href="http://jashkenas.github.com/coffee-script/">CoffeeScript</a>, which gives you Ruby-like syntax, the experimental <a href="https://github.com/clojure/clojurescript">ClojureScript</a>, which gives you Lisp, and many others).</p>
<p>With respect to speed, Google has invested major effort in their <a href="http://code.google.com/p/v8/">V8 JavaScript compiler</a>, which gives you near-native code performance. It&#8217;s much, much faster than classic JavaScript.</p>
<p>There are also several options for those who chafe at the sandbox.</p>
<p><a href="http://nodejs.org/">Node.js</a> lets you access the file system, write servers, and similar stuff.</p>
<p>Packages such as <a href="http://www.phonegap.com/">PhoneGap</a> and <a href="http://www.appcelerator.com/">Appcelerator Titanium</a> let you write JavaScript applications that run on phones and other mobile platforms. In both cases, the code has direct access to phone features such as the camera, microphone, contact list, geolocation, accelerometers, and so on. PhoneGap works by calling native routines from interpreted JavaScript, while  Titanium precompiles the JavaScript to native code.</p>
<p>While I have no data, I would wager that the ability to do cool things on their phones, and share those cool things with their friends*, would be an extremely powerful motivator for today&#8217;s students.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>* The biggest barriers to doing phone stuff are bureaucratic rather than technical &#8212; there are some issues involved with distributing your creation.  For iOS,  the best option right now (on a school level)  appears to be <a href="http://developer.apple.com/library/ios/#featuredarticles/FA_Wireless_Enterprise_App_Distribution/Introduction/Introduction.html">Apple&#8217;s Enterprise Distribution</a> mechanism, which isn&#8217;t particularly transparent, cheap, or low-friction. For individuals (or if you want wider distribution through the App Store) you&#8217;ll need to buy a seat in the standard iOS developer program. I&#8217;d really like to see Apple set up some kind of low-cost student program &#8212; perhaps it could include the standard developer package&#8217;s ability to distribute to a limited number of devices on an ad hoc basis,  but not include the commercial features (e.g., distribution through the App Store). Android is much more lenient in this respect.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://contraterrene.com/blog/blog/2011/07/23/what-is-the-modern-equivalent-of-basic/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Project-Based Learning: Ur Doin It Wrong</title>
		<link>http://contraterrene.com/blog/blog/2011/03/29/project-based-learning-ur-doing-it-wrong/</link>
		<comments>http://contraterrene.com/blog/blog/2011/03/29/project-based-learning-ur-doing-it-wrong/#comments</comments>
		<pubDate>Tue, 29 Mar 2011 16:22:34 +0000</pubDate>
		<dc:creator>Tony Hursh</dc:creator>
				<category><![CDATA[Policy]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://contraterrene.com/blog/?p=130</guid>
		<description><![CDATA[It&#8217;s always been mystifying to me why some equate a constructivist/constructionist/project-based/inquiry-based approach to education with &#8220;teacher doesn&#8217;t have to do any work&#8221; (actually, I&#8217;m pretty sure why some people are fond of that idea, but we won&#8217;t go there).  Some &#8230; <a href="http://contraterrene.com/blog/blog/2011/03/29/project-based-learning-ur-doing-it-wrong/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://contraterrene.com/blog/wp-content/uploads/2011/03/pblwrong.jpg" alt="Project-Based Learning: Ur Doin It Wrong" /></p>
<p>It&#8217;s always been mystifying to me why some equate a constructivist/constructionist/project-based/inquiry-based approach to education with &#8220;teacher doesn&#8217;t have to do any work&#8221; (actually, I&#8217;m pretty sure why some people are fond of that idea, but we won&#8217;t go there).  Some years ago, Kirschner, Sweller, and Clark stirred the pot with their article <a href="http://www.cogtech.usc.edu/publications/kirschner_Sweller_Clark.pdf">Why Minimal Guidance During Instruction Does Not Work: An Analysis of the Failure of Constructivist, Discovery, Problem-Based, Experiential, and Inquiry-Based Teaching</a>.</p>
<p>Those of us who have advocated (and practiced) this style of teaching with success immediately recognized some of the serious problems with this paper.  It&#8217;s pretty clear  that doing truly original work without any scaffolding from a knowledgeable other is hard. Really hard. They give you PhDs for that. <img src='http://contraterrene.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  In the entire history of the human race, only two people (that we know of) have invented calculus. Odds that a student is going to discover calculus by him- or herself? Not very good.</p>
<p>That&#8217;s not to say that students can&#8217;t learn from unstructured exploration &#8212; I&#8217;m a big advocate of tinkering (<em>bricolage</em>, if you want it to sound impressive), and have learned many useful things from it.  But, you know, students don&#8217;t really need to pay you tuition to do that. If they aren&#8217;t getting any  (or &#8220;minimal&#8221;) guidance from the instructor, why are they even in school? Why is there even a &#8220;teacher&#8221;?</p>
<p>(there are some who would argue that school as we know it is a bad idea altogether, but that&#8217;s a separate discussion).</p>
<p>The best response to Kirschner, et al, that I&#8217;ve seen is <a href="http://www.cogtech.usc.edu/publications/hmelo_ep07.pdf">Hmelo-Silver, Duncan, and Chinn&#8217;s Scaffolding and Achievement in Problem-Based and Inquiry Learning: A Response to Kirschner, Sweller, and Clark (2006)</a>.  Their discussion matches closely with my own experience. Correct application of these methods doesn&#8217;t mean that the teacher provides no guidance, as Kirschner, et al would have it.  On the contrary, I would argue that doing a good job in this respect requires <strong>more</strong> work, not less. It&#8217;s really much easier for the teacher to make every student perform  exactly the same task, which can be graded with a check-off rubric. Giving  students the freedom to pursue their own interests means (or should mean) that the instructor gives each and every student individual attention and careful guidance to prevent them from wandering off into the weeds.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://contraterrene.com/blog/blog/2011/03/29/project-based-learning-ur-doing-it-wrong/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Everything about nothing</title>
		<link>http://contraterrene.com/blog/blog/2011/02/26/everything-about-nothing/</link>
		<comments>http://contraterrene.com/blog/blog/2011/02/26/everything-about-nothing/#comments</comments>
		<pubDate>Sat, 26 Feb 2011 19:39:20 +0000</pubDate>
		<dc:creator>Tony Hursh</dc:creator>
				<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://contraterrene.com/blog/?p=122</guid>
		<description><![CDATA[There&#8217;s a long-running joke that the process of getting a PhD requires that you know more and more about less and less, until eventually you know everything about nothing. When I was in CS grad school, some of my fellow &#8230; <a href="http://contraterrene.com/blog/blog/2011/02/26/everything-about-nothing/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s a long-running joke that the process of getting a PhD requires that you know more and more about less and less, until eventually you know everything about nothing.</p>
<p>When I was in CS grad school, some of my  <del datetime="2011-02-26T19:16:10+00:00">fellow underpaid teaching slaves</del> colleagues and I spent some time thinking about all the different types of nothing there were in the world. We wound up with a long list on the whiteboard, among them:</p>
<p>Zero (integer)<br />
Zero (floating point/real)<br />
Zero vector<br />
Zero matrix  (we decided somewhat arbitrarily that matrices and vectors were  different for the purpose of this discussion)<br />
Null pointer (points to nothing)<br />
Void pointer (may point to something, but you can&#8217;t tell without further information)<br />
Empty string<br />
Identity function<br />
Fixed-point combinators (considered different from identity functions for similar reasons to vectors and matrices)<br />
Nil (in the Lisp sense)<br />
Blank storage media (have capacity but no content)<br />
Vacuum (has extent but no content, esoteric physics theories about vacuum energy aside)<br />
Empty database tables (have structure but no content&#8230; arguably similar to null vectors/matrices)<br />
Code segment that has no effect (similar to identity functions, but not quite the same)</p>
<p>I&#8217;m sure there are others. Feel free to add suggestions in the comments. <img src='http://contraterrene.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Update: Chip suggests the addition of Seinfeld plots. </p>
]]></content:encoded>
			<wfw:commentRss>http://contraterrene.com/blog/blog/2011/02/26/everything-about-nothing/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>This is progress?</title>
		<link>http://contraterrene.com/blog/blog/2011/02/26/this-is-progress/</link>
		<comments>http://contraterrene.com/blog/blog/2011/02/26/this-is-progress/#comments</comments>
		<pubDate>Sat, 26 Feb 2011 18:45:56 +0000</pubDate>
		<dc:creator>Tony Hursh</dc:creator>
				<category><![CDATA[Policy]]></category>
		<category><![CDATA[deschooling]]></category>
		<category><![CDATA[education]]></category>
		<category><![CDATA[rote]]></category>

		<guid isPermaLink="false">http://contraterrene.com/blog/?p=85</guid>
		<description><![CDATA[The more things change, the more they stay the same.]]></description>
			<content:encoded><![CDATA[<object width="506" height="304"><param name="movie" value="http://www.youtube.com/v/2s6WFicTejU"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/2s6WFicTejU" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="506" height="304"></embed></object><p>The more things change, the more they stay the same.</p>
]]></content:encoded>
			<wfw:commentRss>http://contraterrene.com/blog/blog/2011/02/26/this-is-progress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

