<?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>Beutelevision</title>
	<atom:link href="http://beutelevision.com/blog2/feed/" rel="self" type="application/rss+xml" />
	<link>http://beutelevision.com/blog2</link>
	<description>by Thomas Beutel</description>
	<lastBuildDate>Fri, 14 Oct 2011 19:13:15 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='beutelevision.com' port='80' path='/blog2/?rsscloud=notify' registerProcedure='' protocol='http-post' />
		<item>
		<title>Making Aquamacs kill and yank work with the clipboard</title>
		<link>http://beutelevision.com/blog2/2011/10/14/making-aquamacs-kill-and-yank-work-with-the-clipboard/</link>
		<comments>http://beutelevision.com/blog2/2011/10/14/making-aquamacs-kill-and-yank-work-with-the-clipboard/#comments</comments>
		<pubDate>Fri, 14 Oct 2011 19:08:12 +0000</pubDate>
		<dc:creator>Thomas Beutel</dc:creator>
				<category><![CDATA[Apple Computer]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[emacs]]></category>

		<guid isPermaLink="false">http://beutelevision.com/blog2/2011/10/14/making-aquamacs-kill-and-yank-work-with-the-clipboard/</guid>
		<description><![CDATA[My favorite editor on the Mac is Aquamacs (me and Emacs go waaay back) and something that has long been a productivity killer for me was the different actions of C-y and CMD-V.
This is due to there being two clipboards, the one belonging to the Mac and the one in Emacs (the kill ring).
Often I [...]]]></description>
			<content:encoded><![CDATA[<p>My favorite editor on the Mac is Aquamacs (me and Emacs go waaay back) and something that has long been a productivity killer for me was the different actions of C-y and CMD-V.</p>
<p>This is due to there being two clipboards, the one belonging to the Mac and the one in Emacs (the kill ring).</p>
<p>Often I would use one or the other and get the wrong pasted contents. Then I&#8217;d have to stop, back up, and find the original contents and do it again. Worse, sometimes the contents would be cut or killed, meaning that I would have to undo the cut/kill, redo the cut/kill, then yank/paste.</p>
<p>Well, I finally had enough and looked for ways to harmonize the two clipboards via the .emacs file. Here is what I came up with:</p>
<p><code><br />
(defun swap-and-kill ()<br />
"Swap point and mark, then clipboard kill region"<br />
(interactive)<br />
(exchange-point-and-mark)<br />
(clipboard-kill-region (region-beginning) (region-end))<br />
(deactivate-mark)<br />
)<br />
(global-set-key "\C-w" 'swap-and-kill)<br />
(global-set-key "\M-w" 'clipboard-kill-ring-save)<br />
(global-set-key "\C-y" 'clipboard-yank)<br />
</code></p>
<p>Now everything goes to the Mac clipboard, even if I use my beloved mark and point with C-w.</p>
<p>I found most of the clues for this solution here:</p>
<p><a href="http://www.emacswiki.org/emacs/CopyAndPaste">http://www.emacswiki.org/emacs/CopyAndPaste</a></p>
]]></content:encoded>
			<wfw:commentRss>http://beutelevision.com/blog2/2011/10/14/making-aquamacs-kill-and-yank-work-with-the-clipboard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Get the first N words with Javascript</title>
		<link>http://beutelevision.com/blog2/2011/06/17/get-the-first-n-words-with-javascript/</link>
		<comments>http://beutelevision.com/blog2/2011/06/17/get-the-first-n-words-with-javascript/#comments</comments>
		<pubDate>Fri, 17 Jun 2011 17:08:25 +0000</pubDate>
		<dc:creator>Thomas Beutel</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://beutelevision.com/blog2/?p=236</guid>
		<description><![CDATA[Here&#8217;s how I get the first 20 words using a regular expression and the Javascript replace function. I place an ellipsis at the end to indicate that the sentence was shortened:

var str1 = "Here is a sentence that just seems to go on and on. Here is a sentence that just seems to go on [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s how I get the first 20 words using a regular expression and the Javascript replace function. I place an ellipsis at the end to indicate that the sentence was shortened:</p>
<p><code><br />
var str1 = "Here is a sentence that just seems to go on and on. Here is a sentence that just seems to go on and on. Here is a sentence that just seems to go on and on.";<br />
var str2 = str1.replace(/(([^\s]+\s\s*){20})(.*)/,"$1…");<br />
document.write(str2);<br />
// result:<br />
// Here is a sentence that just seems to go on and on. Here is a sentence that just seems to …<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://beutelevision.com/blog2/2011/06/17/get-the-first-n-words-with-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Find a Javascript parent node that matches a certain string</title>
		<link>http://beutelevision.com/blog2/2011/05/20/find-a-javascript-parent-node-that-matches-a-certain-string/</link>
		<comments>http://beutelevision.com/blog2/2011/05/20/find-a-javascript-parent-node-that-matches-a-certain-string/#comments</comments>
		<pubDate>Fri, 20 May 2011 23:12:35 +0000</pubDate>
		<dc:creator>Thomas Beutel</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://beutelevision.com/blog2/?p=230</guid>
		<description><![CDATA[Here&#8217;s a small bit of javascript that I use in my Sencha Touch projects to find a parent with an id that matches a string.

function findParentNodeRegex(regex, childObj) {
  var testObj = childObj;
  var count = 1;
  while(!testObj.id.match(regex)) {
    //console.log('My name is ' + testObj.id + '. Let\'s try moving [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a small bit of javascript that I use in my Sencha Touch projects to find a parent with an id that matches a string.</p>
<p><code><br />
function findParentNodeRegex(regex, childObj) {<br />
  var testObj = childObj;<br />
  var count = 1;<br />
  while(!testObj.id.match(regex)) {<br />
    //console.log('My name is ' + testObj.id + '. Let\'s try moving up one level to see what we get.');<br />
    testObj = testObj.parentNode;<br />
    count++;<br />
  }<br />
  // now you have the object you are looking for - do something with it<br />
  //console.log('Finally found ' + testObj.id + ' after going up ' + count + ' level(s) through the DOM tree');<br />
  return testObj;<br />
}<br />
</code></p>
<p>Suppose that you tapped an paragraph element that was nested like so and &#8220;target&#8221; points to the paragraph:</p>
<p><code>&lt;div id="news1234"&gt;&lt;div class="content"&gt;&lt;p&gt;Tap me!&lt;p&gt;&lt;/div&gt;&lt;/div&gt;</code></p>
<p>You can find the parent that matches the string &#8220;news&#8221; like so:</p>
<p><code>var newsParent = findParentNodeRegex(/news/,target);<br />
console.log("Id is "+newsParent.id); // prints "Id is news1234"</code></p>
<p>I adapted the code from <a href="http://www.randomsnippets.com/2008/06/26/how-to-find-and-access-parent-nodes-via-javascript/">here</a></p>
]]></content:encoded>
			<wfw:commentRss>http://beutelevision.com/blog2/2011/05/20/find-a-javascript-parent-node-that-matches-a-certain-string/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Click poster frame to start HTML5 video using jQuery</title>
		<link>http://beutelevision.com/blog2/2011/03/23/click-poster-frame-to-start-html5-video-using-jquery/</link>
		<comments>http://beutelevision.com/blog2/2011/03/23/click-poster-frame-to-start-html5-video-using-jquery/#comments</comments>
		<pubDate>Wed, 23 Mar 2011 18:09:03 +0000</pubDate>
		<dc:creator>Thomas Beutel</dc:creator>
				<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Video]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://beutelevision.com/blog2/?p=223</guid>
		<description><![CDATA[I needed to have an HTML5 video with a clickable poster frame. The first issue was that Safari would preload the movie, removing the poster frame after a few seconds. I fixed that by setting preload=&#8221;none&#8221;:
&#60;div id="promovid"&#62;
&#60;video id="video" controls="controls" poster="video-poster.jpg" preload="none" width="640" height="480"&#62;
...
&#60;/div&#62;

Them to make the poster frame clickable, I used this jQuery snippet:
&#60;script&#62;
$(document).ready(function(){
$('#promovid').click( function(){
$('#video').get(0).play(); [...]]]></description>
			<content:encoded><![CDATA[<p>I needed to have an HTML5 video with a clickable poster frame. The first issue was that Safari would preload the movie, removing the poster frame after a few seconds. I fixed that by setting preload=&#8221;none&#8221;:</p>
<p><code>&lt;div id="promovid"&gt;<br />
&lt;video id="video" controls="controls" poster="video-poster.jpg" preload="none" width="640" height="480"&gt;<br />
...<br />
&lt;/div&gt;<br />
</code></p>
<p>Them to make the poster frame clickable, I used this jQuery snippet:</p>
<p><code>&lt;script&gt;<br />
$(document).ready(function(){<br />
$('#promovid').click( function(){<br />
$('#video').get(0).play();       // get(0) gets the original DOM element<br />
$('#promovid').unbind('click');  // remove click listener<br />
});<br />
&lt;/script&gt;</code></p>
<p>Notice that I remove the click listener after the first click. This viewer can then use the native controls to pause or fullscreen the movie.</p>
<p>Also note the use of get(0) on the $(&#8217;#video&#8217;) element. My first inclination was to say $(&#8217;#video&#8217;).play(). However, jQuery elements don&#8217;t usually expose the methods of the selected DOM element. To access the actual DOM element, I had to use get(0).</p>
<p>References:</p>
<p><a href="http://stackoverflow.com/questions/4646998/play-pause-html-5-video-using-jquery">http://stackoverflow.com/questions/4646998/play-pause-html-5-video-using-jquery</a></p>
<p><a href="http://stackoverflow.com/questions/209029/best-way-to-remove-an-event-handler-in-jquery">http://stackoverflow.com/questions/209029/best-way-to-remove-an-event-handler-in-jquery</a></p>
]]></content:encoded>
			<wfw:commentRss>http://beutelevision.com/blog2/2011/03/23/click-poster-frame-to-start-html5-video-using-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Arduino upload problem: avrdude: stk500_getsync(): not in sync: resp=0&#215;00</title>
		<link>http://beutelevision.com/blog2/2011/01/05/arduino-upload-problem-avrdude-stk500_getsync-not-in-sync-resp0x00/</link>
		<comments>http://beutelevision.com/blog2/2011/01/05/arduino-upload-problem-avrdude-stk500_getsync-not-in-sync-resp0x00/#comments</comments>
		<pubDate>Wed, 05 Jan 2011 22:16:17 +0000</pubDate>
		<dc:creator>Thomas Beutel</dc:creator>
				<category><![CDATA[arduino]]></category>

		<guid isPermaLink="false">http://beutelevision.com/blog2/2011/01/05/arduino-upload-problem-avrdude-stk500_getsync-not-in-sync-resp0x00/</guid>
		<description><![CDATA[There are a number of good posts out there discussing problems with uploading sketches to an arduino, but my problem was really basic:
I had some wiring connected to digital ports 0 and 1 (TX and RX) and that was causing communication errors. I unplugged the wires to those ports and the upload then worked just [...]]]></description>
			<content:encoded><![CDATA[<p>There are a number of good posts out there discussing problems with uploading sketches to an arduino, but my problem was really basic:</p>
<p>I had some wiring connected to digital ports 0 and 1 (TX and RX) and that was causing communication errors. I unplugged the wires to those ports and the upload then worked just fine.</p>
<p>Here is the post that helped me:<br />
<a href="http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1248528012/19#19">http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1248528012/19#19</a></p>
]]></content:encoded>
			<wfw:commentRss>http://beutelevision.com/blog2/2011/01/05/arduino-upload-problem-avrdude-stk500_getsync-not-in-sync-resp0x00/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Daily Solar Tweets</title>
		<link>http://beutelevision.com/blog2/2011/01/02/daily-solar-tweets/</link>
		<comments>http://beutelevision.com/blog2/2011/01/02/daily-solar-tweets/#comments</comments>
		<pubDate>Sun, 02 Jan 2011 18:00:49 +0000</pubDate>
		<dc:creator>Thomas Beutel</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Solar]]></category>

		<guid isPermaLink="false">http://beutelevision.com/blog2/2011/01/02/daily-solar-tweets/</guid>
		<description><![CDATA[I&#8217;m playing with a perl Net::Twitter app to see if I can tweet my solar production at the end of every day.
]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m playing with a perl Net::Twitter app to see if I can tweet my solar production at the end of every day.</p>
]]></content:encoded>
			<wfw:commentRss>http://beutelevision.com/blog2/2011/01/02/daily-solar-tweets/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RSS Has Been Replaced By Twitter</title>
		<link>http://beutelevision.com/blog2/2010/07/23/rss-has-been-replaced-by-twitter/</link>
		<comments>http://beutelevision.com/blog2/2010/07/23/rss-has-been-replaced-by-twitter/#comments</comments>
		<pubDate>Fri, 23 Jul 2010 16:24:05 +0000</pubDate>
		<dc:creator>Thomas Beutel</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[flipboard]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://beutelevision.com/blog2/?p=212</guid>
		<description><![CDATA[I&#8217;ve been playing with Flipboard the past few days and a thought occurred to me. RSS has been replaced by Twitter.
Flipboard is a compelling concept&#8230; it displays news from your Facebook account and any number of Twitter accounts in a magazine style format. That means large Helvetica headlines, easy to read Times content, and lot&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been playing with Flipboard the past few days and a thought occurred to me. RSS has been replaced by Twitter.</p>
<p>Flipboard is a compelling concept&#8230; it displays news from your Facebook account and any number of Twitter accounts in a magazine style format. That means large Helvetica headlines, easy to read Times content, and lot&#8217;s of photos.</p>
<p>But it doesn&#8217;t (yet) support RSS feeds as a source. Flipboard says they will at some point.</p>
<p>I wonder though if it is even necessary. I wanted to create sections for some of my favorite sources&#8230; <a title="Jay Rosen" href="http://twitter.com/jayrosen_nyu">Jay Rosen</a> and <a title="Dave Winer" href="http://www.scripting.com/">Dave Winer</a> for media commentary, <a title="Techmeme" href="http://techmeme.com">Techmeme</a> for tech stuff, and <a href="http://www.againstdumb.com/">Against Dumb</a>, for variety.</p>
<p>It turns out that they all have Twitter accounts. Those accounts typically link to all the same content that their RSS feeds do. Often more, because they will contain links to content that the authors find interesting, but that don&#8217;t appear in their RSS feeds.</p>
<p>And guess what. Twitter accounts are much easier to work with than RSS. Here&#8217;s why:</p>
<ul>
<li>Twitter accounts have names that are easy to find, remember and refer to. People can even talk about them.</li>
<li>RSS feeds are links. They are technical. No one talks about them in normal discourse.</li>
<li>Posting to Twitter is easier than adding to RSS. Even with Wordpress around.</li>
<li>Twitter accounts are easy to aggregate into lists.</li>
</ul>
<p>I understand that Twitter has a different intent than RSS, and that RSS provides much of the foundation of information flow on the internet.</p>
<p>But I just wonder if Twitter is ending up to be a much easier way to say &#8220;here&#8217;s what&#8217;s new&#8230; and interesting&#8221;. And if it&#8217;s easier, then why use RSS?</p>
]]></content:encoded>
			<wfw:commentRss>http://beutelevision.com/blog2/2010/07/23/rss-has-been-replaced-by-twitter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why tether? Just build iPad&#8217;s data plan into EVERY Apple product!</title>
		<link>http://beutelevision.com/blog2/2010/04/12/why-tether-just-build-ipads-data-plan-into-every-apple-product/</link>
		<comments>http://beutelevision.com/blog2/2010/04/12/why-tether-just-build-ipads-data-plan-into-every-apple-product/#comments</comments>
		<pubDate>Mon, 12 Apr 2010 19:58:19 +0000</pubDate>
		<dc:creator>Thomas Beutel</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Apple Computer]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Mac]]></category>

		<guid isPermaLink="false">http://beutelevision.com/blog2/2010/04/12/why-tether-just-build-ipads-data-plan-into-every-apple-product/</guid>
		<description><![CDATA[Now that the iPad 3G will come with the option of a month-by-month no-contract data plan, why not offer all Apple products with that option? I would buy a new MacBook in a heartbeat if it offered the same sort of data plan.
]]></description>
			<content:encoded><![CDATA[<p>Now that the iPad 3G will come with the option of a month-by-month no-contract data plan, why not offer all Apple products with that option? I would buy a new MacBook in a heartbeat if it offered the same sort of data plan.</p>
]]></content:encoded>
			<wfw:commentRss>http://beutelevision.com/blog2/2010/04/12/why-tether-just-build-ipads-data-plan-into-every-apple-product/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Detecting a click in a checkbox with jQuery</title>
		<link>http://beutelevision.com/blog2/2010/03/20/detecting-a-click-in-a-checkbox-with-jquery/</link>
		<comments>http://beutelevision.com/blog2/2010/03/20/detecting-a-click-in-a-checkbox-with-jquery/#comments</comments>
		<pubDate>Sat, 20 Mar 2010 16:07:50 +0000</pubDate>
		<dc:creator>Thomas Beutel</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://beutelevision.com/blog2/?p=206</guid>
		<description><![CDATA[A simple script to detect when a checkbox is clicked. What you do with once you&#8217;ve detected the click is up to you.
 &#60;html&#62;
 &#60;head&#62;
 &#60;script src="http://www.google.com/jsapi"&#62;&#60;/script&#62;
 &#60;script&#62;
 google.load("jquery", "1.3.2");
 google.setOnLoadCallback(function() {
  $('#agree').click( function() {
    if($(this).attr('checked')){
      alert('checked');
    }
    else{
  [...]]]></description>
			<content:encoded><![CDATA[<p>A simple script to detect when a checkbox is clicked. What you do with once you&#8217;ve detected the click is up to you.<br />
<code> &lt;html&gt;<br />
 &lt;head&gt;<br />
 &lt;script src="<a href="http://www.google.com/jsapi">http://www.google.com/jsapi</a>"&gt;&lt;/script&gt;<br />
 &lt;script&gt;<br />
 google.load("jquery", "1.3.2");<br />
 google.setOnLoadCallback(function() {<br />
  $('#agree').click( function() {<br />
    if($(this).attr('checked')){<br />
      alert('checked');<br />
    }<br />
    else{<br />
      alert('unchecked');<br />
    }<br />
  });<br />
 });<br />
 &lt;/script&gt;<br />
 &lt;/head&gt;<br />
 &lt;body&gt;<br />
 &lt;p&gt;<br />
 &lt;input id="agree" type="checkbox" /&gt; I agree<br />
 &lt;/p&gt;<br />
 &lt;/body&gt;&lt;/html&gt;</code></p>
]]></content:encoded>
			<wfw:commentRss>http://beutelevision.com/blog2/2010/03/20/detecting-a-click-in-a-checkbox-with-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Redirect from within a Wordpress admin page</title>
		<link>http://beutelevision.com/blog2/2010/03/19/redirect-from-within-wordpress-admi/</link>
		<comments>http://beutelevision.com/blog2/2010/03/19/redirect-from-within-wordpress-admi/#comments</comments>
		<pubDate>Sat, 20 Mar 2010 04:11:01 +0000</pubDate>
		<dc:creator>Thomas Beutel</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://beutelevision.com/blog2/?p=201</guid>
		<description><![CDATA[I was trying to perform a redirect to generate a CSV file from within a Wordpress admin page using the wp_redirect( ) function, but the problem was that I would always get the dreaded &#8220;Cannot modify header information &#8211; headers already sent&#8221; message. This is because admin plugins are simply hooks that are performed within [...]]]></description>
			<content:encoded><![CDATA[<p>I was trying to perform a redirect to generate a CSV file from within a Wordpress admin page using the wp_redirect( ) function, but the problem was that I would always get the dreaded &#8220;Cannot modify header information &#8211; headers already sent&#8221; message. This is because admin plugins are simply hooks that are performed within the framework of the admin system.</p>
<p>The solution was to use a Javascript redirect. The Javascript attaches an event listener to listen for the &#8220;load&#8221; event. When the admin page is finished loading, a page containing the CSV data is loaded. That page has a Content-Type of application/csv, so it downloads immediately, leaving the admin page open (at least in Safari 4).</p>
<p>In my Wordpress admin panel (this is a fragment of a plugin):<br />
<code>   // setup Javascript redirect<br />
     $location='/wp/csv-output/?year='.$year.'&amp;month='.$month;<br />
 ?&gt;<br />
 &lt;script&gt;<br />
 function addListener(element, event, listener, bubble) {<br />
  if(element.addEventListener) {<br />
    if(typeof(bubble) == "undefined") bubble = false;<br />
    element.addEventListener(event, listener, bubble);<br />
  } else if(this.attachEvent) {<br />
    element.attachEvent("on" + event, listener);<br />
  }<br />
 }<br />
 addListener(this, "load", function() { window.location="&lt;?php echo $location ?&gt;" });<br />
 addListener(document, "load", function() { window.location="&lt;?php echo $location ?&gt;" });<br />
 &lt;/script&gt;</code><br />
And in my CSV page (again, just a fragment):<br />
<code>   ob_end_clean();<br />
   header("Content-type: application/csv");<br />
   header("Content-Disposition: attachment; filename=contact_data_$year_$month.csv");<br />
   header("Pragma: no-cache");<br />
   header("Expires: 0");</code><br />
I found the javascript code <a href="http://answers.google.com/answers/threadview?id=510976">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://beutelevision.com/blog2/2010/03/19/redirect-from-within-wordpress-admi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Result of expression &#8216;document.forms[0].submit&#8217; [[object HTMLInputElement]] is not a function.</title>
		<link>http://beutelevision.com/blog2/2009/09/15/result-of-expression-document-forms0-submit-object-htmlinputelement-is-not-a-function/</link>
		<comments>http://beutelevision.com/blog2/2009/09/15/result-of-expression-document-forms0-submit-object-htmlinputelement-is-not-a-function/#comments</comments>
		<pubDate>Tue, 15 Sep 2009 21:34:48 +0000</pubDate>
		<dc:creator>Thomas Beutel</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://beutelevision.com/blog2/2009/09/15/result-of-expression-document-forms0-submit-object-htmlinputelement-is-not-a-function/</guid>
		<description><![CDATA[I was trying to add a small delay into my form submission like so:
&#60;form ... onsubmit="setTimeout('document.forms[0].submit()',2000);return false;"&#62;
but everytime I tried it, I got the following error:
Result of expression 'document.forms[0].submit' [[object HTMLInputElement]] is not a function.
This one had me stumped, until I realized what it was telling me&#8230; that my submit button was named &#8220;submit&#8221;.
&#60;input type="submit" [...]]]></description>
			<content:encoded><![CDATA[<p>I was trying to add a small delay into my form submission like so:</p>
<p><code>&lt;form ... onsubmit="setTimeout('document.forms[0].submit()',2000);return false;"&gt;</code></p>
<p>but everytime I tried it, I got the following error:</p>
<p><code>Result of expression 'document.forms[0].submit' [[object HTMLInputElement]] is not a function.</code></p>
<p>This one had me stumped, until I realized what it was telling me&#8230; that my submit button was named &#8220;submit&#8221;.</p>
<p><code>&lt;input type="submit" name="submit" id="Button1" /&gt;</code></p>
<p>I changed the name of the submit button and the problem went away.</p>
<p><code>&lt;input type="submit" name="button1" id="Button1" /&gt;</code></p>
<p>Basically, Javascript provides a &#8220;convenience&#8221; by adding the names of the form inputs as children of the form. But this then clashes with preset function names, like the submit() function.</p>
]]></content:encoded>
			<wfw:commentRss>http://beutelevision.com/blog2/2009/09/15/result-of-expression-document-forms0-submit-object-htmlinputelement-is-not-a-function/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>It&#8217;s like deviantART meets the App Store</title>
		<link>http://beutelevision.com/blog2/2009/09/11/its-like-deviantart-meets-the-app-store/</link>
		<comments>http://beutelevision.com/blog2/2009/09/11/its-like-deviantart-meets-the-app-store/#comments</comments>
		<pubDate>Fri, 11 Sep 2009 22:02:26 +0000</pubDate>
		<dc:creator>Thomas Beutel</dc:creator>
				<category><![CDATA[Apple Computer]]></category>

		<guid isPermaLink="false">http://beutelevision.com/blog2/?p=181</guid>
		<description><![CDATA[John Fort over at the Big Tech Fortune blog writes about Tyrese Gibsonâ??s Mayhem which is the  first digital book for sale on iTunes 9. This strikes me as something that would interest the deviantART community of digital artists and writers. Imagine selling your artistic creations to millions of iTunes users for $0.99 a [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-187" title="mayhem" src="http://beutelevision.com/blog2/wp-content/uploads/2009/09/mayhem.gif" alt="mayhem" width="100" height="98" style="padding-right:8px;"/>John Fort over at the Big Tech Fortune blog writes about Tyrese Gibsonâ??s <em><a href="http://www.buymayhem.com/">Mayhem</a></em> which is the  <a href="http://brainstormtech.blogs.fortune.cnn.com/2009/09/11/is-this-apples-e-book-trojan-horse/">first digital book for sale on iTunes 9</a>. This strikes me as something that would interest the <a href="http://deviantart.com">deviantART</a> community of digital artists and writers. Imagine selling your artistic creations to millions of iTunes users for $0.99 a pop, just as iPhone app writers have been doing at the App Store. Good for artists. Good for Apple.</p>
<p>John mentions that the tools to create the e-book is based on standard web tech: HTML, CSS, and Javascript. My guess is that some day, not too long from now, we will see something like Pages (or maybe GarageBand) for iTunes where you can create your own digital creations and submit them to the iTunes store. It will probably dwarf the App Store in total volume.</p>
<p>Update: ReadWriteWeb has <a href="http://www.readwriteweb.com/archives/maybe_apple_isnt_interested_in_ebooks_but_its_now_selling_comic_books.php">more to say</a> about this.</p>
]]></content:encoded>
			<wfw:commentRss>http://beutelevision.com/blog2/2009/09/11/its-like-deviantart-meets-the-app-store/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iTunes 9: Option-click the green button to get the mini-player</title>
		<link>http://beutelevision.com/blog2/2009/09/11/itunes-9-option-click-the-green-button-to-get-the-mini-player/</link>
		<comments>http://beutelevision.com/blog2/2009/09/11/itunes-9-option-click-the-green-button-to-get-the-mini-player/#comments</comments>
		<pubDate>Fri, 11 Sep 2009 16:03:16 +0000</pubDate>
		<dc:creator>Thomas Beutel</dc:creator>
				<category><![CDATA[Apple Computer]]></category>
		<category><![CDATA[mac itunes]]></category>

		<guid isPermaLink="false">http://beutelevision.com/blog2/?p=177</guid>
		<description><![CDATA[The first thing I noticed when I upgraded to iTunes 9 was that clicking the minimize (green) button no longer selected the mini-player. A quick search revealed the answer: now you have to option-click the green button to get the mini-player. Thanks to Maclife for the answer.

]]></description>
			<content:encoded><![CDATA[<p>The first thing I noticed when I upgraded to iTunes 9 was that clicking the minimize (green) button no longer selected the mini-player. A quick search revealed the answer: now you have to option-click the green button to get the mini-player. Thanks to Maclife for <a href="http://www.maclife.com/article/howtos/itunes_9_tips_and_tricks_solve_mysteries_new_itunes">the answer</a>.</p>
<p><img class="alignnone size-full wp-image-179" title="miniplayer" src="http://beutelevision.com/blog2/wp-content/uploads/2009/09/miniplayer.png" alt="miniplayer" width="513" height="103" /></p>
]]></content:encoded>
			<wfw:commentRss>http://beutelevision.com/blog2/2009/09/11/itunes-9-option-click-the-green-button-to-get-the-mini-player/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RSSCloud: No need to adjust your firewall</title>
		<link>http://beutelevision.com/blog2/2009/09/08/rsscloud-no-need-to-adjust-your-firewall/</link>
		<comments>http://beutelevision.com/blog2/2009/09/08/rsscloud-no-need-to-adjust-your-firewall/#comments</comments>
		<pubDate>Wed, 09 Sep 2009 05:01:59 +0000</pubDate>
		<dc:creator>Thomas Beutel</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[rsscloud]]></category>

		<guid isPermaLink="false">http://beutelevision.com/blog2/?p=173</guid>
		<description><![CDATA[I&#8217;ve been following the recent development of RSSCloud with interest&#8230; I think it has the potential to replace Twitter in the long term, although I suspect that Twitter might also evolve in the direction of RSSCloud.
One misconception about RSSCloud is the supposed need for the cloud to notify the desktop or mobile reader of an [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been following the recent development of <a href="http://rsscloud.org">RSSCloud</a> with interest&#8230; I think it has the potential to replace Twitter in the long term, although I suspect that Twitter might also evolve in the direction of RSSCloud.</p>
<p>One misconception about RSSCloud is the supposed need for the cloud to notify the desktop or mobile reader of an update. This would seem to mean that you would have to adjust your firewall to accept inbound connections to your computer/mobile device.</p>
<p>While the <a href="http://rsscloud.org/walkthrough.html">implementor&#8217;s guide</a> shows that the cloud does notify the aggregator, the aggregator doesn&#8217;t have to be the same as the reader. As the guide <a href="http://rsscloud.org/walkthrough.html#theAggregator">suggests</a>, the aggregator can also be in the cloud, with the reader opening an outbound connection to the aggregator, in the same way AIM or Skype or Jabber clients do, using protocols like XMPP. No need to adjust your firewall.</p>
<p>For that matter, Twitter clients do the same thing, using <a href="http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-statuses-friends_timeline">HTTP REST calls</a>. The only difference is Twitter limits the number of <a href="http://apiwiki.twitter.com/Rate-limiting">API calls per hour</a> (currently 150 requests per hour, or 2.5 requests per min&#8211;close enough to realtime for me), while there are no limits with XMPP. The tradeoff is arguably one of simplicity &#8211; is your client easier to implement with one or the other?</p>
<p>Hopefully the folks working on RSSCloud are developing an example of a cloud aggregator and an associated protocol. My vote would be for the protocol to be REST-based, but I could be convinced otherwise.</p>
]]></content:encoded>
			<wfw:commentRss>http://beutelevision.com/blog2/2009/09/08/rsscloud-no-need-to-adjust-your-firewall/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using jQuery and Prototype together while avoiding the dreaded element.dispatchEvent error</title>
		<link>http://beutelevision.com/blog2/2009/08/28/using-jquery-and-prototype-together-and-avoiding-the-dreaded-elementdispatchevent-error/</link>
		<comments>http://beutelevision.com/blog2/2009/08/28/using-jquery-and-prototype-together-and-avoiding-the-dreaded-elementdispatchevent-error/#comments</comments>
		<pubDate>Fri, 28 Aug 2009 18:13:27 +0000</pubDate>
		<dc:creator>Thomas Beutel</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://beutelevision.com/blog2/?p=161</guid>
		<description><![CDATA[Here is what I do to avoid the dreaded &#8220;element.dispatchEvent is not a function&#8221; error. I load jQuery first, Prototype second, and then I use jQuery( ) instead of $( ) for all my jQuery calls.
 &#60;!--  Set up jQuery and prototype together  --&#62;
 &#60;script src="http://www.google.com/jsapi"&#62;&#60;/script&#62;
 &#60;script&#62;
 google.load("jquery", "1.3.2");
 google.load("prototype", "1.6.0.3");
 google.setOnLoadCallback(function() {
 [...]]]></description>
			<content:encoded><![CDATA[<p>Here is what I do to avoid the dreaded &#8220;element.dispatchEvent is not a function&#8221; error. I load jQuery first, Prototype second, and then I use jQuery( ) instead of $( ) for all my jQuery calls.</p>
<pre> &lt;!--  Set up jQuery and prototype together  --&gt;
 &lt;script src="http://www.google.com/jsapi"&gt;&lt;/script&gt;
 &lt;script&gt;
 google.load("jquery", "1.3.2");
 google.load("prototype", "1.6.0.3");
 google.setOnLoadCallback(function() {
  jQuery('#helphide').hide();
  jQuery('#helpbutton').click( function(){
    jQuery('#helphide').toggle();
 });
 });
 &lt;/script&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://beutelevision.com/blog2/2009/08/28/using-jquery-and-prototype-together-and-avoiding-the-dreaded-elementdispatchevent-error/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

